Hydra accepts a function in place of any numeric parameter, evaluated every frame
Any numeric argument to a Hydra function can be replaced with a zero-argument arrow function () => expression, which Hydra re-evaluates on every frame. This turns otherwise static parameters into time-varying or externally-driven values — the single mechanism behind all of Hydra’s dynamic behaviour, including audio reactivity, mouse control, and custom animation. The pattern is: wherever a number is expected, pass () => … returning a number instead.
Examples
__time = 0
osc( () => __time++ % 100 ).out()
The oscillator frequency ramps every frame because the function is re-run per frame. Any parameter — rotation, pixelation, scale — can be driven the same way.
Assessment
Rewrite osc(10).out() so the oscillator frequency slowly increases over time. Then explain why passing a plain number instead of a function gives a static, unchanging value.