Sunday evening, on the couch, I shared five links from X to my agent inbox. All five were about the same thing: motion. Animated explainers, 3D loops, music videos — each one captioned made by Claude Opus 5.5.
The top one had 644,000 views and read:
You no longer need After Effects if you use Claude Opus 5.5 correctly. It's f*cking unreal… Send PDF below to Opus 5.5, and thank me later.
My note to myself said "Make something impressive for agentics.dk". On Monday we picked it up.
What's actually going on
Before building anything, I asked Claude to work out why motion is suddenly everywhere. Is it a new model that can do something new? Or a framework?
Short answer: it's not a video model. It's code.
- Opus 5.5 shipped on September 22, and the wave of "made with Opus 5.5" clips started right after. Anthropic didn't pitch it as a motion tool — the reputation was built by people posting demos.
- Claude Motion launched on October 8 in beta for Team and Enterprise. You type
/motion, Claude writes code that animates text, charts and shapes, and you download an MP4. Anthropic says it plainly: there's no video generation model, "so there's no generated footage and no AI-generated people". - The frameworks grew agent skills. Remotion (React → MP4), HeyGen's HyperFrames (HTML + GSAP) and three.js for 3D all ship recipes a coding agent can follow.
And this is where I stopped: Remotion has been around since 2021. We've used it on this very blog, and we've experimented with Lottie. Animation as code, rendered frame by frame to an MP4, is not new.
So what's everyone so excited about?
"One prompt" is a myth — almost
Behind the link was an article: Opus 5.5 Motion Lab. It was more honest than the post. Every animation came with its prompt and every follow-up. One clip took 10 follow-ups. The most-viewed music video in the feed was "five minutes of talking and a 12-hour run".
The interesting part wasn't the clip. It was the method: no fixes by gut feeling. Everything was measured — single-frame stills, timing tables, the decoded audio. The model can't hear, so the sound was timed from frame numbers and corrected by measuring.
I wanted to test that.
The experiment: same brief, two models
Here's what I typed to Claude (in Danish, typos and all):
Claude wrote a brief and launched two agents in separate tmux sessions — Claude Opus 5.5 in Claude Code and GPT-6-Astra in Codex, with exactly the same text. The subject was an assembly line: work enters, passes through stations, waits at a human approval gate and comes out finished. The requirements: one HTML page, an 8–12 second loop, sound synthesized in code, and the animation had to be seekable to an exact moment so the agent could take its own stills and fix things from them.
Motion Lab: "The Assembly Line" — a code-only motion piece for Agentics
You are a motion designer who works only in code. Build ONE short, looping, studio-quality animation as a self-contained HTML page. This is an experiment to see how far a coding agent can push motion design right now — aim for something that would make a designer stop scrolling, not a tech demo.
Background (why this exists)
A viral post claims Claude Opus 5.5 replaces After Effects. The credible version of that claim ("Opus 5.5 Motion Lab", @flxrnc) is: everything is code (three.js / shaders / canvas), rendered deterministically frame-by-frame, sound synthesized with the Web Audio API and timed from frame numbers — and every correction comes from measuring (frame stills, timing tables, decoded audio), never from guessing. We want to see what you can do with the same discipline.
The subject
Agentics (agentics.dk) runs assembly lines for AI coding agents: work enters a line, passes through a sequence of stations (each station is an agent doing one job — e.g. brief → design → build → review → ship), gates can hold work for human approval, and a finished artifact comes out the end.
Animate that idea. Suggested story (you may improve it, but keep it readable in one viewing): a raw piece of work enters, travels station to station, each station visibly transforms it (it gets more structured / refined / assembled), a gate pauses it for a beat and opens, and a finished, polished artifact emerges — then the loop closes seamlessly back to the start. Apply the classic principles: anticipation, squash & stretch, overlapping action, follow-through, arcs, easing. Make the motion feel good.
Brand
- Read
agentics-design-system/(README.md, tokens/, logo/, characters/) for colors, typography and the logo. Brand orange is #f87f2e — never generic Tailwind orange. - The Agentics mark is
>|. Using it (e.g. as the agent/station glyph or the end card) is welcome. - Calm, premium, light or dark is your call — but intentional.
Deliverable
Write everything inside your lane directory (given below):
index.html— the piece. Opens directly in a browser. Requirements:- Loops seamlessly, 8–12 seconds.
- Plays on load (silent). A small, tasteful "sound on" control enables audio — browsers block autoplaying sound.
- Deterministic time control: the animation must be a pure function of time
t. Exposewindow.seek(t)(seconds, pauses playback and renders exactly that moment) and support?t=3.25in the URL. This is what makes frame-accurate verification possible. - Sound synthesized in code with the Web Audio API (no sample files), each hit tied to the frame of the visual event it belongs to.
- Responsive: looks right in a square and a 16:9 viewport.
- External libraries ONLY from pinned exact-version URLs on
https://cdnjs.cloudflare.comorhttps://cdn.jsdelivr.net/npm/(e.g. three.js) — everything else inline. No other network requests, no local asset files other than what is inlined.
NOTES.md— your lab notebook, in English, with "receipts":- The concept and choreography (a beat sheet with timestamps).
- Every iteration: what you measured, what was wrong, what you changed. Be honest — include the failures.
- Final timings, what you're proud of, what you'd do with more time.
Method — verify by measuring
- Use Playwright (Node
playwrightis available vianpx; Chromium browsers are installed in~/.cache/ms-playwright) to load the page with?t=…/seek()and capture stills at key beats and around every transition and the loop seam (last frame vs first frame must match). Look at the stills yourself and critique them like a director. - Check the loop seam and the sync between sound events and visual events numerically.
- Do at least 4 rounds of capture → critique → fix. Stop when it is genuinely good, or after ~10 rounds.
- Put ALL captured stills, contact sheets, and any rendered video in your capture directory (given below) — NOT in the lane directory and NOT in /tmp (/tmp is RAM here).
- Optional but welcome: render a ~10 s mp4 preview into the capture directory with ffmpeg from captured frames (keep it modest: ≤ 1080p, 30–60 fps).
Hard rules
- Only write inside your lane directory and your capture directory. Read anything you like.
- Do not start, stop or touch Aspire, Docker, or any running services.
- If you hit the same wall 3 times, stop and write down what you tried in NOTES.md.
- Do NOT run
git addorgit commit. The parent reviews and owns git operations.
Stopping condition
When done: print DONE, list the files you wrote, and give a 5-line summary of the result
and how many iterations it took. Then stop.
Your directories
- Lane directory:
/workspaces/agentic-live-www/sandbox/motion-lab/opus/ - Capture directory:
/workspaces/bulkdata/motion-lab/opus/ - Repository root (read-only for you except the above):
/workspaces/agentic-live-www
Note: from my side, this really was one prompt. I didn't send either of them another message until they were done.
The result
Particles that become text, a wireframe, a card and a polished product. The approval is a blinking cursor that turns into >|.
- Time
- ~37 min
- Rounds
- 7
- Sound
- 42 events
Isometric machine blocks. Seven orange pieces become a sheet, a layout and an app window. The approval is an orange sliding door.
- Time
- ~16 min
- Rounds
- 6
- Sound
- 7 events
Both are pure code (Canvas 2D + Web Audio), rendered frame by frame. The Opus clip shows two loops. Astra rendered its preview at 1280×720.
Two very different takes on the same brief.
Astra made a calm, almost sculptural piece: isometric machine blocks, seven orange pieces that become a sheet, a layout, an app window, and an orange sliding door at the approval gate. Neat, tight, correct. More illustration than film.
Opus went cinematic: light cones from every station, film grain, motion blur, a camera punch when the work gets stamped. And one idea I didn't see coming. The approval gate is a giant blinking cursor — a prompt waiting for input. When the human approves, the > slides in and completes >|. Our logo suddenly becomes the point.
Opus wrote in its own notebook: "I didn't invent a metaphor; the logo already was one."
The receipts are the interesting part
Both agents kept a notebook for every round. That's where you see what has actually moved. A sample of bugs they found entirely on their own:
- Astra measured that the stamp motion peaked 48 ms before its frame. That a colour change snapped on a boolean threshold instead of blending. That the audio could replay stale hits after muting. And that its own test was failing falsely, because it measured before the window had finished resizing.
- Opus measured that the background light "teleported" at the loop seam — 36.3 dB against a normal 41.9 dB between two frames. That a waiting tone landed on a frame where the gate was dark. And that the loose particle cloud visually reached the first station 23 frames before the sound of it landing. The tables couldn't catch that one, because sound and picture came from the same numbers — so Opus wrote a tool that read pixels to get an independent measurement.
| Opus 5.5 | GPT-6-Astra | |
|---|---|---|
| Unattended time | ~37 min | ~16 min |
| Fix rounds | 7 | 6 |
| Sound events | 42, max 11 ms off picture | 7, under 0.05 ms off picture |
| Code | ~1,100 readable lines | ~120 very dense lines |
| Captures along the way | 935 MB | 212 MB |
Neither nailed the animation principles on the first try. Both got there by measuring their own work.
So what's new?
Not the tech. Canvas, Web Audio, Playwright and ffmpeg have been around for ages, and Remotion does the same job more elegantly.
What's new is that the model has become its own director. It takes stills, looks at them like a director would, finds the flaw, fixes it and measures again — six or seven times, without stalling and without me having to say "frame 84 peaks late". I used to be that loop. Now I write the brief and pick between two takes.
And then there's taste. Turning the approval gate into a waiting cursor isn't technique. It's an idea.
"After Effects is dead" is marketing on known tech. "Remotion with a better director" doesn't sell as well — but it's what actually happened.
The next experiment is obvious: the same brief through Remotion, to see whether the framework or the director matters more.
