oxframe vs fframes
Pick oxframe when you want layout, themes and components so an agent writes less, plus a check of the frames and a playground in the browser. Pick fframes when every frame should be a pure function returning SVG, with Skia on the GPU and shaders in any layer.
At a glance
| oxframe | fframes | |
|---|---|---|
| Language | Rust | Rust |
| How a frame is built | Nodes that stay linked: signals, layout, bind | A function of the frame index returning an SVG tree (svgr!) |
| Renderer | Own renderer, CPU (tiny-skia) or GPU (wgpu) | Skia on the GPU (Metal, Vulkan) or a CPU backend |
| Layout | Rows, columns, next_to, to_edge, text wrapping | Positions as SVG attributes; no automatic layout documented |
| Themes and components | Theme tokens; TitleCard, BulletList, CodeExplainer, LowerThird and more | Your own SVG |
| Encoding | Pipes frames to ffmpeg | Links ffmpeg libav statically |
| Install | Rust and ffmpeg | Rust plus codec development packages (x264, x265, opus, clang); prebuilt Skia and ffmpeg on macOS and Linux |
| Preview | oxframe dev, and a playground in the browser | A GPU preview window and a WebAssembly editor |
| An agent sees the frames | oxframe check with a JSON report, MCP server, 12 skills | A skill and a CLI: inspect, strip, frame, timeline |
| Shaders | WGSL shader nodes and effects | SkSL or Shadertoy GLSL in any layer |
| License | MIT or Apache-2.0 | MIT |
Two models of a frame
fframes asks one question per frame: given this index, what is the SVG? A scene implements a Video trait with render_frame, and the svgr! macro writes the SVG tree. That makes any frame cheap to reach and easy to reason about, and Skia on the GPU draws it fast. Its README reports a 128-second video rendered in 36 seconds.
oxframe keeps a scene graph. A title is a node; its opacity, position and text are signals that animate over time and can be bound to each other, so a label follows a point and a card grows with its text. Layout places nodes in rows and columns and wraps text, and components bundle the parts of an explainer. The agent writes "a bullet list next to the chart" instead of computing coordinates, which is less code to write and less to get wrong.
Both give an agent a way to look at the video without playing it. fframes has inspect, strip and frame commands; oxframe has check, which applies 15 rules (overflow, contrast, safe area, motion speed and more) and points at the node and the time of each problem.
Getting started, side by side
fframes, from its README:
cargo install --locked cargo-fframes --git https://github.com/dmtrKovalenko/fframes
cargo fframes new my-video
On Debian and Ubuntu it first needs yasm nasm ffmpeg libx264-dev libx265-dev libopus-dev libclang-dev clang ninja-build libvpx-dev libasound2-dev; prebuilt Skia and ffmpeg libraries are downloaded on macOS and Linux, and other targets build them from source.
oxframe:
cargo install oxframe-cli
oxframe init my-video
cd my-video && oxframe dev
It needs Rust and an ffmpeg binary on the PATH to write MP4; nothing else is compiled from source. Or skip the install and open the playground.
We have not timed the same scene in both: fframes needs those codec development packages, which the benchmark machine does not have. When it does, the numbers and the script will be on this page, as they are for Remotion and Manim.
When to pick fframes
- You think of a frame as a pure function and want SVG as the drawing model.
- You want Shadertoy shaders in any layer and Skia on the GPU.
- You are happy to place everything yourself.
When to pick oxframe
- An agent should write layout, not coordinates: rows, columns, wrapping text, themes.
- You want ready components for titles, lists, code and charts.
- You want a JSON report of what is wrong in the frames, an MCP server and a browser playground.
- Install should be Rust and ffmpeg, without codec development packages.
FAQ
Are oxframe and fframes both written in Rust?
Yes, and both render natively without a browser. They differ in how a frame is described: fframes returns an SVG tree per frame, oxframe animates a graph of nodes with signals and layout.
Does fframes have automatic layout?
Its README places elements with SVG attributes such as x, y, width and height and does not document flexbox, grid or text wrapping. oxframe has rows, columns, relative placement and wrapping text.
Which one renders faster?
Both are fast; neither starts a browser. We have not timed the same scene in both yet. When we do, the numbers will be on this page with the script.
Do both work with coding agents?
Yes. fframes ships a skill and an inspection CLI. oxframe ships 12 skills, a Claude Code plugin, an MCP server and oxframe check, whose report links every problem to its fix.
Which license?
fframes is MIT. oxframe is MIT or Apache-2.0, at your choice.
Sources
Checked on October 22, 2026. Found something out of date? Open an issue on oxframe-web.
- fframes site
- fframes on GitHub
- fframes on docs.rs
- oxframe license and what leaves your machine
- oxframe-sdk on GitHub