cue:scale — Scaling Animation
scale() adjusts the size of SVG objects using sequences, patterns, continuous pulsing, or independent X/Y scaling.
BASIC FORMS
Uniform scaling
scale(values:[1,1.5,1], dur:2)
Non-uniform (XY)
scaleXY([1,1.3],[1,0.6], dur:1)
Continuous pulse
scale(min:1, max:1.3, dur:2)
TRIGGERING
- automatic page-mode
- scroll edge
- cue activation
TRIGGER DELAY
tdelay:<seconds>
Delays scaling start.
scale(values:[1,1.4,1], tdelay:3)
INITIAL VISIBILITY
init:
Controls how the element appears before the animation begins.
| Value | Effect |
|---|---|
show |
Visible immediately (default) |
hide |
Hidden until triggered |
ghost |
Semi-transparent (30% opacity), no interaction |
fadein(seconds) |
Fade in over specified seconds |
armed |
Ghost opacity (0.7), click to start animation |
armed(opacity) |
Custom ghost opacity, click to start |
armed(opacity, fade) |
Custom opacity and fade duration, click to start |
Initial scale is applied immediately regardless of init state.
scale([1,1.5,1], tdelay:4, init:ghost)
scale([1,2,1], dur:3, init:fadein(1))
scale([1,1.4,1], dur:2, init:armed)
scale([1,1.4,1], dur:2, init:armed(0.3), trig:playhead)
SEQUENCES
| Key | Meaning |
|---|---|
values |
uniform scale list |
x, y |
independent XY sequences |
dur |
duration per step |
mode |
loop / once / alternate |
interp |
smooth / step |
hold |
pause (smooth only) |
Pattern forms (Pseq, Prand, etc.) supported for all parameters.
CONTINUOUS SCALING
scale(min:1, max:1.4, dur:1.5, loop:0)
UID — Live Updates
scale(values:[1,1.2,1], uid:s1)
scale(uid:s1, dur:0.5)
NETWORK SYNCHRONIZATION
By default, scale animations are synchronized across all connected clients. The first client to start an animation becomes the leader and broadcasts positions every 10 seconds. Late-joining clients sync to the leader's position.
sync: — Enable/Disable Sync
| Value | Effect |
|---|---|
sync:1 |
Enable network sync (default) |
sync:0 |
Disable sync — animation runs independently per client |
Use sync:0 for animations that should vary between performers:
scale(values:[1,1.5,1], dur:2, sync:0)
SIGNAL-BOUND PARAMETERS
Animation speed, duration, and scale values can be controlled in real-time by binding to fader signals from the control plane.
Signal Reference Syntax
scale(min:1, max: follow(scaleFader.t, 1, 2), dur: follow(speedFader.t, 4, 0.5), uid:pulse)
The signal reference format is:
follow(source.channel, min, max[, default][, curve])
| Component | Description |
|---|---|
source |
UID of the controlling fader/o2p |
channel |
Signal channel (t, x, y, angle) |
min-max |
Output range (maps 0-1 input to this range) |
default |
Optional starting value |
curve |
Optional curve: lin, exp2, exp3, log, sqrt |
Examples
// Duration controlled by fader: 4s (slow) to 0.5s (fast)
scale(min:1, max:1.5, dur: follow(speedFader.t, 4, 0.5), uid:pulse)
// Scale max controlled by fader: 1x to 2x
scale(min:1, max: follow(sizeFader.t, 1, 2), dur:1, uid:growPulse)
// Independent X/Y scale bound to different faders
scaleXY(sx: follow(xFader.t, 1, 2), sy: follow(yFader.t, 1, 1.5), dur:2, uid:xyScale)
// With exponential curve for finer control
scale(min:1, max:1.5, dur: follow(speedFader.t, 4, 0.5, exp3), uid:smoothPulse)
How It Works
- The fader publishes its position (0-1) to the control plane
- The value is mapped through the specified range and curve
- The animation's parameter updates in real-time
See Control Plane documentation for full signal reference syntax.
FULL PARAMETER LIST
| Key | Description |
|---|---|
values |
scalar sequence |
x, y |
axis-specific sequences |
sx, sy |
signal-bound X/Y scale values |
min, max |
continuous scale range (supports signal refs) |
dur |
step duration (supports signal refs) |
hold |
pause |
ease |
tween curve |
mode |
loop logic |
interp |
smooth/step |
uid |
animation identity |
trig |
trigger |
tdelay |
delay after trigger |
init |
initial visibility state |
sync |
network sync (0/1, default 1) |
EXAMPLES
scale([1,2,1], dur:2, tdelay:3)
scaleXY([1,1.4],[1,0.6], dur:1)
scale(Pseq([1,1.5,1],inf), dur:Prand([0.5,1],inf))
What a scale publishes
| Channel | Meaning |
|---|---|
sx |
x scale factor |
sy |
y scale factor |
uniform |
the mean of the two |
uniform is the one to reach for when a shape scales evenly and you want one
number out of it rather than picking sx arbitrarily.
scale(uid:pulse, values:[1, 1.8, 1], dur:2, loop:0)
rotate(uid:r1, dir:1, dur: follow(pulse.uniform, 6, 0.5))
sx, sy and dur are also inlets — see the connections view.
Demo
See demo-scale — uniform and per-axis scaling, value lists, and signal-bound sx/sy.
http://localhost:8001/?project=demo-scale
Tip: use ← → or ↑ ↓ to navigate the docs