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


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:scaleFader.t-1-2, dur:speedFader.t-4-0.5, uid:pulse)

The signal reference format is:

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:speedFader.t-4-0.5, uid:pulse)

// Scale max controlled by fader: 1x to 2x
scale(min:1, max:sizeFader.t-1-2, dur:1, uid:growPulse)

// Independent X/Y scale bound to different faders
scaleXY(sx:xFader.t-1-2, sy:yFader.t-1-1.5, dur:2, uid:xyScale)

// With exponential curve for finer control
scale(min:1, max:1.5, dur:speedFader.t-4-0.5-exp3, uid:smoothPulse)

How It Works

  1. The fader publishes its position (0-1) to the control plane
  2. The value is mapped through the specified range and curve
  3. 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))

Tip: use ← → or ↑ ↓ to navigate the docs