# Pop a highlighted two-line label onto each part as it is set down on the mat

Manual DaVinci Resolve / Fusion construction guide generated from the recipe. It is not a tested .drp.
The accompanying Remotion project (recipe.json) is the executable definition; the numbers below are copied from it.
Neither construction establishes source fidelity: this is an original vector approximation of an inspected editing moment.

## Source and clock
Reference: OpenAI's "Turn the world into cheese (or anything really) with this camera." (09-krjdFfis), published 2026-06-02.
Source interval [140, 280) on the 30/1 fps master: 140 frames, 4.666667 s. Local frame 0 = source frame 140.
Create a 1920x1080 progressive timeline at 30/1 fps and a Fusion composition exactly 140 frames long. Keep integer frames; do not round the frame rate.
Background field: #c9c8e8. Export silent H.264 yuv420p to match the intended playback container.

## Observation
A top-down lavender cutting mat with a few parts and an orange case edge (f0–9). As a hand places a small board at ~f10, a two-line label with lime highlight bars pops above it. Further labels pop as parts land: a display at ~f40, a battery at ~f70, a camera at ~f100, a tiny SD card at ~f110 and a large printed body at ~f130. Placed labels stay put; nothing else animates.

## Mechanism
Event-timed overlay annotations: highlighted caption blocks pop in one at a time, each anchored to the object placed at that moment, and persist.

## Phases (local frames)
- 0: Mat with a few loose parts
- 10: First part placed, label pops
- 40: Second label
- 70: Third label
- 100: Fourth label
- 110: Fifth label
- 130: Sixth label, hold

## Layer inventory (absolute 1920x1080 top-left pixels, back to front)
- mat [rect] at (0, 0) size 1920x1080 fill #c9c8e8
- grid-v-1 [line] at (0, 0) stroke #ffffff 1px
- grid-v-2 [line] at (0, 0) stroke #ffffff 1px
- grid-v-3 [line] at (0, 0) stroke #ffffff 1px
- grid-v-4 [line] at (0, 0) stroke #ffffff 1px
- grid-v-5 [line] at (0, 0) stroke #ffffff 1px
- grid-v-6 [line] at (0, 0) stroke #ffffff 1px
- grid-v-7 [line] at (0, 0) stroke #ffffff 1px
- grid-v-8 [line] at (0, 0) stroke #ffffff 1px
- grid-v-9 [line] at (0, 0) stroke #ffffff 1px
- grid-v-10 [line] at (0, 0) stroke #ffffff 1px
- grid-v-11 [line] at (0, 0) stroke #ffffff 1px
- grid-v-12 [line] at (0, 0) stroke #ffffff 1px
- grid-v-13 [line] at (0, 0) stroke #ffffff 1px
- grid-v-14 [line] at (0, 0) stroke #ffffff 1px
- grid-v-15 [line] at (0, 0) stroke #ffffff 1px
- grid-h-1 [line] at (0, 0) stroke #ffffff 1px
- grid-h-2 [line] at (0, 0) stroke #ffffff 1px
- grid-h-3 [line] at (0, 0) stroke #ffffff 1px
- grid-h-4 [line] at (0, 0) stroke #ffffff 1px
- grid-h-5 [line] at (0, 0) stroke #ffffff 1px
- grid-h-6 [line] at (0, 0) stroke #ffffff 1px
- grid-h-7 [line] at (0, 0) stroke #ffffff 1px
- grid-h-8 [line] at (0, 0) stroke #ffffff 1px
- case [rect] at (0, 0) size 140x1080 fill #e5772b
- tray [rect] at (1560, 0) size 360x120 radius 10 fill #e7e7ef
- p0 [rect] at (560, 380) size 80x40 radius 6 fill #1f2a1f visible [10, 140)
    keyframes opacity: f10=0, f13=1 (out)
- p1 [rect] at (790, 240) size 120x60 radius 6 fill #151515 visible [40, 140)
    keyframes opacity: f40=0, f43=1 (out)
- p2 [rect] at (400, 400) size 60x140 radius 6 fill #101010 visible [70, 140)
    keyframes opacity: f70=0, f73=1 (out)
- p3 [rect] at (620, 850) size 50x120 radius 6 fill #2a5a3a visible [100, 140)
    keyframes opacity: f100=0, f103=1 (out)
- p4 [rect] at (890, 860) size 26x40 radius 6 fill #c0392b visible [110, 140)
    keyframes opacity: f110=0, f113=1 (out)
- p5 [rect] at (1200, 340) size 320x260 radius 6 fill #b9c33a visible [130, 140)
    keyframes opacity: f130=0, f133=1 (out)
- l0 [group] at (470, 290) size 1x60 visible [10, 140)
    keyframes opacity: f10=0, f12=1 (out)
    keyframes scale: f10=0.8, f15=1 (out)
  - l0-bg0 [rect] at (375, 290) size 190x30 radius 6 fill #b6ff3b
  - l0-t0 [text] at (375, 294) size 190x0 text "Raspberry Pi" 20px weight 700 #111111
  - l0-bg1 [rect] at (429, 320) size 82x30 radius 6 fill #b6ff3b
  - l0-t1 [text] at (429, 324) size 82x0 text "Zero" 20px weight 700 #111111
