Skip to content
CoreSource checked

Fractal Brownian Motion

Layers noise at multiple frequencies to create richer natural variation.

Quick Facts

Compact metadata for implementation and discovery.

Category
Procedural Generation
Difficulty
Intermediate
Family
Coherent Noise
Tier
Core
Status
Verified
Review
Source Checked
Sources
1
Formulas
1
Relationships
6
Code example
Not ready
Visualization
Ready
Aliases
fBm

Overview

Fractal Brownian Motion sums several octaves of coherent noise with decreasing amplitude and increasing frequency.

Core Concepts

generated structuresmooth noise fieldmulti-scale detailcoherent noiseseeded variationrule expansionspatial structure

Quick facts

Complexity

Runtime and memory behavior at a glance.

Best

O(o)

Average

O(o)

Worst

O(o)

Space

O(1)

When to Use

  • Use Fractal Brownian Motion when you need to sample several noise octaves.
  • Use it for terrain detail with inputs like noise function.
  • Use it when repeatable content can be produced from compact rules, parameters, and seeds.
  • Use it when the Coherent Noise tradeoff is acceptable for the problem size.

When Not to Use

  • Avoid it when authored control matters more than variation or replayability.
  • Avoid it when the required output is not layered noise value or field.

What It Does

  • Samples several noise octaves
  • Combines them into multi-scale detail

Use Cases

  • Terrain detail
  • Cloud textures
  • Procedural materials

Inputs

  • Noise function
  • Octave count
  • Frequency and amplitude settings

Outputs

  • Layered noise value or field

Key Formulas (1)

Octave sum

value = ∑(amplitudei · noise(frequencyi · point))
value = sum(amplitude_i * noise(frequency_i * point))

Adds multiple noise layers at different scales.

Pseudocode

  1. 1.Start with amplitude and frequency
  2. 2.Sample the base noise function
  3. 3.Add the weighted sample to the total
  4. 4.Increase frequency and reduce amplitude
  5. 5.Repeat for each octave

Canonical Example

Input
seed = 42, size = 8x8
Output
generated map, pattern, or noise field
Explanation
Fractal Brownian Motion: The algorithm expands a small set of rules and random choices into structured content.

Implementation Notes

  • Keep the input contract explicit: Noise function; Octave count; Frequency and amplitude settings.
  • Expose seed and parameters so results can be reproduced and tuned.
  • Store seed, parameters, and validation results with generated output so artifacts can be reproduced.

Common Pitfalls

  • Persistence and lacunarity control how rough the result feels.
  • Letting random choices create disconnected, invalid, or impossible-to-use output.
  • Handle empty, invalid, and boundary inputs before trusting layered noise value or field.
  • Changing a seed or constraint weight can create artifacts that are hard to reproduce without recorded parameters.

Interactive Mechanism Walkthrough

Spatial Primitive & Sweep-Line Canvas

Show smooth noise layers combining into detailed texture.

Fractal Brownian Motion mechanism walkthrough step 1 of 5
Step 1 of 5: Start with amplitude and frequency
noise-octaves

Notes

Fractal Brownian Motion operates in O(o) time and O(1) space within the Coherent Noise family. Key governing relation: value = sum(amplitude_i * noise(frequency_i * point)). Often compared with Perlin Noise and Simplex Noise.

Sources (1)

What each reference supports for this entry.

Texturing and Modeling: A Procedural Approach

Book

Procedural-generation reference for Fractal Brownian Motion's noise, texture synthesis, and terrain/shape generation use cases.

Explore Next

Good next jumps from the relationship graph, ranked for useful discovery.

fBm often layers Perlin-style noise across octaves.

Ridged multifractal noise is a specialized layered noise variant.

Related Algorithms

Tags

Procedural GenerationNoiseFractal