Download complete editable project · Read review limits
Grow a continuing prompt around inline references
Manual DaVinci Resolve / Fusion construction guide. Review open. No native project, import macro or verified Resolve execution is included. Both Original and Adaptation previews are actual silent Remotion exports. Source-quality, independent moving review and native application parity remain unverified. Two content variants count as one editing example.
Native clock
Create a1920×1080 progressive, square-pixel composition with104 frames, local 0..103, at exact24000/1001fps. Duration is104104/24000seconds. If the installed Resolve setup cannot retain that cadence, stop and resolve the setup rather than round to24, interpolate frames or extend the ending. Fusion global frame equals composition start plus local frame.
source-timing.json binds source0j9yDUDMrBs[1396,1500), timebase1/24000 and
1001ticks/frame. Source1500 is a different presenter shot and is excluded.
The shot begins with a populated two-line prompt, not an empty composer. It
ends on a completed unsent prompt, not a retrieved result or generated draft.
Files and regeneration
Use the eight original SVGs in public/art, the bundled Geist font and its
license, inputs/default.json or inputs/adaptation.json, and docs/controls.csv.
docs/text-controls-default.json and docs/text-controls-adaptation.json list
every visible original text run and icon at every native position. These are
construction records, not a source transcript. No source image is an input.
From the extracted project directory, regenerate controls without Remotion:
node --experimental-strip-types scripts/controls.mjs > controls-regenerated.csv
node --experimental-strip-types scripts/text-controls.mjs default > text-default-regenerated.json
node --experimental-strip-types scripts/text-controls.mjs adaptation > text-adaptation-regenerated.json
Layer order
- Put the selected studio/field workspace SVG over an opaque background at
1940×1080. Its left edge follows
contextDrift,0→−12px. This original slow drift replaces the filmed setting; it is not recovered camera tracking. - Merge the white composer over it at
panelLeft,panelTop,panelWidth,panelHeight, with52px corner radius. Copy the per-frame bounds exactly. - Merge the separate white plus circle and dark send circle. They are siblings of the composer, not children of its top-edge transform or clipping mask.
- Merge each text row and inline icon over the panel. Each row follows the panel's top edge. Preserve the declared run order and spacing.
- Merge the caret after the last visible run on the currently active row. Do not put it after an earlier completed row or make it a send animation.
The panel never becomes a submitted bubble and never swaps to a result screen. There is no shared fade, voice capture, spinner, click cursor or audio layer.
Asymmetric edge growth
The measured white width stays approximately738px at x652..1390. The numbers are raster estimates, not recovered CSS/Fusion authoring values. At settled states, the panel center is[1021,540]. It temporarily sits lower on each growth onset because the bottom jumps before the upper edge finishes settling.
| Local | Source | Required panel/text relationship |
|---|---|---|
| 0..20 | 1396..1416 | Two lines; top455,bottom625. First line and first glyph already present. |
| 21 | 1417 | Third row opens; bottom jumps654,top first moves445. |
| 22..27 | 1418..1423 | Bottom stays654; top settles through436,433,429,428,427,426. |
| 28..47 | 1424..1443 | Three-row hold; top426,bottom654. |
| 48 | 1444 | Fourth row opens; bottom jumps684,top415. |
| 49..55 | 1445..1451 | Bottom stays684; top settles407,403,401,398,397,397,396. |
| 56..72 | 1452..1468 | Four-row hold; top396,bottom684. |
| 73 | 1469 | Fifth row opens; bottom jumps714,top385. |
| 74..80 | 1470..1476 | Bottom stays714; top settles377,373,370,368,368,367,366. |
| 81..103 | 1477..1499 | Five-row hold; top366,bottom714. |
Use held values from controls.csv at every native frame. Do not replace the
table with one centered size tween or interpolate new frames between keys.
The bottom-driven controls must stay still during each top-edge settling run.
Bottom controls
The white plus circle is102×102 at left=panelLeft−116,top=panelBottom−100.
Its dark plus is centered with44px horizontal/vertical strokes,4px thickness,
round caps. The dark send circle is76×76 at left=panelLeft+panelWidth−92,
top=panelBottom−90; draw an original white up-arrow using5px rounded strokes.
The supplied React/SVG paths are the exact editable reference for those shapes.
Dark ink is#181d20. Neither circle scales during line growth.
Inline text and glyphs
Use bundled Geist at40px, weight450, tracking−0.3px,52px line box and60px row
step. If the native font implementation cannot reproduce these settings,
record the mismatch; the Remotion render does not prove native font parity.
Text origin is(panelLeft+50,panelTop+31+row×60), with zero-based row.
Keep explicit authored rows rather than automatic paragraph wrapping.
Create a Text+ layer for each text run, preserving whitespace, and an original
SVG layer for each icon. Text is dark #181d20 except reference labels, which use
#256ba3 for Studio or #236e71 for Field. Every icon is36×36 with4px right gap;
align its bottom5px below the text baseline, as in src/Scene.tsx. Lay out
successive runs by the rendered advance of the previous run. Do not allocate
the full future label width while only its prefix is visible.
Read the complete per-frame run list from the selected text-controls file.
For an edited phrase of length L and its ratio from controls.csv, retain the
first min(L,max(0,floor(L×ratio+0.5))) characters. Source-derived progress keys
are reused proportionally for new copy; this is an authored adaptation, not
identical source glyph timing. The fixed connector is , the; the second
reference gets a comma once its label is complete.
| Local | Inline relationship |
|---|---|
| 0 | First room glyph and a partial first reference already exist. |
| 8..12 | First label completes, then connector types; document glyph appears12. |
| 12..17 | Document glyph precedes its label. Label types18..20. |
| 21..32 | Third row's black prefix types; notes glyph appears32. |
| 32..35 | Notes glyph precedes its label. Label types36..40. |
| 41..44 | Black connective suffix appears after that label. |
| 48..50 | Fourth-row notes glyph precedes its new reference label. |
| 51..60 | Fourth reference types, followed by its black suffix61..72. |
| 73..74 | Fifth row is open before its closing text begins. |
| 75..82 | Closing text types, reaching its period at82. |
| 83..103 | Completed prompt holds without caret. |
The caret is2×38px with2px left gap, dark ink, and a−7px inline vertical offset. Its earlier holds are authored: absent12..16,32..35 and48..50; otherwise visible before83, then absent. Earlier source caret/icon micro-motion was not fully measured. Do not call these exact recovered source cursor timings.
Editable content and width gate
The exact input fields are theme, lead, reference1, reference2,
line3Prefix, reference3, line3Suffix, reference4, line4Suffix, closing.
Theme is studio or field; other fields are trimmed ASCII prose with schema
limits in src/model.ts. Closing must end with a period. Edit a copied project,
then regenerate controls and render to new output paths.
The actual renderer loads the bundled font and checks complete rich-line widths, including each40px icon-plus-gap advance. Row1 budget is638px; rows2..5 have 570px budgets, reserving room for caret and send while each is the active row. Oversized edits fail before encoding. Do not silently shrink type, clip a label or move send to evade the gate. Native construction must check its own text advances and control clearance; it has not been executed here.
Verification and limits
Inspect0,12,18,20,21,27,32,36,48,51,55,73,75,80,82,83,103 first. Check that the top settles while the bottom controls hold, inline icons precede their labels, text never reaches send, and the final prompt remains unsent. Source photos, performer, branding, exact copy and app glyphs are not adaptation assets. Original illustrations, palette, typography, cursor holds and internal glyph geometry differ. Hash/clock tests and sampled stills do not confer source-quality, independent moving review or native Resolve approval.