Download complete editable project · Read review limits
Browse a design index, then read the same four full-size options
Manual DaVinci Resolve/Fusion construction — draft. This is an editable layer
recipe with native-frame controls, not an executed .drp, .comp, macro or
importable spline. Native Text+, SVG reconstruction and blur require application
calibration. No pixel-equivalent native output or source-quality approval is claimed.
Source and timeline
The reference is Plugins in ChatGPT, pKwRNdDtai0, published July 21, 2026.
Use source [1263,1427): 164 frames at 24000/1001 fps, approximately
6.840167 seconds. The retained complete rendition has 1/24000 time base and
1001 ticks per frame. Absolute source PTS is 1264263 through 1428427 exclusive;
the research excerpt rebases these positions to zero. source-timing.json
binds every source/excerpt position and records observed-versus-authored limits.
Create a 1920×1080 progressive, square-pixel timeline at 24000/1001 fps. The inclusive local range is 0..163. Map local zero explicitly to the Fusion clip's global start. Do not round to 24 fps, add handles, audio, a final dissolve or the following presenter shot. Source1427 is excluded. The presenter inset and earlier dictation lie outside the selected interval; do not generate replacements.
Whole contract and shared content
A typed request yields a completed four-design result, not a progressively resolving image generation. The same ordered designs exist in the thumbnail index and expanded document. Horizontal browsing reveals the fourth thumbnail; vertical reading then visits the four expanded options. No choice, commit, export, external editor or built-page handoff occurs.
Choose one complete fixture. There are eight original art files, four per fixture, plus one original field. The matching SVG and text data must feed both representations. Preserve each design's key, title, kicker, detail and footer. The portrait is always slot1, with slots0/2/3 landscape. Slot numbers here are zero-based; displayed option numbers are1..4. These are original event posters, not source art, brand assets or actual product results.
Coordinate and layer graph
All coordinates below use top-left pixels. Start with a full transparent 1920×1080 domain and merge branches in this order:
Field: native filled paths, dots and lines reconstructed fromart/field.svg.Browser: paper, clipped child branches and a rounded window shadow.Pointer: original filled polygon with a thin white edge and small shadow.Camera: shared full-domain translation/scale, then authored blur and output.
The browser rectangle is (84,0,1748,1080), radius22. Everything below is browser- local unless stated otherwise. Keep its rounded mask above all children. The header is (0,0,1748,64). Left navigation occupies (0,64,66,1016). The source panel is (1346,85,380,217), radius24. The composer is (212,976,972,76), radius38. These branches do not receive the document scroll. They still move with the camera.
The document clip is (67,64,1279,912). Its child origin is (145,-64), so document
coordinates ultimately begin at browser(212,0). Apply documentY only to this
child, before the clip. This keeps the source panel outside the scrolling branch
and stops artwork at the composer boundary. Do not scroll the whole window.
Within the document child:
- Status at (0,109); tool mark and label at (0,187).
- Index clip (0,289,972,270), with its row at (
indexX,11). - Divider at y610, width972; explanatory line at (0,651).
- Expanded art top coordinates: 770,1338,2406,2974, all at x0.
- Each option label occupies a714×24 single-line box57 pixels above its art top. Final action marks at y3520.
The expanded art width is714. Heights are500,1000,500,500. The index gives every artwork a240-pixel height and uses widths342.72,171.36,342.72,342.72. Index left positions are0,362.72,554.08,916.8, including20-pixel gaps. The total row width is 1259.52; final offset is-287.52. Thus a clipped fourth edge becomes a clipped first edge without changing identity, order or aspect.
Draw rounded thumbnail masks, radius17, and small lower shadows. Scale only the
first thumbnail branch by firstHover about its own center. Do not reflow its
siblings or enlarge the full-size counterpart. Clip the result with the index
mask. Left/right index controls are white38-pixel circles at (4,105)/(925,105)
inside the index clip. Show the left control when indexX < -1 and the right
control when indexX > -286. Their appearance is not proof of a backend action.
Original art and type
The selected fixture uses art/harbor-0.svg through -3.svg, or the matching
meadow set. Reconstruct their XML circles, ellipses, rectangles and Bezier
paths as editable native shapes. Preserve viewBox714×500 or714×1000, order,
fills, stroke widths and transforms. Do not import a reference screenshot or
flatten the entire scene into an image. The two fixtures use different art
colors; the SVGs retain those explicit colors during JSON palette changes.
Each poster is a714-pixel local domain. Paper comes from the fixture; merge decorative SVG shapes, then type. Use bundled Geist and its included OFL license. No automatic wrapping or font shrinking:
- Kicker: x34, y24 for landscape or y50 for portrait, width646,18px/weight600, letter spacing0.04em. Slots2/3 center-align; slots0/1 left-align.
- Two-line title: landscape x34/y65/width646, portrait x48/y108/width618. Font sizes48,65,46,48; weights650 except slot3 at750. Line height is size+6; letter spacing-0.025em. Alignment follows the kicker.
- Detail: x34, y402 or portrait y848, width646,20px/weight600.
- Footer: x34, y461 or portrait y932, width646,16px/weight500.
Build one reusable poster subgroup per identity and instance that same subgroup at both sizes. For an index instance, scale by indexWidth/714, preserving the native height ratio. Text+ baseline/Size conversion must be calibrated against the delivered Remotion output; the numeric CSS size is not a tested Text+ preset. The Remotion project rejects content wider than its fixed text budgets in the actual loaded font. Repeat comparable width checks in Resolve before rendering.
State and native controls
controls.csv has164 rows. Regenerate it from scripts/controls.mjs and compare
bytes before reuse. Controls are values, not an importable Resolve curve file.
Use the same local frame for every layer; a visibility gate never resets time.
sceneState=0 shows the request/home view at local0..2. Place the title at
(212,498), width972, centered29px. Home composer is (212,590,972,158), radius26,
with the two request lines at24-pixel horizontal/21-pixel vertical padding,
17px and25-pixel line height. The send circle sits at(923,112) inside it.
sceneState=1, local3..10, shows chrome, submitted history and a thinking label.
History is (490,95,694,85), radius16, padding18×22,16px/24px. Thinking text begins
at(212,245). Keep the regular empty composer. The local3 boundary is authored
inside the observed1265..1271 submission bracket, not an exact recovered onset.
sceneState=2 begins at local11, source1274. Switch directly to the completed
index and expanded sequence. Source1273 has no ready results;1274 does. Do not
dissolve artworks, simulate generation or derive latency from the edited status.
The shared camera starts at scale1.6, X=-400,Y=-400. At the completed-result cut, Y becomes-245. Over local11..19 use smoothstep to scale1,X=0,Y=0. The chosen blur is zero outside that release and1.7×sin(pi×release) inside it. These values are authored, not recovered optical parameters.
IndexX stays0 through55, then uses smoothstep to-287.52 at75. Source1318 is still
at the initial offset;1319 begins the move. firstHover is
1+0.035×ramp(25,29)×(1-ramp(49,53)); ramp clamps to0..1 then applies3t²-2t³.
DocumentY is the negative of the following scroll distances, with smoothstep between each adjacent pair: (0,0),(75,0),(77,30),(79,190),(85,420),(93,780), (101,1140),(109,1420),(117,1740),(125,2130),(133,2510),(141,2636),(163,2636). The index's own offset persists while the containing document scrolls. The final fourth art top is338, with the previous art partly above it. Do not add a new selection state at the end. Internal paths are authored within sampled brackets.
The pointer is a28×34 path in world coordinates. Follow cursorX/cursorY columns; do not parent it to the document. It participates only in the shared camera. No pointer press animation is asserted. The send/add/brand symbols are editable vector shapes; avoid font glyph substitution for the plus icon.
For a full-domain Fusion Transform representing the camera, use Size=scale, Center.X=scale/2+cameraX/1920 and Center.Y=1-scale/2-cameraY/1080 under Fusion's bottom-left normalized convention. Verify your domain and pivot first. For local pixel rectangles convert center to(x+w/2)/W,1-(y+h/2)/H and dimensions to w/W,h/H. Preserve nested clips before applying the parent camera. CSS blur and native blur are not guaranteed identical; inspect moving output before use.
Check and export
Export164 silent frames at the exact source cadence. Inspect local0,3,10,11,19, 29,55,56,75,77,93,109,125,141 and163. Confirm all four identities match in index and expanded views, the portrait stays portrait, pinned chrome does not scroll, no art is replaced during the cut, and the final shot contains no invented choice. Only actual native Resolve execution can verify this manual reconstruction. Source quality still requires independent moving review. Final all-hands work also requires its separate storyboard approval and talking-head timing.