mrkeyoor.com_
Thu 01 Oct 03:28 UTC
Dev Toolsevaluationupdated 01 Oct 2026

fframes review

fframes is a Rust framework for generating videos from SVG scenes, timed code, audio, and shaders. Its unusual strength is inspection: a coding agent can check frames, layout errors, motion, and sound through commands instead of pretending it watched the finished video.

Verdict

Our fframes run installed 747 packages and used 617 MB, yet it could not execute a root build or test target because neither script existed. Try it when a coding agent needs inspectable video output and your team is comfortable with Rust, Skia, and FFmpeg. Choose Remotion or Motion Canvas if JavaScript familiarity matters more than fframes' agent-readable diagnostics.

We ran it

Lab card: what happened when we ran fframesScreenshot of fframes (fframes.studio)
Install✓ · 32s747 packages · 617 MB
Buildn/ano build script
Testsn/ano test script
Repo2082 files~62,424 lines of source · 632.2 MB · 1 CI workflows

Answers from our run

Does fframes build from source?

Dependencies installed in 32 seconds (747 packages), and the project has no separate build step. We cloned commit 6454a6d into a clean Debian container with 3 CPUs and no project-specific setup.

Does fframes have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use fframes?

JavaScript teams that want to compose video in React: fframes projects use Rust functions and SVG trees.

What are the alternatives to fframes?

Remotion, Motion Canvas, Manim. Our fframes run installed 747 packages and used 617 MB, yet it could not execute a root build or test target because neither script existed.

Setup2/5747 packages plus Rust, FFmpeg, Skia, and platform setup
Docs4/5Commands, platform packages, codecs, and agent workflow are clear
Community3/51,582 stars and four open issues and PRs with daily activity
Maturity3/5v1.1.0 is fresh; two media correctness reports remain open

Who it’s for

Rust developers producing repeatable motion graphics, explainers, or batches of templated videos.
Coding-agent users who want machine-readable checks for layout, frames, motion, and audio.
Teams that need local GPU rendering with a browser editor and command-line output.
Video pipelines where SVG composition and exact code review matter more than a drag-and-drop canvas.

Who it’s NOT for

JavaScript teams that want to compose video in React: fframes projects use Rust functions and SVG trees.
Developers who need a clean root-level build and test gate from pnpm: our install succeeded, but the measured workspace exposed neither script.
Windows users who cannot manage a shared FFmpeg 9.0 build, LLVM, paths, and codec constraints documented by the project.
H.264 pipelines that cannot risk missing tail frames: issue 156 reproduces final-frame loss with B-frame input, and its fix was still an open pull request.
Color-managed work that depends on exact BT.709 conversion: open issue 157 reports native PNG output resembling BT.601 colors.

Setup reality

Our pnpm run at commit 6454a6d installed 747 packages in 32 seconds and used 617 MB. The 632.2 MB checkout had no root build script or test script, so both steps were skipped. That means we verified dependency installation, not a rendered video or the Rust workspace.

Actual use needs Rust. Editor work also needs Node.js, pnpm, just, cargo-watch, wasm-bindgen-cli, and wasm-pack. Native rendering links FFmpeg libraries; Linux, macOS, and Windows have different packages and codec paths.

Prebuilt Skia and FFmpeg artifacts cover common macOS and Linux targets. Other targets can compile them locally. Windows needs an FFmpeg 9.0 shared build plus LLVM, while CPU mode drops the preview window and gives up GPU rendering.

The inspection commands make generated video reviewable

A coding agent cannot sit through a clip and decide whether the pacing feels wrong. fframes works around that blind spot with outputs the agent can parse. inspect samples the video and reports missing fonts, clipped text, bad SVG, or panics with a time and scene. strip makes a contact sheet, onion blends a movement into one image, and audio analyze reports loudness, peak, clipping, and silence. That is the project's clearest reason to exist.

Humans still get a GPU preview window and a browser editor with a timeline. The final video comes from render, while snapshot comparisons mark changed pixels against approved PNG files. A scene can be addressed by frame, seconds, percentage, or a named scene offset. Add --json and the diagnostic output becomes suitable for an automated loop. This is a thoughtful toolset for reviewing code-generated motion without claiming a model can literally watch or listen.

Rust and SVG replace the familiar React composition model

Each frame is an SVG tree returned by a Rust function. The svgr! macro mixes markup with expressions, and timeline helpers map frame positions to transforms and easing. Static markup is cached, Skia draws through Metal on macOS or Vulkan on Linux and Windows, and FFmpeg's libraries handle encoding. Shader layers accept SkSL or Shadertoy-style GLSL when SVG cannot produce the desired image.

