OmniMotion®
ReferenceDraft

Triggers, targets & verbs

The complete catalogs the Sentences menu reads — triggers, targets, verbs, streams and the transform chain.

Everything the interaction system can do, in one place. These are the same catalogs the + Interaction menu reads from — if something isn't listed here, it isn't in the tool. How to write a sentence is Interactions.

01Triggers — what can start a moment

Pointer

TriggerFires when
ClickThe layer is clicked
Double ClickTwo quick clicks on the layer
HoverThe pointer enters the layer
Hover EndThe pointer leaves it
Press StartThe button goes down on it
Press EndThe button comes back up
Drag StartA drag begins on a draggable layer
Drag MoveContinuously, while dragging
Drag EndThe drag is released
CollideEvery frame two physics bodies touch
Collide StartThe first frame of a physics contact
Sensor EnterA body enters this sensor zone
Sensor ExitA body leaves it
Unit ClickAn interactive letter or word unit is clicked
Key DownA key is pressed (in Simulate and Play). Key: type w, 1, space, up… — saved as KeyW, Digit1, Space, ArrowUp; empty = any key
Key UpA key is released — same Key field as Key Down
SwipeA drag of at least 48 px, mostly along one axis (optional Direction). The page hears it even from a child
WheelThe mouse wheel or a trackpad scrolls over the layer, in Simulate or Play (optional Direction; empty = any). Over empty space the canvas keeps zooming

Time

TriggerFires when
Every FrameEvery tick, while the engine is awake
At a timeThe timeline crosses a given point going forward
On Sequence EndA sequence reaches its end (playback or a forward scrub)
On ScrollA scroll artboard crosses a progress threshold (both directions)
Every N secondsRepeats while the scene plays — rotate a headline, tick a clock
After idleOnce after N seconds with no pointer, keyboard or signal input; any input re-arms it

Logic

TriggerFires when
On VariableA scene variable — Changes, Becomes true (0→1), Becomes false (1→0), or While true
On ConditionAn expression flips from false to true
On SignalA named signal is broadcast
Screen becomesThe window matches a different screen — Any screen, one named screen (Phone…), or the stage turning Portrait / Landscape (Responsive & Screens)
On DataA list was written — Updated, Row count changes, or A field changes (with a path)
Field InputThe visitor typed in a Field on this layer
Field SubmitEnter in a Field on this layer
Field BlurA Field on this layer lost focus

On Signal first asks where the signal comes from:

FamilyChoices
AudioBeat, Onset (any hit), Bar (every 4 beats)
Custom signalA name another rule sends with Emit Signal

02Targets — where a value can go

The menu asks "what do I connect this to?" The mode column shows which are available for a moment, a stream, or both.

TargetModeWhat it does
Layer property⚡ ∿Opacity, position, scale, rotation… — writes to an animatable value
Motion Pose⚡Moves the layer to its From / To pose
Colour⚡Fill, stroke, shadow or a gradient end — instantly, or blended over a Duration
Text content⚡Changes the text of a text layer
Visibility⚡Hides or shows the layer
Layout⚡Gap and column count — with a duration it animates the reflow
Texture (3D)⚡Writes an image into a material texture slot
Video (3D)⚡Play / pause a texture video
Scroll position⚡Scrolls an artboard to a position
Map camera⚡Flies a map layer to a marker
Physics⚡Pushes, stops, wakes, or switches the body of a layer with physics on — Physics
Scene variable⚡Writes a value in the Variables panel
Signal⚡Triggers every rule listening for that name
Sound⚡Plays or stops an audio file from Files — no timeline track needed
Spawn copy⚡Adds a copy of a template layer to the scene — Spawn and Destroy
Destroy layer⚡Removes a layer from the scene. Last spawn ($lastSpawn) is the copy this rule just made
Sequence playback⚡Play / pause / restart, forward or backward, go to a flag
Sequence transition⚡A named or inline blend between two sequences
Sequence blend weight⚡The 0–1 weight between two sequences
Sequence playhead∿A continuous source drives a sequence's time — Sequence drivers
Page playhead∿The artboard gets its own playhead and its own length — Page playheads
Image⚡Changes the image of an image or video layer — a URL, a library asset, or {Source.path} from data
Data source⚡Writes into a Data source — set a field, append a row, remove a row, clear
Send request⚡Calls a URL (GET / POST / PUT / DELETE); the response can land in a Data source
Go to artboard⚡Plays another artboard — the page of your app — cut, dissolved, pushed, slid, or with Smart animate — Moving between artboards
Open URL⚡Opens a link in a new tab (or the same tab)
Wait⚡Delays the rest of the chain

03The THEN vocabulary

Inside a rule, each numbered step is one of these actions. The targets above compile down to them — this is what you see when you open a rule.

ActionGroupSettings it offers
Set PropertyPropertytarget, property, value, duration, easing, wait-for-finish
Set AppearancePropertytarget, Key (Fill, Stroke, Shadow, Gradient start, Gradient end), Value (a colour, or =expression), duration, easing. Duration 0 is instant; above 0 the colour blends smoothly — blue to yellow does not pass through grey
Set TextPropertytext layer, content
Set VisiblePropertytarget, visible / hidden
Set LayoutPropertytarget, gap, columns
Motion PosePropertytarget, which pose, duration, easing
Sequence ControlFlowplay / pause / toggle / restart / seek, flag commands, layered playback. Settings: start flag, direction, speed or weight, glide, driver, wait-for-finish
Sequence BlendFlowtransition name, from, to, duration, easing
Blend WeightFlowfrom, to, weight, time mode (Crossfade / Sync / Parallel)
Set VariableFlowname, value
Emit SignalFlowname, Scope (must match the listening rule)
Play soundFlowplay / stop, file from Files, gain, loop
Scroll ToFlowtarget, position
WaitFlowmilliseconds
SpawnEntitytemplate, position
DestroyEntitytarget
PhysicsEntitytarget, command (Impulse (add velocity) / Set velocity / Stop / Enable body / Disable body / Wake), velocity X / Y, and Z for a 3D body — Physics
Text PhysicsEntitytext layer, command
Refresh DataEntitysource (or the target repeater)
Set DataEntitysource, operation (set / append / remove at / clear), path, value
Send RequestEntitymethod, URL, body, response → source
Set ImageMediaimage layer, URL / asset / template
Open URLFlowURL, new tab
Go to ArtboardFlowArtboard, Transition (Instant · Dissolve · Smart animate · Push · Slide in), Direction (Push and Slide in), duration, easing
Go BackFlownone — returns to the artboard you came from. In Play it runs the arrival transition in reverse; in the player it is the browser's Back (Routes). Nothing to go back to = nothing happens
Map: Fly to MarkerMapmap layer, marker, duration, easing
Set TextureMediamesh, slot, image
Video ControlMediamesh, slot, play / pause / toggle

Every step also carries an Only if — a condition that must hold, or that step is skipped (the rest of the chain still runs).

Play sound does not need a clip on the timeline. Loop plus a later stop is how you do ambience. See Playing a sound from a rule.

04Stream sources — what can feed a continuous connection

GroupSourceGives you
BasicFixed numberA constant — no live source
BasicCustom expressionWritten by hand
LayerThis layerThis layer's own value — drive rotation from its own X
LayerAnother layerA value read from a different layer
ScrollScroll progress0 at the top of a scrolling artboard, 1 at the bottom
ScrollEnters the screen0 as the layer is about to appear, 1 once it has fully left
ScrollWhile held in place0 → 1 across the stretch where the layer holds
ScrollScroll section0 → 1 across a named section, then stays at 1
PointerMouse X · Mouse YPointer position on the canvas (px)
PointerMouse X / Y in artboardPointer position inside the artboard (px)
PointerMouse X / Y across artboard0–1 across the artboard — ideal for parallax and tilt
PointerMouse X / Y across this layer0–1 across the layer itself
PointerMouse proximity1 at the layer's centre, 0 at half the radius, −1 outside
PointerMouse distanceDistance in px from the pointer to the layer's centre
PointerMouse speed X · Mouse speed YPointer velocity in px/s — add Sign in the chain for the direction
PointerMouse speedPointer speed in px/s, whichever way it moves
PointerMouse sign X · Mouse sign Y−1, 0 or +1 — which way the pointer is moving
PointerWheel ΔX · Wheel ΔYThe last wheel step in px (right / down is positive). Use it with the Wheel trigger, not Every Frame
PointerWheel X · Wheel YWhere the pointer was at the last wheel step
PointerWheel sign X · Wheel sign Y−1, 0 or +1 — which way the wheel turned
PointerWheel amountThe length of the last wheel step in px
TimeTimeline timePlayhead position in ms — loops with the composition
TimeClock (never loops)Milliseconds since start, regardless of the timeline
TimeTime of dayHour, minute, second, weekday, day, month, year, or the day as 0 → 1
AudioAudioLive audio band level, 0–1
KeyboardKey held1 while the key is held, 0 otherwise
DataVariableA scene variable
DataData fieldA number from a list at a dotted path — Data sources
CopiesCopy indexWhich copy is being drawn (0, 1, 2 …)
CopiesCopy progressPosition across the whole set, 0 → 1 — ideal for staggering
CopiesClicked copyIndex of the last clicked copy (−1 = none)
CopiesClicked instance (3D)Index of the last clicked 3D instance
ScreenScreen width · Screen heightThe stage in px — the window when played, the preview size in the editor
ScreenScreen aspectWidth ÷ height; below 1 is portrait
ScreenPortrait1 while taller than wide, 0 otherwise
ScreenOn screen1 while the named screen (Desktop, Phone…) is active — the natural Only if

Above the catalog groups, the picker lists your own values first: Controls (the output of every Slider, Toggle and Choice — Fields) and Variables (each scene variable by name). Custom expression… sits under Advanced, and only when you are editing an expression written by hand.

05The transform chain — shaping a value on its way

Any stream can pass through a chain of these before it reaches its target. They apply in order, and you can stack as many as you need.

StageWhat it does
Add / subtractAdds a fixed amount — "8 less than its own Y"
MultiplyMultiplies by a factor — "1.1× its own scale"
ClampKeeps the value inside a min–max range
Map RangeLinear mapping from one range to another
SnapSnaps to steps (e.g. 90 for 90° steps, 0.25 for four steps on 0–1)
EaseShapes the value with a curve over its current range
SmoothExponential smoothing — filters sudden jumps
SpringSpring–damper follow; bouncy and organic
DelayReads the value from the past — trail and follow effects

The More group in the step menu holds the logic stages:

StageWhat it does
Sign−1, 0 or +1 — the direction of a speed or a wheel step
AbsoluteDrops the sign — the size only
NotFlips a yes/no value: 1 becomes 0 and back
CompareCompares the value to a Threshold (< ≤ > ≥ =) and writes 0 or 1
MixBlends from A (at 0) to B (at 1), using the incoming value as 0 → 1
AccumulateAdds the incoming value up — Per second (× dt) or Per event
Checked against the tool on 2026-09-30.