Making a launch video for Claude Opus 5 Anthropic shipped Claude Opus 5 today. An engineer created an unofficial 55-second launch video using the brand's exact design tokens, including colors, typefaces, and SVG paths, with transitions chosen by tone and animations driven by position rather than frames. Anthropic shipped Claude Opus 5 today. Nobody asked us for a video, so we made one anyway — fifty-five seconds, twelve beats, every claim on screen lifted from the launch post itself. This is the hardest kind of unofficial spot to get away with: the brand is one most people look at daily, so a color that's a shade off or a serif that isn't quite the right serif reads instantly. Nothing here is eyeballed. claude-opus-5 arrives in clay. The brand is Claude's own, down to the woff2. The palette is read off claude.com's live stylesheet — the gray ramp for the stages, --color-oat , --color-olive for anything verified, and --color-clay d97757 as the one accent, spent only on the payoff word, the winning bar and the spark. The type is the three faces the site actually serves, vendored and gated behind delayRender so a frame never catches the fallback mid-swap, set at the site's own scale. The spark, the wordmark and the "By Anthropic" mark are the shipped SVG paths — and for the outro the wordmark is split at its subpath boundaries into six glyphs that each keep their counter, so C-l-a-u-d-e animate independently while staying Anthropic's own letterforms. Taken apart, never redrawn. Transitions are chosen by tone, not by variety. Three grammars carry the whole film: a lateral slide the outgoing scene shoved left, the incoming springing in from the right , a vertical rise, and a settle the outgoing scene shrinking away as one group, one empty gap frame, the incoming items landing from above-1 scale . A slide hands the stage over while the content is still travelling, so the stage color has to crossfade across the slide window — gorgeous between two scenes in the same tonal world, and six frames of flat mid-grey when paper dissolves into near-black. So every big tonal jump takes the settle, whose color change happens inside the empty gap frame and lands instantly; the lateral moves ride the pairs that already share a tone. Twelve scenes, one continuous canvas, no slideshow. No scene is allowed to arrive blank. The flip side of a clean hand-off: a slide gives the incoming scene a bare stage, so a scene whose first reveal starts at local frame 0 rides in as an empty card — the exact slideshow feel the cut exists to avoid. Every sliding scene pre-rolls its own clock by twelve to twenty frames, so its opening element is already on screen and moving as it arrives, while the rest of its reveals still land on their spoken cues. Two properties of one element never share a curve. Opacity rides a short quad ramp; transform rides a long exponential or a damped spring roughly three times its length. Stagger compresses rather than marching — pow i, 0.8 × base with a deterministic one-to-two-frame jitter — and children follow through, a check landing a few frames after its row on a looser damping. It is the difference between a slide that faded in and something that arrived. The outro is driven by position, not by frames. The spark's travel is one unbroken curve: a short counter-move to wind up, an accelerating sweep that eats the line, and a hand-off — with the slope still high — into a continuing acceleration straight off-scene. Each glyph's fate is a function of where the mark is , not of what frame it is, so the bite always lands exactly as the spark passes over, whatever the curve does. The spin is one constant rate, held from launch to the last blurred frame; it survives that speed because the mark has no rotational symmetry to alias against. The brief, as a prompt validated against a clean project + the remocn skill https://remocn.dev/docs/ai/agent-skill before publishing : I'm making an unofficial launch video for Claude Opus 5 anthropic.com/news/claude-opus-5 with remocn remocn.dev in a Remotion project — install anything you need with npx shadcn add @remocn/