# Resolve construction — native-HD status dot

**Recipe only: native Resolve execution is untested.** These values reconstruct
the HD candidate, not a scaled proxy. The benchmark is the official distributed
1920×1080 source, not an uncompressed production master. No HD acceptance is
implied by the instructions.

## Timeline and clock

Create a 1920×1080 square-pixel timeline at exactly 30 fps before adding media.
Use a Fusion Composition of **29 frames**, local range **0–28 inclusive**,
duration `00:00:00:29`. Set Fusion global start to 0. If your composition starts
elsewhere, add that start to every key below. Do not add a displayed frame 29.

Local 0 maps to source frame 445, TC `00:00:14:25`. Local 28 maps to source
frame 473, TC `00:00:15:23`. Exclusive source out is frame 474,
TC `00:00:15:24`. Source PTS are 227840 through 242176 in steps of 512,
timebase 1/15360. Do not retime, interpolate frames or add handles/audio.

## Editable generator graph

Use an ungraded DaVinci YRGB setup with no look, LUT, shadow, glow or texture.
Native color conversion and antialiasing must still be checked after export.

1. **WhiteCanvas**: opaque white Background, custom 1920×1080, pixel aspect 1:1,
   RGBA (1,1,1,1).
2. **DotColor**: solid Background, custom **100×100**, pixel aspect 1:1, alpha 1.
3. **DotMask**: Ellipse on DotColor's mask input. Set its image domain to the
   same **100×100**, not the full HD timeline. Center (0.5,0.5), solid on,
   invert off, level 1, soft edge 0, border width 0, angle 0. Disable motion blur.
4. **DotOverWhite**: Merge WhiteCanvas as background and masked DotColor as
   foreground. Center (0.5,0.5), size 1, angle 0, blend 1, normal over.
   **Do not fit or stretch the 100px foreground to the HD background.**
5. Connect the Merge to MediaOut. Its image domain must remain 1920×1080.

The square foreground makes Ellipse width and height share the conversion
`diameter_px / 100`. The final width/height 0.714 produces a 71.4px circle,
centered at (960,540), with geometric edges x924.3/x995.7 and y504.3/y575.7.
Check at 1:1 viewer scale before keying. A full-HD mask with equal normalized
width/height is not interchangeable with these 100px-domain values.

## Color keys

Key all DotColor RGB channels at **both endpoints** in each row, using the
same value at the two endpoints and linear interpolation. Changes then occur
between adjacent output frames; no intermediate blended frame is exported with
motion blur off. Do not smooth these channels or introduce a dissolve.

| Local endpoint keys | First local time | Source frames inclusive | RGB integers divided by 255 | Hex |
|---|---|---|---|---|
| 0 and 3 | 0/30 s | 445–448 | 74,74,74 | `#4a4a4a` |
| 4 and 7 | 4/30 s | 449–452 | 255,223,119 | `#ffdf77` |
| 8 and 11 | 8/30 s | 453–456 | 75,169,253 | `#4ba9fd` |
| 12 and 15 | 12/30 s | 457–460 | 255,155,92 | `#ff9b5c` |
| 16 and 19 | 16/30 s | 461–464 | 220,199,252 | `#dcc7fc` |
| 20 and 23 | 20/30 s | 465–468 | 254,214,215 | `#fed6d7` |
| 24 and 28 | 24/30 s | 469–473 | 76,205,128 | `#4ccd80` |

Use `svg/resolve-controls.csv` for exact decimal 0–1 RGB values at every frame.
Alpha stays 1. Gray through pink each hold four frames; green holds five.

## Radius keys

Key DotMask width and height together at every frame 0–12 and at 28, linearly.
Frames 0–3 and 10–11 repeat values. No center/position channel is animated.

| Local frame | Source frame | Local seconds | Radius in output px | Mask width = height |
|---|---|---|---|---|
| 0,1,2,3 | 445–448 | frame/30 | 28.434 | 0.568680 |
| 4 | 449 | 0.133333333 | 29.823 | 0.596460 |
| 5 | 450 | 0.166666667 | 31.216 | 0.624320 |
| 6 | 451 | 0.200000000 | 32.401 | 0.648020 |
| 7 | 452 | 0.233333333 | 33.607 | 0.672140 |
| 8 | 453 | 0.266666667 | 34.628 | 0.692560 |
| 9 | 454 | 0.300000000 | 35.363 | 0.707260 |
| 10,11 | 455–456 | frame/30 | 35.632 | 0.712640 |
| 12 through 28 | 457–473 | frame/30 | 35.700 | 0.714000 |

These native-HD scalar estimates are not multiplied proxy values. The final
35.7px hold avoids interpreting compression-induced area fluctuations as a
pulse. No shrink, overshoot, gray reset or positional travel is included.
Source frame 474 starts a separate leftward motion and must remain excluded.

## Check and export

Inspect color boundaries 3/4, 7/8, 11/12, 15/16, 19/20 and 23/24. Pink begins
at local 20, source 465, exactly 15.5s. Inspect all growth frames and the final
green hold through local 28. Compare full frames against the HD original and
the 29 editable SVGs; a small diagnostic crop is not the whole-frame benchmark.

Export progressive H.264 MP4, **1920×1080, 30 fps**, square pixels, no audio,
no resize or added transition. Use best available quality and explicit Rec.709
tags; the manual exporter need not use an identical codec timebase, but decoded
PTS must represent exactly 0,1/30,…,28/30 with total video duration 29/30.
Keep the generators/mask/keyframes editable in the project.

Verify 29 decoded frames and silence after export. If a native export's mask,
color or edge coverage differs, report that difference rather than claiming
equivalence from this recipe. No `.drp` or native Resolve validation is supplied.
