Measured, not asserted.
Four engines, the same videos, one machine. Clipkit's native runtime renders the median benchmark video in 3.4 seconds — against 33.7s for Remotion and 107.2s for HyperFrames. Our browser runtime, the open one, still beats both. Every implementation was validated, token-counted, and render-verified. Our ground rule: bias lives in choosing the battlegrounds, never in the measurement — numbers we don't like get published anyway.
How long the same video takes to render.
Same briefs, same laptop, back to back. Clipkit ships two runtimes of one engine: the browser runtime, which is open source and runs anywhere WebGPU runs, and the native runtime — the same engine and the same shaders compiled to drive a GPU directly, with no browser in the loop. That is what runs on our render cloud. Both are measured here against both alternatives.
| engine | median render per video | Clipkit native is | Clipkit browser is |
|---|---|---|---|
Clipkit — native runtime Rust + wgpu, no browser · n=13 | 3.4s | — | — |
Clipkit — browser runtime WebGPU + WebCodecs, open source · n=15 | 13.4s | 4.4x faster | — |
Remotion React + headless Chrome · n=13 | 33.7s | 8.2x faster | 2.5x faster |
HyperFrames HTML + headless Chrome · n=10 | 107.2s | 29.5x faster | 8.1x faster |
Intel i9-9980HK / AMD Radeon Pro 5500M / macOS, wall clock per render, medians. Cells are the 60-cell agent benchmark below: each engine renders the artifact its own agent authored, gated by its own validator, on its own real pipeline — no engine is asked to run another's output. The speed-up columns are median paired per-cell ratios over cells where both engines produced a video, so they are not the medians divided. n differs by column because engines fail on different cells, and a failed render has no time to compare; the failures are counted in the validity table below. Native crashed on 2 of 15 cells on this GPU — see what we don't claim.
What happens when agents actually author.
60 cells: 5 briefs (kinetic type, data scene, brand sizzle, UI screencast, 30s launch spot) x 3 model tiers (Haiku 4.5, Sonnet 5, Opus 4.8) x isolated authoring agents per tool. Artifacts validated with each tool's own gate, rendered on the real pipelines, tokens pulled from the agents' transcripts. Render speed for these same cells is the table above.
| tool | valid videos | median cost / video |
|---|---|---|
| Clipkit (agent card) | 15/15 · 100% | $0.89 |
| Remotion | 13/15 · 87% | $0.82 |
| HyperFrames | 10/15 · 67% | $1.43 |
The honest read: Remotion is slightly cheaper per attempt — and ships an invalid video 13% of the time, discovered only after you render. Validity is the product. Remotion's two failures compiled cleanly (tsc-green) and crashed at render time; a schema gate catches the same class before a frame is drawn.
The same video, three formats, counted.
Tokens are the unit AI systems pay in. Each brief below was implemented in all three tools; counts are tiktoken o200k_base. Clipkit is counted minified (what the MCP server and structured outputs emit); Remotion includes its registration file.
| brief | clipkit | remotion | vs clipkit | hyperframes | vs clipkit |
|---|---|---|---|---|---|
| Title Card | 328 | 547 | 1.67x | 583 | 1.78x |
| 15s Promo (the pitch brief) | 233 | 444 | 1.91x | 573 | 2.46x |
| Lower Third | 343 | 551 | 1.61x | 616 | 1.80x |
| Kinetic Words | 254 | 618 | 2.43x | 831 | 3.27x |
| Stat Bars | 498 | 813 | 1.63x | 1,105 | 2.22x |
| Slideshow | 362 | 671 | 1.85x | 1,123 | 3.10x |
| Quote Card | 409 | 610 | 1.49x | 709 | 1.73x |
| Logo Sting | 661 | 871 | 1.32x | 996 | 1.51x |
| Progress Steps | 620 | 960 | 1.55x | 1,335 | 2.15x |
| Countdown | 342 | 710 | 2.08x | 890 | 2.60x |
| Grid Reveal | 296 | 613 | 2.07x | 929 | 3.14x |
| Gradient Hero | 561 | 770 | 1.37x | 837 | 1.49x |
| Multiscene | 622 | 1,009 | 1.62x | 1,132 | 1.82x |
| median | 1.63x | 2.15x |
Every ratio above 1.00x is a cell Clipkit wins. There are no cells below 1.00x — and if there were, they would be in this table.
The corpus is the proof. Open it.
Below is the actual benchmark corpus — every brief, all three implementations, the exact files behind the table above. Read them side by side, copy them out, or open the Clipkit source in the editor and watch it render live in your browser.
The full suite — corpus, runners, timing scripts, and methodology — is being published as an open-source repo so the numbers can be reproduced (and challenged) on your hardware. Machine-record template included; PRs adding briefs or engines are welcome once it lands.
The numbers that didn't favor us.
- A clean sweep on render speed — the native runtime crashed on 2 of 15 cells (an uploaded texture wider than this GPU’s 8,192px limit) and lost one cell outright to our own browser runtime, 27.4s vs 11.1s, on a composition stacking per-element blurs. 13/15 rendered; the losing cell is in the ratio.
- "75% fewer tokens" — our real medians are 39% and 53%; we publish the distribution.
- "200+ fps browser export" as a blanket claim — that is Apple-Silicon-scoped (M4, n=3); the same export runs 4–5 fps on an Intel i9, and both rows are published.
- "No headless browsers" — Remotion and HyperFrames drive one for every render, and so does our browser runtime; only the native runtime has no browser in the loop.
- Agent-lane token superiority — Remotion agents emit terser code per attempt; our agent-lane win is validity at cost parity, not tokens.
Conditions: Intel i9 MacBook Pro / M4 mini (both recorded), Node 22, remotion 4.0.498–499, hyperframes 0.6.97–0.7.68, @clipkit/* 1.0.1–1.3.0, tiktoken o200k_base. Full per-experiment conditions ship with the repo.