# Resolve construction specifications

**Application-unverified.** Values below are chosen defaults. Source evidence is separate. See START_HERE.md before construction.

## R01_title_cut — Title hold → hard cut

Give a short premise a complete reading interval, then replace it with a recognizable work surface. The visible replacement can become a rehearsed playback cue.

Source: [Introducing ChatGPT Atlas](https://www.youtube.com/watch?v=Ej6hnsQgV_c) · published 2025-10-21.
Inspected source interval [16.5, 20.5] seconds; native subset [19.75, 20.05]; 9 consecutive frames.

### Source observation

Adjacent source frames 596 (19.867 s) and 597 (19.900 s) change from title to browser. This is a direct cut, not a dissolve.
Centered two-line title gives way to a wide browser inside a colored field. The browser continues enlarging after the cut.
Characters accumulate and the text recenters. A formed browser arrives at the cut; subsequent camera scale changes are separate.
The complete phrase is present in the 19.033 s sample and through 19.867 s: at least 0.834 s of sampled complete-title visibility, not its exact full hold.

### Construction: 150 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | paper.png | 0 | 90 |
| V1 | context.png | 90 | 150 |
| V2 | Text title | 0 | 90 |

1. Edit page → Effects → Titles → Text. Place above paper.png. Set duration to 00:00:03:00; context.png starts at recipe frame 90. No transition at the boundary.
2. Text Inspector → Title: text “Make the work visible”; DejaVu Sans Bold; Size 72; Alignment Center; Anchor horizontal Center / vertical Center; Title Position X 960, Y 540. Color #23312e. Settings → Transform Position 0,0 and Zoom 1. Leave animation off.
3. At frames 89 and 90 step one frame at a time: all title pixels disappear together and the full context appears. The context remains unanimated for 60 frames.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| Title | 0–89 | Opacity 100%; no keyframes |
| Context | 90–149 | Zoom X/Y 1; Position X/Y 0; Rotation 0; no Dynamic Zoom |

### Holds and handles

Complete title: frames 0–89 (3 s). Settled context: 90–149 (2 s).
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Replace the title in Text, not in a flattened video. If it wraps, rewrite or reduce Size until it fits inside x=288…1632. Extend the title hold by moving both the cut and the context clip together. Update the cue marker.

### Deliberate differences, not validated parity

The source builds/recenters letters and scales the browser after the cut. This recipe reproduces the complete-title-to-context cut only; static title entry and a stationary browser are intentional omissions, not a claim of full typography fidelity.

Official manual: [PDF p. 1212](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1212), [PDF p. 1219](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1219), [PDF p. 1246](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1246), [PDF p. 1291](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1291).

## R02_chapter_reset — Chapter reset → return to context

Separate two arguments without losing the task. Use between related demonstrations, not in the middle of an uncompleted cause-and-effect beat.

Source: [Workspace agents in ChatGPT: Third-party risk management agent](https://www.youtube.com/watch?v=HnSPedbA02Q) · published 2026-04-24.
Inspected source interval [68, 76] seconds; native subset [69.5, 70.75]; 75 consecutive frames.

### Source observation

A white chapter card separates two views of the same agent setup. Cut onsets outside the native subset are only sample-bracketed.
Two-pane application → centered single-line chapter → two-pane application.
Letter construction on the title, then product return and later composer input.
Complete chapter is present at 70.917, 71.633 and 72.367 s; the app has returned by 73.083 s. These bound, not exactly measure, the hold.

### Construction: 180 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | context.png | 0 | 45 |
| V1 | paper.png | 45 | 120 |
| V1 | context.png (duplicate) | 120 | 180 |
| V2 | Text title | 45 | 120 |

1. Build three adjacent V1 clips with durations 45, 75 and 60 frames. Use the same Media Pool context asset for both outer clips; do not independently rescale the return.
2. Add a basic Text title over paper.png only: “Now inspect the result”, DejaVu Sans Bold, Size 72, Alignment Center, Anchor horizontal Center / vertical Center, Title Position X 960 / Y 540, color #23312e. Settings → Transform Position 0,0 and Zoom 1. No animation or transitions.
3. Compare the last pre-card frame (44) with the first return frame (120). The fixture should be identical. For real captures, preserve the visible task state, not necessarily every pixel.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| All context clips | 0–44 and 120–179 | Zoom 1; Position 0,0; no keyframes |
| Title/card | 45–119 | 75 frames; full-opacity title for entire card |

### Holds and handles

Chapter title has 75 complete frames (2.5 s); returned context gets 60 frames (2 s).
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Lengthen the middle card by ripple-moving the return and every downstream marker. Replace both context instances with the same asset/state. Do not manufacture a completed backend action across the title.

### Deliberate differences, not validated parity

Exact pixel equality on return is a fixture contract; source task identity, not identical backend state, is evidenced. Source title letter construction is not recreated.

Official manual: [PDF p. 967](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=967), [PDF p. 1212](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1212), [PDF p. 1219](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1219), [PDF p. 1246](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1246).

## R03_context_detail — Context → detail by hard cut

Make a small target readable immediately while retaining an orientation landmark. Prefer this to a camera move when the sentence is already about the detail.

Source: [Introducing ChatGPT Atlas](https://www.youtube.com/watch?v=Ej6hnsQgV_c) · published 2025-10-21.
Inspected source interval [22.5, 24.8] seconds; native subset [22.9, 23.2]; 9 consecutive frames.

### Source observation

Frame 690 at 23.000 s is wide; frame 691 at 23.033 s is the tight sidebar composition.
The sidebar composer becomes the subject. Part of the property page remains at the left as an orientation landmark.
An abrupt scale/position discontinuity. Neighboring frames do not show intervening magnifications.
The detail persists through this 24.8 s window; later interaction lies outside it.

### Construction: 120 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | context.png wide | 0 | 45 |
| V1 | context.png detail | 45 | 120 |

1. Place context.png for 120 frames. Blade at frame 45 with the Blade Edit Mode tool, then return to Selection Mode. Both sides use the same source image.
2. Select the second clip. Inspector → Video → Transform: linked Zoom X/Y 1.8; Position X −396, Y +108; Anchor Point X/Y 0; Rotation Angle 0. Dynamic Zoom off. Do not keyframe.
3. The focus point (1180,600) in top-left source pixels maps to the output center. Step 44→45: no intermediate scales, dissolve, or black edge.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| Wide | 0–44 | Zoom 1; Position 0,0 |
| Detail | 45–119 | Zoom 1.8; Position −396,+108 |

### Holds and handles

Detail is complete on frame 45 and held for 75 frames (2.5 s).
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

For a new full-frame asset, pick a real landmark and target. Use the tools.py focus command to calculate translation and reject uncovered edges. Its math assumes centered anchor and equal source/timeline raster with square pixels. For an edge target, choose a legal off-center framing, a different crop, or a new capture; never silently expose empty pixels. Check scaled/cropped media separately. Extend only the detail clip.

### Deliberate differences, not validated parity

The source uses a different crop and sidebar. The 1.8× framing is a chosen example, not a fitted source magnification. Raster sharpness must be checked at output size.

Official manual: [PDF p. 1246](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1246), [PDF p. 1247](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1247).

## R04_camera_push — Push, settle, then act

Guide attention from the complete surface to a target when travel itself helps orientation. Keep the consequential action after the camera settles.

Source: [A first look at the Codex app](https://www.youtube.com/watch?v=0e-Brv-gS9Q) · published 2026-02-02.
Inspected source interval [3.4, 5.8] seconds; native subset [3.85, 4.5]; 15 consecutive frames.

### Source observation

No cut is claimed during the inspected push: multiple intermediate magnifications are visible.
The complete window grows beyond the frame edges and brings the workspace selector forward.
Large scale changes around 3.963–4.255 s precede the visible selector menu at 4.296 s. Motion blur is visible in intermediate frames.
The menu is visible in the 4.296–4.463 s consecutive frames and later overview samples. No exact fitted settle threshold.

### Construction: 120 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | context.png | 0 | 120 |

1. Place context.png for 120 frames. Inspector → Video → Transform; disable Dynamic Zoom, keep Anchor Point 0,0 and Rotation 0.
2. At frame 24 add diamond keyframes for linked Zoom and Position with the first values below. At frame 39 set the second values. Do not add an action while these parameters change.
3. Open the Edit page Keyframe/Curves Editor, enable Zoom and Position channels, select both endpoints and choose Linear. Before frame 24 and after 39 values remain constant. This unfitted motion is deliberately simple; source blur and easing are not recovered.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| Zoom X/Y | 24 → 39 | 1.0 → 1.8; Linear |
| Position X | 24 → 39 | 0 → −396; Linear |
| Position Y | 24 → 39 | 0 → +108; Linear |
| All transform values | 40–119 | Hold final values; no further keys |

### Holds and handles

Wide frames 0–23 (0.8 s); move spans 15 frame intervals (0.5 s); settled frames 40–119 (80 frames).
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Recompute the final translation for the new target; change both position channels and zoom together. A longer clip extends only the final hold. A shorter version cannot end before frame 99 if it needs 60 settled frames. For a faster/slower move, change both endpoints deliberately, not clip speed.

### Deliberate differences, not validated parity

Linear interpolation and no motion blur differ from the source. Only the directed push and action-after-move order are implemented. Render comparison may require a chosen eased curve; it cannot establish OpenAI’s exact curve.

Official manual: [PDF p. 1246](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1246), [PDF p. 1291](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1291), [PDF p. 1302](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1302), [PDF p. 1303](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1303).

## R05_pointer_action — Target → dwell → input

Let viewers locate the intended control before text changes. A pointer is an editorial aid here, not evidence that a real click or request succeeded.

Source: [A first look at the Codex app](https://www.youtube.com/watch?v=0e-Brv-gS9Q) · published 2026-02-02.
Inspected source interval [6.5, 10.5] seconds; native subset [7.5, 8.5]; 24 consecutive frames.

### Source observation

This excerpt is a reframe and input beat, not evidence of a submission cut.
The view moves down from the workspace selector toward the composer. The lower window edge remains an orientation cue.
Camera reframing precedes the request growth visible from roughly 9 s. The later text does not fully finish in this window.
Empty input is available across several samples before typing. This interval does not establish complete-request reading time or submission.

### Construction: 180 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | input-empty.png | 0 | 180 |
| V2 | Text: “Arrange” | 90 | 100 |
| V2 | Text: “Arrange these” | 100 | 110 |
| V2 | Text: “Arrange these notes” | 110 | 120 |
| V2 | Text: “Arrange these notes by topic.” | 120 | 180 |
| V3 | pointer.png | 0 | 180 |

1. Use a full-frame transparent pointer.png. Its tip starts at source pixel (960,540). On V3 keyframe Transform Position as below; Zoom 1, Anchor Point 0,0. Choose Linear in the Edit Curves Editor.
2. Create the first basic Text title, then duplicate it three times for the remaining word states. Title panel: DejaVu Sans Regular, Size 40, color #23312e, Alignment Left, Anchor horizontal Left / vertical Center, Title Position 960,540. Settings → Transform Position X −576 / Y −60, Zoom 1. The text block anchors at output pixel (384,600), below the parked pointer. Keep all four clips identical except for text and duration.
3. At frame 120 the fourth native title reads “Arrange these notes by topic.” Do not replace it with the raster request.png: that would introduce a font/baseline matching problem. The word-build uses cuts, not opacity fades. Do not add a submit animation: the source interval does not establish completed submission.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| Pointer Position X/Y | 0 and 29 | +340,+200 (tip at 1300,340) |
| Pointer Position X/Y | 59 | −540,0 (tip at 420,540); Linear from 29 |
| Pointer | 60–179 | Stationary at target |
| Text plates | 90 / 100 / 110 / 120 | Discrete word-build; 100% opacity |

### Holds and handles

Target dwell 60–89: 30 frames (1 s). Complete request 120–179: 60 frames (2 s).
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Replace the pointer route with the actual capture’s cursor when using real UI; never show two pointers. Change the four native title strings while retaining identical anchors, font metrics and Transform settings. Add time at target or at the final request; do not stretch the cursor travel automatically.

### Deliberate differences, not validated parity

The source camera also reframes and its request remains unfinished inside the inspected window. The fixture finishes a shorter original request. This discrete word-build is not a recreation of source caret cadence. Text+ Write On is deliberately not specified: the inspected manual’s direction wording requires an application check.

Official manual: [PDF p. 1212](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1212), [PDF p. 1219](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1219), [PDF p. 1246](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1246), [PDF p. 1291](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1291), [PDF p. 1303](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1303), [PDF p. 2434](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2434).

## R06_selection_scope — Keep a selected scope through a reframe

Keep the selected region tied to the content it identifies while changing the outer framing. Do not imply that the requested change completed.

Source: [Work with docs, sheets, and slides in ChatGPT](https://www.youtube.com/watch?v=E3dDr_QtBuo) · published 2026-07-23.
Inspected source interval [23, 27.5] seconds; native subset [23, 24]; 24 consecutive frames.

### Source observation

A move into the selected table is followed later by a pullback; this is not a proven instantaneous crop cut.
Table close-up becomes readable while the presenter inset stays screen-anchored. The wider conversation returns near the end.
The contextual action becomes a request field, text grows, then the camera pulls back.
Request is complete in the 26.276 s sample; pullback appears at 26.693 s. Selection onset predates the interval.

### Construction: 150 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | Fusion Composition | 0 | 150 |

1. Effects → Effects → Fusion Composition; set 150 frames. Open Fusion. Drag shell.png and document.png from the Media Pool into the Node Editor and rename MediaIn nodes Shell and Document.
2. Connect the graph below. MergeDocument puts document content over Shell, limited by fixed Viewport. Add a green Background SelectionFill (#32725d, alpha 0.18, 1920×1080) through SelectionRect into MergeSelection, then place OuterCamera AFTER both content and selection.
3. OuterCamera: Pivot .5,.5; Center .5,.5; Size 1. Keyframe Size 1 at local frame 30, 1.35 at 45; 1.35 at 105, 1 at 120. Center stays .5,.5. Select Size in Spline and choose Linear; retain flat holds.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| Viewport | constant | Center .5,.518518519; Width .65; Height .574074074; Soft Edge 0; Corner Radius 0 |
| SelectionRect | constant | Center .5,.625; Width .65; Height .109259259; Soft Edge 0 |
| OuterCamera Size | 30 / 45 / 105 / 120 | 1 / 1.35 / 1.35 / 1; Linear |
| Selection | 0–149 | Already selected; no completion or selection-onset claim |

### Fusion connections

```text
Shell → MergeDocument.Background
Document → MergeDocument.Foreground
Viewport [Rectangle] → MergeDocument.EffectMask
MergeDocument → MergeSelection.Background
SelectionFill [Background] → MergeSelection.Foreground
SelectionRect [Rectangle] → MergeSelection.EffectMask
MergeSelection → OuterCamera [Transform] → MediaOut1
```

### Holds and handles

Selected detail is stationary for frames 46–104 (59 frames); extend that interval for dense real content. Final wide framing is held for 29 frames.
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Replace Document, then recalculate SelectionRect from the actual selected pixel rectangle using tools.fusion_rectangle. Keep the selection merge before OuterCamera. For real UI, prefer captured native selection over a synthetic highlight.

### Deliberate differences, not validated parity

The source selection exists before the interval and its contextual request changes. This recipe isolates selection-to-content registration during reframing. It omits the presenter inset and does not reproduce the complete interaction.

Official manual: [PDF p. 2264](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2264), [PDF p. 2540](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2540), [PDF p. 2542](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2542), [PDF p. 2929](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2929), [PDF p. 2930](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2930), [PDF p. 1604](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1604).

## R07_masked_scroll — Scroll content behind a fixed viewport

Bring an off-screen result into view without moving the window chrome. Reading begins after the document lands, not while it is passing through the viewport.

Source: [Make information visual with ChatGPT](https://www.youtube.com/watch?v=jzmNh8lbSp8) · published 2026-08-24.
Inspected source interval [44, 49] seconds; native subset [46.75, 48.25]; 36 consecutive frames.

### Source observation

Continuous content scrolling within the inspected native window; no scene cut is inferred from large pixel changes.
A calendar rises into view. Outer window title and presenter inset stay in frame space.
Upward content movement brings the calendar into view, then slows and leaves the calendar available.
The calendar is substantially exposed by 47.631 s and remains through 48.965 s. Residual document motion is visible; this is not an exact zero-motion hold.

### Construction: 150 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | Fusion Composition | 0 | 150 |

1. Add a 150-frame Fusion Composition. Drag shell.png and document.png into Fusion as Shell and Document. Add Transform, Rectangle and Merge with Shift-Space; rename as in the graph.
2. Connect Shell to MergeViewport’s orange Background input FIRST. Document → ScrollContent → green Foreground. Connect Viewport to MergeViewport’s blue Effect Mask input. Output goes to MediaOut1. Do not mask the Transform itself or transform the combined shell.
3. Set Viewport and ScrollContent values below. In Spline, show ScrollContent’s displacement animation, select the endpoints and set Linear. If Center creates a Path modifier, retain a straight vertical path: no intermediate spatial controls. Inspect both the spatial route and temporal displacement.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| Viewport Rectangle | constant | Center X .5; Y .518518519; Width .65; Height .574074074; Soft Edge 0; Corner Radius 0; Solid on; Invert off |
| ScrollContent | 0 and 30 | Center .5,.5; Pivot .5,.5; Size 1; Angle 0 |
| ScrollContent Center | 60 | .5,.722222222 (240 output pixels upward); Linear from 30 |
| ScrollContent | 61–149 | Hold; no outer transform |

### Fusion connections

```text
Shell [MediaIn] → MergeViewport.Background (orange)
Document [MediaIn] → ScrollContent [Transform] → MergeViewport.Foreground (green)
Viewport [Rectangle] → MergeViewport.EffectMask (blue)
MergeViewport → MediaOut1
```

### Holds and handles

Pre-scroll 30 frames; travel 30 frame intervals (1 s); fully stopped result 61–149 (89 frames, 2.967 s).
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

All supplied media is 1920×1080. Keep document content full-frame, even when mostly transparent. For taller captures, first normalize the canvas deliberately; do not accept an automatic fit that shrinks text. Recompute scroll distance in pixels/1080 and ensure the document covers the whole viewport at both ends. Extend the stationary tail only.

### Deliberate differences, not validated parity

The source calendar has residual motion. The neutral list stops completely. The 240 px distance and linear travel are chosen; neither scroll physics nor exact source viewport geometry has been fitted.

Official manual: [PDF p. 2264](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2264), [PDF p. 2540](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2540), [PDF p. 2542](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2542), [PDF p. 2929](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2929), [PDF p. 2930](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2930), [PDF p. 1604](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1604).

## R08_result_reveal — Reveal a container, then its contents

Distinguish the arrival of a result area from readable proof. Do not count the empty pane as result reading time or imply a measured application response time.

Source: [Build and share interactive prototypes in Codex](https://www.youtube.com/watch?v=_9ImjmzAyus) · published 2026-06-04.
Inspected source interval [51, 56] seconds; native subset [51.5, 53]; 45 consecutive frames.

### Source observation

Within the same window, the conversation narrows and a right-hand preview becomes available. It is not a cut to an unrelated finished output.
Full conversation becomes a left column next to a wider preview.
Pane geometry changes before the calendar content arrives. Source camera framing continues changing after arrival.
Right pane is blank at the 52.833 s sample and populated by 53.267 s. Content remains available through 55.967 s, while the outer framing moves.

### Construction: 150 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | Fusion Composition | 0 | 150 |

1. Create a 150-frame Fusion Composition. Add shell.png, result-empty.png and result.png from the Media Pool. Connect the two Merge nodes in the graph; both foreground layers keep their full-frame geometry.
2. PaneWindow is a Rectangle effect mask on MergeEmpty. Reveal its horizontal width while preserving the left edge at x=1020: at frame 30 Center .53125,.518518519 / Width 0; at frame 45 Center .678125,.518518519 / Width .29375. Height .574074074, Soft Edge 0, Corner Radius 0. Spline Linear for width and center displacement.
3. MergeResult Blend stays 0 through frame 74 and is 1 from 75 onward. Use two keys 74=0, 75=1 with Linear; consecutive frames give a discrete arrival. Do not add a key at the exclusive end.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| PaneWindow Width | 30 → 45 | 0 → .29375; Linear |
| PaneWindow Center X | 30 → 45 | .53125 → .678125; Linear |
| PaneWindow Center Y / Height | constant | .518518519 / .574074074 |
| MergeResult Blend | 74 / 75 | 0 / 1; thereafter 1 |

### Fusion connections

```text
Shell → MergeEmpty.Background
EmptyPane → MergeEmpty.Foreground
PaneWindow [Rectangle] → MergeEmpty.EffectMask
MergeEmpty → MergeResult.Background
Result → MergeResult.Foreground
MergeResult → MediaOut1
```

### Holds and handles

Pane reveal 30–45; empty pane 46–74 (29 frames); complete result 75–149 (75 frames, 2.5 s). The empty interval is an illustrative state order, not simulated real latency.
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Replace both pane layers with matched full-frame assets. Change the mask width and center together so the left edge remains fixed. If real loading lasts longer, preserve captured state order and label any omitted time rather than fabricating a wait. Extend only the complete-result tail.

### Deliberate differences, not validated parity

The source also narrows the conversation and moves the outer camera. This recipe isolates container-before-content staging; it does not recreate the full split-layout motion. The fixture is not a running application.

Official manual: [PDF p. 2264](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2264), [PDF p. 2542](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2542), [PDF p. 1604](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1604).

## R09_reading_hold — Protect a complete-result reading hold

Give the audience an interval in which the evidence is complete, stable and large enough to read. A container animation or unfinished output is not a reading hold.

Source: [Use ChatGPT Work to build custom creative tools](https://www.youtube.com/watch?v=D-QteDHdHes) · published 2026-09-04.
Inspected source interval [133, 145] seconds; native subset [133.5, 134.5]; 60 consecutive frames.

### Source observation

The native subset is a result hold. Later scrolling and the context cut are outside that subset.
A completed page hero remains readable in a desktop browser.
Hero holds, then the broader excerpt tours two sections before returning to the editor.
The 133.5–134.5 s consecutive subset is a hero hold; this is not a comprehension measurement.

### Construction: 120 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | shell.png | 0 | 120 |
| V2 | result.png | 0 | 120 |

1. Place shell.png and result.png with matching start and 120-frame duration. Inspector: Zoom 1, Position 0,0, Opacity 100%, Composite Mode Normal. No keyframes on either clip.
2. Place a timeline marker at frame 0 named READ_START and one at the next cut named READ_END. Watch at actual meeting-view size, not only full-screen.
3. If continuing result-reveal, use its final composite state without a framing reset. Treat this recipe’s 120 frames as additional hold only if the assembly explicitly calls for it.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| All layers | 0–119 | Unchanging framing; no transition; no cursor movement |

### Holds and handles

120 frames (4 s) are chosen for the short neutral fixture. No empirical human-reading threshold is claimed. Dense evidence needs a longer timed-recording pause or a simpler crop.
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Replace the content and test the smallest relevant labels at intended playback size. Extend this clip at 100% speed. For a real capture use a genuine stable interval; do not freeze a live clock or fake a finished app state without disclosure.

### Deliberate differences, not validated parity

The cited native source subset verifies a short hero hold, not a universal four-second reading rule. The wider excerpt scrolls and later changes context; those later boundaries are not frame-exact here.

Official manual: [PDF p. 967](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=967), [PDF p. 1246](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1246).

## R10_object_continuity — Carry identity across a context cut

Use recognizable content to connect two contexts even when its size and position change. This is semantic continuity, not a pixel-matched morph.

Source: [Find the perfect gift by shopping with ChatGPT](https://www.youtube.com/watch?v=th8u0bqYsQk) · published 2026-03-27.
Inspected source interval [7.5, 11.5] seconds; native subset [8, 8.7]; 42 consecutive frames.

### Source observation

Source frame 487 at 8.116667 s shows isolated input; frame 488 at 8.133333 s shows an almost-empty phone. No geometric morph connects them.
Readable isolated composer gives way to a smaller request inside a tall phone on a colored field.
Phone establishes with changing scale/position, then the request grows into view. The same sentence supplies semantic continuity.
The native frames show request content returning from about 8.216667 s and becoming complete by roughly 8.300 s. No exact product latency is implied.

### Construction: 150 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | input-empty.png | 0 | 60 |
| V2 | request.png | 0 | 60 |
| V1 | device-empty.png | 60 | 150 |
| V2 | device-request.png | 64 | 150 |

1. Build an isolated request for frames 0–59. At frame 60 cut both layers to the empty device context. No dissolve or scaling interpolation spans the cut.
2. Keep the device empty for four output frames, 60–63. At frame 64 add device-request.png with 100% opacity. All assets remain Zoom 1 / Position 0,0.
3. Check the complete request text before and after the cut. It must stay “Arrange these notes by topic.” Avoid changing the promised task while preserving only a decorative shape.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| Context cut | 59 → 60 | Direct replacement, no in-between geometry |
| Device request | 64–149 | Full opacity; unchanged text; no keyframes |

### Holds and handles

Original request 60 frames (2 s). Empty context 4 frames. Re-established request 86 frames (2.867 s).
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Change request.png and device-request.png together using build_assets.py. Keep the four-frame establishment explicit; do not turn it into an alleged product latency. Extend the final device hold for longer text.

### Deliberate differences, not validated parity

The source phone scales and text grows back rapidly. This fixture uses a static device and a direct text return. It preserves the observed context-cut/brief-empty/identity-return order, not a geometric match or identical cadence.

Official manual: [PDF p. 1246](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1246), [PDF p. 967](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=967).

## R11_anchored_overlay — Keep an overlay independent of the shot

Keep a short identifier in screen space while the underlying shot changes. Use only when it adds information without obscuring the result.

Source: [ChatGPT can now complete tasks on your computer](https://www.youtube.com/watch?v=dB6pOolO7io) · published 2026-07-16.
Inspected source interval [6.15, 12.8] seconds; native subset [9.8, 10.4]; 15 consecutive frames.

### Source observation

Source frame 237 at 9.884875 s is the wider presenter shot; frame 238 at 9.926583 s is a closer angle.
The person changes scale and background framing. Name and role remain at the same screen location.
One direct shot replacement; caption does not scale with the person.
Identifier survives the 9.926583 s cut and remains through the sampled close shot; it disappears before the later screen-demo composition.

### Construction: 150 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | context.png wide | 0 | 60 |
| V1 | context.png detail | 60 | 150 |
| V2 | Text label | 15 | 135 |

1. Build the wide/detail cut as context-detail but cut at frame 60. Apply Zoom 1.8 and Position −396,+108 ONLY to the second V1 clip.
2. Add one continuous basic Text title on V2 from frame 15 to 135: “Original fixture”, DejaVu Sans Bold, Size 32, color #23312e, Alignment Left, Anchor horizontal Left / vertical Center, Title Position 960,540. In Settings → Transform set Position X −672 / Y −464, Zoom 1. This places the left anchor at output pixel (288,1004), below the window and clear of its footer. No keyframes.
3. Do not put V2 inside a transformed compound clip. Compare overlay glyph position at frames 59 and 60; the overlay should not jump, scale, fade, or be re-rendered by a second title clip.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| V1 | 60–149 | Zoom 1.8; Position −396,+108 |
| V2 | 15–134 | Title Position 960,540; Anchor Left/Center; Settings Transform Zoom 1, Position −672,−464; Opacity 100% |

### Holds and handles

Overlay persists 120 frames (4 s) across the cut; remove it before the next evidence beat if it competes with the subject.
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Move the overlay once in its own Inspector to clear new content. Preserve one continuous overlay clip across the underlying cut. When extending the shot, choose its disappearance independently rather than scaling its duration automatically.

### Deliberate differences, not validated parity

The source is a presenter name/role overlay. The neutral fixture labels an artifact; no talking head is composited into the presentation. Exact font metrics, baseline position and original reveal are not recreated.

Official manual: [PDF p. 1212](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1212), [PDF p. 1219](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1219), [PDF p. 1246](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1246), [PDF p. 2264](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=2264).

## R12_quiet_ending — Finish proof, then release attention

Let the proof finish before a small, quiet original identity. The separate talking-head ending buffer is a different timing requirement.

Source: [A first look at the Codex app](https://www.youtube.com/watch?v=0e-Brv-gS9Q) · published 2026-02-02.
Inspected source interval [127.85, 132.61] seconds; native subset [128, 128.8]; 20 consecutive frames.

### Source observation

The source builds its wordmark, deletes letters, introduces the knot and reaches a quiet endpoint; this is not a dissolve template.
Small centered identity on a white field with ample margins.
Letter changes and a brief mark turn precede the mostly stable last samples.
The mark appears stable across 130.881, 131.298, 131.757, 132.174 and 132.591 s samples. These samples do not prove every intervening pixel is frozen.

### Construction: 120 frames at 30 fps

| Track | Asset/tool | Start inclusive | End exclusive |
| --- | --- | --- | --- |
| V1 | paper.png | 0 | 120 |
| V2 | mark.png | 0 | 120 |

1. After a completed result hold, cut to paper.png with mark.png above it for 120 frames. No audio tracks are required. Leave both images at Zoom 1 and Position 0,0.
2. Do not add a crossfade to black or borrow the source logo. This recipe implements the quiet endpoint only; no letter deletion or knot animation is included.
3. Set the final export Out point to the last visible frame, 119, not the exclusive frame 120. In an actual two-video presentation, compute the permitted end on the shared playback timeline before setting this length.

| Control | Recipe frames | Value/interpolation |
| --- | --- | --- |
| Paper and mark | 0–119 | Static; Normal composite; full opacity; no keyframes |

### Holds and handles

120 quiet frames (4 s) are a chosen study default, not an OBS buffer or a measured source hold.
Stills/generators need no temporal handles. For real captures reserve 15 source-time frames before and after each used interval at a 30 fps capture rate; keep those handles outside the edit. No dissolve or optical-flow handles are needed here.
100% speed. No Optical Flow, Speed Warp, frame interpolation or simulated product wait.

### Replace assets / change duration

Replace mark.png with an original licensed mark on the same transparent canvas. Preserve generous margins. Shorten/extend the endpoint only after proof completion and the real recorded tail have been checked. Never freeze, stretch or synthesize the presenter’s wave.

### Deliberate differences, not validated parity

The source has a wordmark-to-knot construction. Those branded mechanics are not reproduced; the five late samples establish a quiet endpoint but do not prove every intervening source frame is identical.

Official manual: [PDF p. 967](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=967), [PDF p. 1246](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=1246), [PDF p. 4180](https://documents.blackmagicdesign.com/UserManuals/DaVinci_Resolve_21_Reference_Manual.pdf#page=4180).
