filmcraft README

The project's README from github.com/storytold/filmcraft. As one markdown file: README.md.

ArtCraft

FilmCraft

Video editing, color and sound; an open-source, clean-room reimplementation of Adobe Premiere Pro, rebuilt 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.

License: MIT OR Apache-2.0 Written in pure Rust Runs on macOS, Windows and Linux Status: young and moving fast

Join the ArtCraft community on Discord

FilmCraft on getartcraft.com · ArtCraft · All Crafting Apps


FilmCraft in the Color workspace, mid-way through an Apollo 11 documentary cut from NASA footage: the Program monitor on the Saturn V clearing the launch tower with a Launch Complex 39A lower third and an air-to-ground subtitle, Effect Controls with Lumetri and Scale keyframes on the shot, the Lumetri Color panel, bins of NASA selects, and a timeline with 49 picture cuts, B-roll, titles, a caption track, mission audio, a ducked music bed, named markers, a rendered section and live loudness meters

Apollo 11 - Tranquility: a three-minute documentary edit of NASA's 1969 launch, landing and moonwalk film, with subtitles from the mission transcript. Every frame in these screenshots comes from public-domain footage, decoded, composited and graded by FilmCraft's own code.

[!NOTE] ArtCraft is a community of artists from all walks of life. Digital, generative, music, games — if you make things, you're one of us. Come say hi on Discord.

Edit · Color · Effects · Audio · Titles · Formats · Export · Interchange · Agents · Get started · Downloads · Docs · Status


FilmCraft is a non-linear editor for people who know Premiere: the same panels, workspaces, tools and shortcuts, so your hands already know where everything is. Underneath, it is new from the bitstream up. The H.264, HEVC, ProRes and AAC codecs are our own, written in Rust from the public specifications. A GPU compositor works in linear light. Frame math runs on exact integer time, so edits never drift. And every action in the app is a command that an AI agent can drive as precisely as you can.


Edit

Assembly workspace: bins of film thumbnails, Carnival of Souls in the Source monitor, a Night of the Living Dead cemetery shot in the Program monitor, and the trailer on a three-track timeline with a Chopin score on A2 and loudness meters

The Assembly workspace, cutting a trailer for Night of the Living Dead (1968) with an insert from Carnival of Souls (1962).

A timeline you already know. Source and Program monitors, bins with thumbnails, a multi-track timeline with patch and target buttons, sync locks and linked selection. The Editing, Assembly, Color, Effects and Audio workspaces are all there, and every panel docks wherever you want it.

Timeline close-up: Night of the Living Dead shots with dissolves on V1, a Carnival of Souls insert on V2, the Chopin nocturne as a green waveform on A2, coloured markers along the ruler, and the loudness meter reading momentary, short-term, integrated and true-peak values

Up close: dissolves, an insert on V2, the score on A2, coloured markers, and the loudness meters on the right.


Color

Color workspace on Charade (1963): Cary Grant and Audrey Hepburn in the Program monitor, the waveform and vectorscope on the left, and the trailer bins and timeline below

The Color workspace on Charade (1963), with live scopes beside the Program monitor.

A complete Lumetri-style grading panel, in the order a colourist works:

The Lumetri Color panel on Charade (1963): Basic Correction sliders with coloured temperature and tint tracks, collapsed Creative and Curves sections, shadow, midtone and highlight colour wheels, and HSL Secondary and Vignette toggles
The Lumetri Color panel. Basic Correction, Color Wheels and every other section, each with its own on/off switch.
Lumetri Scopes: a green luma waveform and a vectorscope of a Charade (1963) frame
Scopes that tell the truth. The waveform and vectorscope are computed from the graded frame. All grading happens in linear light, in 32-bit float.

Effects and motion

Effects workspace: Effect Controls with Motion, Opacity, Time Remapping and Lumetri Color, NASA's Earth Views from the ISS in the Program monitor, and the Effects browser open on the Dissolve transitions

NASA's Earth Views from the ISS with a look applied, and the Effects browser open on the dissolves.

Effect Controls with the value and velocity graphs of an eased Scale push-in on the Night of the Living Dead title card, the Program monitor showing the title over a country road, and the Properties panel with Transform and Crop

An eased push-in on the title card: the value graph, the velocity graph and the Bezier influence handle.


Audio


Titles and captions


Formats and codecs

No FFmpeg inside. The video codecs, AAC, Opus and the containers are our own Rust code, implemented from the public ITU-T, ISO and IETF specifications and tested frame by frame against ffmpeg as an external oracle.

Decode Encode Notes
H.264 / AVC ✓ ✓ Decoder bit-exact on 37+ streams, 500–600 fps at 1080p. Encoder: High, Main and Baseline profiles, CABAC, B-frames, CRF/CBR/VBR/2-pass
HEVC / H.265 ✓ Main and Main 10, bit-exact on 41 streams (tiles, WPP, PCM, long-term references), about 225 fps at 1080p
Apple ProRes ✓ ✓ Decodes 422 Proxy to 4444 XQ; export writes 422 HQ
AAC-LC ✓ ✓
VP9 ✓ Profiles 0–3, 8/10/12-bit, 4:2:0 to 4:4:4, tiles and superframes; bit-exact on 50+ streams; in WebM/Matroska and MP4
Opus ✓ SILK, CELT, hybrid and multistream surround; range-exact on every RFC 8251 conformance vector; in WebM/Matroska and MP4
AV1 ✓ Main profile, 8/10-bit 4:2:0 and monochrome, every coding tool incl. film grain, superres and spatial layers; bit-exact with libdav1d on the libaom vectors tested; in MP4 and WebM/Matroska
Avid DNxHD / DNxHR ✓ ✓ All SMPTE ST 2019-1 CIDs (LB to 444, 8/10/12-bit); export writes DNxHR in MOV
MJPEG, PCM ✓ ✓
MP3, FLAC, ALAC, Vorbis ✓ Via the symphonia crate (MPL-2.0) for now, to be replaced by our own
MP4 / MOV ✓ ✓ Fragmented MP4, edit lists, timecode tracks
Matroska / WebM ✓ Lacing, Cues, header stripping, HDR colour metadata
Stills ✓ ✓ Import PNG, JPEG, GIF, WebP, TIFF and BMP; export PNG sequences and animated GIF

Also imported: MPEG-2 / MPEG-1 video, AC-3, MP2, MXF (OP1a / OP-Atom), MPEG transport and program streams (AVCHD, broadcast, DVD), Ogg and image sequences. Not yet: AV1 export, camera RAW, E-AC-3. Hardware decoding works on macOS (VideoToolbox), Windows (Media Foundation) and, for H.264 and HEVC, Linux (VA-API); H.264 export can use NVIDIA's encoder on Windows and Linux (opt-in), and H.265 (HEVC Main, 8-bit) export works through it (NVENC on Windows, VideoToolbox on macOS) (#30).


Export

Export mode: destinations for Media File, YouTube, Vimeo, TikTok, Instagram and FTP on the left, a Night of the Living Dead frame in the preview, and H.264 settings on the right (1440x1080 at 23.976 fps, 48000 Hz stereo, entire sequence)

Export mode, set to write the trailer as H.264 MP4.


Interchange

Move timelines between FilmCraft and every other editor:

Import merges the document's bins, media and sequences into your project as one undoable step, and links each media file it finds on disk.


Built for agents

Every menu item, button, slider and drag in FilmCraft is a command with an id, typed parameters and an enabled state. There are more than 650 engine commands (filmcraft-cli commands lists them), with the rest of Premiere's catalogue on the way. The UI, the CLI, a JSON control channel and an MCP server all dispatch the same commands, so Claude or any agent can cut, trim, grade, mix and export exactly the way a person does. The UI can also be driven at the level of mouse and keyboard: every widget has an automation id, and agents can click, drag, type and take screenshots.

// over the control channel (JSON lines on TCP) or as MCP tool calls
{"method": "engine.execute", "params": {"command": "timeline.place",
  "params": {"item": 1, "track": "V1", "seconds": 0, "sourceIn": 284298240000000, "duration": 1270080000000}}}
{"method": "engine.execute", "params": {"command": "effects.setParam",
  "params": {"clip": 87, "effect": "lumetri", "param": "curve_luma", "value": [[0,0],[0.25,0.21],[0.75,0.82],[1,1]]}}}
{"method": "ui.screenshot", "params": {"path": "frame.png"}}

The trailer and the grades in these screenshots were built exactly this way, by an agent driving the running app.


Everywhere


Get started

cargo run --release -p filmcraft                           # the desktop app, with a 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)

Japanese text in the interface and in titles comes from craft-fonts, an optional build input (release builds always include it; without it FilmCraft uses its own and the system's fonts):

git clone https://github.com/storytold/craft-fonts ../craft-fonts
CRAFT_FONTS_DIR="$PWD/../craft-fonts" cargo run --release -p filmcraft

The control protocol is documented in docs/control-protocol.md. Stuck, or want to show what you made? Ask in Discord.

Documentation

CONTRIBUTING.md · docs/contributing.md Setup, quality gates, commit conventions, how to add commands, effects, codecs, panels and assets
AGENTS.md The rules every contributor must follow: assets, clean room, licences
docs/architecture.md Layers, data model, time base, command system, render and export pipeline
docs/testing.md Unit, property and ffmpeg-oracle tests, accuracy criteria, benchmarks
docs/agents.md Driving FilmCraft over MCP and the control channel; how agents develop it
docs/control-protocol.md Control-channel and MCP reference
docs/project-files.md .fcproj format, schema migrations, auto-save and crash recovery
docs/graphics.md · docs/captions.md Text engine, graphic clips and tools; caption tracks and formats
ROADMAP.md Stage, parity numbers, languages, what's next and the progress log
docs/target-app-parity.md · docs/gaps.md · docs/roadmap.md Parity assessment against Premiere Pro, the ranked list of shortfalls, milestones and current focus
docs/codec-parity.md · docs/file-format-parity.md · docs/hardware-parity.md · docs/ui-parity.md · docs/localization-parity.md Parity checklists by dimension

Status

FilmCraft is young and moving fast. Editing, trimming, multicam, colour, keyframes, effects, titles, captions, mixing, codecs and export work today.

FilmCraft is in alpha. We track two numbers (docs/target-app-parity.md, re-measured 2026-10-10 against Premiere Pro 26.5.2):

The biggest gaps today:

Bug reports with real footage are the most useful thing you can send us: open an issue or tell us in Discord.

Architecture

A layered Cargo workspace:

Layer Crates
Codecs and containers h264, h264enc, hevc, vp9, prores, aac, opus, isobmff, matroska, bitstream
Foundations time, geom, color, frame, media, text, project, audio-dsp
Editing and interchange edit, codecs, captions, format (project files), interchange
Rendering and output render, gpu, export
Engine engine: command registry, session, undo, jobs
Front ends ui-egui, automation (MCP), apps/filmcraft, apps/filmcraft-cli
Test support testkit (ffmpeg oracles, fixtures), golden (golden-image tests)

Nothing below the front ends depends on a UI toolkit or OS API. cargo xtask ci checks formatting, lints, tests, the layering rules, asset attribution and the wasm build.

Downloads

New to FilmCraft? Download it from the FilmCraft page on getartcraft.com. That's the easiest way to install it.

Want a specific build or format? On GitHub, the latest release has every build listed below, and all releases has earlier versions and their notes. <ver> in the file names is the version number, and SHA256SUMS.txt lists a checksum for every file.

Windows

Build Installer Portable
x64 (64-bit Intel/AMD) filmcraft-<ver>-windows-x64.msi filmcraft-<ver>-windows-x64-portable.zip
arm64 (Snapdragon and other ARM PCs) filmcraft-<ver>-windows-arm64.msi filmcraft-<ver>-windows-arm64-portable.zip
x86 (32-bit) filmcraft-<ver>-windows-x86.msi filmcraft-<ver>-windows-x86-portable.zip

Installers and executables are code-signed.

If the app doesn't open on Windows: the desktop app initializes only Vulkan and DirectX 12 by default, not OpenGL. Letting wgpu also create an OpenGL instance can crash some graphics drivers (AMD's atio6axx.dll) before the window appears, so the app would flash in Task Manager and quit. WGPU_BACKEND overrides the default for troubleshooting (for example dx12 or vulkan). In PowerShell, from the folder containing the executable:

$env:WGPU_BACKEND = "vulkan"
& .\filmcraft.exe
Remove-Item Env:WGPU_BACKEND                     # restore the default for later launches

An explicit gl override can bring the driver crash back on affected systems. The macOS, Linux and web backend defaults are unchanged.

macOS

Build File Notes
App, universal (Apple silicon + Intel) filmcraft-<ver>-macos-universal.dmg Signed and notarized
Command-line tool, universal filmcraft-cli-<ver>-macos-universal.zip Signed and notarized

Linux

Format x86_64 aarch64 (ARM64) Notes
AppImage filmcraft-<ver>-linux-x86_64.AppImage filmcraft-<ver>-linux-aarch64.AppImage Runs anywhere; updates itself with AppImageUpdate (.zsync files)
Flatpak filmcraft-<ver>-linux-x86_64.flatpak filmcraft-<ver>-linux-aarch64.flatpak Sandboxed; flatpak install --user <file>
Debian/Ubuntu filmcraft-<ver>-linux-x86_64.deb filmcraft-<ver>-linux-aarch64.deb
Fedora/RHEL/openSUSE filmcraft-<ver>-linux-x86_64.rpm filmcraft-<ver>-linux-aarch64.rpm
Tarball filmcraft-<ver>-linux-x86_64.tar.gz filmcraft-<ver>-linux-aarch64.tar.gz Unpack and run ./install.sh

RISC-V (riscv64): filmcraft-<ver>-linux-riscv64.tar.gz (tarball only; needs glibc 2.39+, e.g. Ubuntu 24.04 or Debian 13).

The tarball installer places FilmCraft, its command-line tool and desktop integration in ~/.local, without administrator permissions. For all users, run sudo ./install.sh --prefix /usr/local instead. Running the installer again updates the installation.

Gentoo (community-maintained): the ::snakebyte overlay packages the Linux release as media-video/filmcraft-bin. It is maintained by the community, not by the FilmCraft team, so report packaging problems to the overlay:

eselect repository add snakebyte git https://github.com/switch87/snakebyte-overlay.git
emaint sync -r snakebyte
echo 'media-video/filmcraft-bin ~amd64' >> /etc/portage/package.accept_keywords/filmcraft
emerge --ask media-video/filmcraft-bin

FreeBSD

Build File
x86_64 filmcraft-<ver>-freebsd-x86_64.tar.gz

Web (WebAssembly)

Build File Notes
Static site filmcraft-web-<ver>.zip Runs in a modern browser; host it on any static server

The Crafting Apps

FilmCraft is one of the Crafting Apps: free, open-source creative tools from the ArtCraft team, each written from scratch in Rust and each able to stand on its own.

App What it's for Code Learn more
PhotoCraft Image editing: layers, masks, type and real PSD files GitHub Website
VectorCraft Vector illustration GitHub Website
FilmCraft Video editing, color and sound · you are here GitHub Website
LightCraft Photo library and raw development GitHub Website
PdfCraft Reading, organizing and protecting PDFs GitHub Website
EffectCraft Motion graphics and visual effects GitHub Website
DesignCraft Page layout and publishing GitHub Website

And ArtCraft itself, our AI image and video studio for artists who want real control.


Join the ArtCraft community on Discord

Come make things with us

Our Discord is where artists of every kind hang out: people who paint, shoot, draw, cut film, set type, and people still figuring out what they like to make. Share what you're working on, ask for help, tell us what's broken, or tell us what you wish these tools could do. Whatever your medium and however long you've been at it, you're welcome here.

discord.gg/artcraft · getartcraft.com · The Crafting Apps · FilmCraft


License and credits

FilmCraft is dual-licensed under MIT or Apache-2.0, at your option. Copyright (c) 2026 ArtCraft Team and the FilmCraft contributors. Required notices are in NOTICE.

Bundled fonts, icons, images and other assets keep their own open licenses; each one is listed with its author, source and license in ATTRIBUTION.md. Builds made with craft-fonts (all official releases) also embed its fonts (OFL-1.1), listed in its ATTRIBUTION.md.

Footage and music in the screenshots: NASA's Apollo 11 film and television footage from images.nasa.gov (launch, Launch Control Center, lunar surface and recovery) and the Apollo 11 air-to-ground voice transcript, all US Government works in the public domain (NASA does not endorse this project); Night of the Living Dead (1968), Carnival of Souls (1962) and Charade (1963), all in the US public domain; Earth Views from the ISS by NASA; Chopin's Nocturne Op. 48 No. 1 and Ballade No. 1, performed for Musopen and released under CC0. The media itself is not in this repository. Sources and details for every asset are in ATTRIBUTION.md.

FilmCraft is an independent implementation. It contains no Adobe code, icons, images, presets or LUTs, and no GPL or LGPL code; every icon is drawn in code and every asset is openly licensed and attributed (AGENTS.md), apart from the ArtCraft name and logos, which are trademarks of the ArtCraft Team used under docs/brand/LICENSE-brand.txt. ffmpeg is used only as an external test oracle.

The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the ArtCraft Team and are not covered by this license. They may be used only unmodified, and only as part of this repository and FilmCraft, under docs/brand/LICENSE-brand.txt. Forks and modified versions must remove them.

Adobe, Photoshop, Illustrator, Premiere Pro, Lightroom, Acrobat, After Effects and InDesign are trademarks or registered trademarks of Adobe Inc. in the United States and/or other countries. FilmCraft is an independent, open-source project and is not affiliated with, sponsored by or endorsed by Adobe Inc.; these names are used only to describe the workflows it is compatible with.


ArtCraft
Made by the ArtCraft team and community.

Star history

Star History Chart

filmcraft (storytold/filmcraft)

vulkan
Searching Database…

14.6K ·GitHub
What is this?FilmCraft is an open-source, clean-room reimplementation of Adobe Premiere Pro, rebuilt from scratch in pure Rust with its own codecs, a GPU compositor and a typed command system.
Is this built on Adobe's actual code, or a from-scratch clone?It is a completely independent, clean-room build: the team wrote the H.264, HEVC, ProRes and AAC codecs, plus the compositor, from public specifications instead of reusing Adobe's or FFmpeg's code, while mirroring Premiere's panels and shortcuts.
How do I get FilmCraft running?FilmCraft runs natively as a desktop app on macOS, Windows and Linux, or compiles to WebAssembly to run in a browser; the README links a 'Get started' guide with the full build and launch steps.
Do I need FFmpeg or other codec libraries installed?No - the video and audio codecs are FilmCraft's own Rust implementations rather than wrappers around FFmpeg; only a few legacy audio formats (MP3, FLAC, ALAC, Vorbis) still go through the third-party symphonia crate until native decoders replace it.
Can it encode every format it can decode?Not yet - HEVC, VP9, AV1 and Opus are currently decode-only, and MXF export plus hardware-accelerated decode are still on the roadmap.
Does it run in a browser, or only as a native desktop app?Both - it ships as a native app for macOS, Windows and Linux and also compiles to WebAssembly so it runs directly in a web browser.
What powers the GPU compositor?A compositor built on wgpu that targets Metal, Vulkan, DirectX 12 and WebGPU, sampling YUV straight from the decoder and blending everything in linear light.
What does 'Built for agents' actually mean?Every menu item, button and slider in FilmCraft is a typed command, and the UI, CLI, a JSON control channel and an MCP server all dispatch the same roughly 135 commands, so an AI agent like Claude can cut, trim, grade and export exactly as a human editor would.
Can I bring in projects from Premiere, Final Cut or Avid?Yes - FilmCraft reads and writes Final Cut Pro 7 XML, FCPXML, OpenTimelineIO, CMX 3600 EDL, AAF and OMF 2.0, so timelines move between it and Premiere, DaVinci Resolve, Final Cut Pro or Avid Media Composer.
How accurate are FilmCraft's own codecs compared to FFmpeg?They are tested frame by frame against ffmpeg as an external oracle; the H.264 decoder is bit-exact on 37+ conformance streams and runs around 500-600 fps at 1080p.
Who makes FilmCraft?It's built by the ArtCraft team, a community of digital, generative, music and game artists who hang out on Discord.
Creator
storytold
Size
30.4 MB
Stars
14.6K
Age
18d
Commits · 90 Days