🌀 Domain Warping: Turning Flat Noise into Marbled, Fluid-Like Fields
Interactive 3D textured surface where layering and adjusting domain-warp iterations on Perlin noise distorts flat noise into marbled, flame-like or fluid patterns.
A GPU-shaded 3D surface where the output of one Perlin/simplex noise field is recursively fed back in as a coordinate offset for the next, turning flat isotropic noise into swirling, marbled, flame-like or fluid-looking terrain.
🔬 What It Demonstrates
Each extra warp layer samples noise at p + k·noise(p) instead of p, bending straight contours into swirls. The same scalar field displaces the mesh in 3D and colours it, so structure and texture come from one function.
🎮 How to Use
Adjust warp depth to add recursive feedback layers, warp strength to control how far each layer bends the sampling coordinate, and noise scale/flow speed to zoom and animate. Switch palettes to recolour the same underlying field.
💡 Did You Know?
Domain warping was popularised by Inigo Quilez's shader-art tutorials and needs no fluid solver at all — the "flow" you perceive is an illusion produced entirely by feeding noise back into itself.
Interactive 3D terrain where feeding one noise field's output into another as a coordinate offset shows how domain warping turns flat noise into marbled, fluid-like patterns.
3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install