EffectCraft v0.22.0

EffectCraft is an open-source motion graphics and visual effects application designed as a clean-room reimplementation of Adobe After Effects. Written in Rust, it provides a native desktop editor for Windows, macOS, and Linux, alongside a browser-based version.

The application focuses on professional animation and compositing workflows, including keyframes, animated text, masks, visual effects, 3D cameras, lights, and a render queue. Its interface follows familiar After Effects conventions, making it easier for experienced motion designers to understand its workflow.

EffectCraft also stands out for its automation capabilities. Projects use a readable JSON-based format, and the application exposes its editing engine through a command-line interface, a JSON control channel, and an MCP server for AI agents.

Features

EffectCraft includes a broad collection of tools for motion graphics and visual effects.

  • Timeline and keyframes: Animate layer properties with linear, Bezier, hold, and eased interpolation. The Graph Editor provides value and speed graphs for adjusting animation curves.

  • Layer compositing: Combine text, shapes, footage, nested compositions, adjustment layers, solids, cameras, and lights. Parenting, track mattes, blend modes, and motion blur are supported.

  • Shape animation: Create shape layers with trim paths, repeaters, rounded corners, gradient strokes, and other procedural shape operators.

  • Masks and selection: Draw and edit masks with feathering, expansion, and different compositing modes.

  • Text animation: Work with point text, paragraph text, text animators, range selectors, and text-on-path workflows.

  • Expressions: Use JavaScript expressions with familiar After Effects-style objects and functions, including wiggle, loopOut, and layer references.

  • Puppet tools: Animate character and object deformations with pins, mesh controls, rigging, and follow-through.

  • Visual effects: Apply blur, sharpening, color correction, distortion, keying, noise, stylization, transitions, simulation, and audio effects.

  • Layer styles: Apply effects such as Drop Shadow, Inner Glow, Outer Glow, Bevel and Emboss, Satin, Stroke, and color overlays.

  • 3D scenes: Work with 3D layers, cameras, lights, depth of field, and shadows.

  • Motion tracking: Use tracking and analysis tools for motion-related workflows.

  • Audio support: Preview animations with synchronized audio, waveforms, meters, and audio effects.

  • Lottie integration: Import and export supported animations for use in websites and applications.

  • Render queue: Export animations and compositions to video, audio, image sequences, and animated formats.

  • Automation: Control editing operations through the CLI, JSON interface, and MCP server.

The effects library is particularly ambitious, covering hundreds of effects inspired by familiar After Effects categories. It includes tools for color correction, distortion, keying, simulation, perspective, time manipulation, audio processing, and stylization.

Lottie import and export is another practical advantage. It allows compatible animations to move between EffectCraft and web or application workflows without requiring a separate export plugin.

Download EffectCraft v0.22.0 - Software Mirrors

EffectCraft v0.22.0 for Windows

effectcraft-0.22.0-windows-x86.msi | 58.93 MB

effectcraft-0.22.0-windows-x86-portable.zip | 75.61 MB

effectcraft-0.22.0-windows-x64.msi | 60.43 MB

effectcraft-0.22.0-windows-x64-portable.zip | 80.14 MB

effectcraft-0.22.0-windows-arm64.msi | 53.89 MB

effectcraft-0.22.0-windows-arm64-portable.zip | 73.72 MB

EffectCraft v0.22.0 for macOS

effectcraft-cli-0.22.0-macos-universal.zip | 72.6 MB

effectcraft-0.22.0-macos-universal.dmg | 77.56 MB

EffectCraft v0.22.0 for Linux

effectcraft-0.22.0-linux-x86_64.tar.gz.asc | 228 B

effectcraft-0.22.0-linux-x86_64.tar.gz | 76.91 MB

effectcraft-0.22.0-linux-x86_64.rpm.asc | 228 B

effectcraft-0.22.0-linux-x86_64.rpm | 78.19 MB

effectcraft-0.22.0-linux-x86_64.pkg.tar.zst | 53.68 MB

effectcraft-0.22.0-linux-x86_64.flatpak.asc | 228 B

effectcraft-0.22.0-linux-x86_64.flatpak | 49.67 MB

effectcraft-0.22.0-linux-x86_64.deb.asc | 228 B

effectcraft-0.22.0-linux-x86_64.deb | 78.69 MB

effectcraft-0.22.0-linux-x86_64.AppImage.zsync.asc | 228 B

