MANUAL / SCRIPTING & EXPRESSIONS

Random, wiggle and noise (expressions)

wiggle(), random(), gaussRandom(), seedRandom() and noise() — repeatable randomness.

Repeatable by design

Random numbers are seeded per property and per frame, so a frame always draws the same numbers — in preview, in export, and after a reload. Two properties with the same expression still differ.

Functions

FunctionWhat it doesDefaults
wiggle(freq, amp, octaves, amp_mult, t)Adds smooth random motion to the property's value: freq wiggles per second, up to about amp either way. amp can be a number or an array (per dimension).octaves 1 (range 1–10), amp_mult 0.5, t = time
random()A number 0–1.
random(max)0 to max. Arrays give one random number per item.
random(min, max)Between min and max. Numbers or arrays.
gaussRandom(…)Like random, but bell-shaped: about 90% falls inside the range.
seedRandom(seed, timeless)Changes the seed for the random calls after it. With timeless true, the numbers stay the same on every frame.timeless false
noise(x)Smooth noise for a number or an array.
Math.random()Same as random().

wiggle() needs a numeric property.

Examples

wiggle(2, 30)                 // position shake
wiggle(1, [0, 50])            // only Y moves
seedRandom(index, true); random(0, 360)   // a fixed random rotation per layer
value + noise(time) * 20