15 KiB
EffectCraft Roadmap
Stage: alpha · next: beta, ~30 points of "ready for real work" and ~350–620 h away
Last reviewed: 2026-10-22 · Last updated: 2026-10-30 · Change: minor (features of 30 October in the progress log: text Line Join, Timeline drag-reorder and multi-select of effects, viewer edge pan, ScriptUI drag capture and dock size; previously: localization recount after #1774) · Target: Adobe After Effects 2026 (26.5.0.89)
EffectCraft aims to do what After Effects does, with the same panels, menus and behaviour, written from scratch in Rust. This page is the one-page summary; the evidence is in docs/target-app-parity.md, the work list in docs/gaps.md, and the plan in docs/roadmap.md.
Headline numbers
| Value | Kind | |
|---|---|---|
| Feature breadth | ≈ 91% | Estimated, weighted by area; the self-graded 92-item checklist says ≈ 99% |
| Ready for real work | ≈ 45% (40–50%) | Estimated; one live fidelity measurement so far |
| Mainstream practitioner | ≈ 47% | Estimated: the typical motion designer's weekly work (how) |
| Essentials user | ≈ 52% | Estimated: core features only (how) |
| Remaining to beta | ≈ 350–620 Opus 5.5 agent-hours | Estimated |
| Remaining to full parity | ≈ 850–1,500 Opus 5.5 agent-hours | Estimated; ≈ 70% parallelises |
| Audience | Ready % | Hours to ~95% | Work that dominates |
|---|---|---|---|
| Full target | ≈ 45% | ≈ 850–1,500 h | .aep, fidelity corpus, bug backlog, performance, formats, hardware, localization |
| Mainstream practitioner | ≈ 47% | ≈ 280–530 h | .aep exchange, stability, everyday fidelity and bugs, preview speed |
| Essentials user | ≈ 52% | ≈ 150–300 h | Opening tutorial .aep files, start-up stability, core bugs, preview with sound |
About 60–70% of these hours parallelise (detail).
Hours are one Opus 5.5 agent working sequentially, calibrated on this repository's history (how).
Stage
Alpha, because all six core workflows of the alpha gate
(set up, animate, text and shapes, composite, preview, save and deliver) work end to end on macOS
and the work saves and reopens, and ready for real work (≈ 45%) is above the ≈ 40% bar. But: After Effects projects (.aep) can't be opened, which
alone rules out beta; fidelity against After Effects is measured for one narrow case (scalar ease,
168 samples); 216 issues are open on 12 October, six of them crash reports (#580, #501, #426, #341, #234, #879). Beta needs ≈ 75% ready and .aep
opening reliably: the .aep owner decision and importer (80–160 h), the fidelity harness and
P0/P1 corpus (60–100 h), the crash and bug backlog (40–80 h), performance (40–70 h),
Linux/Windows reliability (30–50 h) and depth in animation, masks, effects and text (100–160 h).
By dimension
| Dimension | % | Hours | Doc |
|---|---|---|---|
| Features: breadth | 91% | — | target-app-parity.md |
| Features: ready for real work | 50% | 360–660 | target-app-parity.md |
| UI/UX fidelity | 65% | 60–120 | ui-parity.md |
| File formats | 50% | 130–230 | file-format-parity.md |
| Hardware | 40% | 60–120 | hardware-parity.md |
| Localization | 24% | 60–110 + review | localization-parity.md |
| Performance | 35% | 50–100 | gaps.md |
| Stability | 45% | 40–80 | gaps.md |
| Platforms | 65% | 30–60 | gaps.md |
| Ecosystem and plug-ins | 20% | 40–80 | plugins.md, scripting-parity.md |
| AI features | 35% | 40–80 | gaps.md |
| Agent control (beyond After Effects) | ahead | — | agents.md |
Features
| Area | Breadth | Ready | Hours |
|---|---|---|---|
| Project, footage and import | 92% | 55% | 25–45 |
| Compositions, layers and compositing | 98% | 60% | 30–55 |
| Animation: keyframes, graph editor, motion paths, puppet | 97% | 55% | 35–60 |
| Expressions and scripting (detail) | 93% | 65% | 20–40 |
| Shapes, masks and roto | 93% | 45% | 30–50 |
| Text and typography | 94% | 50% | 20–35 |
| Effects and animation presets (detail) | 85% | 40% | 70–130 |
| 3D (Classic and Advanced) | 82% | 35% | 35–65 |
| Tracking and AI-assisted tools | 80% | 35% | 35–70 |
| Preview and cache | 92% | 40% | 25–50 |
| Render queue and export | 85% | 55% | 25–45 |
| Audio | 85% | 45% | 6–12 |
Weights and evidence per row: target-app-parity.md.
Languages
UI strings translated out of ≈ 4,200 (detail: localization-parity.md).
| Language | Status | % |
|---|---|---|
| English | full | 100% |
| Simplified Chinese | partial (menus, most of the panels) | 46% |
| Spanish | menus only | 29% |
| Hindi | none | 0% |
| Arabic | none | 0% |
| French | menus only | 16% |
| Portuguese (Brazil) | partial (menus, part of the panels) | 34% |
| Indonesian | none | 0% |
| Japanese | partial (menus, most of the panels) | 46% |
| German | menus only | 16% |
| Korean | none | 0% |
| Vietnamese | none | 0% |
Also shipped: Traditional Chinese (partial, 38%), Ukrainian (partial, 29%), Czech (partial, 29%), Polish (partial, 34%), Georgian (partial, 39%; native-speaker reviewed) and Russian (menus only, 15%). No other language has had native-speaker review.
Upcoming
Ranked; detail in docs/roadmap.md and docs/gaps.md.
| Next | Hours | |
|---|---|---|
| 1 | Fix the open crash reports; run cargo xtask ci on every pull request (G3) |
15–30 |
| 2 | Fidelity harness against After Effects: rendered frames, a corpus case per P0/P1 feature (G1) | 60–100 |
| 3 | Real-user reliability on Linux and Windows; the open mask, effect, text and 3D bugs (G2) | 100–190 |
| 4 | .aep / .aepx import, after the owner's clean-room decision (G4) |
80–160 |
| 5 | Performance: benchmarks at 1080p / 4K, real-time cached playback, hardware video (G5) | 50–100 |
| 6 | Localization depth: effect names, all panels, Korean / Italian (G9) | 60–110 |
Come tell us what matters most to you on Discord.
Progress log
-
2026-10-30: Text strokes take a Line Join (Miter, Round or Bevel) in the Character panel, Miter for new text as in After Effects (#2077). In the Timeline, effects, masks and shape items drag to a new place in their stack (#2210) and Shift-click adds them to the selection, so one animation preset can hold several (#2552). The Composition panel pans while a mask vertex is held at its edge (#999). Effect buffers that pad a small layer stay within a memory budget (#2261); an MP4 lasts as long as its edit list shows (#2592); the Render Queue's times tick between frames (#2593). ScriptUI drags keep their control past the window edge with
MouseEvent.buttons(#2584), and docked panels get their dock's size andonResize(#2585). -
2026-10-28: A shape layer's Rectangle and Ellipse Size get the Constrain Proportions chain that Scale has, so a circle stays a circle while its size is typed, scrubbed or keyed; it starts off, so existing shapes behave as before (#2489).
-
2026-10-24: Shape layers have the Wiggle Transform path operation (Contents ▸ Add, or
layer.addShapeItem {kind: "wiggler"}): it wiggles the anchor point, position, scale and rotation of the paths above it by random amounts that change over time, up to the Transform values it holds. The copies of a Repeater above it wiggle independently as far as its Correlation allows; with the Repeater below it, they wiggle together. -
2026-10-22: Localization: the panel/dialog catalogs gain 303 rows in Japanese, Simplified Chinese and Traditional Chinese — panel tabs, form and dialog labels, panel context menus, tracker/graph/text-panel controls, File-panel footers and credits. Recounted after #1774: Japanese is 1,923 of ≈ 4,200 interface strings (46%, with 297 effect names); the Chinese panel catalogs hold 998 (Simplified) and 951 (Traditional) rows, and Simplified Chinese is 46% with its 307 effect names; the overall share is ≈ 24%.
-
2026-10-16: Convert To Bezier Path turns a shape layer's Rectangle, Ellipse or Polystar path into an editable Path 1 with the same geometry, as After Effects does; it used to apply to mask RotoBezier only, so a parametric shape path could not be converted at all and its vertices could not be edited or animated (#932).
-
2026-10-14: Georgian (
ka): every menu row, every panel-catalog row the Chinese catalogs have plus 195 Georgian-only ones, and the effect names and categories; Match System forka/ka-GE/ka_GE.UTF-8locales. Reviewed by a native speaker. -
2026-10-12: Roto Brush span edits report strokes outside a trimmed layer without panicking; strokes and undo history are preserved so restoring the timing allows the span edit again.
-
2026-10-11: Ukrainian panels caught up with the Chinese catalogs. The 95 rows the panel catalog gained since 9 October are translated: the Home screen (recent files, their Kind and Opened columns, the empty and no-match states), the viewer's toolbar tooltips, magnification, resolution, grid, channel and Fast Previews popups, the Appearance settings, the solid dialog and the project, import, export and colour-management forms.
uknow carries 495 of the 496 panel rows —RGBreads the same in Ukrainian, so it falls back to the English source by design — alongside its 618/618 menus. -
2026-10-10: Full parity re-measure against After Effects 2026 26.5 (installed bundle, 26.2–26.5 release notes, repository counts): breadth ≈ 91%, ready ≈ 45%, stage alpha. Progress docs follow the shared standard:
docs/parity.mdbecamedocs/target-app-parity.md; newdocs/roadmap.md,localization-parity.md,file-format-parity.md,hardware-parity.md,ui-parity.md,effects-parity.mdandscripting-parity.md. -
2026-10-10: Spanish (#460) and Brazilian Portuguese (#217) menu translations.
-
2026-10-10: Japanese now translates the interface below the menu bar too:
crates/ui-egui/src/i18n/ui.rshas a Japanese table with the same 396 rows as the Chinese ones (panels, dialogs, buttons and tooltips; the shape test keeps the three catalogs listing the same source strings). Menus were already Japanese. -
2026-10-09: Ukrainian now covers all 396 current panel-catalog strings, including dialogs, buttons and tooltips, alongside its menu translation. The catalog keeps the same source keys and placeholder counts as the Chinese catalogs; missing or engine-generated text still falls back to English.
-
UI.6: Viewer breadcrumbs use theme colors for readable active text. The bottom control row scrolls horizontally at compact widths; keyboard focus reveals the selected control while dropdowns, exposure adjustments and snapshot holds retain their behavior.
-
UI.3: Shared docking transactions and pointer targets now handle panel moves, splits, tab ordering and floating groups, preserving accordion metadata and the saved workspace schema. Dock dividers use bounded shared geometry and keyboard-accessible resize handles. Tiny layouts no longer reach an invalid floating-point clamp; workspace trees and saved layouts are retained.
-
2026-10-09: Settings ▸ General ▸ Language now translates the interface below the menu bar as well: panels, dialogs, buttons and tooltips read their text through
crates/ui-egui/src/i18n/ui.rs, keyed by the English source string. Simplified and Traditional Chinese are complete (384 strings); Japanese rows can follow in the same file. A test fails when a converted panel gains a hard-coded string, and another keeps the catalog free of unused rows. -
2026-10-08:
effectcraft-cli render --outresolves a relative path against the working directory, like--project(it used the project's folder, which doubled a path that already named it). Render Queue outputs set in a project are unchanged. -
2026-10-08: Long-press a grouped toolbar button to choose its tools, including Horizontal/Vertical Type; releasing the hold keeps the menu open. Existing point/paragraph text creation is unchanged.
-
2026-10-06: Settings ▸ General ▸ Language persists English/Japanese menu labels (
general.language); native UI reuses installed Japanese font fallback, with no bundled CJK font. Dialog and panel contents remain English. -
2026-10-05: Honest assessment (docs/gaps.md): breadth ≈ 99% by our own checklist, real use ≈ 30–50%; workstreams G1–G9.
-
2026-10-04: Checklist audit at
d39c0e8: 89 done / 3 partial / 0 missing of 92 features. -
2026-10-01: First commit.
Revision history
| Date | Change | Summary |
|---|---|---|
| 2026-10-30 | minor | Progress log: text Line Join, Timeline drag-reorder and Shift multi-select of effects, viewer edge pan, effect padding budget, MP4 edit-list duration, Render Queue clock, ScriptUI drag capture and docked-panel size |
| 2026-10-22 | minor | Localization: 300 more panel/dialog rows in Japanese and the Chinese catalogs, plus the review's three missing rows (Basic, Advanced, Play/Stop) — panel tabs, form and dialog labels, context menus, tracker/graph/text-panel controls, File-panel footers, credits; language shares recounted after #1774 (Japanese 27% → 46% with 297 effect names, Simplified Chinese 29% → 46% with 307 effect names, Traditional Chinese 29% → 38%, overall 18% → 24%) |
| 2026-10-12 | minor | Open-issue count (134 to 216), crash list and localization share (12% to 18%) updated to match docs/gaps.md |
| 2026-10-12 | patch | Roto Brush span validation after trimming; command regressions for both layer edges |
| 2026-10-12 | minor | Shared PDF object/xref parsing with bounded app-owned conversion and preserved stream budgets; drawing, EPS and image/font policy remain unchanged |
| 2026-10-10 | minor | Hours to ≈ 95% for each audience |
| 2026-10-10 | minor | Headline adds mainstream practitioner (≈ 47%) and essentials user (≈ 52%) |
| 2026-10-10 | major | Rewritten to the shared progress-docs standard: stage, two numbers, dimensions, features, languages, upcoming, progress log; milestones moved to docs/roadmap.md |
| 2026-10-10 | minor | Stage checked against the new core-workflow gate (all six pass; still alpha) |
| 2026-10-05 | major | Two numbers (breadth vs real use) and workstreams G1–G9 |