effectcraft-0.22.0-linux-x86_64.AppImage.zsync | 248.53 kB

effectcraft-0.22.0-linux-x86_64.AppImage.asc | 228 B

effectcraft-0.22.0-linux-x86_64.AppImage | 70.94 MB

effectcraft-0.22.0-linux-riscv64.tar.gz.asc | 228 B

effectcraft-0.22.0-linux-riscv64.tar.gz | 74.65 MB

effectcraft-0.22.0-linux-riscv64.rpm.asc | 228 B

effectcraft-0.22.0-linux-riscv64.rpm | 76.04 MB

effectcraft-0.22.0-linux-riscv64.deb.asc | 228 B

effectcraft-0.22.0-linux-riscv64.deb | 76.23 MB

effectcraft-0.22.0-linux-aarch64.tar.gz.asc | 228 B

effectcraft-0.22.0-linux-aarch64.tar.gz | 71.6 MB

effectcraft-0.22.0-linux-aarch64.rpm.asc | 228 B

effectcraft-0.22.0-linux-aarch64.rpm | 74.26 MB

effectcraft-0.22.0-linux-aarch64.pkg.tar.zst | 50.52 MB

effectcraft-0.22.0-linux-aarch64.flatpak.asc | 228 B

effectcraft-0.22.0-linux-aarch64.flatpak | 43.74 MB

effectcraft-0.22.0-linux-aarch64.deb.asc | 228 B

effectcraft-0.22.0-linux-aarch64.deb | 75.01 MB

effectcraft-0.22.0-linux-aarch64.AppImage.zsync.asc | 228 B

effectcraft-0.22.0-linux-aarch64.AppImage.zsync | 231.52 kB

effectcraft-0.22.0-linux-aarch64.AppImage.asc | 228 B

effectcraft-0.22.0-linux-aarch64.AppImage | 66.08 MB

EffectCraft v0.22.0 for BSD

effectcraft-0.22.0-freebsd-x86_64.tar.gz | 76.31 MB

effectcraft-0.22.0-freebsd-aarch64.tar.gz | 73.33 MB

Others Download related to EffectCraft v0.22.0

release-signing-key.asc | 803 B

effectcraft-web-0.22.0.zip | 21.2 MB

EffectCraft v0.22.0 Source Code

EffectCraft v0.22.0 Source code (zip)

EffectCraft v0.22.0 Source code (tar.gz)

EffectCraft v0.22.0 Release Notes:

