Production-grade WebAssembly motion design & VFX plugins for EffectCraft
CraftPlugins is an open-source suite of high-performance visual effects and motion design plugins engineered specifically for EffectCraft (the modern open-source Rust alternative to Adobe After Effects).
Inspired by industry-standard After Effects plugins (Deep Glow, Quick Chromatic Aberration, Sapphire Shake, Displacer Pro), each effect is compiled into a standalone, zero-dependency WebAssembly (.wasm) binary that runs sandboxed, deterministically, and cross-platform (Linux, macOS, Windows) at native-level speeds.
- 🚀 Zero Overhead WASM: Compiled with
--target wasm32-unknown-unknown, executing via host-sandboxed WebAssembly with fuel metering and zero native host bloat. - 🎨 32-bpc HDR Pipeline: Native processing of linear premultiplied
f32RGBA buffers, preserving full dynamic range and highlight details without banding. - 📦 One-Click Hot-Loading: Load
.wasmfiles directly into running EffectCraft sessions viaEffect ▸ Load Effect Plug-in…or drop them into yourPlug-insdirectory. - 🎛️ Full Keyframe & Expression Support: Exposes native host properties (sliders, angles, colors, checkboxes, points, popups) directly to the Effect Controls panel and timeline graph editor.
Tip
No Rust or compilation needed for artists! Simply download the pre-compiled .wasm file below and load it directly into EffectCraft.
| Plugin | Architecture | Size | Latest Release | Direct Download |
|---|---|---|---|---|
| Craft Glow | WASM API v1 | 32 KB |
v1.0.0 |
⬇️ Download craft_glow.wasm |
| Craft Chromatic | WASM API v1 | 37 KB |
v1.0.0 |
⬇️ Download craft_chromatic.wasm |
| Craft Camera Shake | WASM API v1 | 40 KB |
v1.0.0 |
⬇️ Download craft_camera_shake.wasm |
| Craft Displacer | WASM API v1 | 42 KB |
v1.0.0 |
⬇️ Download craft_displacer.wasm |
| Craft Halftone & Dither | WASM API v1 | 40 KB |
v1.0.0 |
⬇️ Download craft_halftone_dither.wasm |
| Craft VHS Glitch | WASM API v1 | 42 KB |
v1.0.0 |
⬇️ Download craft_vhs_glitch.wasm |
| Craft Pixel Sort | WASM API v1 | 48 KB |
v1.0.0 |
⬇️ Download craft_pixel_sort.wasm |
| Craft Anamorphic Flare | WASM API v1 | 39 KB |
v1.0.0 |
⬇️ Download craft_anamorphic_flare.wasm |
| Plugin | AE Counterpart | Category | Status | Highlights |
|---|---|---|---|---|
craft-glow |
Deep Glow | by qwertyonek |
✅ Ready
|
Physically accurate inverse-square ( |
craft-chromatic |
Quick Chromatic | by qwertyonek |
✅ Ready
|
Radial (optical lens dispersion) & linear (directional prism) RGB channel split, subpixel bilinear sampling, edge blur. |
craft-camera-shake |
Sapphire S_Shake | by qwertyonek |
✅ Ready
|
Procedural multi-frequency gradient noise, subpixel translation/rotation, auto-scale compensation, motion blur. |
craft-displacer |
Displacer Pro | by qwertyonek |
✅ Ready
|
Advanced subpixel displacement mapping, glass refraction, fluid turbulence, radial ripple, chromatic dispersion. |
craft-halftone-dither |
Retro / Halftone | by qwertyonek |
✅ Ready
|
Matrix ordered dithering (Bayer 4×4 & 8×8), CMYK newspaper halftone screens, retro arcade palettes (GameBoy, CGA, Cyberpunk). |
craft-vhs-glitch |
Universe VHS | by qwertyonek |
✅ Ready
|
Authentic analog VHS tape damage, tracking noise bar, scanline drift, 2D tape defocus blur, YIQ chroma bleed. |
craft-pixel-sort |
AE Pixel Sorter | by qwertyonek |
✅ Ready
|
Directional luminance/saturation/hue pixel sorting, two-point thresholding, streak length clamping, jitter. |
craft-anamorphic-flare |
Starglow / Anamorphic | by qwertyonek |
✅ Ready
|
Hollywood anamorphic streaks, 3-octave exponential diffusion, spectral chromatic prism, sci-fi & gold presets. |
EffectCraft plug-ins adhere to the official Plug-in API v1 ABI. Plug-ins have no external imports and communicate through a shared linear memory buffer:
flowchart LR
A["EffectCraft Host"] -->|"1. ec_alloc(bytes)"| B["WASM Linear Memory"]
A -->|"2. Write params + pixels"| B
A -->|"3. ec_render(pixels, w, h...)"| C["Plugin Kernel (In-Place)"]
C -->|"4. Return 0 (Success)"| A
ec_api_version() -> i32— Must return1.ec_manifest_ptr() -> i32&ec_manifest_len() -> i32— Memory offset & byte length of the UTF-8 JSON manifest.ec_alloc(bytes: i32) -> i32— Allocates an 8-byte aligned memory buffer for parameter values and pixels.ec_render(pixels, width, height, params, nparams, time, scale) -> i32— Processes premultiplied RGBAf32in-place.
- Pixels are stored in row-major Premultiplied RGBA
f32([r, g, b, a]). - Channels:
0.0..1.0(can exceed1.0in 32-bpc HDR compositions). - Un-premultiply before nonlinear operations:
rgb = c[0..3] / a, then re-premultiply upon output:c[0..3] = rgb * a.
Copy compiled .wasm plugins into your platform settings folder:
- Linux:
~/.config/effectcraft/Plug-ins/ - macOS:
~/Library/Application Support/EffectCraft/Plug-ins/ - Windows:
%APPDATA%\EffectCraft\Plug-ins\
- Open EffectCraft.
- Select your layer in the timeline or composition viewer.
- In the top menu bar, click:
Effect ▸ Load Effect Plug-in… - Select your
.wasmfile. The plugin will immediately register in Effects & Presets and apply to the active layer!
- Rust toolchain (1.85+)
- WebAssembly target:
rustup target add wasm32-unknown-unknown# Clone the repository
git clone https://github.com/qwertyonek/craft-plugins.git
cd craft-plugins
# Build all workspace plugins in release mode
cargo build --release --target wasm32-unknown-unknownCompiled .wasm artifacts will be located in:
target/wasm32-unknown-unknown/release/*.wasm
Contributions, feature requests, and new plugin ideas are warmly welcome!
- Fork the Project.
- Create your Feature Branch (
git checkout -b feat/amazing-plugin). - Commit your Changes (
git commit -m 'feat: add amazing-plugin'). - Push to the Branch (
git push origin feat/amazing-plugin). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more details.