# Sweep a dark shimmer across a huge grey loading label twice, then cross-dissolve it to the done label

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 "Character Consistency with 4o Image Generation" (PFsOUNfBhzI), published 2025-03-25.
Source interval [640, 712) on the 24000/1001 fps master: 72 frames, 3.003000 s. Local frame 0 = source frame 640.
Create a 1920x1080 progressive timeline at 24000/1001 fps and a Fusion composition exactly 72 frames long. Keep integer frames; do not round the frame rate.
Background field: #f2f2f2. Export silent H.264 yuv420p to match the intended playback container.

## Observation
Extreme close-up of a chat response: a light grey 150px 'Finishing touches' label above the rounded top edge of a beige image placeholder. A darker band roughly half the label's width sweeps across the letters from left to right (~f2-22), then again (~f32-52). Around ~f54-62 the label cross-dissolves into 'Image created' in the same grey, which holds until a hard cut at the end of the interval.

## Mechanism
Loading-state shimmer: a moving dark band revealed through the text, repeated on a fixed cycle, then a straight cross-dissolve to the completed-state label.

## Phases (local frames)
- 0: Grey label and beige placeholder
- 2: First shimmer sweep
- 32: Second shimmer sweep
- 54: Cross-dissolve to done label
- 62: Hold until hard cut

## Layer inventory (absolute 1920x1080 top-left pixels, back to front)
- placeholder [rect] at (208, 720) size 1900x600 radius 120 fill #d6ccb4
- label-grey [text] at (220, 380) text "Final polish" 150px weight 400 #6f6f6f
    keyframes opacity: f54=1, f62=0
- shimmer [group] at (-500, 340) size 600x260 visible [0, 54)
    keyframes x: f2=-500, f22=1600, f32=-500 (hold), f52=1600
  - label-dark [text] at (220, 380) text "Final polish" 150px weight 400 #1f1f1f
      keyframes x: f2=720, f22=-1380, f32=720 (hold), f52=-1380
- label-done [text] at (220, 380) text "Image ready" 150px weight 400 #6f6f6f visible [54, 72)
    keyframes opacity: f54=0, f62=1

## Construction steps
1. Timeline 1920x1080 at 23.976 fps; Fusion composition 72 frames. Local 0 = master frame 640.
2. Background #f2f2f2. Placeholder: #d6ccb4 rectangle at 208,720 sized 1900x600 with radius 120 so only its rounded top-left corner shows in frame.
3. Label: Text+ 150px regular #6f6f6f at 220,380. Duplicate it in #1f1f1f and mask the dark copy with a 600px-wide rectangle mask; key the mask X from -500 to 1600 over frames 2-22 and again over 32-52 (hold key back to -500 at 32).
4. Done label: same style at the same position, Blend 0 -> 1 over frames 54-62 while the grey label goes 1 -> 0; remove the shimmer at frame 54.
5. Easy mistake: letting the shimmer keep running under the dissolve, or moving the label. Both labels sit at the same origin; only opacity changes.

## Content variants
Default copy:
- loading: Final polish
- done: Image ready
Adaptation changes:
- loading: Rendering
- done: Done

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