evolving

Makes a 3D noise basis morph in place over time instead of sliding across the canvas.

evolving(field: Field, opts: {rate: number}): Field

Import noise from shaders/std and use noise.evolving.

Wraps a basis that takes a 3D position (noiseField): the 2D pattern position from the framing outside becomes (x, y, time × rate). rate multiplies the layer's clock, on top of the definition's speed prop. It sits between the framing and the basis.

Parameters

NameTypeNotes
fieldField
opts{rate: number}

Example

paint: rampOver(noiseTone(seededPlane(evolving(noiseField('perlin'), {rate: 0.3}), {scale: p('scale'), seed: p('seed')}), {contrast: p('contrast'), balance: p('balance')}), stops(p('colorSpace')))

Tip. The clock is the definition's animatedTime: {speed: 'speed'}. Without it nothing moves.

See also

  • seededPlane — Frames a field on a zoomable plane: how big the pattern is and where it starts.
  • curlSpeed — How fast a swirling flow moves at each point: soft eddies and streams that morph in place.

Used by

BlockNoise, PerlinNoise, SimplexNoise