mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-14 19:27:05 -04:00
Docs: accuracy pass — README (306 effects, the web build ships, HEVC/AV1 export, pure-Rust encoders are FilmCraft's plus our own, an accurate 'still to come' list instead of features that exist), ROADMAP (M11 done, M12 mostly done, M13 done, all effects in full), parity summary (no simplified effects left), preferences (web storage is OPFS/IndexedDB; the in-window macOS menu bar setting), CLAUDE.md (the Illustrator sibling is ../vectorcraft)
This commit is contained in:
1 parent
ba3748f79e
commit
2c056ae6cf
5 files changed
+27
-22
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# EffectCraft — instructions for agents
|
||||
|
||||
EffectCraft is a clean-room, open-source, pure-Rust motion graphics and visual effects compositor targeting Adobe After Effects parity (and beyond). Native on macOS, Windows, Linux; web via WASM. Sibling of `../photocraft` (Photoshop), `../printcraft` (Acrobat), `../drawcraft` (Illustrator), `../filmcraft` (Premiere), `../lightcraft` (Lightroom) and `../designcraft` (InDesign), with the same conventions.
|
||||
EffectCraft is a clean-room, open-source, pure-Rust motion graphics and visual effects compositor targeting Adobe After Effects parity (and beyond). Native on macOS, Windows, Linux; web via WASM. Sibling of `../photocraft` (Photoshop), `../printcraft` (Acrobat), `../vectorcraft` (Illustrator), `../filmcraft` (Premiere), `../lightcraft` (Lightroom) and `../designcraft` (InDesign), with the same conventions.
|
||||
|
||||
## Start every session here
|
||||
`plan/` is maintainer-local (gitignored). Public equivalents: [`ROADMAP.md`](ROADMAP.md), [`docs/`](docs/).
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
|
||||
<p align="center">
|
||||
A free, open-source compositor in the spirit of After Effects: compositions, layers,
|
||||
keyframes, 259 effects, layer styles, expressions, 3D cameras and lights, and a render queue, native on macOS,
|
||||
Windows and Linux, and in the browser later on. Young, moving fast, and already usable.
|
||||
keyframes, 306 effects, layer styles, expressions, 3D cameras and lights, and a render queue, native on macOS,
|
||||
Windows and Linux, and in the browser. Young, moving fast, and already usable.
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -78,8 +78,8 @@ then to go further in a few places where it matters to us:
|
||||
- **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.
|
||||
- **No FFmpeg.** Video and audio decoding and encoding are pure Rust: FilmCraft's codecs and
|
||||
EffectCraft's own VP9, AV1, HEVC and Opus encoders.
|
||||
|
||||
## Animate
|
||||
|
||||
@@ -108,7 +108,7 @@ Paragraph, Align, Info, Preview, Audio and the Render Queue, docked the way you
|
||||
|
||||
## Effects
|
||||
|
||||
259 effects across After Effects' categories, each with its parameter names, order and
|
||||
306 effects (every one of After Effects' 298, and more) across its categories, each with its parameter names, order and
|
||||
defaults: blur and sharpen, channel, color correction (Curves, Levels, Hue/Saturation, Lumetri
|
||||
Color…), distort (Warp, Bulge, Turbulent Displace, CC Power Pin…), generate (Fractal Noise,
|
||||
Gradient Ramp, Stroke, Write-on, Audio Spectrum…), keying, matte, noise and grain, perspective,
|
||||
@@ -136,12 +136,13 @@ tools, and Front, Top, Left and Custom views.
|
||||
## Export
|
||||
|
||||
A Render Queue like After Effects', with Render Settings and Output Modules: **H.264** MP4 and
|
||||
**ProRes** MOV (Proxy to 4444 XQ with alpha) with audio, **WebM** (VP9 with inter frames and
|
||||
alpha, Opus), PNG, JPEG, TIFF and 32-bit EXR sequences, animated GIF and WAV/AIFF. Field
|
||||
**ProRes** MOV (Proxy to 4444 XQ with alpha) with audio, **HEVC** (Main / Main 10) and **AV1**
|
||||
MP4, **WebM** (VP9 with inter frames and alpha, or AV1; Opus audio), PNG, JPEG, TIFF and 32-bit EXR sequences, animated GIF and WAV/AIFF. Field
|
||||
rendering with 3:2 pulldown, effect/solo/guide/depth overrides, crop, region of interest and
|
||||
resize, Render Settings and Output Module templates with defaults, post-render actions, storage
|
||||
overflow and render logs. The same queue runs from the command line. Every encoder is
|
||||
FilmCraft's pure-Rust code; there is no FFmpeg inside.
|
||||
overflow and render logs. The same queue runs from the command line. Every encoder is pure
|
||||
Rust (FilmCraft's H.264, ProRes and AAC; EffectCraft's own VP9, AV1, HEVC and Opus); there is no
|
||||
FFmpeg inside.
|
||||
|
||||
**Lottie** goes both ways: File ▸ Export ▸ Lottie JSON… writes a composition (precomps, shape,
|
||||
solid, image, text and null layers, eased and spatial keyframes, masks, track mattes, blend
|
||||
@@ -188,10 +189,12 @@ tests, layering, asset attribution and the WebAssembly build). See [CONTRIBUTING
|
||||
## Where it stands
|
||||
|
||||
EffectCraft is young. The core of After Effects is in place and gets deeper every week: what is
|
||||
done and what comes next is in the [ROADMAP](ROADMAP.md). Not there yet: Roto Brush, Warp
|
||||
Stabilizer and the 3D camera tracker, Advanced 3D, on-canvas text editing and GPU compositing. The web build
|
||||
([docs/web.md](docs/web.md)) runs the full app in the browser, single-threaded for now. Projects
|
||||
are saved as `.ecproj`, readable versioned JSON; After Effects `.aep` files cannot be opened.
|
||||
done and what comes next is in the [ROADMAP](ROADMAP.md). Still to come: learned models for
|
||||
Roto Brush and face tracking (both use classical methods today), GPU versions of the remaining
|
||||
CPU-only effects, the Advanced 3D Extended Viewer, and shared-memory threads in the web build. The
|
||||
web build ([docs/web.md](docs/web.md)) runs the full app in the browser, with renders, analyses
|
||||
and viewer frames in Web Workers. Projects are saved as `.ecproj`, readable versioned JSON; After
|
||||
Effects `.aep` files cannot be opened.
|
||||
|
||||
## How it's made
|
||||
|
||||
|
||||
+5
-5
@@ -15,11 +15,11 @@ once.
|
||||
| M6 | Shapes, masks and footage: shape operators, masks and the pen tool, video and image import | Done |
|
||||
| M7 | 3D: 3D layers, cameras, lights, shadows, depth of field, 3D views and camera tools | In review |
|
||||
| M8 | Expressions with the After Effects object model | Done |
|
||||
| M9 | Text and effects: text animators, layer styles, 259 effects incl. time and audio effects | Done (range, wiggly and expression selectors, per-character 3D, text on a path) |
|
||||
| M9 | Text and effects: text animators, layer styles, 306 effects (all 298 of After Effects') incl. time and audio effects | Done (range, wiggly and expression selectors, per-character 3D, text on a path) |
|
||||
| M10 | Export: render queue, H.264, ProRes, image sequences, GIF, audio | Done |
|
||||
| M11 | Animation tools: audio playback, meters and waveforms, Lottie import and export (done); presets, Motion Sketch, Wiggler | In progress |
|
||||
| M12 | Performance: layer cache and parallel compositing (done), GPU compositing, disk cache, motion tracking | In progress |
|
||||
| M13+ | Puppet, paint, roto, motion tracking, a plugin API | Planned |
|
||||
| M11 | Animation tools: audio playback, meters and waveforms, Lottie import and export, presets, Motion Sketch, Wiggler, Smoother | Done |
|
||||
| M12 | Performance: layer cache, parallel and GPU compositing, disk cache, motion tracking (done); GPU versions of the remaining CPU-only effects | Mostly done |
|
||||
| M13 | Puppet tools, paint, Roto Brush, motion tracking, a plug-in API, Timeline depth | Done (Roto Brush and face tracking use classical models; learned models are still to come) |
|
||||
| M15 | The web app (WebAssembly, WebGPU) | Done: browser storage, Web Audio, renders and analyses in Web Workers, offline install ([docs/web.md](docs/web.md)) |
|
||||
| M14 | Built for agents: MCP server, command-line tool, control channel; Settings, keyboard shortcut editor, auto-save and crash recovery ([docs/preferences.md](docs/preferences.md)) | Done |
|
||||
|
||||
@@ -29,7 +29,7 @@ Measured feature by feature in [docs/parity.md](docs/parity.md) (3 October 2026)
|
||||
|
||||
- **≈ 94% of After Effects' features, weighted by importance**, counting partial features as half
|
||||
done (≈ 98% with per-feature fractions): 80 of 92 features done, 12 partial, none missing; all
|
||||
298 After Effects effects (42 still simplified).
|
||||
298 After Effects effects, every one implemented in full.
|
||||
- **≈ 19–22 agent-hours of work remain**: about **4–5 hours of wall-clock time** with five Claude
|
||||
Opus 5.5 agents in parallel, ≈ 3 hours for the essentials and daily-use features.
|
||||
- Hardest remaining pieces: the web app's threading, wider GPU effect coverage, Advanced 3D
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ How close EffectCraft is to After Effects 2026, feature by feature, and how much
|
||||
| Unweighted | ≈ 94% (half-credit) / 98% (fractions) |
|
||||
| P0 / P1 / P2 | ≈ 96% / 92% / 85% (half-credit); 99% / 97% / 96% (fractions) |
|
||||
| Features done / partial / missing | 80 / 12 / 0 of 92 |
|
||||
| **Effects** | **298 of 298** After Effects 2026 effects exist; 42 still simplified ([effects.md](effects.md)); 166 run on the GPU |
|
||||
| **Effects** | **298 of 298** After Effects 2026 effects exist, all implemented in full ([effects.md](effects.md)); 166 run on the GPU |
|
||||
| Disabled menu entries left | 0 (the stub list is empty) |
|
||||
| Remaining work | ≈ 19–22 agent-hours at the pace measured so far (≈ 58 on the conservative audit scale) |
|
||||
| **Wall-clock estimate** | **≈ 4–5 hours** with five agents in parallel; ≈ 3 hours for 100% of P0 + P1 |
|
||||
|
||||
+4
-2
@@ -13,8 +13,8 @@ The model is `effectcraft_engine::prefs::Prefs`: serde, versioned (`version`), a
|
||||
keys (`general.undoLevels`, `autoSave.intervalMinutes`, `labels.3.name`). It is stored as
|
||||
`prefs.json` through the session's `ConfigStore` (the desktop app uses the platform config
|
||||
directory: `~/Library/Application Support/EffectCraft` on macOS, `%APPDATA%\EffectCraft` on
|
||||
Windows, `$XDG_CONFIG_HOME/effectcraft` on Linux; the web app can back the same trait with
|
||||
`localStorage`). Loading migrates older layouts, keeps unknown keys (from newer versions) and
|
||||
Windows, `$XDG_CONFIG_HOME/effectcraft` on Linux; the web app keeps it in browser storage: the
|
||||
Origin Private File System, or IndexedDB where OPFS can't write, see [web.md](web.md)). Loading migrates older layouts, keeps unknown keys (from newer versions) and
|
||||
falls back to defaults for values that don't parse.
|
||||
|
||||
Commands (CLI, MCP, control channel):
|
||||
@@ -90,6 +90,8 @@ Commands (CLI, MCP, control channel):
|
||||
Effect Controls / Properties the layer's
|
||||
- `appearance.cycleMaskColors`: new masks cycle through the mask colours (off: all the first)
|
||||
- `appearance.useGradients`: soft gradient on panel tab strips
|
||||
- `appearance.inWindowMenuBarMac`: on macOS, draw the menu bar inside the window instead of the
|
||||
native menu bar
|
||||
- `grids.gridStyle`, `grids.guideStyle`: lines, dashed lines or dots (grid, proportional grid,
|
||||
guides); `grids.proportionalHorizontal` / `grids.proportionalVertical`: View ▸ Show
|
||||
Proportional Grid divisions
|
||||
|
||||
Reference in new issue
Block a user