abstract-call-to-action
abstract-call-to-action
ABSTRACT · CALL TO ACTION — five ways to ask, in the abstract reel's grammar. A CTA is 4.5–5 s: one line, one press or one threshold, the URL, and then a HELD frame. Every scene here has exactly one thing that gets pressed or crossed, and it happens once, on a beat the viewer can see coming — a button that presses itself twice is a loop, not an ask.
Read the rig's notes
# scene dur transition device the ask 01 c01-button 5.0 match-move iphone a 900 mm button on the floor presses itself; the phone's mirrors it 02 c02-url 4.5 match-move — the address, and an emissive rule drawn under it 03 c03-handoff 5.0 match-move iphone the phone comes forward and tilts to the viewer; the CTA presses 04 c04-threshold 5.0 match-move — the camera crosses one big ring; the ask is on the other side 05 c05-pill 4.5 — — a point of light lands on a pill and presses it 24.0 s of scene + four gaps (2.8 s) = 26.8 s on the wall. Every scene also stands alone: cut one out, set transition=none, and it is the last part. THE PRESS is one grammar everywhere it appears: 1 → 0.955 → 1 on scale (or −14 mm on y for the floor button), easeOutQuad down over 0.15 s, easeOutBack up over 0.3 s, and a flat emissive ring leaving the pressed thing in its own plane, gone by 1.2 s later. c01, c03 and c05 press at 2.0 · 2.6 · 2.4 s. THE HOLD. The last 1.2–1.5 s of every scene is still: the camera's last two rows are the same pose, every drift returns to rest. A CTA's final frame is the one the viewer reads the URL off; it cannot be moving. THE COPY. Three text nodes per scene — a line (ink, weight 600, worldHeight 44–64), a strap (dim), and the address (ink or accent, tracking 240) — plus the button label where there is a button. All are placeholders; an assembly replaces them. The address is "axiom.app" throughout. MATCH. c01 and c03 carry match=hero on the phone; c02, c04 and c05 carry match=mark on the address; all five carry hz0/hz1/hz2. LOOK — carried unchanged from the abstract reel: ink #e9e6df dim #7c7970 line #23232a mark #ffb347 cool #7ad7ff warm #ffa25e POST. bloom → film_grain → fxaa; dispersion only on the threshold (c04). shot bloom thresh spread grain / vignette 01 button 0.60 0.82 — 0.012 / 0.32 02 url 0.65 0.80 — 0.012 / 0.34 03 handoff 0.60 0.82 — 0.012 / 0.32 04 threshold 0.70 0.80 0.01 0.014 / 0.36 05 pill 0.70 0.80 — 0.012 / 0.34 A TRAP PAID: text under an assembly rasterises through glyph-assembly.ts, whose default family is Roboto; every assembled text node carries the plain text layer's system sans stack so the two paths match. NO AUDIO. Primitives reel; add at assembly time. Capture: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/parts/abstract-call-to-action.promo --width 1920 --height 1080 --times "2.2,4.6,7.4,9.6,13.0,15.4,18.6,20.4,23.4,26.2" Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/parts/abstract-call-to-action.promo
- Topic
- scenes
- Scenes
- 5
- Kind
- reference rig
//
ABSTRACT · CALL TO ACTION — five ways to ask, in the abstract reel's
grammar. A CTA is 4.5–5 s: one line, one press or one threshold, the URL,
and then a HELD frame. Every scene here has exactly one thing that gets
pressed or crossed, and it happens once, on a beat the viewer can see
coming — a button that presses itself twice is a loop, not an ask.
# scene dur transition device the ask
01 c01-button 5.0 match-move iphone a 900 mm button on the floor presses itself; the phone's mirrors it
02 c02-url 4.5 match-move — the address, and an emissive rule drawn under it
03 c03-handoff 5.0 match-move iphone the phone comes forward and tilts to the viewer; the CTA presses
04 c04-threshold 5.0 match-move — the camera crosses one big ring; the ask is on the other side
05 c05-pill 4.5 — — a point of light lands on a pill and presses it
24.0 s of scene + four gaps (2.8 s) = 26.8 s on the wall. Every scene also
stands alone: cut one out, set transition=none, and it is the last part.
THE PRESS is one grammar everywhere it appears: 1 → 0.955 → 1 on scale (or
−14 mm on y for the floor button), easeOutQuad down over 0.15 s, easeOutBack
up over 0.3 s, and a flat emissive ring leaving the pressed thing in its own
plane, gone by 1.2 s later. c01, c03 and c05 press at 2.0 · 2.6 · 2.4 s.
THE HOLD. The last 1.2–1.5 s of every scene is still: the camera's last two
rows are the same pose, every drift returns to rest. A CTA's final frame is
the one the viewer reads the URL off; it cannot be moving.
THE COPY. Three text nodes per scene — a line (ink, weight 600, worldHeight
44–64), a strap (dim), and the address (ink or accent, tracking 240) — plus
the button label where there is a button. All are placeholders; an assembly
replaces them. The address is "axiom.app" throughout.
MATCH. c01 and c03 carry match=hero on the phone; c02, c04 and c05 carry
match=mark on the address; all five carry hz0/hz1/hz2.
LOOK — carried unchanged from the abstract reel:
ink #e9e6df dim #7c7970 line #23232a
mark #ffb347 cool #7ad7ff warm #ffa25e
POST. bloom → film_grain → fxaa; dispersion only on the threshold (c04).
shot bloom thresh spread grain / vignette
01 button 0.60 0.82 — 0.012 / 0.32
02 url 0.65 0.80 — 0.012 / 0.34
03 handoff 0.60 0.82 — 0.012 / 0.32
04 threshold 0.70 0.80 0.01 0.014 / 0.36
05 pill 0.70 0.80 — 0.012 / 0.34
A TRAP PAID: text under an assembly rasterises through glyph-assembly.ts,
whose default family is Roboto; every assembled text node carries the plain
text layer's system sans stack so the two paths match.
NO AUDIO. Primitives reel; add at assembly time.
Capture: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/parts/abstract-call-to-action.promo --width 1920 --height 1080 --times "2.2,4.6,7.4,9.6,13.0,15.4,18.6,20.4,23.4,26.2"
Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/parts/abstract-call-to-action.promo
promo#abstract-call-to-action(width=1920 height=1080 fps=30)
materials
// the abstract reel's six materials, carried whole so this file grades on its own
physical#clearcoat(color=#15161a metalness=0 roughness=0.45 clearcoat=1 clearcoat-roughness=0.06 envmap-intensity=1.1)
standard#metal(color=#d8d8dc metalness=1 roughness=0.22 envmap-intensity=1.25)
standard#clay(color=#9c9689 metalness=0 roughness=0.95)
basic#emissive(color=#ffb347)
basic#emissive-cool(color=#7ad7ff)
basic#emissive-white(color=#f4e6cf)
physical#glass(color=#dfefff metalness=0 roughness=0.14 transmission=0.85 thickness=70 ior=1.45 clearcoat=0.9 clearcoat-rou