Noise Nodes
Curl Noise
Curl of a noise field at Position+offset: divergence-free direction vectors for wind and flow. Seed produces a distinct field per value.
Inputs
- Position (Vector3)
- X (Float)
- Y (Float)
- Z (Float)
- Scale (Float)
- Seed (Float)
Outputs
- Direction (Vector3)
Tips
- Curl noise produces vectors that never converge or diverge: particles following curl noise swirl and flow without clumping or dispersing. Ideal for river meanders, wind direction, and scatter orientation.
- Feed the Direction output into a GeometryTransform Rotate X/Z (after converting to Euler) to orient scatter instances along the flow field.
Domain Warp
Warps the sampling coordinate by a noise field before reading the output: organic flowing distortion. Seed produces a distinct warp pattern per value.
Inputs
- Position (Vector3)
- X (Float)
- Y (Float)
- Z (Float)
- Scale (Float)
- Strength (Float)
- Seed (Float)
Outputs
- Value (Float)
Options
- noiseType: Noise algorithm used for both the warp field and the output sample: Perlin is smoother; Simplex is slightly sharper.
- outputMode: Output range of the noise sample at the warped coordinate. Unipolar [0, 1] or Bipolar [-1, 1].
Tips
- Domain Warp displaces the coordinate, not the output value. Value is still a [0,1] (or [-1,1] bipolar) scalar sampled at the warped position.
- Chain: wire a DomainWarp Value into another noise node’s X/Y/Z inputs for multi-level warping. Increase Strength for stronger distortion.
Erode Height
Applies the Advanced Terrain Erosion Filter (Rune Skovbo Johansen, MPL-2.0) at a sample point. Outputs a signed height delta and a ridge/crease map. Loop N times for multi-pass erosion.
Inputs
- Position (Vector3)
- Height (Float)
- Slope X (Float)
- Slope Y (Float)
- Fade Target (Float)
Outputs
- Height Delta (Float)
- Ridge Map (Float)
Options
- scale: Horizontal and vertical scale of the erosion kernel. Larger values produce broader, more pronounced gullies.
- strength: Overall erosion intensity multiplier. Increase for a stronger height change per pass; decrease for a subtle single-pass effect.
- gullyWeight: Balance between gully-carving and ridge-sharpening [0, 1]. 0 = ridge sharpening only; 1 = full gully erosion. Default 0.5 mixes both.
- detail: Controls how strongly higher-frequency octaves are restricted to steep slopes. Increase to concentrate fine erosion detail on cliff faces and suppress it on gentle slopes.
- octaves: Number of erosion octave passes per evaluation. More passes produce finer gully branching. Default 5; above 8 adds minimal visible detail.
Limitations
- Slope X / Slope Y must be the analytical gradient (dh/dx, dh/dz) of the Height input. Unwired Slope inputs are treated as zero, disabling erosion directionality.
Tips
- Get Slope X/Y from a Fractal Noise node configured to output gradient derivatives, or compute them manually with finite differences.
- Loop this node N times: feed the previous Height Delta back into Height each pass for progressive multi-pass erosion.
- Ridge Map outputs -1 at creases, 1 at ridges: useful for vegetation density, wetness masking, or material blending.
Fractal Noise
Fractal noise (fBm): stacks noise octaves for natural-looking terrain and cloud detail. Seed produces a distinct fractal pattern per value.
Inputs
- Position (Vector3)
- X (Float)
- Y (Float)
- Z (Float)
- Scale (Float)
- Seed (Float)
Outputs
- Value (Float)
Options
- noiseType: Base noise algorithm for each octave: Perlin is smoother; Simplex is slightly sharper.
- outputMode: Output range. Unipolar maps to roughly [0, 1]: use for density masks and height blending. Bipolar maps to roughly [-1, 1]: use for additive displacement.
- octaves: Number of stacked noise layers. More octaves add finer surface detail. Values above 6 add little visible detail at normal world scales; capped at 16 at evaluation time.
- lacunarity: Frequency multiplier between octaves. 2 = each layer is twice as fine as the previous. Typical range 1.5–3.
- gain: Amplitude multiplier between octaves. 0.5 = each layer is half the height of the previous. Lower values flatten small-scale detail.
Limitations
- Octaves capped at 16 at evaluation time to prevent runaway evaluation in Player builds.
Tips
- Octaves > 6 adds no visible detail at normal world scales: keep at 4 for fast previews.
- Lacunarity: frequency multiplier between octaves (2 = each layer is twice as fine). Gain: amplitude multiplier (0.5 = each layer is half the height).
- Unipolar output is roughly [0, 1]: use for height and density masks. Bipolar is roughly [-1, 1]: use for additive displacement.
Noise Field
Samples 3D noise at Position+offset. Wire Position for world-space sampling; set X/Y/Z as offsets or standalone coordinates. Seed isolates this field from other noise nodes.
Inputs
- Position (Vector3)
- X (Float)
- Y (Float)
- Z (Float)
- Scale (Float)
- Seed (Float)
Outputs
- Value (Float)
Options
- noiseType: Noise algorithm: Perlin produces smooth blended gradients; Simplex is slightly sharper with fewer grid artefacts at low frequencies.
- outputMode: Output range. Unipolar maps to roughly [0, 1]: use for density masks and height blending. Bipolar maps to roughly [-1, 1]: use for additive displacement where negative moves down.
Tips
- Unipolar mode outputs roughly [0, 1]: use for density masks and height blending. Bipolar mode outputs roughly [-1, 1]: use for additive displacement where negative moves down.
- Wire a world-space position (e.g. from a scatter spawn) into Position and leave X/Y/Z at 0 for terrain-aligned noise. Leave Position unwired and set X/Y/Z for graph-local fixed coordinates.
- Use a different Seed value for each independent noise field in the same graph to prevent identical patterns.
Phacelle Noise
Stripe-pattern noise aligned to a direction angle. Produces organic erosion-line and vein patterns. Scale controls cell density; keep Stripe Frequency near 1 for clean stripes.
Inputs
- Position (Vector3)
- Direction Angle (Float)
Outputs
- Value (Float)
Options
- scale: Cell density. Larger values zoom out and produce more stripe cells per world unit.
- stripeFrequency: Stripe repeat rate within each cell. Keep near 1.0: values significantly above 1 produce moiré distortions.
- offset: Phase shift along the stripe direction in full cycles [0, 1]. Slide the stripe pattern without changing its scale or angle.
- normalization: Output normalisation strength [0, 1]. Higher values push stripe magnitude toward 1, reducing brightness variation between cells.
Ridged Noise
fBm variant: each octave folds noise with 1 - |s| for sharp ridge silhouettes. Unipolar: [0, 1]. Bipolar: [-1, 1].
Inputs
- Position (Vector3)
- X (Float)
- Y (Float)
- Z (Float)
- Scale (Float)
- Seed (Float)
Outputs
- Value (Float)
Options
- noiseType: Base noise algorithm for each octave: Perlin is smoother; Simplex is slightly sharper.
- outputMode: Output range. Unipolar maps to roughly [0, 1]. Bipolar maps to roughly [-1, 1]: use for additive displacement.
- octaves: Number of stacked noise layers. More octaves add finer ridge detail. Values above 6 add little visible detail at normal world scales.
- lacunarity: Frequency multiplier between octaves. 2 = each layer is twice as fine as the previous.
- gain: Amplitude multiplier between octaves. 0.5 = each layer contributes half the height. Lower values reduce fine-ridge prominence.
Tips
- Use for mountain silhouettes and rock strata where sharp ridges are the primary visual feature. Regular fBm produces smooth hills; Ridged produces dramatic jagged peaks.
- Invert by subtracting from 1 (Add node with A=1, negate, then Add) to get deep valleys instead of ridges.
Turbulence
fBm variant: each octave accumulates |s|: cloud and smoke-like turbulent patterns. Unipolar: [0, 1]. Bipolar: [-1, 1].
Inputs
- Position (Vector3)
- X (Float)
- Y (Float)
- Z (Float)
- Scale (Float)
- Seed (Float)
Outputs
- Value (Float)
Options
- noiseType: Base noise algorithm for each octave: Perlin is smoother; Simplex is slightly sharper.
- outputMode: Output range. Unipolar maps to roughly [0, 1]: use for density masks. Bipolar maps to roughly [-1, 1]: use for additive displacement.
- octaves: Number of stacked noise layers. 4–6 give the best cloud quality; above 6 adds little visible detail.
- lacunarity: Frequency multiplier between octaves. 2 = each layer is twice as fine as the previous.
- gain: Amplitude multiplier between octaves. 0.5 = each layer is half the brightness. Lower values reduce high-frequency lumpiness.
Tips
- Use for smoke, fire, and cloud density masks. Turbulence produces bright lumpy clusters rather than fBm’s smooth gradients.
- Octaves 4–6 give the best visual quality for cloud shapes; fewer octaves look blocky, more add little visible detail.
Voronoi Noise
Noise field: cellular (Voronoi): outputs Distance to nearest cell, unique Cell ID [0,1], and Centroid of the owning cell. Seed produces a distinct pattern per value.
Inputs
- Position (Vector3)
- X (Float)
- Y (Float)
- Z (Float)
- Scale (Float)
- Seed (Float)
Outputs
- Distance (Float)
- Cell ID (Float)
- Centroid X (Float)
- Centroid Y (Float)
- Centroid Z (Float)
Tips
- Cell ID is a stable random value per cell: use it as an index into a colour table, a biome selector, or a weighted-selection node to assign a different asset or material to every Voronoi region.
- Centroid X/Z give the world-XZ position of the owning cell’s feature point. Use to snap scatter objects to cell centres, or to compute per-cell transform offset.
- Distance output is roughly [0, 0.7]: remap to [0, 1] with a Remap node before using as a density mask.
Worley Noise
Cellular/Worley noise at Position+offset. F1=nearest cell distance, F2=second-nearest. Seed produces distinct cell layouts per value.
Inputs
- Position (Vector3)
- X (Float)
- Y (Float)
- Z (Float)
- Scale (Float)
- Seed (Float)
Outputs
- Value (Float)
Options
- mode: F1: distance to the nearest cell feature point; dark at centres, bright at edges. F2: distance to the second-nearest feature point; produces smoother ridgelines between cells.
- outputMode: Output range. Unipolar maps to roughly [0, 1]: use for density masks. Bipolar maps to roughly [-1, 1]: use for additive displacement.
Tips
- F1 mode: dark at cell centres, bright at cell edges: good for cracked-earth or stone-tile textures. F2 mode: smoothly bright at edges of the second-nearest cell: good for organic membranes.
- Combine F2 - F1 (subtract two Worley nodes, same Seed) for sharp ridgeline patterns that separate cells evenly.