Curl Noise*

Noise Preview

Curl Noise is a dynamic, divergence-free 3D flow generator. Unlike standard noise which creates random peaks and valleys, Curl Noise produces natural, physically plausible swirling motion typical of fluid dynamics. It utilizes a quaternion-rotated fractal derivative noise (dfBm) field to compute curl vectors. It then iteratively warps the input coordinates along this stable flow. The result is a continuously evolving, vortex-like pattern ideal for smoke, fluid, clouds, or energy effects.

Performance Cost 🟢 Low
Space 2D/3D - UV/World/Object
Implementation Native Compiled C++
Devices (Cycles) CPU / GPU (1:1)

Usage & Behavior

With default values
With high flow intensity
With directional flow
High detail for oily or marble veins appearance

The core mechanic of this node is Iterative Advection. It doesn't just sample a texture; it pushes the texture coordinates around in a loop, following the "currents" of a hidden vector field. As the code comments say: "Plug warped coords back into the 3D function... and boom, swirls."

Best Used For: Turbulent smoke, mixing paint, oily liquids, force fields, galaxy spirals, and stylized fire.
Indicated also for: Stratified terrains, marble veins or to simply give swirls/curls to any other texture node.

Key Features

  • Divergence-Free: Produces incompressible flow (liquids don't shrink or expand, they just flow).
  • Quaternion Rotation: Uses rotated gradients to ensure the flow is isotropic (no grid bias).
  • Analytic Derivatives: Uses exact math for sharp, high-quality turbulence.

Parameters

Invert (bool, default: false)
Inverts the final noise intensity (1.0 - result).
Coords Vector
The input texture coordinates. The noise warps these coordinates, so plugging in a UV map or Object coordinates is essential.
Iterations (default: 2)
The number of times the coordinates are pushed along the flow vectors.
- Low values (1-3): Gentle, wavy distortions.
- High values (10+): Creates deep, complex spirals and highly turbulent mixing.
Flow Offset (default: 0.5)
Offsets the position of the underlying flow field. Animate this value to make the "currents" move, causing the texture to ripple and swirl over time without moving the object itself.
Flow Intensity (default: 2.0)
Controls how far the coordinates are pushed per iteration.
- High Intensity: Creates long, streaky distortion lines (like fast-moving water).
- Low Intensity: Creates subtle disturbances.
Octaves (default: 4)
The complexity of the underlying fractal field. Higher octaves introduce smaller, finer vortices within the larger swirls.

Quick Recipes

Try these settings for various fluid effects.

Ink in Water

Iterations: 10
Flow Intensity: 1.5
Octaves: 3
Flow Offset: (Animate)
High iterations create the deep, folding tendrils characteristic of ink dispersion.

Subtle Heat Haze

Iterations: 2
Flow Intensity: 0.8
Octaves: 2
Low iterations and intensity create a gentle, wavering distortion.

Galactic Spirals

Iterations: 15
Flow Intensity: 3.0
Octaves: 5
Pushing intensity and iterations very high creates tight, energetic vortex spirals.
Technical Note: The shader computes the cross product of the noise gradient and a normal vector cross(dfbm_grad, n) to generate the curl. This ensures the resulting vector field has zero divergence, mathematically guaranteeing a fluid-like flow behavior.
© 2025 Rombo Tools. All rights reserved.
Back to Top

Leave a Reply