What is Noise?
Noise in world generation refers to pseudo-random mathematical functions that create natural-looking patterns. Unlike true randomness (which looks chaotic), noise functions create smooth, continuous variation — perfect for terrain, clouds, and organic shapes. Iris uses noise for:- Terrain height (mountains, valleys, plains)
- Biome distribution (where biomes spawn)
- Block variation (stone mixed with andesite)
- Feature placement (tree density, grass coverage)
Think of noise as “controlled randomness.” It’s predictable (same seed = same output) but looks organic and natural.
Noise Dimensions
2D Noise (X, Z)
Used for:- Terrain height (Y-value based on X/Z position)
- Biome placement
- Surface decoration density
3D Noise (X, Y, Z)
Used for:- Caves (3D carving)
- Ore veins
- Density functions
- 3D biome blending
Noise Types in Iris
Iris provides multiple noise algorithms through theNoiseStyle enum:
Simplex Noise
SIMPLEX - Smooth, organic noise- Very smooth gradients
- No directional bias
- Fast computation
- Good for: Natural terrain, hills, general-purpose use
Perlin Noise
PERLIN - Classic gradient noise- Slightly more grid-aligned than Simplex
- Smooth transitions
- Good for: Classic terrain, gentle slopes
Cellular Noise (Worley)
CELLULAR - Cell-based patterns- Creates distinct cells/regions
- Sharp transitions
- Voronoi diagram-based
- Good for: Plateaus, mesas, biome borders, cracked terrain
Fractal Noise Variants
Fractal Billow
FRACTAL_BILLOW_SIMPLEX - Billowy, cloud-like- Rounded, puffy features
- Multiple octaves for detail
- Good for: Rolling hills, dunes, clouds
Fractal Rigid Multi
FRACTAL_RIGID_MULTI_SIMPLEX - Sharp ridges- Sharp, rigid ridges
- Excellent for mountain ranges
- Creates dramatic peaks
- Good for: Mountains, canyons, sharp terrain
Fractal FBM (Fractional Brownian Motion)
FRACTAL_FBM_SIMPLEX - Layered detail- Standard fractal layering
- Each octave adds detail
- Good for: Natural terrain with fine detail
Noise Parameters
Zoom (Frequency)
Controls feature sizeNoise frequency/scale. Lower = larger features, higher = smaller features.Typical ranges:
0.05-0.2: Continental/regional features0.3-0.8: Hills and valleys1.0-3.0: Local detail4.0+: Fine texture
Fractal Octaves
Adds layered detailNumber of noise layers for fractal types. Each octave adds finer detail.
1: Simple, smooth noise2-3: Moderate detail (recommended)4-6: High detail (performance cost)7+: Very detailed (heavy performance impact)
Seed
Deterministic variationCustom seed for this noise layer. Same seed = same pattern. If omitted, uses world seed.
Advanced Techniques
Domain Warping (Fracture)
Warp coordinate space before sampling noise:- Sample fracture noise at (x, z)
- Offset coordinates: x′ = x + fracture_x, z′ = z + fracture_z
- Sample main noise at (x′, z′)
Noise Interpolation
Smooth blending between different noise values:Smoothing function:
LINEAR: Sharp transitionsHERMITE: Smooth (default for most uses)BEZIER: Very smooth
Exponent (Noise Shaping)
Shape the noise curve:Power applied to noise output. Values greater than 1.0 create more flat areas, less than 1.0 create more peaks.
Practical Examples
Natural Hills
- Billow creates rounded hills
- Fracture adds organic flow
- 3 octaves provide natural detail
Dramatic Mountains
- Rigid multi creates sharp peaks
- Cellular fracture adds angular warping
- 5 octaves provide rocky detail
Plateaus and Mesas
- Cellular creates distinct regions
- Exponent flattens the cells
- Result: Flat-topped plateaus
Debugging Noise
Visualization Tips
Common Issues
Terrain is too repetitive
Terrain is too repetitive
Solution: Add fracture or increase fractal octaves
Terrain is too chaotic
Terrain is too chaotic
Solution: Reduce zoom, decrease octaves
Terrain is too flat
Terrain is too flat
Solution: Increase generator multiplier or use sharper noise
Performance is poor
Performance is poor
Solution: Reduce octaves, simplify fracture
Best Practices
Next Steps
Generators
Apply noise in terrain generators
Expressions
Use noise in mathematical expressions