That stack gives you explicit source and native rendering, but it asks for Rust fluency. The simplest manual start installs cargo-fframes, creates a project, and opens a release-mode preview. Templates cover single or multiple scenes, horizontal, portrait, square, and UHD output. Existing examples include product motion, podcast visualizers, vertical clips, shaders, and conference splash screens. They are useful starting points, though none replaces learning ownership and lifetimes when the generated code stops compiling.

The bundled coding-agent skill is the bridge. Its Markdown guides cover the workflow, API, visual design, and sound, then steer the agent from an empty folder to an MP4. The framework's verbose API is easier for a code generator than for someone expecting a direct manipulation editor. You should still watch the preview. The diagnostics can catch clipped text and silence, but they cannot judge whether a joke lands or a transition feels cheap.

What happened when we ran it

Our sandbox installed the pnpm dependencies for commit 6454a6d in 32 seconds. It added 747 packages and occupied 617 MB on disk. The container had 3 CPUs, 8 GB of RAM, Node 22, no secrets, and no elevated privileges. The install passed without an error. The checkout itself was 632.2 MB, with 2,082 files and about 62,424 lines of source.

No root build script or target was available to our harness, so the build step was skipped. The same was true for tests: there was no root test script or target to run. Our scan found one CI workflow, no Dockerfile, no tests directory, and pnpm workspaces. These facts do not say the Rust crates cannot build. They say this measured Node workspace did not provide the standard gates our runner looks for.

We therefore did not render a frame, compile the Rust workspace, or test the GPU paths in this run. The distinction matters because most of fframes lives beyond pnpm install. A successful 32-second dependency installation is evidence that the JavaScript workspace resolves at that commit. It is not evidence about FFmpeg linking, Skia, codec output, browser playback, or video correctness. Plan a platform-specific render check before adopting it.

Native media dependencies are the real setup cost

Rust is required, and editor contributors also need Node.js plus pnpm, just, cargo-watch, wasm-bindgen-cli, and wasm-pack. Debian users are told to install FFmpeg, x264, x265, Opus, VPX, Clang, libclang, NASM, Yasm, Ninja, and ALSA development packages. macOS has its own Homebrew list. Common macOS and Linux architectures can download prebuilt Skia and FFmpeg artifacts, while other combinations may compile them.

Windows follows a different route. The README specifies an FFmpeg 9.0 shared build and LLVM, with FFMPEG_DIR, LIBCLANG_PATH, and PATH pointing to the right files. Codec features that request a source FFmpeg build are unsupported there. CPU mode avoids Skia, but it also removes the preview window and renders more slowly according to the project. These are normal native-media complications, and they make a container-free setup guide especially valuable.

Cached native builds can also fail on a different processor if they were compiled with machine-specific flags. fframes provides a build-portable feature for artifacts that move across machines. That detail belongs in CI from day one. A cache that saves time on one runner and crashes with SIGILL on another is worse than rebuilding, particularly for a renderer used in unattended batch work.

Two open reports touch the last frame and color output

Issue 156 reproduces an H.264 B-frame input losing its final frames at end of file. An open pull request was working on draining delayed frames when we checked. Issue 157 reports BT.709 input being converted into native PNG frames with colors resembling BT.601. Neither report came from our sandbox, but both concern output correctness rather than cosmetic inconvenience. Test your real codecs and color path before producing a large batch.

The project was pushed on October 1, 2026, and v1.1.0 shipped on September 30 with a fix limiting codec threads during parallel segment rendering. GitHub listed 1,582 stars and four combined open issues and pull requests. That is active maintenance around a very young 1.x release. fframes is a serious experiment with a useful inspection model. Its best buyer is ready to own a native Rust video stack and treats the one-line skill install as the start of the work.

Alternatives

ProjectWhat it isPick it when
Remotion gh↗A React-based system for composing and rendering video in JavaScript.pick this instead when your team already knows React and wants its larger video ecosystem.
Motion CanvasA TypeScript animation system with generator-based timelines and a visual editor.pick this instead when TypeScript and an interactive scene workflow fit better than Rust and SVG macros.
Manim gh↗A Python engine built around precise programmatic animations and mathematical diagrams.pick this instead when explanatory math animation and Python are the main requirements.

What people are saying

  1. [github-trending] dmtrKovalenko/fframes

Sources

  1. fframes README
  2. fframes v1.1.0 release
  3. H.264 final-frame loss issue
  4. BT.709 color conversion issue

More dev tools reviews

libuv · Ikemen-GO · gander · lipgloss · roundhouse · GhostTrack · the whole board →