Billows Noise*

Noise Preview

Billow Noise is an advanced gradient-domain procedural texture. Unlike standard noise types that simply layer details on top of each other, Billow Noise uses the mathematical gradient (slope) of the previous layer to distort the position of the next layer. This mimics the physics of fluid advection, resulting in patterns that fold, swirl, and flow like smoke, silk, rising steam, or turbulent water. It is built upon a Rotation-aware Simplex noise basis (PSRDNoise) for high-quality, artifact-free results.

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 Fractal param enabled
With Ripples
Stylized with NoiseColorizer and NoiseTweaker

The visual characteristic of this noise is "flow." As you increase the iterations, the pattern doesn't just get rougher; it gets more turbulent and twisted. The analytic gradient calculation ensures that these distortions remain smooth and physically plausible, avoiding the pixelated artifacts seen in cheaper warping methods.

Best Used For: Heavy smoke plumes, fire, silk fabrics, flowing water, oil slicks, and abstract advection patterns.

Key Features

  • Gradient Advection: Uses analytic derivatives to warp domains per octave.
  • Rotational Swirl: Simulates vorticity for realistic fluid motion.
  • Simplex Basis: Isotropic texture with no grid bias.

Parameters

Coords Vector
The input texture coordinates. If left unconnected, this defaults to the global Position field (P) of the shading point.
Scale Vector (default: 2.0, 2.0, 2.0)
Global scaling factor. Because this noise relies on flow, non-uniform scaling (e.g., stretching X more than Y) can create interesting directional wind or current effects.
Fractal (bool, default: false)
Controls how the warping accumulates across layers.
  • False (Advective): Warping strength remains constant across octaves. This produces heavy, deep distortions ideal for fluids.
  • True (Fractal): Warping strength decreases with amplitude. This produces subtler surface details, better for terrain or fabrics.
Invert (bool, default: false)
Inverts the final output (1.0 - result). Useful if you need "valleys" instead of "peaks" for displacement, or to reverse the density of a mask.
Iterations (default: 5)
The number of noise layers (octaves). Since each layer warps the next, high iteration counts (8+) can create extremely complex, tangled patterns but will be more computationally expensive.
Ripples (default: 0.1)
The "Advection Strength." This controls how much the gradient of the previous layer pushes the next layer.
- Low values: Gentle, wavy distortions (silk).
- High values: Violent turbulence and folding (storm clouds).
Random (default: 1.0)
Controls the rotational "swirl" (Alpha) of the noise basis. Higher values introduce more localized spinning and decorrelation between layers, breaking up linear flow lines.

Quick Recipes

Use these presets to simulate different fluid dynamics.

Heavy Smoke

Fractal: False
Ripples: 0.15
Random: 2.0
Iterations: 6
Non-fractal accumulation creates deep, pillow-like folds typical of thick smoke.

Silky Fabric

Fractal: True
Ripples: 0.05
Random: 0.5
Scale Y: 0.5
Low ripples combined with stretching creates a smooth, anisotropic satin look.

Oil Slick

Fractal: False
Ripples: 0.25
Random: 5.0
Iterations: 4
High ripples and high random rotation create a chaotic, separated mixing effect.
Technical Note: This implementation uses rmb_psrdnoise_gradient. It calculates the analytic gradient of a Simplex grid (swizzled matrix M/Mi) to perform true derivative-based domain warping, rather than approximating it via value sampling.
© 2025 Rombo Tools. All rights reserved.
↑ Back to Top

Leave a Reply