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
| Function | What it does | Defaults |
|---|---|---|
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