effectcraft
EffectCraft
Audit basis: this checkout is tag v0.15.0, commit 15b8a916c528e73d48f7a9cb4ff58276c7a2d3dd. The installed /Applications/EffectCraft.app reports version 0.15.0 and its binary prints effectcraft 0.15.0, so the bundle matches this source exactly. Verify against your installed version if the ArtCraft Launcher has auto-updated since. No references/ directory ships with this skill: every claim is cited inline to the repository.
Overview
EffectCraft is a free, open-source, clean-room reimplementation of Adobe After Effects 2026 for motion graphics and visual effects: compositions, layers, keyframes, 307 effects, layer styles, expressions, Classic and Advanced 3D, tracking, roto/paint, a render queue and Lottie/timeline interchange. It is pure Rust with no FFmpeg; media codecs come from the sibling FilmCraft project, pinned by revision (Cargo.toml). It is alpha: the repo self-rates ≈91% feature breadth but ≈45% "ready for real work" (docs/gaps.md:15-28, docs/target-app-parity.md, crates/engine/src/commands/query.rs:202). FilmCraft is the editing/NLE sibling; EffectCraft is the compositor. Source: GitHub storytold/effectcraft, MIT OR Apache-2.0.
v0.15.0 is a hardening release, not a feature release: git diff v0.14.0 v0.15.0 touches 19 files (+280/−51) and adds no command, MCP tool, control method, format or shortcut. It fixes a precomp-cycle stack overflow (#1237), a NaN shape-path panic, a sampleImage integer overflow, feather points on the first vertex, a tiny-negative-hue HSV bug, and makes script array setters reject wrong dimensions like After Effects does (crates/project/src/lib.rs:1478, crates/path/src/lib.rs:133, crates/expr/src/sample.rs:99, crates/keyframe/src/value.rs:82, crates/script/src/prelude.js:869).
Capabilities (verified)
Project and document model
- Native
.ecprojis versioned, pretty-printed JSON headed bysavedByandschema(currently 2), withactiveComp/openComps/compTimes,settings,items,nextId,renderQueue, render templates and preferences (crates/project/src/lib.rs:34,59,1549-1567). Saving re-reads the text before writing and writes atomically, so a save cannot produce a file the app cannot open (crates/project/src/lib.rs:1545-1563,crates/engine/src/lib.rs:144). - XML project copy
.ecprojxis the same data asEffectCraftProjectXML (lossless, element-per-value, nesting capped at 128); Save a Copy As XML writes it,file.openreads it back, and a project opened from XML saves as XML again (crates/engine/src/xml_project.rs,crates/engine/src/commands/file.rs:43-91). - Autosave, crash recovery and MCP checkpoints;
mcp --autosavewrites a checkpoint after each mutating call (crates/engine/src/autosave.rs,docs/agents.md§Keeping headless work). Out-of-range values (size > 30,000 px, frame rate outside 0.001–1000, pixel aspect outside 0.1–10) are repaired on open and reported, not rejected (crates/project/src/limits.rs:16-25,crates/engine/src/commands/file.rs:49-65). - One project per app process, with compositions open as tabs restored from
openComps; 34 panel kinds and 15 named workspaces, and any panel can move to its own native window (crates/ui-egui/src/dock.rs:14-58,281-297,crates/ui-egui/src/menus.rs:523-532,docs/architecture.md§3).