abstract-features
abstract-features
ABSTRACT · FEATURES — five demonstrations, each ONE thing the product does, performed on the device's own glass with the camera tight enough to read it, in the abstract reel's grammar. A feature scene is 3.5 s: the action lands at 0.8–1.2 s, the result is complete by 2.4, and the last second holds. The world around the device is the reel's stage — mirror floor, haze, one halo — and the caption stands beside the device in space.
Read the rig's notes
# scene dur transition device the feature
01 f01-tap 3.5 match-move iphone one button presses; a result panel slides in from the right
02 f02-type 3.5 match-move iphone a field types four words; a card appears under it per word
03 f03-cascade 3.5 match-move iphone one master toggle flips; six rows follow it down the column
04 f04-chart 3.5 match-move laptop seven bars rise in a dashboard card, then the total ticks in
05 f05-swipe 3.5 — iphone three cards swipe off left; the counter pill updates each time
17.5 s of scene + four gaps (3.2 s) ≈ 20.7 s on the wall. Every scene also
stands alone: cut one out, set transition=none, and it is a feature beat.
THE UI IS THE ANIMATION. Every screen item is a <ui> card or text with its
own opacity / position / scale rows, in the screen's own millimetres (the
iphone stage is 71 × 154, the laptop's 346 × 223). Nothing is a video.
The presses use the reel's press grammar (1 → 0.955 → 1, easeOutBack up).
THE TYPING (f02) is five text nodes of growing length swapped by opacity —
a text item has no substring channel — so each word lands as a unit and
the card for it appears 0.2 s later. That is the feature: type, get a thing.
THE CAPTION stands in the world, not on the glass: an eyebrow ("FEATURE")
and a line in ink, worldHeight 26–40, OVER the device 40 mm behind it, so
the camera's push moves both together. (Beside the device it collides with
the glass at this framing — the phone is 53 % of frame height here.)
MATCH. Every device carries match=hero (the laptop in f04 too, so the
phone → laptop → phone gap is the reel's own s06/s07/s08 move); all five
scenes 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; no dispersion in this file.
shot bloom thresh grain / vignette
01–05 0.55 0.84 0.011 / 0.30
NO AUDIO. Primitives reel; add at assembly time.
Capture: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/parts/abstract-features.promo --width 1920 --height 1080 --times "1.4,3.2,5.6,7.5,9.8,11.8,14.2,16.1,18.4,20.4"
Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/parts/abstract-features.promo- Topic
- scenes
- Scenes
- 5
- Kind
- reference rig
//
ABSTRACT · FEATURES — five demonstrations, each ONE thing the product does,
performed on the device's own glass with the camera tight enough to read
it, in the abstract reel's grammar. A feature scene is 3.5 s: the action
lands at 0.8–1.2 s, the result is complete by 2.4, and the last second
holds. The world around the device is the reel's stage — mirror floor,
haze, one halo — and the caption stands beside the device in space.
# scene dur transition device the feature
01 f01-tap 3.5 match-move iphone one button presses; a result panel slides in from the right
02 f02-type 3.5 match-move iphone a field types four words; a card appears under it per word
03 f03-cascade 3.5 match-move iphone one master toggle flips; six rows follow it down the column
04 f04-chart 3.5 match-move laptop seven bars rise in a dashboard card, then the total ticks in
05 f05-swipe 3.5 — iphone three cards swipe off left; the counter pill updates each time
17.5 s of scene + four gaps (3.2 s) ≈ 20.7 s on the wall. Every scene also
stands alone: cut one out, set transition=none, and it is a feature beat.
THE UI IS THE ANIMATION. Every screen item is a <ui> card or text with its
own opacity / position / scale rows, in the screen's own millimetres (the
iphone stage is 71 × 154, the laptop's 346 × 223). Nothing is a video.
The presses use the reel's press grammar (1 → 0.955 → 1, easeOutBack up).
THE TYPING (f02) is five text nodes of growing length swapped by opacity —
a text item has no substring channel — so each word lands as a unit and
the card for it appears 0.2 s later. That is the feature: type, get a thing.
THE CAPTION stands in the world, not on the glass: an eyebrow ("FEATURE")
and a line in ink, worldHeight 26–40, OVER the device 40 mm behind it, so
the camera's push moves both together. (Beside the device it collides with
the glass at this framing — the phone is 53 % of frame height here.)
MATCH. Every device carries match=hero (the laptop in f04 too, so the
phone → laptop → phone gap is the reel's own s06/s07/s08 move); all five
scenes 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; no dispersion in this file.
shot bloom thresh grain / vignette
01–05 0.55 0.84 0.011 / 0.30
NO AUDIO. Primitives reel; add at assembly time.
Capture: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/parts/abstract-features.promo --width 1920 --height 1080 --times "1.4,3.2,5.6,7.5,9.8,11.8,14.2,16.1,18.4,20.4"
Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/parts/abstract-features.promo
promo#abstract-features(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-roughness=0.06 envmap-intensity=1.4)
physical#thinfilm(color=#101014 metalness=0.65 roughness=0.14 clearcoat=1 clearcoat-roughness=0.05 iridescence=1 iridescence-ior=1.35 iridescence-thickness=420 envmap-intensity=1.5)
physical#thinfilm-plum(color=#2a2030 metalness=0.7 roughness=0.12 clearcoat=1 clearcoat-roughness=0.05 iridescenc