Context
A capability audit asked a single question: can rustmotion produce, today, a video on the model of the Machina (1600.agency) and Aikido reference films — dynamic, with no perceptible scene boundaries, continuous camera movement, and word-by-word text reveals?
The answer was yes, but only through an undocumented combination, two steps of which are counter-intuitive enough that the auditor got them wrong twice while already knowing the codebase. Four probes were built, validated and rendered; findings come from pixels, not documentation.
The central trap: the radial-glow layer that gives both references their texture must not be authored as shape components. Written that way it is rejected by the validator; wrapped in the obvious overflow: hidden workaround it passes validation and then destroys the seamless effect — each scene becomes a hard 1920×1080 rectangle, and during a world pan the camera straddles two scenes, so the edge sits in plain view.
Decisions taken up front
| Question |
Decision |
Rejected alternative |
| Validator escape for deliberate bleed |
An explicit per-component bleed: true, extending the mechanism that already exempts marquee and cursor |
Heuristically guessing which shapes are decorative — silently wrong when a shape is real content |
HaloZone alpha |
Add an opacity field, default 1.0, multiplied with the colour's alpha |
Keeping alpha hidden inside the hex string, which is what made the preset unusable on the first two attempts |
| Template strategy |
A second template alongside the brutalist one |
Replacing 1600-style.json, which is a coherent piece in its own register |
Workstreams
Verification
cargo test --workspace && cargo clippy --workspace --all-targets
for f in examples/*.json; do ./target/release/rustmotion validate -f "$f"; done
Every visual claim must be proven by rendering and measuring pixels. A passing unit test is not evidence that something is visible on screen.
Context
A capability audit asked a single question: can rustmotion produce, today, a video on the model of the Machina (1600.agency) and Aikido reference films — dynamic, with no perceptible scene boundaries, continuous camera movement, and word-by-word text reveals?
The answer was yes, but only through an undocumented combination, two steps of which are counter-intuitive enough that the auditor got them wrong twice while already knowing the codebase. Four probes were built, validated and rendered; findings come from pixels, not documentation.
The central trap: the radial-glow layer that gives both references their texture must not be authored as
shapecomponents. Written that way it is rejected by the validator; wrapped in the obviousoverflow: hiddenworkaround it passes validation and then destroys the seamless effect — each scene becomes a hard 1920×1080 rectangle, and during a world pan the camera straddles two scenes, so the edge sits in plain view.Decisions taken up front
bleed: true, extending the mechanism that already exemptsmarqueeandcursorHaloZonealphaopacityfield, default1.0, multiplied with the colour's alpha1600-style.json, which is a coherent piece in its own registerWorkstreams
char_blur_in—schema/video.rs,components/text.rsHaloZone.opacity—schema/background.rs+ the halo painterbleed: true—components/lib.rs,cli/commands/geometry.rs.claude/skills/rustmotion/**,CLAUDE.mdexamples/(depends on W1–W3)Verification
Every visual claim must be proven by rendering and measuring pixels. A passing unit test is not evidence that something is visible on screen.