Go to file
Brandon Thomas 498ac6da23 Merge branch 'worktree-agent-a4193d1e7345108d5' 2026-09-30 11:12:22 -04:00
.cargo M0.12: xtask layers/wasm/ci gates (layer table, same-layer allow-list, UI crates barred below L5); cargo alias 2026-09-30 10:02:36 -04:00
apps M6.2: own AAC-LC decoder replaces the symphonia bootstrap for AAC; AAC encoder for MP4 export 2026-09-30 07:38:47 -04:00
assets M0.10/M0.11: egui shell — docking workspaces, header/menus, Project, Source/Program monitors, Timeline with all edit tools, Tools, Effects, Effect Controls, Lumetri, meters, mixer, control channel, desktop app with cpal audio 2026-09-30 06:29:18 -04:00
crates Merge branch 'worktree-agent-a4193d1e7345108d5' 2026-09-30 11:12:22 -04:00
docs README: hero screenshot of the demo project, highlights, quick start, Craft family table; status messages expire after 8 s 2026-09-30 11:08:00 -04:00
xtask M0.12: xtask layers/wasm/ci gates (layer table, same-layer allow-list, UI crates barred below L5); cargo alias 2026-09-30 10:02:36 -04:00
.gitignore M0.3–M0.8: geom, color, frame, media generators, project model, edit algebra, CPU renderer 2026-09-30 05:58:41 -04:00
.mcp.json M14: MCP server (headless + bridge to live app), filmcraft-cli (probe/commands/render/run/mcp), .mcp.json, control protocol docs 2026-09-30 06:50:31 -04:00
CLAUDE.md M0.1/M0.2: workspace skeleton, time and bitstream crates 2026-09-30 05:33:20 -04:00
Cargo.lock Merge branch 'worktree-agent-a4193d1e7345108d5' 2026-09-30 11:12:22 -04:00
Cargo.toml Merge branch 'worktree-agent-a4193d1e7345108d5' 2026-09-30 11:12:22 -04:00
README.md README: hero screenshot of the demo project, highlights, quick start, Craft family table; status messages expire after 8 s 2026-09-30 11:08:00 -04:00
ROADMAP.md Add ROADMAP.md: parity estimate, milestone status, remaining agent-hours 2026-09-30 10:58:09 -04:00
rustfmt.toml M0.1/M0.2: workspace skeleton, time and bitstream crates 2026-09-30 05:33:20 -04:00

README.md

FilmCraft

Non-linear video editing, reimagined in pure Rust.
An open-source, clean-room take on the Adobe Premiere Pro workflow: native on macOS, Windows and Linux, and in the browser via WebAssembly.
By the artcraft team.

FilmCraft editing the demo project: Effect Controls, the Program monitor on an ocean sunset, Properties, the Project bin, and a multi-track timeline with transitions, markers and audio waveforms

Highlights

  • Own codecs, in Rust. H.264 decoder (bit-exact against ffmpeg, 500+ fps at 1080p) and encoder (High profile, CABAC, B-frames, 2-pass), HEVC Main/Main 10 decoder, ProRes decode and encode, AAC-LC decode and encode, and an MP4/MOV demuxer and muxer. No FFmpeg inside.
  • Real editing. Insert, overwrite, ripple, roll, slip, slide, rate stretch, razor, lift/extract, nesting and markers, all built on an exact integer time base (254,016,000,000 ticks per second), so frame math never drifts.
  • GPU compositing. A wgpu compositor samples YUV directly with footprint supersampling and blends in linear light, with a matching CPU path. Playback runs in real time at 1080p, using the audio clock as master.
  • Colour. Lumetri-style grading: basic correction, creative looks, RGB and hue curves, colour wheels, HSL secondary and vignette, plus waveform and vectorscope.
  • Keyframes. Linear, Bezier, auto/continuous Bezier, hold and ease, with value and velocity graphs.
  • Export. H.264 MP4 with AAC, ProRes and MJPEG MOV, PNG sequences, GIF and WAV, run as background jobs.
  • Agent-drivable. Every action is a command. The UI, a CLI, a JSON control channel and an MCP server all drive the same engine, so Claude or any agent can edit, grade and export.

Status

Early but moving fast: about a quarter of the way to Premiere Pro parity. See ROADMAP.md for milestone status and estimates.

Quick start

cargo run --release -p filmcraft                           # desktop app with the demo project
cargo run --release -p filmcraft -- --control 9876         # plus the JSON-lines control server
cargo run --release -p filmcraft-cli -- commands           # list every engine command
cargo run --release -p filmcraft-cli -- mcp                # MCP server (headless)

The control protocol is documented in docs/control-protocol.md.

Architecture

A layered Cargo workspace: codecs and containers at the bottom, then frames and media, project model and edit algebra, rendering and export, the engine (command registry, session, undo), and finally the swappable UI (ui-egui). Nothing below the UI layer depends on a UI toolkit or OS APIs, and everything up to the engine compiles to wasm32. cargo xtask ci checks formatting, lints, tests, the layering rules and the wasm build.

The Craft family

Open-source, clean-room, pure-Rust creative tools. Each runs natively on macOS, Windows and Linux, and on the web.

PhotoCraft Image editing and compositing, Photoshop-class: layers, masks, adjustments and byte-exact PSD/PSB round trips.
DrawCraft Vector illustration, Illustrator-class: paths, shapes, type and artboards.
FilmCraft Non-linear video editing, Premiere Pro-class: timeline editing, own codecs, GPU compositing, colour and export. You are here.
LightCraft Photo library and non-destructive raw developer, Lightroom-class: catalog, culling, develop and export.
PrintCraft PDF viewing and editing, Acrobat-class: pages, annotations, forms and document tools.

Clean room

FilmCraft is an independent implementation. It contains no Adobe code, assets, presets or LUTs, and no GPL/LGPL code; codecs are implemented from the public ITU-T and ISO specifications. ffmpeg is used only as an external test oracle. Adobe and Premiere Pro are trademarks of Adobe Inc.; FilmCraft is not affiliated with Adobe.