# Grow a floating app window from a desktop inset to full frame while its video keeps playing

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 "How to recut with Sora" (jC0i_0wnly8), published 2024-12-09.
Source interval [0, 120) on the 60/1 fps master: 120 frames, 2.000000 s. Local frame 0 = source frame 0.
Create a 1920x1080 progressive timeline at 60/1 fps and a Fusion composition exactly 120 frames long. Keep integer frames; do not round the frame rate.
Background field: #6d4fd6. Export silent H.264 yuv420p to match the intended playback container.

## Observation
The film opens on a vivid orange-blue-pink desktop gradient with a dark video-app window sitting at roughly 55% size in the centre. Over ~f0–70 the window eases larger until its edges meet the frame, the gradient disappearing behind it; the clip inside the player is playing the whole time and the timeline playhead advances. The pointer sits idle near the bottom-left of the player. Frames 70–120 hold at full size.

## Mechanism
Window-manager style scale-up: a whole app window eases from an inset to full-bleed with its content live, no cut.

## Phases (local frames)
- 0: Window at 55% over the desktop gradient
- 70: Window fills the frame
- 120: Hold at full size

## Layer inventory (absolute 1920x1080 top-left pixels, back to front)
- bg [rect] at (0, 0) size 1920x1080 fill #6d4fd6
- blob1 [ellipse] at (-300, -200) size 1400x900 fill #f08a5d
- blob2 [ellipse] at (900, 300) size 1500x1000 fill #3b82f6
- blob3 [ellipse] at (300, 600) size 1200x800 fill #f43f5e
- blob4 [ellipse] at (1100, -300) size 1000x800 fill #fde68a
- window [group] at (0, 0) size 1920x1080
    keyframes scale: f0=0.55, f70=1.0 (out)
  - w-bg [rect] at (0, 0) size 1920x1080 radius 14 fill #0c0c0e
  - w-gear [text] at (36, 28) text "⚙" 22px weight 400 #9ca3af
  - w-crumb [text] at (0, 30) size 1920x0 text "All videos  ›  Futuristic Solitude" 18px weight 400 #e5e7eb
  - w-meta [text] at (0, 58) size 1920x0 text "480p · Nov 3, 9:57 AM" 14px weight 400 #9ca3af
  - w-icons [text] at (1600, 30) text "♡    ⇪    ⊕    ⊙    ⋯" 20px weight 400 #e5e7eb
  - w-avatar [ellipse] at (1860, 26) size 30x30 fill #a855f7
  - v-side-l [rect] at (0, 120) size 300x742 fill #151518
  - v-side-r [rect] at (1620, 120) size 300x742 fill #151518
  - video [group] at (300, 120) size 1320x742 fill #b9d0e3
    - sun [ellipse] at (1200, 200) size 220x220 fill #f4efe2
    - cloud1 [ellipse] at (1000, 260) size 320x90 fill #eef3f7
    - cloud2 [ellipse] at (1350, 350) size 260x70 fill #eef3f7
    - hill [ellipse] at (0, 640) size 2200x700 fill #8a7a4f
    - hill2 [ellipse] at (900, 720) size 1400x500 fill #76683f
    - figure [rect] at (940, 420) size 70x260 radius 30 fill #d8dde2
    - figure-head [ellipse] at (948, 370) size 54x60 fill #e5e9ee
    - watermark [text] at (1520, 820) text "||||||||" 13px weight 400 #ffffff
  - p-label [text] at (0, 886) size 1920x0 text "Prompt   a robot on a remote hillside" 15px weight 400 #9ca3af
  - tl-t0 [text] at (270, 922) text "0s" 13px weight 400 #9ca3af
  - tl-t1 [text] at (1630, 922) text "5s" 13px weight 400 #9ca3af
  - timeline [line] at (0, 0) stroke #3f3f46 2px
  - playhead [ellipse] at (300, 923) size 14x14 fill #ffffff
      keyframes tx: f0=0, f120=260 (linear)
  - tools [text] at (0, 980) size 1920x0 text "Edit prompt        View story        Re-cut        Remix        Blend        Loop" 14px weight 400 #e5e7eb
  - thumbs [rect] at (1720, 964) size 140x44 radius 4 fill #27272a
- pointer [cursor] at (380, 880)

## Construction steps
1. Timeline 1920x1080 at 60 fps; Fusion comp of 120 frames. Local 0 = master frame 0.
2. Desktop: #6d4fd6 base with four large soft ellipses (orange top-left, blue right, rose bottom, pale yellow top-right) at 55–90% opacity; blur them heavily if you have the option.
3. Window: design the whole app at 1920x1080 (dark #0c0c0e plate, centred crumb and meta lines, 1320x742 video area at x=300, prompt line, timeline with playhead, tool labels) and parent it to one Transform with the pivot at the canvas centre.
4. Window Transform: Size 0.55 to 1.0 over frames 0–70, ease out; add a large drop shadow so the inset reads as floating.
5. Playhead: X offset 0 to 260 px linearly over 0–120 so the video reads as live during and after the scale.
6. Easy mistake: cropping the window instead of scaling it. The whole UI, including its type, grows; the crumb and toolbar text end up at their full 1080p size only at frame 70.

## Content variants
Default copy:
- crumb: All videos  ›  Futuristic Solitude
- meta: 480p · Nov 3, 9:57 AM
- promptLabel: Prompt
- prompt: a robot on a remote hillside
- tools: Edit prompt        View story        Re-cut        Remix        Blend        Loop
- t0: 0s
- t1: 5s
Adaptation changes:
- crumb: All videos  ›  Harbor at Dawn
- meta: 720p · Dec 8, 8:14 AM
- prompt: a fishing boat leaving a misty harbor
- tools: Edit prompt        Storyboard        Re-cut        Remix        Blend        Loop
- t1: 8s

## 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.