What's Changed

  • OCIO config: a mismatched closing bracket ends a flow collection; multiline flows parse in linear time by @dylanmtaylor in #2939
  • Roto Brush: keep frozen mattes in a session without their model (#2833) by @JonRC in #2834
  • Import: EDL source timecodes land on each file's own time (#2832) by @JonRC in #2835
  • Lottie: read the closed flag older Bodymovin files keep outside the path by @JonRC in #2842
  • Text animators: a later animator's Opacity can show characters an earlier one hid by @JonRC in #2843
  • Lottie: warn when embedded glyphs (chars) are not imported by @JonRC in #2847
  • Import: BT.2020 PQ and HLG video gets the Rec. 2100 profile (#2849) by @JonRC in #2852
  • G2: --save runs on one project take turns, so no edit is lost by @JonRC in #2872
  • Export: H.264, HEVC and AV1 tag the frames' own colour (#2879) by @JonRC in #2881
  • Viewer: the Rotation tool turns a child around its own anchor by @barchukmov in #2887
  • Puppet: a click where the deformed layer is empty creates nothing by @barchukmov in #2891
  • UI: Composition Settings widens to fit a longer translation (#2841) by @ljkx in #2892
  • SAM 2: read the wgpu env variables and refuse adapters without compute shaders (#2900) by @JonRC in #2905
  • Layer and item names: a second layer or a copy of v-b1.mp4 is v-b1.mp4 2 (#2904) by @JonRC in #2908
  • Text animators: say that animator indexes count from 1 (#2907) by @JonRC in #2909
  • Match Grain: take no sample box beside transparent pixels (#2919) by @JonRC in #2922
  • material.set: name the Material Options a layer doesn't have (#2917) by @JonRC in #2924
  • Panels: the panel menu stays as wide as its contents (#2864) by @barchukmov in #2933
  • Panels: the gutter keeps rows clear of the scroll bar (#2867) by @barchukmov in #2934
  • Viewer, Timeline: a middle-drag pans and moves no layer (#2854) by @barchukmov in #2935
  • Cryptomatte eyedropper: pick IDs in the viewer from the Selection (#473) by @MatejKozlovsky in #2957
  • 3D Camera Tracker: Effect Controls say how many frames a partial solve solved (#2959) by @JonRC in #2960
  • Effect Controls: Shift-click selects a range of effects by @barchukmov in #2962
  • i18n(ja): the work area is ワークエリア in the panel too by @zitann2020 in #2978
  • Pre-compose: layers left behind drop links to moved layers; default names are numbered by @nanox333 in #2979
  • Render Queue EXR sequences are scan-line, not tiled (#2805) by @HEOJUNFO in #2812
  • test(cli): a child that exits before draining stdin breaks the write, not the test by @rahul05ranjan in #2819
  • 3D Camera Tracker: a partial solve is not reported as solved (#2822) by @JonRC in #2824
  • Motion Tile: mirror folds sample the edge texel, not the transparent outside (#2820) by @rahul05ranjan in #2825
  • Fix #2803: Timewarp plays an animated Speed as a rate by @arnav-hiwarkar in #2878
  • Viewer: dragged layers snap to other layers' midpoints and center lines by @barchukmov in #2885
  • Timeline: box selection selects a keyframe as soon as it touches it by @barchukmov in #2888
  • CLI: props prints an enum's label next to its number (#2928) by @JonRC in #2931
  • i18n: complete the Traditional Chinese effect names (#2037) by @tommy1616 in #2981
  • Path booleans: sparse winding numbers and bounded merge runs by @dylanmtaylor in #2946
  • Mask feather: bound the variable feather's distance pass by @dylanmtaylor in #2947
  • Settings: when recovering from a bad value, try only the settings' own pages one by one by @dylanmtaylor in #3010
  • GPU: free effect working textures after each call instead of at frame end by @MatejKozlovsky in #1523
  • gpu: memory back-pressure for frames in flight (fixes OOM at 3–4 frames in flight) by @MatejKozlovsky in #1550
  • gpu: run Content-Aware Fill's PatchMatch and flow on the GPU by @gmrmad1 in #1856
  • Preview: debounce GPU OOM bursts and recover the frame budget by @howdeploy in #3025
  • Fix GPU/CPU parity in numerical effects by @skylartaylor in #1490
  • GPU: Posterize and CC Grid Wipe match the CPU on AMD and Intel (#1605) by @00xJS in #1836
  • GPU: build effect kernels on first use, each family from a module of its own (fixes #1590) by @00xJS in #1705
  • #1487: size the GPU memory cap from the card's video memory where Linux reports it (depends on #1550) by @00xJS in #1706
  • OCIO: refuse a .csp LUT whose header claims an oversized table before reserving it by @dylanmtaylor in #2938
  • After Effects project import (.aep / .aepx); export follows by @vangel76 in #2558
  • Content-Aware Fill: drop redundant full-range copies (#2570 phase 1) by @gmrmad1 in #2806
  • Pass the Linux signing key to the release workflow by @dylanmtaylor in #3074
  • About: credits column widths come from a tested fit_widths by @FredApps in #3039
  • G8: Plug-in Library: install, preview and update community WebAssembly effects by @iseemhlyfta in #2524
  • Frames cache: edits keep the frames they can't reach by @nazar-gavrylyk in #2795
  • Plug-ins: external effect helpers (safe, out-of-process native effects) + plug-in API 2 by @glumbis in #889
  • Effect ▸ Install Effect Plug-in… and plug-in bundles (wasm + ScriptUI panel in one go) by @justanshh in #2749
  • Timeline: a double-click on the composition marker bin adds a marker at the current time (#1826) by @ZIDAN44 in #3091
  • expr: an expression cannot rebind a prelude name for the next one (#2133) by @Anubhav-Rai in #2176
  • Grow the buffer to the pinned quad so Corner Pin draws outside the layer rectangle (#1938) by @MarekSpodBiedry in #1967
  • Export: use conformant ProRes alpha run termination by @skylartaylor in #2225
  • Content-Aware Fill: spill the range and stream the output (#2570 phases 2-4) by @gmrmad1 in #3079
  • Multi-layer EXR: one decode per frame shared by the picture and EXtractoR / Cryptomatte, picture-only decode for footage alone (#474) by @vangel76 in #2920
  • perf(media): tell the media pool which EXR footage effects read (#474) by @vangel76 in #2929
  • EXR export: no compand / tone mapping, and the output space's own curve (#2913) by @vangel76 in #2916
  • HDR Highlight Compression: match After Effects' compression curve by @vangel76 in #3133
  • .aep import: read effect values stored as default-state records by @vangel76 in #3134
  • Cryptomatte: Matte Only puts the matte in RGB with alpha 1, as After Effects does by @vangel76 in #3130
  • Render Queue OpenEXR: choose compression and half or 32-bit float by @vangel76 in #2915
  • Reveal newly created mask controls in the Timeline by @arnav-hiwarkar in #3149
  • After Effects project export, every chunk built in code (stacked on #2558) by @vangel76 in #2594
  • Report offline footage and recover automatically when media returns by @arnav-hiwarkar in #3161
  • Copy the shared house rules into AGENTS.md by @FredApps in #3162
  • contributors: set names for vangel76 by @vangel76 in #3041
  • Skip the startup update check when started for an agent by @vangel76 in #3097
  • Effects: Write-on and Stroke Brush Size go up to 200 px (#2980) by @vangel76 in #3021
  • EXR export: write the output space's chromaticities attribute by @vangel76 in #3038
  • Import: EDL clips without a SOURCE FILE link the file beside the list (#2836) by @vangel76 in #3019
  • Home screen: leave it when a menu command opens a composition by @vangel76 in #3092
  • Disk cache: stamp footage files for the salt off the UI thread by @vangel76 in #3106
  • Scripting: After Effects match names for 14 effects and Casts Shadows by @vangel76 in #3122
  • .aep import: map HDR Highlight Compression, Echo, Linear Wipe, Offset and Color Stabilizer by @vangel76 in #3119
  • .aep import: name the After Effects version in the report; 25.x and 24.x copies import like 2026 by @vangel76 in #3136
  • Color Stabilizer and Linear Wipe: match After Effects (sample positions, feather) by @vangel76 in #3135
  • Timeline: one selection box spans the layer list and the time graph by @vangel76 in #3075
  • Project panel: the Name column fits long names and resizes by @vangel76 in #3094
  • Viewer: Alt-drag duplicates the dragged layers by @vangel76 in #3076
  • Layer: Quick Set Anchor, nine anchor points with Position compensation by @vangel76 in #3080
  • Masks: set the corner roundness of a Rounded Rectangle mask by @vangel76 in #3077
  • Viewer exposure on the full float range of 32 bpc frames by @vangel76 in #2937
  • Cryptomatte: the Layer popup lists the footage's Cryptomatte layers (#473) by @vangel76 in #3020
  • Project panel: fix main's clippy failure in show() by @FredApps in #3173
  • Timeline: hover texts for the icon-only column headers and layer switches by @vangel76 in #3096
  • Accessibility (gap 25), slice 2: Info, Flowchart, Script Console and the 3D Camera Tracker block named, described and keyboard-operable (builds on #1339) by @vangel76 in #1341
  • .aep import: map the Cryptomatte plug-in to EffectCraft's Cryptomatte by @vangel76 in #3109
  • Posterize on the GPU: divide by the levels exactly by @FredApps in #3179
  • EXR golden test: compare samples near, not bit for bit by @FredApps in #3181
  • Display pass tests: a virtual GPU gets the software tolerance by @FredApps in #3182

New Contributors

  • @barchukmov made their first contribution in #2887
  • @ljkx made their first contribution in #2892
  • @rahul05ranjan made their first contribution in #2819
  • @tommy1616 made their first contribution in #2981
  • @howdeploy made their first contribution in #3025
  • @00xJS made their first contribution in #1836
  • @iseemhlyfta made their first contribution in #2524
  • @nazar-gavrylyk made their first contribution in #2795
  • @glumbis made their first contribution in #889
  • @justanshh made their first contribution in #2749
  • @ZIDAN44 made their first contribution in #3091
Full Changelog: v0.21.1...v0.22.0

Performance and Compatibility

EffectCraft is written in Rust and uses a modular architecture intended to keep the editing engine independent of the graphical interface. Its rendering system supports GPU acceleration, while CPU-based processing remains available for relevant operations.

The project is designed to run on Windows, macOS, and Linux. A WebAssembly build also allows the editor to run in a browser, with browser storage used for projects and related data.

Its rendering pipeline supports H.264, ProRes, HEVC, AV1, VP9, and Opus, alongside image sequences and other export formats. The project emphasizes Rust-based media processing rather than depending on FFmpeg as its internal encoding and decoding foundation.

EffectCraft also offers a useful approach to project files. Its native .ecproj format uses versioned JSON, making projects easier to inspect, compare, and manage in version control than opaque binary documents.

However, EffectCraft cannot open native After Effects .aep or .aepx project files, and third-party After Effects plugins cannot run in it. Compatibility with individual effects and workflows should therefore be tested before considering a complete migration.

The project is also relatively young. Although its feature list is extensive, the developers acknowledge that real-world workflow reliability and output fidelity still need further validation. Having an equivalent tool does not necessarily mean that it behaves identically to its After Effects counterpart.

System Requirements

EffectCraft supports:

  • Windows

  • macOS

  • Linux

  • WebAssembly-compatible browsers

Prebuilt desktop packages are available for supported platforms. Linux distributions have access to AppImage, DEB, RPM, and tarball packages, including x86_64 and ARM64 builds.

Building from source requires Rust and the appropriate platform dependencies. The browser version requires a WebAssembly-compatible browser and suitable graphics support.

Because EffectCraft can process complex compositions, performance will depend on the GPU, available memory, footage resolution, effect complexity, and output settings. The project does not yet provide sufficient real-world benchmarking to establish reliable performance expectations for every workload.

Pros and Cons

Pros

  • Free and open-source

  • Native Rust architecture

  • Windows, macOS, and Linux support

  • Browser-based WebAssembly version

  • Extensive keyframe and animation controls

  • Graph Editor with value and speed graphs

  • Large collection of visual effects

  • Masks, shape layers, and text animation

  • Expressions and puppet tools

  • 3D cameras, lights, and depth of field

  • GPU-accelerated rendering

  • Broad video and audio export support

  • Lottie import and export

  • Readable JSON-based project format

  • CLI and MCP automation

  • No telemetry by default

  • Designed to work offline

Cons

  • Still a young project

  • Cannot open native After Effects project files

  • No compatibility with third-party After Effects plugins

  • Output fidelity against After Effects has not been comprehensively measured

  • Some platform-specific workflows still need refinement

  • Performance on complex projects requires more independent benchmarking

  • Certain advanced features remain under development

  • Professional production workflows may require workarounds

How to Install

The easiest way to install EffectCraft is to download a prebuilt package from the project's GitHub releases.

Windows users can use the portable ZIP package. macOS users can install the universal disk image, while Linux users can choose from AppImage, DEB, RPM, or tarball packages.

Developers can build the application from source with Rust:

git clone https://github.com/storytold/effectcraft
cd effectcraft
cargo run --release -p effectcraft

To render a composition from the command line, use the companion CLI:

cargo run --release -p effectcraft-cli -- render --out intro.mp4

For AI-agent integration, launch the MCP server:

cargo run --release -p effectcraft-cli -- mcp

These capabilities make EffectCraft particularly interesting for developers building automated animation pipelines or integrating motion graphics into AI-assisted workflows.

Final Verdict

EffectCraft is an ambitious open-source After Effects alternative that combines a familiar animation workflow with a modern Rust-based engine. Its extensive effects library, keyframe controls, expressions, compositing tools, 3D features, and broad export support make it much more than a basic animation editor.

Its most distinctive advantage is automation. The CLI, JSON control channel, readable project files, and MCP server make it possible to integrate motion graphics into scripted and AI-assisted workflows. Lottie support also provides a practical bridge between desktop animation and web development.

The biggest limitation is compatibility and maturity. EffectCraft cannot open native After Effects projects or use its third-party plugins, and its own documentation acknowledges that feature coverage does not yet guarantee production-level reliability or equivalent output quality.

For motion designers, developers, and open-source enthusiasts looking for a capable alternative to proprietary animation software, EffectCraft is a promising project. It is particularly attractive for new projects that can use its native format and automation tools without depending on an existing After Effects workflow.

EffectCraft v0.22.0
Free
Software Informations:
Developer:

Operating System:
Windows / macOS / Linux / BSD
Date Added:
2026-11-07T04:07:14.459Z
Categories:

Post a Comment/Report Broken Link: