Candidate construction guide · native Resolve not tested
Prism translucent contours: registered vector material layers
Guide-authoring evidence only: this worker performed mechanical verification, not rendering or moving review. On September 13, 2026, the parent reported all ten outputs rendered. Those outputs have not been independently reverified here. Native Resolve validation and historical source quality remain unresolved; no independent acceptance, win or completion credit.
Binding and inspection
Source: Introducing Prism, a free workspace for scientists to write and collaborate on research, https://www.youtube.com/watch?v=xnInEsaaj9c; full-master binding d9853763611e8e08a818e45aef0c0ed6a674bc6494eccce2d026d8d3f0c57cd9. Source interval [0,178), 178 frames at 60/1 fps, 1920x1080. Full-master bytes were not rehashed here.
Accepted stage-root manifest 35e9bc1d88d480d93914813c0a8a0301444ec6edc177029a722894aea3c997e0. Published member project/recipes/prism-translucent-contours.json in downloads/core-publication-v08.zip has SHA-256 c87b359dc1c36bc600bdba2a6cd43e11f0aab392215ef2721743cb5a78aa8512. Installed active recipe recipes/prism-translucent-contours.json has SHA-256 c87b359dc1c36bc600bdba2a6cd43e11f0aab392215ef2721743cb5a78aa8512.
The bound excerpt evidence/prism-translucent-contours/review02/source.mp4 has SHA-256 272d69e8185991740e83f33bbbb34298ad0d6cd09ec4568f778e6786acedd306. All 178 half-resolution excerpt frames were decoded and viewed as ordered static thumbnails, without frame skipping. 127 selected full-resolution native source members were hash-checked. Native stills actually viewed are enumerated in guide.json; extraction is not viewing. No moving review is claimed.
Largest gap: The retained rounded-diamond/triangle vectors differ from the source lobed optical material. At43/160 their rims, center and shading differ visibly. Rebuilding SVG luminance masks, gradients and blur in Fusion is unverified; no historical disposition closes that gap.
Historical report evidence/review-type-b/retest-review02/prism-translucent-contours/review.json is retained with its hash and recipe binding. Its verdict does not approve this guide. Source quality remains unresolved.
Historical evidence paths in this section are provenance records, not files required by the downloadable kit. Source movies, native-frame archives and private diagnostics are not active presentation assets or public run prerequisites.
Download and install
Work in a fresh directory containing the extracted downloadable kit:
guide.json
README.md
handoff.py
controls.csv
core-publication-v08.zip
active-assets.zip
Use Python 3.11+, Node 22.18+, npm and unzip. Rendering also needs FFmpeg/FFprobe and an existing supported Chromium. Set REMOTION_BROWSER_EXECUTABLE to its executable path if it is not discovered automatically; the render command does not download a browser.
Both ZIPs contain paths beginning project/. Unpack the core first, then the assets overlay into the kit root. The overlay deliberately replaces the selected recipe with the hash-pinned active recipe and installs its SVGs. Do not unpack into project/ again, reverse the order, use an existing project, or substitute the older broad asset packs. In the travel kit, reversing the order would restore JPEG defaults.
From the kit root:
set -eu
test ! -e project
python3 -c "import hashlib,pathlib; assert hashlib.sha256(pathlib.Path('core-publication-v08.zip').read_bytes()).hexdigest() == '307fb6b927e35e6d73779652873d994f5c3e36cb7deba65f22fa64748057a0de', 'Core checksum mismatch'"
unzip core-publication-v08.zip
unzip -o active-assets.zip
python3 handoff.py verify --guide guide.json --project project
python3 handoff.py frames --guide guide.json --project project > controls-regenerated.csv
(cd project && npm ci)
handoff.py checks the installed recipe and every active default/adaptation SVG against this guide. Preserve the bundled controls.csv; the new controls-regenerated.csv is a local regeneration for comparison. These rows are local implementation values, not ready-to-import Fusion centers or decoder timestamps.
The asset ZIP supplies all selected recipe media. No private worker, inspection archive, generator, prewritten input JSON, repository checkout or authoring test suite is needed. The archive contains other recipe contracts, but only this selected recipe's active SVG whitelist is included. Do not run the full-library tests as if every other recipe's assets were installed.
No recipe or SVG changes. Codex requires v08 additions; no downgrade to its stale loose recipe.
All active image assets are SVG; path/text/shape layers stay code-native. Bundled Geist is a runtime text dependency from the core, not replacement artwork. svgAssets pins every default/adaptation SVG, assetPreparation.variants maps slots, and svgConstruction records internal materials. Historical archive and generator hashes are provenance only. Use the supplied editable SVG paths instead of tracing a preview.
Construction in Remotion and Fusion
Direct Content API, no content builder. The installed recipes/prism-translucent-contours.json supplies complete defaults and adaptation objects. The optional custom-content command below creates an input from that installed override; do not use stale core example JSON. Supply the entire Content object, not a partial override. Change only declared fields; retain native recipe tracks and src/Treatment.tsx. TreatmentAtFrame({recipe,content,frame}) uses the local native clock. For integration across clocks, nativeFrame(outputFrame,outputFps,sourceFps) preserves seconds; mixed-cadence editorial use is not native comparison.
- Use 1920x1080, 60/1 fps, [0,178), source [0,178). Keep local0 entirely paper white. Do not add a logo wordmark, sound claim, fade-in of the full finished tile or an opening frame copied from the source.
- Build tile-native-envelope, active [1,178), in a 260x260 local domain. Pivot is(130,130). At1 x830.5,y410,scaleX0.904,scaleY0.9; at177 x830,y410.5,scaleX1,scaleY0.996. Use the independent dense x/y/scaleX/scaleY tracks; do not replace them with one uniform-scale spring.
- Merge settled-base-material first. Both variants supply a separate rounded-base SVG, with no complete contour identity baked in. The default base rectangle is x0.7,y0.7,258.6x258.6,rx59. Its light overlay is257.6 square at1.2 withrx58.5. Preserve the clipped seven-pixel rim and local2.2-pixel Gaussian softness.
- Merge independent-contour-1 through4 in ascending order above the base. All six material inputs, including the center, are registered260x260 SVGs at local(0,0), contain fit, origin(130,130). Never crop each contour to its nontransparent bounds or center it by its visible silhouette.
- Contour onsets are14,20,27,35. Their first scale/opacity pairs are(0.69,0.012),(0.66,0.015),(0.61,0.015),(0.59,0.02). Initial rotations are-12,-5,-9,3 degrees respectively. Follow each independent scale/opacity/rotation track and keep the parent envelope separate.
- Rebuild each contour SVG as SurfaceShape path -> face-gradient fill -> depth-gradient fill -> masked raised-rim fill -> softened rim stroke. guide.svgConstruction records each file hash, definition attributes and exact gradient stops. Import the actual path geometry or use its SVG path, not a hand-drawn approximation or flattened PNG.
- Construct rim-mask as white outer SurfaceShape minus its black inner copy scaled0.84 about(130,130), implemented by translate(20.8,20.8) scale(0.84). Blur the inner boundary by2.2 local px. This is a luminance hole mask; black does not mean alpha zero in an ordinary over merge. Apply the resulting ring mask to the raised-rim gradient, then soften the rim branch by1.15px.
- Keep transparent gradient stops and face/depth translucency. The outer rim stroke is2.8px, opacity0.75, with1.15px softening. Default raised-rim stops at0/0.28/0.55/0.8/1 have alpha0.83/0.46/0.18/0.56/0.91. Do not turn the contours into opaque plates or use one group Blend for these separate internal alphas.
- Add late-polygon-center last at38, opacity0 and scale0.16 initially, origin(130,130), perspective900 and rotationY16. Its independent opacity keys gradually reveal it through38..50. At160 scale0.27,rotation13,rotationY0,opacity1. Preserve its four-pixel local blur and nine-pixel translucent stroke in the SVG; do not replace the center with a source hexagon.
- At160 contour rotations settle to16.2,19.2,13.2,20 degrees, scale1 and opacity1. Keep the quiet silhouette interval160..175 and final envelope samples176/177. Static sampled equality is not proof of a visually perfect hold or moving-material parity.
- Default Strata uses warm rounded-diamond surfaces; adaptation Trine uses cooler triangular surfaces. These metadata names never appear as text. Substitute all six registered SVG slots together, preserve approximate94/74/58/43 radii and bounded contour modulation, and never flatten a final icon into one slot.
- In Fusion use local material subgraphs and normal over merges; after mask evaluation, preserve premultiplied alpha through transformations. Compare the imported/rebuilt SVG on black, white and checkerboard before timing work. Native Fusion blur units, color-management, SVG filters and 3D projection require real application validation, which this guide does not claim.
Local domains, timing and alpha
CSS top-left pixel domains, positive y down. Origin defaults to(0,0), not the center. Size is unscaled. At a 2D layer center: center=(x,y)+origin+Rzdiag(scalescaleX,scalescaleY)((width/2,height/2)-origin). Normalize the resulting center in its parent domain, then invert Y. Compose ancestors; do not apply both a baked world transform and a parent transform.
T(x,y) * T(originX,originY) * Perspective(d) * RotateX * RotateY * RotateZ * ScaleXY * T(-originX,-originY). Apply right-to-left, then homogeneous division. Fusion y-up angle/matrix conversion is an unverified construction target.
Use the left key: linear by default; smooth=uu(3-2*u); hold keeps left value until the exact right key, which returns right value. Clamp before first/after last. Export each native frame; do not use default Bezier smoothing. For frame-zero offset T, place keys at T+localFrame, gates end at T+end-1.
Normal over only unless the SVG explicitly defines a mask. Preserve internal fill/gradient alphas; apply group opacity after local child compositing. Do not preflatten against white. For non-linear color/blur operations unpremultiply only when needed and repremultiply exactly once; verify fringes in-app.
CSS hex and SVG gradient values are implementation RGB values. No recovered film color pipeline or tested Resolve color-management setting. First compare an ungraded sRGB/reference viewer path, then document any transform rather than correcting colors by eye.
Build a Fusion composition with Background_Canvas at the declared dimensions and fps, local0 mapped to its chosen start frame, then the ordered Merge chain and MediaOut1. Each group has a transparent child base. Masks must remain in the correct local domain. A Transform center is not a CSS left/top. For a no-rotation origin-zero box, its scaled center is (x+scaleX*scale*width/2,y+scaleY*scale*height/2) before ancestor transforms. For perspective turns, project the four corners with the declared CSS matrix before mapping to a plane. The coordinate conversion is a construction target, not an application-tested setting.
This is a node-building guide, not an importable .setting or .drp. Do not silently rasterize SVGs if your Resolve installation cannot preserve their masks/filters. Reconstruct their editable local path/material branches and verify them, or report the unsupported conversion.
Full back-to-front hierarchy
| Depth / layer | Kind | Local active interval | Parent | Box / fixed controls |
|---|---|---|---|---|
tile-native-envelope |
group | [1,178) | canvas |
260 x 260 |
↳ settled-base-material |
image | [1,178) | tile-native-envelope |
260 x 260 |
↳ independent-contour-1 |
image | [14,178) | tile-native-envelope |
260 x 260 |
↳ independent-contour-2 |
image | [20,178) | tile-native-envelope |
260 x 260 |
↳ independent-contour-3 |
image | [27,178) | tile-native-envelope |
260 x 260 |
↳ independent-contour-4 |
image | [35,178) | tile-native-envelope |
260 x 260 |
↳ late-polygon-center |
image | [38,178) | tile-native-envelope |
260 x 260 |
Every node, sibling connection, static control, content slot, ancestor gate and numeric track is in guide.json. tracks[].value is the exact scalar/key list; do not substitute a hand-copied summary table for dense tracks. The shared handoff.py frames CSV is per-frame local implementation data, not ready-to-import Fusion center/angle controls.
Checkpoints
| Local | Source | Check |
|---|---|---|
| 0 | 0 | White blank; no envelope. |
| 1 | 1 | Only rounded base, nonuniform0.904/0.9 envelope. |
| 13 | 13 | Last frame before contour1 gate. |
| 14 | 14 | Contour1 scale0.69,opacity0.012,rotation-12. |
| 20 | 20 | Contour2 begins independently. |
| 27 | 27 | Contour3 begins independently. |
| 35 | 35 | Contour4 gate; envelope nearly settled. |
| 37 | 37 | No center layer yet. |
| 38 | 38 | Center gate on but opacity0. |
| 43 | 43 | Inspect emerging filled center and broad light rim; original/source differ. |
| 45 | 45 | Center should not remain an empty well. |
| 50 | 50 | Check gradual center build, not a late pop. |
| 99 | 99 | Intermediate material orientation, no text. |
| 160 | 160 | Four contour rotations16.2/19.2/13.2/20; center scale0.27. |
| 175 | 175 | Quiet silhouette maintained; no fade. |
| 177 | 177 | Final frame, envelope scaleX1,scaleY0.996. |
Run the downloaded recipe
From the kit root after installation, enter project/ for the archived CLIs. The catalog and help commands were executed against the frozen core during this repair. The render/verify-output commands below are instructions for the downloaded kit, not a claim that new exports were made here.
cd project
node --experimental-strip-types scripts/catalog.mjs show prism-translucent-contours --contract
node --experimental-strip-types scripts/render.mjs --help
node --experimental-strip-types scripts/verify.mjs --help
node --experimental-strip-types scripts/render.mjs --recipe prism-translucent-contours --variant default --out out/prism-translucent-contours-default.mp4
node --experimental-strip-types scripts/render.mjs --recipe prism-translucent-contours --variant adaptation --out out/prism-translucent-contours-adaptation.mp4
node --experimental-strip-types scripts/verify.mjs out/prism-translucent-contours-default.mp4
node --experimental-strip-types scripts/verify.mjs out/prism-translucent-contours-adaptation.mp4
cd ..
--variant default and --variant adaptation use the installed recipe's complete Content objects. Dimensions and native cadence come from the recipe; no --fps, --duration, --output or invented Resolve-import flag is needed. Each render refuses an existing output or sibling manifest; use a new output name for a later revision. Preserve each output manifest with its movie. Output verification is a technical/provenance check, not source-fidelity approval.
Optional editable Content
No inputs/ file has to be shipped. From the kit root, create a full custom input from the installed override, not the core's historical examples:
cd project
node --input-type=module -e "import {readFileSync,mkdirSync,writeFileSync} from 'node:fs'; const recipe=JSON.parse(readFileSync('recipes/prism-translucent-contours.json','utf8')); mkdirSync('inputs',{recursive:true}); writeFileSync('inputs/prism-translucent-contours-custom.json',JSON.stringify(recipe.defaults,null,2)+'\n',{flag:'wx'});"
cd ..
Edit project/inputs/prism-translucent-contours-custom.json using the declared field limits. Change recipe.defaults to recipe.adaptation in the creation command to start from variant two. Creation refuses an existing file. Keep media project-contained and preserve the original pinned files; new assets/content are separate reuse inputs, not permission to rebind the baseline guide. Then, from the kit root:
cd project
node --experimental-strip-types scripts/render.mjs --recipe prism-translucent-contours --content inputs/prism-translucent-contours-custom.json --out out/prism-translucent-contours-custom.mp4
node --experimental-strip-types scripts/verify.mjs out/prism-translucent-contours-custom.mp4
cd ..
Handoff and historical evidence
The two handoff.py commands in the installation block run from the kit root, not from a repository's guide subdirectory. They need only guide.json, handoff.py and the installed project/. The Resolve construction steps and numerical controls above remain unchanged.
Private authoring tests and source-inspection records are historical evidence only. They are not included in or needed by this downloadable kit. This repair checks the portable command contract, archived CLI parsing and unchanged recipe/SVG pins. The parent assembles the final archive; its extraction, npm ci, new renders and Resolve execution have not been run in this repair. Static sheets remain static inspection, not moving review.
Remaining gates
- The retained rounded-diamond/triangle vectors differ from the source lobed optical material. At43/160 their rims, center and shading differ visibly. Rebuilding SVG luminance masks, gradients and blur in Fusion is unverified; no historical disposition closes that gap.
- All historical source quality remains unresolved for this sidecar, including findings marked resolved in older reports. No new review disposition is inherited.
- Every bound 960x540 excerpt frame was statically viewed in320x180 sheets; selected1920x1080 native PNGs were also viewed. Sheets are not moving review. Full source masters were not rehashed or copied.
- Authoring-time scope: this worker performed no Remotion render, encode, Resolve application/import, loaded-browser font fit, deployment, sound assessment, blind comparison or fresh-context review. This does not describe the later parent-rendered outputs; native Resolve remains unvalidated.
- handoff verify binds the recipe/source/SVGs and samples local implementation tracks. It does not validate world-space transforms, optical material response, type shaping, filters, alpha equivalence, pixel fidelity or application support.
- No dependency installation or render was performed during guide authoring or this portability repair. Download users install the pinned runtime with npm ci in project/. This selected-asset kit is not a full-library regression-test environment; unselected recipes can have unavailable assets.
- No automatic aspect/cadence changes, content shrinking, extra holds, counts or production approval. New active footage/raster inputs violate this sidecar contract.
Before accepting either render, check actual motion at native cadence, first/last frames, all listed cut/reveal gates, local masks, alpha over checker/black/white, content fit and comparison to source. Keep original and adaptation separate from attributed source research. Obtain fresh-context critique of the kit and actual Resolve evaluation; no count or quality status changes here.