OpenAI Film Fieldnotes

Download complete editable project · Read review limits

Capture speech, clear the recorder, return an editable draft

Manual DaVinci Resolve / Fusion construction guide. Review open. No native project, import macro or verified Resolve execution is included. No source-quality, independent moving or native application parity is claimed. Both Original and Adaptation previews are Remotion renders, not the source film.

Clock and source gates

Create a1920×1080 progressive composition with196 frames, local0..195, at exact24000/1001fps. Duration is196196/24000=8.174833333seconds. If the installed Resolve setup cannot retain that rational cadence, stop and resolve the setup; do not round to24, add holds, interpolate new frames or include source1746. Fusion global frame equals composition start plus local frame.

source-timing.json binds source0qK3KqvtRrg[1550,1746), native timebase1/24000, 1001ticks per frame. Source masters and research excerpts are not input assets. controls.csv is the per-frame construction authority; waveform.csv supplies every visible original bar. Numeric and file checks do not prove a native render.

Local Source Required visible state
0..4 1550..1554 Empty composer, regular toolbar, microphone hover and disabled Send.
5..11 1555..1561 Capture controls replace regular toolbar; timer0:00; no waveform yet.
12..168 1562..1718 Original waveform history accumulates/scrolls; timer follows anchors.
169 1719 Waveform clears, timer resets0:00; Send still enabled.
170..175 1720..1725 Empty reset holds; Send disabled; no editable text.
176..195 1726..1745 Full three-line editable draft, ordinary toolbar and caret; left-only reflow.

All mode changes use held keys. Text arrives together; no typewriter animation, spinner, backend message, submitted bubble or generated result is added. The source starts this selection with a presenter-to-UI cut. Its endpoint is before Send, not a film cut. A separate source presenter overlay fades before reset; it is omitted here explicitly, without a synthesized replacement or narration.

Inputs, font and original artwork

Use bundled public/fonts/Geist.ttf, included with its OFL license. Pixel font sizes below are Remotion values. Match native Text+ metrics by visible height, advance and line spacing; no numeric Text+ Size equivalence is asserted. Do not silently scale copy to fit. Reject over-width text at the listed weight.

Field Size / weight Width budget
heroTitle 64 /700 875px
heroSubtitle 25 /400 860px
artifactTitle 33 /570 300px
placeholder 36 /400 820px
modelLabel 29 /400 312px
paneTitle 23 /700 585px
teamLabel 44 /400 600px
each of three draftLines 36 /400 920px
each row label / detail 31 /630;25 /400 630px each

Hero title has authored-1px tracking. Pane title has1.5px tracking. Keep the explicit three draft lines at56px baselines; no auto-wrap or ellipsis. Place the caret after the full third line, using its measured advance plus3px.

inputs/default.json and inputs/adaptation.json contain complete Garden and Studio text and four nonfinancial rows. scripts/build-art.py is the full source of the two hero SVGs: a leaf arrangement versus a film-reel arrangement. Rebuild the documented paths as native masks/shapes or use an import route verified in the installed application. This guide does not promise arbitrary SVG Loader support. The inline icons and pointer paths are fully specified in Scene.tsx. Do not replace the editable scene with a flattened reference still or source clip.

Node branches and coordinates

All geometry uses top-left1920×1080 pixels. A centered rectangle at(left,top,width, height) maps to normalized center((left+width/2)/1920, 1-(top+height/2)/1080), width/1920,height/1080. A point maps to(x/1920,1-y/1080). Apply this conversion consistently when native controls use bottom-left origins. Validate frame orientation in the installed application before keying.

Merge branches in this order:

  1. Desktop gradient: diagonal teal/navy field #152e31, #173746, #071b23.
  2. White application shell(64,-20,1900,1064), radius46, shadow0/20/60px at#0005.
  3. Left stack, clipped to(64,0,1094,1044), bottom-left radius46. Build the following in global coordinates, then apply only leftStackY to this stack: hero(108,-124,1002,438), radius36; artifact(108,346,1002,184), radius30; action row(115,555,446,45). All three move up45px at176, with no ease.
  4. Right pane, independent of the left-stack transform: (1158,0,762,1044), background#f6f7f3,2px#e7e9e4 left edge. Clip its contents to this pane.
  5. Composer shell/text/controls/waveform. Do not parent these to the left stack.
  6. Tooltip and the original pointer, in output coordinates.

Hero text global position: title(164,12,886,90), subtitle(166,104,860,44), notebook label pill(166,165,280,46),18px type,2px tracking and22px horizontal padding; its236px inner width is measured with tracking and never wrapped. All move with the left stack. Hero SVG uses its full1002×438 viewBox; art stays a separate branch beneath live text.

