Skip to content
Docs
Open Promoeyes
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