Remotion browser-based
- React
- DOM
- Headless Chromium
- Screenshot per frame
- Encode
- Video
Browser, DOM, CSS layout and IPC overhead on every single frame.
Author in React. ONDA compiles your composition to a scene graph and renders it natively on the GPU — no Chromium, no per-frame screenshots, no browser tax.
this backdrop: rendered by the engine · onda export · no browser
01 The problem
Remotion drives every frame through headless Chromium: DOM, CSS layout, a screenshot, IPC — whether the frame is six nodes or two hundred. That cost is fixed. It's the browser tax, and you pay it per frame, per worker, forever.
Browser, DOM, CSS layout and IPC overhead on every single frame.
No browser anywhere. Deterministic output — one lean process per machine, no browser pool to babysit.
02 The architecture
The scene graph is the contract. React, JSON, or an AI agent emit it; one native renderer draws it. Author like Remotion, finish like a film — no browser to install, version-pin, or babysit.
# render through the GPU (Vello) backend — no browser involved
onda render scene.json out.png
onda export movie.json out.mp4 --backend vello Anti-aliased fills and strokes, real rounded rects, arbitrary Bézier paths, linear/radial gradients, clip masks, native per-glyph vector text, and <Svg> import that expands logos into vector nodes.
<Composition>, <Rect>, <Path>, <Sequence>, useCurrentFrame, interpolate, spring. The Remotion DX you know, compiled to a scene graph.
React, JSON or an AI agent all emit the same graph. Your agent emits JSON; ONDA returns deterministic video — no headless browser farm behind your API.
A render-to-texture effects stack: blur, bloom, film grade, grain, depth-of-field and motion blur — plus 3D layers and extruded text and logos. Land AI media beautifully.
Draw <Image> and <Video> straight into the scene; decode audio with FFT spectrum, beat-sync and a declarative synth — sound is part of the graph, not bolted on.
--backend auto|vello|cpu. The tiny-skia CPU reference renders fills, strokes, gradients and paths byte-identical to Vello for deterministic CI. Export PNG / GIF / MP4 from the onda CLI.
Built on a Rust workspace, source-available under FSL-1.1-Apache-2.0. Read the docs →
03 The proof
The advantage is architectural, not a single magic benchmark. Remotion's cost is nearly content-independent; ONDA's tracks what you actually draw — so the gap widens as scenes get heavier.
~26 fps
Remotion, per worker
Holds ~26 fps whether the scene has 6 nodes or 201. You're paying the browser tax — layout, paint, screenshot, IPC — not for the drawing.
217 fps
ONDA GPU, the heavy scene
Renders a 33× heavier scene (201 nodes) only 1.4× slower than trivial. One parallel pass, not N browser screenshots. Cost tracks the graphics.
5.4×
faster export → MP4
one ONDA process vs one Remotion worker — same libx264 encoder, 1080p trivial scene
8.5×
per worker, heavy scene
ONDA GPU vs one Remotion worker at 201 nodes — up from 3.8× on a trivial scene
100× target
architectural ceiling
where the architecture points — complex scenes × GPU present × cold-start × concurrency. A target we publish, not a number we've measured.
Measured on an Apple M4 Pro at 1080p, 120 frames — Remotion 4.0.470 vs ONDA 0.1.0, libx264 on both engines, so the win is the no-browser raster, not the encoder. One single-threaded ONDA process also outpaces Remotion's full multi-worker pool (~1.7×) before ONDA parallelizes anything. Numbers vary by scene, hardware and config. Full method & reproduction →
80+ components · 21 transitions · 17 effects · FFT analysis + a declarative audio synth · 3D layers — every one a node in the same scene graph. No plugins. No browser.
ONDA Studio · built on this engine
Studio is the hosted AI director on top of the same engine: describe the film, and it authors the composition, the cut, the grade, and the score — then renders it through the exact pipeline on this page. Same scene graph, same deterministic frames. The engine stays free to use and source-available; Studio is for the days you'd rather direct than build.
cargo + pnpm and you're rendering in minutes. Clone,
compose, export — the source is all public.