Download complete editable project · Read review limits
Recenter the growing line while its last word changes color
Draft manual construction guide. Moving-source fidelity and native Resolve execution remain unverified. Two original content variants form one example.
Source and composition
Official film yRc5HcGJ-Cs, selected native interval
[180,420),
60/1 fps. Use a silent 1920×1080 square-pixel
composition containing local frames 0–239. Exact duration:
240/60 seconds
(4.000000 s).
Source ordinal = 180 + local frame. No frame-rate rounding,
extra opening pause, closing hold or narration belongs to this study.
The comparison is a retained, hash-bound 960×540 research excerpt. Preserved native metadata and PTS ledgers bind its clock; the historical full master is absent, so this is not a fresh full-master decode. Samples informed the build. Intermediate paths and measured-looking coordinates below are authored reconstruction controls, not official product timing, latency or design tokens.
Setup and common coordinate rules
Verify the unmodified kit with python3 verify_package.py, then follow
project/README.md. Choose either input JSON content set. Install the bundled
licensed Geist font for Text+, and calibrate pixels, weight, tracking and
baselines against the supplied MP4; a font name alone does not guarantee parity.
Regenerate docs/controls.csv with
node --experimental-strip-types scripts/controls.mjs. Each row includes the
local frame, source ordinal and exact sampled controls. Fusion global frame =
composition start + CSV frame. Coordinates here use pixels from top-left, Y
down. For a point in normalized Fusion image coordinates, X=pixelX/1920 and
Y=1−pixelY/1080; convert top-left rectangles through their centers. Check the
installed tool's coordinate direction instead of assuming CSS and Fusion match.
Parent transforms apply after local transforms. A uniform pivoted transform is
pivot + scale×(point−pivot), followed by the stated translation. Convert angles
to your tool's convention. CSS rotations are clockwise in this Y-down space.
Continuous controls use the CSV per-frame values, not an unspecified default spline. Held gates, text prefixes, colors and row indexes use stepped keys. Smoothstep is t²(3−2t), with t clamped to [0,1]; linear progress is clamped t. Rectangle masks need pixel-correct width and height; normalized X/Y values are not interchangeable on a non-square raster. Match opacity, clipping and layer order before attempting a moving comparison.
Intrinsic-width typing, partial-word color and replacement
The canvas is white. Use 96-pixel type, weight 600 and tracking −3 pixels. Place the currently visible line at the exact canvas center. Its intrinsic width grows as glyphs appear; the left edge must move to keep the whole line centered. Do not pin a fixed-width text box's left edge or scale type to fit.
- Reveal
titleGroups[0]using firstGroupProgress, with at least one visible character. It finishes by 35 and holds. Reveal the second group over 62–84, adding its preceding space only once it is visible. - The last group remains absent through 110. At 111 show the first max(1,floor(length×.25)) characters; at 118 use .5, at 125 use .75, and at 142 use the full word. The preceding space belongs to this terminal run.
- Color only this partially revealed terminal run.
colorIndexselects accentColors: index 0 through 116, 1 at 117–123, 2 at 124–128, 3 at 129–135, 4 at 136–141, then 0 again from 142. Treat these as held values. - The complete terminal word holds in color 0 over 142–208. The source color cycle happens during partial revelation, not after the whole word resolves. Keep that distinction even when new words have different character counts.
- At 209 hard-replace the whole line with a prefix of
nextTitle. Prefix progress is .16 at the cut and .78 by 239. Recenter this new visible line independently. The excerpt ends before the replacement sentence completes.
For a manual Text+ rebuild, either use separately measured runs whose positions sum to the current total width, or calibrate a styled centered Text+ line and its per-character coloring. Per-frame text replacements can use stepped keys. Verify that spaces, kerning and the final colored run do not change the center. There is no enclosure, exit fade or additional color loop. Each palette and word set is a variant of this one complete treatment, not another example.
The original wording, font metrics, glyph cadence and five colors are not reproduced. Native frame gates and the partial-color/complete-hold relationship are retained; fractional reveal ratios for arbitrary new words are authored.
Verification boundary
Inspect both actual exports at their native cadence, including entry/exit, hard gates, layering, width, masks and holds. Shipped code checks font loading and selected text-width budgets before rendering; it rejects oversized copy instead of silently shrinking it. This is not arbitrary-input readability approval or a guarantee that an independent Text+ rebuild fits.
The kit contains editable original geometry, fixtures, controls and tests; source screenshots/movies are not renderer inputs. Native .drp execution, tested Resolve import, independent moving-source review and source-quality approval are not included. Existing matching pinned dependencies were used, not a clean dependency install. A modified input needs a new render and review.