Files
effectcraft/ROADMAP.md
T
bflatasticandClaude Opus 5.5 7579de21c6 M13.35: Roto Brush trained model — swappable segment module, MobileSAM in pure Rust
- New L1 crate effectcraft-segment: the MaskModel interface (prompts → foreground probability),
  a registry of open-licensed models (licence must be MIT/Apache/BSD/…; URL, size, SHA-256),
  a PyTorch checkpoint reader (zip + pickle subset), dependency-free SHA-256, and MobileSAM
  (TinyViT-5M + SAM prompt encoder / two-way transformer / mask decoder) on rayon and ndarray's
  safe GEMM. Loads the official mobile_sam.pt as published; checked against candle
  (embedding 0.3% RMS, 99.9% equal mask pixels); ~0.7 s/frame encoder at 32 threads, cached
  per frame, ~0.1 s decoder.
- track::roto: segment_with / propagate_with prompt a model with the strokes or the flow-warped
  matte (box, core points, mask); its probability is a strong, unblurred prior for the same
  graph cut (strokes stay hard constraints); a failing model or one disagreeing with the flow
  (IoU < 0.5) is ignored. Prior gets a weight.
- effects::roto: Version 2.0 / 3.0 use the model chosen in Settings (set_model / model_for);
  the model id is part of the chain seed.
- engine: roto_models (roto.models, roto.model.select / install / download / remove), weights in
  the models folder (host::config_dir()/models, shared by the app, CLI and MCP), background
  loading, downloads through the system curl, verified; Settings ▸ Roto Brush page (prefs
  roto.model). host::config_dir moved from the desktop app.
- Tests: segment (kernels vs direct sums, checkpoint reader, SHA-256 vectors, registry), track
  (fake model: prior shapes the cut, failing / disagreeing models ignored; real weights with
  EFFECTCRAFT_MOBILESAM: base IoU 0.989, propagated ≥ 0.980 vs classic 0.973), engine (registry,
  verification, selection; real install + load), MCP.
- Docs: README, ROADMAP, parity (MSK-4 done: 90/2/0), preferences, agents, architecture,
  crates/segment/README.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 17:55:02 +07:00

3.7 KiB
Raw Blame History

Roadmap

EffectCraft aims to do what After Effects does, with the same panels, menus and behaviour, written from scratch in Rust. This is where it stands. The milestones overlap; several are worked on at once.

Milestone State
M0 Skeleton: crates, compositor, the After Effects style shell, control channel, cargo xtask Done (web build: docs/web.md)
M1 Keyframes: temporal and spatial interpolation, Easy Ease, roving, velocity Done
M2 Compositing: 38 blend modes, track mattes, parenting, adjustment layers Done
M3 Project operations: settings dialogs, layer commands, .ecproj, undo, After Effects menu bar Done (unsaved-changes prompts, Solid / Layer Settings, lock-aware layer commands, safe project files; View ▸ New Viewer still opens only the one locked viewer)
M4 Preview: precomps, motion blur, cached playback Done (Preserve frame rate / resolution when nested, one motion blur gate, RAM preview fixes, Cache Frames When Idle, motion blur of collapsed precomps and of animated shape / text content, content-keyed RAM preview frames)
M5 Timeline depth: graph editor, keyframe clipboard and dialogs, time remapping, pick-whips, expression editor Done
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, 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, 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 2.0 / 3.0 can use a trained model: MobileSAM, open source, downloaded on demand, in a swappable model module; face tracking uses a classical model, a learned one is still to come)
M15 The web app (WebAssembly, WebGPU) Done: browser storage, Web Audio, renders and analyses in Web Workers, viewer frames and GPU effects in frame workers with their own WebGPU devices, the disk cache in the Origin Private File System, a storage manager, offline install (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) Done

How far from full parity

Measured feature by feature in docs/parity.md (4 October 2026):

  • ≈ 99% of After Effects' features, weighted by importance, counting partial features as half done (≈ 99.9% with per-feature fractions): 90 of 92 features done, 2 partial, none missing; every essential (P0) feature done; all 306 effects implemented in full, 280 of them on the GPU.
  • ≈ 8.5 agent-hours of work remain: about 2–3 hours of wall-clock time with five Claude Opus 5.5 agents in parallel (estimated before Roto Brush's trained model landed in M13.35).
  • What is left: GPU kernels for the remaining visual effects, and a learned face tracker (parity.md).

Come tell us what matters most to you on Discord.