Artifact:2px#e8eae7 edge, white fill; icon well(142,383,110,110), radius24, fill#f3f5f1. Use the original Garden leaf or Studio slate path at65×65 centered. Title(282,383,300,51); lock plus Workspace only at(284,450,310,38),30px gray. Open in pill(602,399,242,76), radius24,2px edge; Share(866,399,210,76), radius24, dark fill. Fixed icon paths in Scene.tsx are original line drawings, not font glyphs. Action row has36px icons and45px gaps, color#91958e.

Right card global(1216,20,744,742), radius27,2px#dde2da edge and#fdfefb fill. Pane title at(1252,49,650,51). Row index0..3 has top117+161×index, height161, 2px upper separator; text starts1252, rowTop+36. Detail follows with11px gap. The card overflows the canvas at right deliberately and is clipped, not rescaled. Team card(1216,810,744,320), radius28,48px inset,44px title. At title+43px gap, add2px rule then30px inset and a66px original initial avatar beside Rowan. No right-pane content moves at176.

Composer x108,width1002,bottom1000,radius56,2px#e6e9e2 edge, white fill, subtle0/7/24px shadow. Before176 its top725,height275; from176 top680,height320. Use held shape-size keys, not a transform that scales text or controls. Before draft: placeholder(144,770,820,58),36px#c2c7bd. Draft: text begins (144,725), three56px rows,36px ink#202522. Full string changes in one held key.

Plus icon is at(151,920),36px. Ordinary controls: secondary icon(245,919),42px; model label(512,914,355,52),29px and25px chevron; microphone(930,919),36px. Hide these except the plus during capture/reset. Capture timer(800,916,86,50), 34px tabular digits#6d7568; Stop square(938,926,22,22), radius4,#b1b7ac. Send(1010,898,80,80),radius44,39px up-arrow. Fill#202522 whensendEnabled=1, otherwise#aeb5a8. The plus is#a5aaa1 during capture/reset, ink otherwise. Initial tooltip(813,846,260,43),radius12,dark fill,20px centered Click to dictate; visible only0..4. Do not add a second tooltip at the endpoint.

Waveform, counter and pointer

The waveform is a silent original fixture, not audio-derived or transcription proof. For each row of waveform.csv, create a3px capsule of the listed height, top-left(x,y),radius1.5,fill#8b9485. There are at most48 visible slots, in output coordinates, without left-stack motion. Animate slot visibility and heights from the exact per-frame table with held keys. Every bar clears at169.

Equivalent generator: at local>=12 and<169,head=floor((frame-12)×0.65), count=min(48,head+1). Slot0..count-1 uses sample=head-slot, height=4+round(22×abs(sin(sample×1.71)×cos(sample×0.39))), x=782-8×slot,y=939-height/2,width3. Trigonometry is in radians. The exact CSV avoids cross-application rounding ambiguity. There are no visible bars outside this interval, no imported sound and no synthetic voice.

Timer value changes at local5→0,25→1,45→2,65→3,85→4,105→5,125→6,146→7, 166→8,169→0. Display0:00..0:08. These labels were inspected in timer-only source crops; do not replace them with floor(local/fps).

Pointer vector viewBox65×84 and path are in Scene.tsx. Its top-left is (pointerX-14,pointerY-8), with scale about local(14,8), shadow1/4/3px#0005. Use controls.csv values exactly; paths are authored approximations. Visibility is1 before18 and from160 onward, otherwise0. X stays948 until181 then moves to1050 by189 with smoothstep; Y=938+8×(1-smoothstep160..165). Scale is0.94 at5 and169, otherwise1. Do not add a Send click at195. Caret is visible at176..187 and hidden188..195; all text remains. The source hand and path are not traced.

Verification and rejection

Render both complete content variants at native cadence. Inspect4/5,11/12, 168/169/170,175/176 and195 at full size. Check silent audio-track absence, exact196frame count, fit, waveform clearing, simultaneous three-line appearance, fixed composer bottom and unchanged right pane. Compare the paired movies and source excerpt as separate references, never use that excerpt in a render.

Reject missing reset frames, text before176, type-on transcription, an invented result, floating right pane, resized lettering, rounded cadence, extended holds, source asset reuse or claims of real product/backend behavior. The source UI, photography, waveform, detailed cursor and optical texture are not reproduced. Neither tests nor decoded stills close perceived moving or source-fidelity review. Native Resolve execution must be performed and evidenced separately.