Download complete editable project · Read review limits
Compare three proofs, commit one, reveal the same design
Manual DaVinci Resolve/Fusion construction guide — draft. This is editable
layer guidance plus exact generated frame controls, not a tested .drp, macro
or ready-to-import spline. Native Resolve execution and perceived moving-source
fidelity are unverified. Both original content fixtures form one treatment.
Source clock and scope
Official reference: 8zH_O74hZBw, Build and publish web apps directly in ChatGPT,
published July 14, 2026. The selected fresh complete rendition is 1920×1080 at
24000/1001 fps. The source interval [790,1020) has 230 positions and lasts
230230/24000 seconds (about 9.593 s). Source PTS is index×1001 on a 1/24000
clock; absolute start is 790790 ticks and exclusive end 1021020 ticks.
source-timing.json records every source and rebased excerpt PTS. The separate
960×540 silent research excerpt preserves the 230 positions, not pixel identity.
Fresh-rendition identity does not identify an absent historical source master.
Create a 1920×1080 progressive timeline at the installed application's 23.976 setting; verify that exported rate is 24000/1001, not exact 24. Set exactly 230 frames, starting at local zero. No audio, tail hold, dissolve to black, retimed transition or next presenter shot is included. The frame controls use local frame numbers, not editor timecode strings. Map them to the chosen Fusion global start frame explicitly. Keep the source video outside the editable build.
Content and identity contract
Use the workshop or garden JSON as a unit. It contains three distinct direction names, two shared hero lines, three people and three session labels. The designs share event information but have different composition: a stacked title and list, an offset italic title with columns, and a title with an orbital motif. Keep proof IDs 0,1,2 in that order in both the two-plus-one proof grid and the three-across chooser. At local 56, selectedIndex becomes 2. At 67 the selection is committed. The later response and right preview must use that same ID 2. Do not make three unrelated screenshots or substitute a generic menu.
The final preview expands the third design's hero and motif into a longer page. It is a separate layout of the same content, not a geometrical card morph. The initial thin outline on card 0 is not committed selection; Continue remains gray until the third card receives its dark outline. Copy and data are original specimens, not real OpenAI or Poe feature behavior.
Coordinate system and graph
All numerical layout coordinates are top-left pixels, Y down. For a Fusion point in normalized coordinates use X=pixelX/1920, Y=1−pixelY/1080; convert rectangles through their centers. Confirm the installed node convention. The comparison transform uses the top-left origin: screen=(cameraScale×worldX+cameraX, cameraScale×worldY+cameraY). Do not replace it with a center-pivot transform without compensating translation.
- Create a Background field with the fixture's warm/accent diagonal gradient. The comparison group is an opaque 1920×1700 white field clipped by the output canvas. Its narrow sidebar is 220 px wide. Build the sidebar labels with Text+ and the boundary with a Rectangle mask; no source screenshot is used.
- Place the document group at X=340, width=1190. Its internal Y origin is zero.
Parent this group and sidebar to
ComparisonTransform. Apply cameraScale, cameraX/Y and the authored cameraBlur only to this group. The presenter inset and pointer are outside this transform. The background stays still. - Build each proof as a 600×365 group, then scale it to width 420, preserving
ratio. The first is at (0,gridY), second at (444,gridY), third at
(0,gridY+279), all document-local. The first two share the first row. A 12 px
rounded viewport clips each scaled proof; do not crop the second proof into
the first. The original
orbit.svgis used only by design 2. - Within the 600×365 proof group, event label is at (28,18), the two hero lines
begin at (28,55), or (120,55) for the offset italic design. Hero size is 55,
or 50 in the italic design. Date/place start at (28,185); divider Y=222.
Design 0 uses three rows at Y=238,273,308. Designs 1/2 use three columns at
Y=238, then a session line at Y=315. See
Scene.tsxfor exact weights, letter spacing and line heights; Text+ metrics have not been certified equal. - Before proofsVisible, show the comparison status, introduction, three working directions and a Thinking line. At local 13, replace those held elements with the explanation and proof grid, using a stepped gate. Once proofs exist, direction row is gridY−174, explanation gridY−112 and tool row gridY−53.
- The chooser is a separate white rounded 1190×525 group at document-local (0,540), visible only on frames 33–66. Its heading and hint precede three proof copies at width 334, with 20 px gaps and 26 px left padding. Each copy retains its own original design, plus a name strip at 23 px. Outline 0 with a thin pale border until selection, then outline 2 with a dark 3 px border. Gate the black Continue fill with continueEnabled; never interpolate IDs.
- A 1190×130 composer replaces the chooser on other proof frames. It is at
Y=920 before the accepted response, and gridY+910 afterward. Keep input empty.
The accepted response is at gridY+595 and names
directionNames[2]. This is a new text branch beneath the proof grid, not text painted over the proofs. - The original illustrated host is a 288×360 clipped group at output (1600,145).
Rebuild
host.svgas its editable colored shapes or use the permitted SVG. Its label is a separate Text+ layer. Fade the whole group with hostOpacity. No limb animation is added: the source's live gestures remain a known gap. - At local 185, cut comparison/host off and the split-preview group on. The preview window is (190,60), 1540×960, with rounded clip and shadow. Sidebar width is 210. Conversation starts at (242,30), width 500. Right pane starts at X=774, width 766; its 78 px header remains above the page viewport. This is one hard cut, not an animated pane allocation or a card enlargement.
- The third built-page group is authored at 800×1100, scaled by .9575 into the right pane and clipped at the window bottom. Its event header is (32,26), place/date row Y=114, two 84 px hero lines at (32,206), and the 278×278 orbit motif at (463,393). Divider Y=698 leads to date/location details, then the reservation row Y=811 and the beginning of people Y=926. These contents derive from the same content record as the selected proof.
- Composer add icons are vector paths, not font glyphs. The pointer is an independent output-coordinate vector above both views. Use cursorX/Y rows exactly. In the fixed chooser view it rests on design 2 near (1150,865), then Continue near (1430,1028). Do not transform it twice. It jumps with the editorial result cut rather than traveling through a nonexistent card-to-preview morph.
Frame keys
Generate docs/controls.csv with node --experimental-strip-types scripts/controls.mjs.
It contains 230 rows and all named state fields. Importing this CSV does not
automatically build a Fusion scene. Apply each sampled value to the corresponding
node, checking start offsets and coordinate conversion. Use stepped keys for
IDs/gates and every-frame keys for the authored continuous tracks. The ramps
use clamped smoothstep t²(3−2t), not an arbitrary default editor ease.
| Local | Source | Boundary or chosen reconstruction |
|---|---|---|
| 0–12 | 790–802 | Camera settles from scale 1.35 to 1 before proofs exist. |
| 13 | 803 | Three proof thumbnails and description appear together. |
| 33 | 823 | Chooser replaces composer; proof grid moves up, initial outline on 0. |
| 56 | 846 | ID 2 selected; dark outline and enabled Continue. |
| 66 | 856 | Last chooser frame, pointer at Continue. |
| 67 | 857 | Chooser dismissed; original proofs and composer return. |
| 68–82 | 858–872 | Authored context pullback to scale .83 and X=100. |
| 138–144 | 928–934 | Accepted text enters and grid shifts upward. |
| 172–182 | 962–972 | Host fades out independently of the comparison. |
| 185 | 975 | Hard cut to conversation and matching built-page preview. |
| 229 | 1019 | Last preview frame; next source presenter shot is excluded. |
The exact event pairs 802/803, 822/823, 845/846, 856/857 and 974/975 were inspected as source stills. Camera scales, easing, proof/chooser dimensions, scroll displacement, blur and pointer paths are authored approximations. CSS blur uses a small sine lobe over camera ramps; a Fusion Gaussian Blur is only an approximation. Do not describe it as recovered optical motion blur.
Verification and limitations
Rebuild the layer graph with Background, Rectangle, Text+, Merge, Transform and Blur nodes plus the original SVG artwork. Retain editable text and masks. The provided MP4s are visual targets, not acceptable flattened substitute layers. Use the kit verifier before editing, then run model tests, regenerate controls, render both content fixtures and verify each MP4/manifest. The browser typography gate uses bundled Geist and rejects oversized text rather than silently shrinking. For Resolve, measure each Text+ output at the declared sizes; no font parity or automatic layout validation is claimed there.
Known differences include simplified chrome and response copy, different proof artwork/typography, schematic still host, chosen camera and pointer paths, approximate scroll motion and blur. The fixed teal motif does not recolor with the second fixture. Only the observed third-choice route is supported. Tests, still comparisons and successful decoding are not perceived moving review, independent quality approval or native Resolve execution. Do not certify the underlying product workflow from this illustrative specimen.