Skip to content

Chantier: dark-premium video capability #117

Description

@LeadcodeDev

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

  • W1 · char_blur_inschema/video.rs, components/text.rs
  • W2 · HaloZone.opacityschema/background.rs + the halo painter
  • W3 · bleed: truecomponents/lib.rs, cli/commands/geometry.rs
  • W4 · Document the world view.claude/skills/rustmotion/**, CLAUDE.md
  • W5 · Dark-premium demoexamples/ (depends on W1–W3)

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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions