2026-10-01 21:49:20 -04:00

ArtCraft

EffectCraft

Motion graphics and visual effects, in pure Rust.

A free, open-source compositor in the spirit of After Effects: compositions, layers, keyframes, effects and expressions, native on macOS, Windows and Linux, and in the browser later on. It is in early development. The engine crates are being written now and there is no app to run yet.

Status: early development Written in Rust License: MIT or Apache-2.0

Join the ArtCraft community on Discord

EffectCraft on getartcraft.com · ArtCraft · All Crafting Apps

Note

ArtCraft is a community of artists from all walks of life. Painters, photographers, filmmakers, illustrators, designers, animators, hobbyists, and people who picked up a pencil last week. If you make things, you're one of us. Come say hi on Discord.

What it is · Where it stands · The plan · Building · How it's made · The Crafting Apps · License

What EffectCraft is

EffectCraft is for animated titles, motion graphics and compositing work: the kind of thing people reach for After Effects to do. You build a composition out of layers (solids, shapes, text, footage, other compositions), animate their properties with keyframes, stack effects on them and render the result.

The aim is to feel familiar to anyone who has used After Effects, with the same panels (Project, Composition, Timeline, Effect Controls, Effects & Presets) and the same keyframe behaviour, and then to go further in a few places where it matters to us:

  • Lottie import and export built in, so animations can go straight to the web and apps without a plugin.
  • A project file you can read. Projects are versioned JSON (.ecproj), so they diff cleanly in version control.
  • Everything is scriptable. Every menu item, timeline drag and property edit goes through one command registry, so the same actions are reachable from a command line, a JSON control channel and an MCP server for agents.
  • No FFmpeg. Video and audio decoding and encoding come from FilmCraft's own pure-Rust codecs.

Where it stands

Important

There is no app to run yet. EffectCraft is in its first milestone. The planning is done and the low-level engine crates are being written. The windowed app, the renderer and the effects come next. If you want to follow along or help shape it, the Discord is the place.

What State
Built The plan: an After Effects UI and feature reference, a full effects list, the architecture and a milestone plan (see plan/) Done
In progress Engine foundation crates: time, geometry, color and blend modes, keyframes, the project model, raster images, Bezier paths, text Early code and first tests
Next The compositor, a first set of effects, the editing engine and the After Effects style interface rendering an animated demo composition Not started
Later Precomps and preview, shapes and masks, 3D, expressions, text animators, export, GPU rendering, the web build Planned

The live checklist is plan/STATUS.md.

The crates so far

Crate What it does
effectcraft-time Exact media time in integer ticks, so 23.976 and 29.97 fps, drop-frame timecode and audio sample rates never drift
effectcraft-geom 2D and 3D vectors, matrices and the layer transform (anchor, position, scale, rotation, orientation)
effectcraft-color RGBA color, sRGB transfer, HSL and HSV, and the 38 After Effects blend modes
effectcraft-keyframe Animated values: linear, hold and Bezier keyframes with speed and influence, and spatial motion paths
effectcraft-project The document: project items, compositions, layers and the property tree
effectcraft-raster Floating-point premultiplied images with warps, blurs and compositing, parallel across cores
effectcraft-path Bezier shapes, path operations (trim, round corners, zig zag, offset and more), stroking and anti-aliased fills
effectcraft-text Fonts, shaping, bidirectional text, line breaking and glyph outlines for text layers

These are moving fast. Expect names and APIs to change.

The plan

EffectCraft is built in milestones. The first one is about getting something you can see on screen as early as possible, then filling in depth underneath.

Milestone What you'll get
M0 Skeleton and visual shell The full panel layout over a real CPU compositor playing an animated demo composition, about 8 effects, and the control channel and MCP server
M1 Keyframes Complete temporal and spatial interpolation, Easy Ease, roving keys, velocity
M2 Compositing All 38 blend modes, track mattes, parenting, 8/16/32 bit per channel behaviour
M3 Project operations Composition and layer settings, layer commands, save and open .ecproj, undo, clipboard
M4 Preview and precomps Nested compositions, adjustment layers, motion blur, cached RAM preview with audio
M5 Timeline depth Keyframe editing, the graph editor, markers, trims, time remapping
M6 Shapes, masks and footage Shape layers and path operations, masks, the pen tool, video and image import
M7 3D 3D layers, cameras and lights
M8 Expressions JavaScript expressions with the After Effects object model (wiggle, loopOut, thisComp and friends)
M9 Text and effects Text animators, text on a path, layer styles, the first 60 effects
M10 Export Render queue, image sequences, H.264 and ProRes, GIF, command-line rendering
M11 Animation tools Motion Sketch, Wiggler, presets, Lottie import and export, audio
M12 Performance GPU compositing and effects, disk cache, motion tracking
M13 to M16 Beyond More effects, puppet and paint tools, polish, the web app, a plugin API

The details, with an acceptance test for every task, are in plan/execution-plan.md and plan/architecture.md.

Building from source

You need Rust 1.95 or newer. There is nothing to launch yet, but you can build and test the engine crates:

git clone https://github.com/storytold/effectcraft
cd effectcraft
cargo build
cargo test

To work on one crate:

cargo test -p effectcraft-keyframe

The workspace picks up every crate under crates/, so while a new crate is half-written the whole build can break for a while. The cargo xtask helpers named in the plan (layer checks, asset checks, CI) are not written yet.

How it's made

  • Engine first. A stack of small crates with strict layering. The interface (egui) sits on top and nothing underneath depends on it.
  • Clean room. We work from After Effects' public documentation and how it behaves, never from Adobe's files, icons, presets or code. No code is copied from GPL projects. The full rules are in plan/README.md.
  • Private by default. No telemetry, and no network access unless you ask for it.
  • One family. EffectCraft shares its time model and text engine design with FilmCraft, and gets its video and audio codecs from it (see plan/adr/).

The Crafting Apps

EffectCraft 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 getartcraft.com
VectorCraft Vector illustration (formerly DrawCraft) GitHub getartcraft.com
FilmCraft Video editing, color and sound GitHub getartcraft.com
LightCraft Photo library and raw development GitHub getartcraft.com
PrintCraft Reading, organizing and protecting PDFs GitHub getartcraft.com
EffectCraft Motion graphics and visual effects · you are here GitHub getartcraft.com
DesignCraft Page layout and publishing GitHub getartcraft.com

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 · EffectCraft

License and credits

EffectCraft is dual-licensed under MIT or Apache 2.0, at your option. Bundled fonts and other non-code assets are listed with their authors and licenses in ATTRIBUTION.md.

After Effects is a trademark of Adobe. EffectCraft is an independent project and is not affiliated with or endorsed by Adobe.

ArtCraft
Made by the ArtCraft team and community.

S
Description
No description provided
Readme
49 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 95.3%
WGSL 2.8%
JavaScript 1.6%
Shell 0.2%
PowerShell 0.1%