Ordinary Perlin noise makes a great-looking random field, but using its raw gradient to move particles produces motion that clumps and pools — because a gradient field has non-zero divergence. Curl noise, introduced by Bridson, Houriham & Nordenstam (2007), fixes this: instead of moving particles along the gradient of a noise field, you move them along the curl (rotation) of a noise-based vector potential. The curl of any vector field is mathematically guaranteed to be divergence-free, so particles never collect in sinks or empty out of sources — they simply swirl, forever conserving "volume" like smoke or dye in a fluid.
Ψ(x,y,z,t).v = ∇×Ψ (the curl), via finite differences of the three potentials.∇·(∇×Ψ) = 0 always, the resulting flow is incompressible — swirling and looping rather than converging or diverging.Curl-noise flow fields are a staple of film and game VFX — they're behind countless "magic smoke," fire, and fluid-like particle effects because they're orders of magnitude cheaper than solving the real Navier–Stokes equations while still looking convincingly fluid.
Thousands of particles ride a divergence-free curl-noise vector field, tracing swirling, smoke-like paths that never pool or vanish — the same trick behind fluid-style VFX in film and games.
Velocity at every point is the curl of a Perlin-noise potential field, which is mathematically guaranteed to be divergence-free — so the flow swirls and loops instead of converging into sinks or spraying from sources.
Adjust noise scale, flow speed, curl strength and particle density, then toggle the field-vector overlay to see the instantaneous curl direction that's steering every particle. Drag to orbit, scroll to zoom.
Curl noise was formalized by Bridson, Houriham & Nordenstam in 2007 specifically to give VFX artists incompressible-looking turbulence without solving the full Navier–Stokes equations.