Candidate construction guide · native Resolve not tested
Click release and camera pullback: Resolve / Remotion guide
Biggest gap: nested temporal exposure has no verified Fusion equivalent. The retained render still has a harder cursor contour and a displaced/harder right window edge during deceleration; matching the last frame cannot close it.
This adds guidance to an existing treatment, not another unique motion or an accepted render. Original and Adaptation are two original illustrated examples.
Source and clock
A first look at the Codex app, [412,536) at 24000/1001 fps,1920×1080: 124 native frames, local0–123. Nominal source seconds are 17.183833…–22.355666…; duration is124×1001/24000=5.171833…seconds. Those are rational-frame conversions, not new source timing measurements. Source536 is the following white chapter and is deliberately excluded.
Use evidence/codex-click-release-camera/review03/comparison.json, movies under
renders/codex-click-release-camera/review03/, and native/codex-click-release-camera/
relative to the library. There are 82 retained PNG frames per variant, not
all124. Resolve members through frameHashes[variant] and localFrame; PNG
ordinals are sparse. Selected native/source/render stills and contact sheets
were inspected, and existing movie hashes/stream properties checked. This is
not a continuous moving review or a claim that the full source master is present.
All exact values below, including subframe shutter/sample counts, are retained recipe implementation values, not recovered source settings or new measures. The old entry/exit prose is coarse: current keys include an initial pointer flight and do not reach scale1 until local123.
Fusion construction
- Use a silent1920×1080 composition at exact24000/1001 cadence with local0–123. Do not round to24. Treat a23.976 interface label as a display label and check actual cadence on any future export; this guide has not run Resolve.
- Place
desktopbelowrelease-camera; place disclosure/back above it in frame space. Inside the1280×890 camera group merge window-shadow, before/after plates, persistent hover/symbol/label, transient feedback branches andfocal-cursor-travelin recipe order. Preserve off-frame workspace contents until the final canvas crop. - Use camera pivot[0,0], holding position[650.28,126.13] and scale2.0044 through105. Apply every x/y/scale key from106 through123, ending[323,99.5] at scale1. Do not substitute a two-key ease or freeze the readable frame118; small settling motion continues.
- Keep both cursor flights, intervening pause, transient highlights55/56/58/59 with57 clear, target hover60, press/recovery92–104, hard content switch101 and camera onset106. Target hover begins before pointer arrival; a single click event cannot replace this ordering.
- Keep
focal-cursor-travelinside the camera. Its children are halo thenanchored-cursor, both using the24×30 arrowPath. Preserve pivot[3.25,4.05], local offsets and anisotropic scaleX/scaleY press tracks. Do not add a screen-space pointer, detached click ripple or new response animation. - For the Remotion exposure reference, retain49 camera samples and33 cursor-travel samples when the respective shutter track is positive. Temporal sampling moves only that group's box transform; its children retain center-frame state. Keep camera and cursor exposure nested, not flattened into a global Gaussian blur.
- Keep cursor blur/halo separate from directional exposure. A future Fusion build must compare the exposure reconstruction against the actual native intermediate frames; sample count and shutterFrames are not exact Resolve shutter-angle controls. Never blur the static desktop or disclosure to conceal edge errors.
- Inspect the right margin over114–118 and both cursor flights. Preserve the known extra plus-to-arrow icon switch at hover60 as an open finding, not a source requirement. End after123 with a cut; an additional wide hold changes the edit and is not source timing.
Transform and exposure semantics
The recipe uses local top-left pixel coordinates and positive y downward. For
this unrotated camera, a workspace point maps to frame space as
[cameraX,cameraY] + cameraScale * workspacePoint. Cursor travel and its local
press transform must be composed inside that transform. Fusion Center, Pivot
and normalized coordinates depend on the branch image domain; register at
least two landmarks and convert explicitly. Do not pass raw CSV x/y as Center.
Interpolation uses the left key: linear, hold until the exact next key, or
smoothstep progress²*(3−2*progress). Current camera keys are linear, including
the small settling changes. Before/after artwork cuts at101; do not crossfade it
or sample different plate states through a temporal blur operation.
The actual src/Treatment.tsx reference, for positive shutter span, evaluates
the group box at localFrame + (sampleIndex/(samples−1)−0.5)*shutterFrames.
It stacks these instances in order with wrapper opacity1/(sampleIndex+1).
Every child receives the unchanged center frame, not the subframe. Nested
cursor exposure therefore stays its own operation inside each camera sample.
These details matter especially for translucent paths and edges: do not assume
the stack is a simple uniform additive average or native Resolve motion blur.
Read exposure.samples at each group and the full shutter track, not an old
review's25/15 counts. The present counts are49/33. controls.csv exports the
shutter span but not sample count, path topology or resulting blur pixels.
No recovered source shutter, optical kernel or calibrated Fusion shutter
conversion is supplied. A manual temporal-branch reconstruction or native blur
trial must be separately compared; neither has been run here.
Keep window shadow outside any content-only crop. Original before/after SVGs must retain1280×890 aspect/registration and readable detail for the2.0044 close crop. Test editable vector import/rebuild in the installed Resolve version; no automatic SVG Loader or .setting import is promised. Text+ can replace the overlay label only with matched font metrics and plate/control registration.
Checkpoints
- 0: Close framing and initial pointer flight; disclosure remains frame-space.
- 12: Check the inherited hard outlined leading arrow/trailing-copy mismatch.
- 49: Pause before second pointer flight retained.
- 55: First transient row feedback.
- 57: Clear gap between transient highlight states.
- 60: Target hover begins before arrival; known extra icon identity switch.
- 70: Pointer nearly settled; hover must not be delayed to this frame.
- 92: Press-shape compression begins.
- 100: Old workspace still present.
- 101: Hard switch to after-action plate, camera still close.
- 104: Pointer recovers press geometry.
- 105: Last unchanged camera transform.
- 106: Pullback and temporal exposure begin.
- 114: Inspect right-edge spread/margin; inherited optical finding remains open.
- 118: Workspace readable but remaining settle keys must still play.
- 123: Final[323,99.5], scale1; last frame before the next source chapter.
Executable references
svgAssets pins each image-layer SVG referenced by defaults or adaptation from
the hash-checked accepted asset ZIP; per-SVG verification must compare the whole
referenced-asset map against these pins, not merely report current file hashes.
From the shared toolkit root, set FIELDNOTES_PROJECT to an already prepared
project with the selected SVG assets:
python3 handoff.py verify --guide guides/interface/codex-click-release-camera/guide.json --project "$FIELDNOTES_PROJECT"
python3 handoff.py frames --guide guides/interface/codex-click-release-camera/guide.json --project "$FIELDNOTES_PROJECT" > codex-click-release-camera-controls.csv
The output is raw parent-local numeric controls with ancestor activity and
nominal times, not world coordinates, decoder PTS, exposure pixels or native
Resolve output. fusionNodes preserves nesting/order; tracks supplies exact
recipe pointers. Read static sample counts, origins, path viewBoxes and paint
at the node pointers, and use discreteEvents for layer gates.
From an already provisioned writable toolkit project/, for later authorized
execution (not run during this authoring pass):
npm --silent run catalog -- show codex-click-release-camera --contract
npm run render -- --recipe codex-click-release-camera --variant default --out out/click-original-v01.mp4
npm run render -- --recipe codex-click-release-camera --variant adaptation --out out/click-adaptation-v01.mp4
npm run verify -- --out out/click-original-v01.mp4
npm run verify -- --out out/click-adaptation-v01.mp4
Custom content starts from the complete examples/codex-click-release-camera/default.json;
use --content inputs/click/content.json instead of --variant. Keep sidebar
action text semantically and geometrically paired with both original SVG
plates. The typed content gate cannot inspect outlined plate-label agreement.
These commands were checked against archived package scripts/parser/help; the
read-only render/catalog/verify help commands ran. Render requires pinned
dependencies, Node22.18+, FFmpeg/FFprobe, bundled Geist and existing Chromium;
REMOTION_BROWSER_EXECUTABLE can select it. No install, browser download or new
render occurred. The retained source projection has no public SVGs; the selected
asset ZIP holds the originals. Recipe-only verification is not rendered approval.
Source versus adaptation and remaining limits
- Retained review03 keeps CC-R03-01 harder leading cursor/trailing copies during flights, CC-R03-02 shifted/harder right edge during deceleration, and CC-R03-03 the extra plus-to-arrow hover icon replacement at60, open as minor findings.
- Geometry, pointer easing, subframe exposure, original text mass and CSS optics remain fits. Directional blur capability does not prove equivalent source motion; no native Resolve blur/parenting validation exists.
- Before-state content preserves hierarchy/density, not every evolving source status line or actual execution. Film timings do not establish new-thread latency or real Poe features. New assets must support the close crop without adaptive recapture.
- Source screenshots, branding and demo data stay research-only. Original illustrated desktop, marks and disclosure are deliberate differences, not additional unique mechanisms.
- Selected stills and byte/stream checks are not continuous moving review. No new timing measurements, fresh render, native Resolve run, package/completion or deployment claim is made. Final all-hands production still needs real product checks and storyboard approval.