folded-shell
folded-shell
FOLDED SHELL — one storyboard row (new-scenes/images/rows/h2a_r2.png), built from MOBILES ONLY: nine iphones, no quads, no tablets, no laptops.
Read the rig's notes
THE SOURCE FRAME. Row h2a_r2 of the new-scenes sheets is "Folded Shell" (new-scenes.md, Geometry and topology): eight black slabs lie flat around a live, unsupported display; they fold up on authored hinges and meet to form a chassis around a screen that never moved. No edge glints and no visible knuckles here — bare phones only. Two scenes here: the fold, then the unfold — the same mechanism run forward and then run back. THE ADAPTATION — mobiles only. The eight slabs are not primitives: they are eight more iphones (match=sat0..7), face-up, tops pointing outward, wearing the same shell as the hero, screens dark. So the shell the hero ends up inside is made of the product itself — an octagon of eight phones standing on their bottom edges, screens facing in, walls 76.7 mm wide, so they touch exactly at hinge radius 92.6 mm (W / 2tan 22.5°). THE MECHANISM, CAUSED NOT KEYFRAMED. A node rotates about its own centre, so every hinge is a PAIR: rotation θ about the tangent, plus the position arc that keeps the bottom edge on the hinge line — centre(θ) = P_hinge + 79.75 · (cos θ · outward + sin θ · up). The compound pose Ry(φ)·Rx(θ−90°) has no single XYZ Euler track, so each fold is sampled at 18 rows (θ every ~5°) with branch-continuous XYZ Euler angles and linear easing between samples; the easeInOutCubic is baked into the sampling, never re-eased. The hinge line itself is invisible: no knuckles, no emissive edge bars — the phones alone. S02 IS S01 PLAYED BACKWARDS. Every sat track in the unfold scene is the fold scene's track time-reversed about its own 7 s clock (t' = 7 − t, in/out easings swapped), so the ring opens first, then the panels lie back down in reverse order, sat7 first, sat0 last. The two scenes meet closed under the match-move: S01 ends locked, S02 starts locked, and nothing jumps. THE HERO HAS NO TRACK. In either scene. That absence is the shot: eight walls fold and slide in around a phone that does nothing, then fold away again and it still has not moved. LOOK — the rich-scenes palette, restrained to the sheet's cold monochrome: ink #e9e6df dim #7c7970 line #23232a mark #ffb347 the one accent — the on-screen counters cool #7ad7ff the rim, the haze background #05060a · key #dfe9ff area 700×760 top-front-left floor: reflector-ground, mirror 0.38, blur 160 — polished dark concrete HAZE. hz0/hz1/hz2 matched across both scenes, cool/amber/cool, drift only, 1000–1650 mm — lobes, never a wash. POST. bloom 0.60 / 0.84 (plan §2.6 row 09) · grain 0.012 · vignette 0.32 · fxaa last. No DOF in this reel. With the emissive bars gone the bloom only catches the area lights' streaks in the clearcoat. # scene dur gap transition start the frame 01 s01-fold 8 0.8 match-move 0 flat 2 s, fold 0→90° staggered 0.16 s, ring closes 150→92.6 02 s02-unfold 7 — — 8.8 ring opens 92.6→150, panels fold 90→0° in reverse order, flat 15 s of scene + 0.8 s of gap = 15.8 s on the wall. THE CLOCK. A gap adds to the wall (start = prev start + dur + gap), and the incoming scene's own clock starts at the TOP of its incoming gap, so its first 0.8 s play under the match-move. Every beat in S02 is authored at local ≥ 0.8 so nothing lands under the gap. BEATS (wall seconds): fold begins 2.0 · last panel up 5.52 · ring closes 5.8→7.2 (the lock) · S02 cut 8.8 · ring opens 9.6→11.0 · first panel down 11.28 · all flat 14.8. NO AUDIO. Primitives reel. Verify: npm run promo:pug -- verify --in promos/primitives/scenes/abstract/folded-shell.promo Stills: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/folded-shell.promo --width 1920 --height 1080 --times "1,4,6.6,8,10.4,12.5,15.5" Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/folded-shell.promo
- Topic
- scenes
- Scenes
- 2
- Kind
- reference rig
//
FOLDED SHELL — one storyboard row (new-scenes/images/rows/h2a_r2.png),
built from MOBILES ONLY: nine iphones, no quads, no tablets, no laptops.
THE SOURCE FRAME. Row h2a_r2 of the new-scenes sheets is "Folded Shell"
(new-scenes.md, Geometry and topology): eight black slabs lie flat around
a live, unsupported display; they fold up on authored hinges and meet to
form a chassis around a screen that never moved. No edge glints and no
visible knuckles here — bare phones only. Two scenes here: the fold, then the unfold —
the same mechanism run forward and then run back.
THE ADAPTATION — mobiles only. The eight slabs are not primitives: they
are eight more iphones (match=sat0..7), face-up, tops pointing outward,
wearing the same shell as the hero, screens dark. So the shell the hero
ends up inside is made of the product itself — an octagon of eight phones
standing on their bottom edges, screens facing in, walls 76.7 mm wide, so
they touch exactly at hinge radius 92.6 mm (W / 2tan 22.5°).
THE MECHANISM, CAUSED NOT KEYFRAMED. A node rotates about its own centre,
so every hinge is a PAIR: rotation θ about the tangent, plus the position
arc that keeps the bottom edge on the hinge line —
centre(θ) = P_hinge + 79.75 · (cos θ · outward + sin θ · up).
The compound pose Ry(φ)·Rx(θ−90°) has no single XYZ Euler track, so each
fold is sampled at 18 rows (θ every ~5°) with branch-continuous XYZ
Euler angles and linear easing between samples; the easeInOutCubic is
baked into the sampling, never re-eased. The hinge line itself is
invisible: no knuckles, no emissive edge bars — the phones alone.
S02 IS S01 PLAYED BACKWARDS. Every sat track in the unfold
scene is the fold scene's track time-reversed about its own 7 s clock
(t' = 7 − t, in/out easings swapped), so the ring opens first, then the
panels lie back down in reverse order, sat7 first, sat0 last. The two
scenes meet closed under the match-move: S01 ends locked, S02 starts
locked, and nothing jumps.
THE HERO HAS NO TRACK. In either scene. That absence is the shot: eight
walls fold and slide in around a phone that does nothing, then fold away
again and it still has not moved.
LOOK — the rich-scenes palette, restrained to the sheet's cold monochrome:
ink #e9e6df dim #7c7970 line #23232a
mark #ffb347 the one accent — the on-screen counters
cool #7ad7ff the rim, the haze
background #05060a · key #dfe9ff area 700×760 top-front-left
floor: reflector-ground, mirror 0.38, blur 160 — polished dark concrete
HAZE. hz0/hz1/hz2 matched across both scenes, cool/amber/cool, drift
only, 1000–1650 mm — lobes, never a wash.
POST. bloom 0.60 / 0.84 (plan §2.6 row 09) · grain 0.012 · vignette
0.32 · fxaa last. No DOF in this reel. With the emissive bars gone the
bloom only catches the area lights' streaks in the clearcoat.
# scene dur gap transition start the frame
01 s01-fold 8 0.8 match-move 0 flat 2 s, fold 0→90° staggered 0.16 s, ring closes 150→92.6
02 s02-unfold 7 — — 8.8 ring opens 92.6→150, panels fold 90→0° in reverse order, flat
15 s of scene + 0.8 s of gap = 15.8 s on the wall.
THE CLOCK. A gap adds to the wall (start = prev start + dur + gap), and the
incoming scene's own clock starts at the TOP of its incoming gap, so its
first 0.8 s play under the match-move. Every beat in S02 is authored at
local ≥ 0.8 so nothing lands under the gap.
BEATS (wall seconds): fold begins 2.0 · last panel up 5.52 · ring closes
5.8→7.2 (the lock) · S02 cut 8.8 · ring opens 9.6→11.0 · first panel
down 11.28 · all flat 14.8.
NO AUDIO. Primitives reel.
Verify: npm run promo:pug -- verify --in promos/primitives/scenes/abstract/folded-shell.promo
Stills: nx run tools:capture:we