- l1 [group] at (720, 150) size 1x60 visible [40, 140)
    keyframes opacity: f40=0, f42=1 (out)
    keyframes scale: f40=0.8, f45=1 (out)
  - l1-bg0 [rect] at (632, 150) size 176x30 radius 6 fill #b6ff3b
  - l1-t0 [text] at (632, 154) size 176x0 text "LED display" 20px weight 700 #111111
  - l1-bg1 [rect] at (611, 180) size 217x30 radius 6 fill #b6ff3b
  - l1-t1 [text] at (611, 184) size 217x0 text "with 4 buttons" 20px weight 700 #111111
- l2 [group] at (330, 320) size 1x60 visible [70, 140)
    keyframes opacity: f70=0, f72=1 (out)
    keyframes scale: f70=0.8, f75=1 (out)
  - l2-bg0 [rect] at (269, 320) size 122x30 radius 6 fill #b6ff3b
  - l2-t0 [text] at (269, 324) size 122x0 text "PiSugar" 20px weight 700 #111111
  - l2-bg1 [rect] at (269, 350) size 122x30 radius 6 fill #b6ff3b
  - l2-t1 [text] at (269, 354) size 122x0 text "battery" 20px weight 700 #111111
- l3 [group] at (520, 760) size 1x60 visible [100, 140)
    keyframes opacity: f100=0, f102=1 (out)
    keyframes scale: f100=0.8, f105=1 (out)
  - l3-bg0 [rect] at (425, 760) size 190x30 radius 6 fill #b6ff3b
  - l3-t0 [text] at (425, 764) size 190x0 text "Raspberry Pi" 20px weight 700 #111111
  - l3-bg1 [rect] at (465, 790) size 109x30 radius 6 fill #b6ff3b
  - l3-t1 [text] at (465, 794) size 109x0 text "camera" 20px weight 700 #111111
- l4 [group] at (840, 780) size 1x60 visible [110, 140)
    keyframes opacity: f110=0, f112=1 (out)
    keyframes scale: f110=0.8, f115=1 (out)
  - l4-bg0 [rect] at (772, 780) size 136x30 radius 6 fill #b6ff3b
  - l4-t0 [text] at (772, 784) size 136x0 text "Micro SD" 20px weight 700 #111111
  - l4-bg1 [rect] at (799, 810) size 82x30 radius 6 fill #b6ff3b
  - l4-t1 [text] at (799, 814) size 82x0 text "card" 20px weight 700 #111111
- l5 [group] at (1240, 240) size 1x60 visible [130, 140)
    keyframes opacity: f130=0, f132=1 (out)
    keyframes scale: f130=0.8, f135=1 (out)
  - l5-bg0 [rect] at (1158, 240) size 163x30 radius 6 fill #b6ff3b
  - l5-t0 [text] at (1158, 244) size 163x0 text "3D printed" 20px weight 700 #111111
  - l5-bg1 [rect] at (1152, 270) size 176x30 radius 6 fill #b6ff3b
  - l5-t1 [text] at (1152, 274) size 176x0 text "camera body" 20px weight 700 #111111

## Construction steps
1. Timeline 1920x1080 at 30 fps; Fusion comp 140 frames. Local 0 = master frame 140.
2. Plate: #c9c8e8 mat with a 120px white grid at 50% opacity and an orange case strip at left, standing in for the footage.
3. Each label is one group: per line a #b6ff3b bar (30px tall, width fitted to the text) with 20px weight 700 black text centred on it; two lines stacked with no gap.
4. Pop: Blend 0 to 1 over 2 frames and Size 0.8 to 1.0 ease-out over 5 frames, pivot centre, starting at frames 10, 40, 70, 100, 110, 130. Anchor each group just above its part.
5. Parts fade in 3 frames before their label so the label reads as a response to the placement.
6. Easy mistake: reusing one label position; each label is placed independently near its object, not in a column.

## Content variants
Default copy:
- l0_0: Raspberry Pi
- l0_1: Zero
- l1_0: LED display
- l1_1: with 4 buttons
- l2_0: PiSugar
- l2_1: battery
- l3_0: Raspberry Pi
- l3_1: camera
- l4_0: Micro SD
- l4_1: card
- l5_0: 3D printed
- l5_1: camera body
Adaptation changes:
- l0_0: Micro PC
- l0_1: board
- l1_0: OLED screen
- l1_1: with 4 keys
- l2_0: Slim
- l2_1: battery pack
- l3_0: Wide-angle
- l3_1: camera
- l4_0: Storage
- l4_1: card
- l5_0: Printed
- l5_1: shell

## Limits
Easing names map to Fusion spline shapes: linear = linear, in/out/inOut = ease curves on the same frames, hold = step, spring/overshoot = slight overshoot past the target before settling.
Text reveal frames give the first and last unit; distribute characters/words evenly between them. Cursor click rings last 14 frames.
Vector illustration is an approximation of layout and motion, not the product UI or recovered production assets.
