NC Anima · Docs

Where Anima falls short

Last reviewed: 2026-10-12 · Last updated: 2026-10-13 · Change: minor (path-editing layer bounds, #1220; issue, PR and catalog references gap 21: percentage guides and effect colour labels in; earlier change: re-audited against upstream/main 470ea7a3; ranked gap list from the 10 October re-measure otherwise unchanged) · Target: Adobe After Effects 2026 (26.5.0.89)

An honest assessment of how far Anima is from being a real replacement for After Effects, and the work that closes the gap. This document is meant for contributors and agents choosing what to work on. target-app-parity.md holds the numbers and how they were measured; the ROADMAP summarises both. Estimates marked "≈" are judgements from the evidence listed, not measurements. Hours are Opus 5.5 agent wall-clock hours, calibrated in target-app-parity.md. Update this file when the evidence changes.

Two different questions

Feature breadth ≈ 91% answers does each After Effects feature exist? Every one of After Effects' effects exists by name, along with the menus, panels, Classic and Advanced 3D, tracking, expressions, scripting and export. The self-graded 92-item checklist (appendix of target-app-parity.md) says ≈ 99%; measuring against After Effects 26.5 itself, rather than our catalogue, finds what that checklist never listed: the 26.2–26.5 features (Object Matte, Substance materials, ACES 2.0, Proportional Scrubbing, paste SVG/AI as shapes…), the 621 bundled animation presets, project and template formats, and hardware encoding.

Ready for real work ≈ 45% answers can someone who uses After Effects for a living do real work in Anima? It is still estimated, not measured. Four things hold it back: projects we can't open (.aep), behaviour nobody has checked against After Effects (one live comparison so far: scalar ease, 168 samples), reliability outside macOS, and the third-party plug-ins and presets professional projects depend on. It sits higher than the 5 October estimate (30–50%) because 179 issues were closed with regression tests between 5 and 10 October.

By dimension

Dimension % Hours Evidence
Breadth of features ≈ 91% (below) All 306 effects, the After Effects menus (587 entries) and panels, Classic and Advanced 3D, tracking, expressions, scripting, render queue. Missing: entries 7, 13, 14, 16 and 21 below
Behaves like After Effects ≈ 50%, mostly unmeasured 360–660 (features) The first live G1 comparison checks eight scalar Rotation/ease cases (168 samples) against After Effects 26.3x87 via AEsync 2.0.4: all pass after fixing overlapping temporal influences, maximum error below 3e-11 degrees (fidelity/README.md). Nothing else is compared. An outside contributor found four bugs in features marked done within a day (PRs #6–#10); users have found well over a hundred more since, and 216 issues are open (12 October)
Opening existing After Effects work ≈ 0% 80–160 .aep / .aepx / .mogrt / .ffx can't be read; After Effects plug-ins can't run. Expressions and the scripting object model are strong, so scripts and expressions carry over
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 ≈ 18% 60–110 + review localization-parity.md
Stability ≈ 45% 40–80 23 never-crash PRs landed on 4 October and the "Never crash" rules bind every crate, but crash reports are open (#580 Chromatic Aberrations pan/tilt, #501 crash on startup, #426 timeline drag while playing, #341 quit on Intel Mac, #234 macOS 27 exit, #879 --gpu export aborts on a failed allocation; #591, #306 and #511 are closed), and no CI workflow runs cargo xtask ci on pull requests
Real-user experience ≈ 60%, uneven by platform (in G2) 179 issues closed 5–10 October (as counted on 10 October), nearly all with regression tests (log below); 216 open and 328 closed on 12 October, many from Linux and Windows. Most checking still happens on macOS
Performance unknown against After Effects, ≈ 35% 50–100 Internal numbers only (e.g. Advanced 3D 290 ms/frame at 1080p on the GPU on an M4 Pro). Users report stutter on cached frames (#595, #304; the RAM preview now prefetches nearest the playhead, 271000b2), late audio (#504, #335); slow scrubbing (#329, closed by #784) and #554 are closed. No 4K / hundreds-of-layers project tested
Media formats ≈ 75% (in file formats) H.264, ProRes, HEVC, AV1, VP9, image sequences and audio exist. The HEVC / AV1 encoders have no B-frames, multi-reference or SAO / CDEF, so files are larger than from mature encoders. Camera formats (BRAW, R3D, ProRes RAW, variable-frame-rate phone video) are unverified
AI-assisted tools ≈ 35% 40–80 Roto Brush 2.0 / 3.0 with MobileSAM (M13.35) scores IoU 0.989 on the base frame of our synthetic moving-disc test and ≥ 0.980 over 20 propagated frames (classic: 0.973). Face tracking with MediaPipe Face Landmarker (M13.36) matches Google's own pipeline to 0.85 px on a test portrait. Neither is compared with After Effects; Object Matte (26.2) is missing
Maturity early — First commit 1 October 2026. ≈ 361,000 lines of almost entirely agent-written Rust (git ls-files '*.rs', 12 October), 2,704 tests (10 October), 544 GitHub issues (216 open). After Effects has around 30 years of edge cases behind it

Every known gap, ranked

Alpha blockers: none. Every core workflow passes the alpha gate; the entries below are what stands between alpha and beta (gap 1 decides beta). The rough edges the gate lists live in gaps 5, 8, 9, 10, 11 and 17.

Ranked by user impact × how many users hit it. Each entry: what's missing, evidence, impact, estimate, the workstream (G1–G9, below) and the parity doc it belongs to. Small single-issue bugs are grouped by area; the issue tracker has the rest.

# Gap Evidence Impact Estimate Work · doc
1 .aep / .aepx projects can't be opened No reader; candidate route py-aep (#248, closed as a duplicate of #190; MIT, external converter) awaits an owner decision on clean-room scope; #190; open PRs #251 (native decoder) and #860 (external py-aep converter) The biggest barrier to switching: existing work, templates and client projects stay in After Effects 80–160 h G4 · file-format-parity.md
2 Fidelity unmeasured beyond scalar ease fidelity/: 168 samples, one property type; compare_frames helper exists, no corpus Every "done" feature may still differ; users find the differences 60–100 h harness + P0/P1 corpus; more per feature G1 · target-app-parity.md
3 Open crash reports Open: #580, #501, #426, #341, #234, #879. Now closed: #591, #306, #511 A crash loses work; outranks features (AGENTS.md) 10–25 h G3 · this file
4 No CI gate on pull requests .github/workflows has release, packaging-lint, FreeBSD and Windows ARM64 jobs only; cargo xtask ci runs locally Regressions reach main unseen; 49 community PRs landed in one batch (#598) 4–8 h G3 · this file
5 Playback and scrubbing feel #595 stutter on cached frames (partly addressed: nearest-first RAM preview prefetch, cache bars at 1/3 resolution), #304, #504 / #335 audio late or crackling, #586 puppet lag (maintainers asked for details); #329 slow scrubbing (#784) and #554 closed Preview is where motion designers spend their day 25–50 h G5 · hardware-parity.md
6 Linux and Windows interaction bugs Open: #488 rename arrows (hardening landed, reporter asked for details), #492 anchor drag, #268 file drops on Wayland (winit), #613 Direct3D 12 compositor. Now closed: #491, #493, #467, #320, #302, #596 Many reports come from Linux; some Windows GPUs fail to start the compositor 25–45 h G2 · ui-parity.md
7 Animation presets: 54 against 621 After Effects ships 621 .ffx presets (Behaviors, Backgrounds, Shapes, Synthetics, Text, Transitions…); we ship 54 original presets (8 text-animator; 23 Transitions: wipes, clock and fan reveals, blinds, dissolves, card flips, CC wipes, fades, #757; 23 Backgrounds: drifting gradients, fog, cloud and smoke, plasma and magma, cells, hexagons, scrolling grids and checks, pulse rings, bokeh, light sweep, #1096, driven by expressions so they keep moving, not seamless loops) and read only our .ecpreset. Missing: Behaviors, Shapes, Synthetics, Image and more Text Presets are how many designers start; tutorials assume them 15–35 h (original presets; .ffx reading is out of clean-room scope) G8 · effects-parity.md
8 Mask and shape bugs Open: #1004 mask vertex multi-select, #999 auto-pan, #1042 / #1033 vertex nodes under the bounding box, #959 / #960 shape group toggles and operators. Now closed: #510, #513, #527, #509, #303, #553, #932 (Convert To Bezier Path on a shape layer's parametric path) Masks are core compositing 10–20 h G2 · target-app-parity.md
9 Effect behaviour bugs #580, #463 Curl Noise, #369 Motion Tile output size, #943 Turbulent Displace Evolution, #473 Cryptomatte selection (quoted names with commas fixed, 3b7f1ace; UI and GPU time open), #474 multi-layer EXR (decode shared, faffad3a; f16 storage and cache sizing open). Closed: #526, #514, #533–#536 Each one breaks a look someone built 10–20 h G1/G2 · effects-parity.md
10 Colour pipeline differences #340 ProRes 4444 tagged bt709 but sRGB-encoded (open); ACES 2.0 / OCIO 2.5 configs (26.5) missing; now closed: #494 32-bpc blend modes, #495 and #750 Working Gamma 2.4, #546 / #547 viewer colour Wrong colour in delivery is a client-visible failure 15–30 h G1 · file-format-parity.md
11 Text rendering and layout Open: #453 CJK text in comps, #316 paragraph alignment inverted (maintainers' tests show Left/Right correct; asked for a project), #417 soft at Fit (mostly fixed by #444), #550 toolbar font options. Closed: #483, #583 Text is in almost every motion graphic 10–20 h G2 · ui-parity.md
12 3D interaction and depth No 3D transform gizmos (#392, #347); camera aperture (#260); reflections (#261); extruded surface materials beyond Front / Bevel / Side / Back Color (fb5a5e9a; #315 closed); #307 reopened (the viewer's renderer button now shows and switches the renderer, #645); Z position (#489) closed Advanced 3D is After Effects' growth area since 2023 20–35 h G2 · ui-parity.md
13 3D model formats and materials After Effects 26 imports FBX, USD/USDZ, STL besides glTF and OBJ (usd_plugins), and Substance 3D materials with mesh displacement (26.0–26.2); we read glTF, OBJ, STL (binary and ASCII, with facet colours) and FBX 7.x (binary and ASCII: meshes, hierarchy, Lambert/Phong materials and textures; no FBX animation or skinning yet) Product shots and 3D scenes come as FBX/USDZ 25–45 h — · file-format-parity.md
14 Object Matte (26.2, disk cache in 26.5) First slice (#783): the Object Matte effect (Effect ▸ Matte) and objectMatte.apply turn a point (and optional box) on a reference frame into a matte and follow the object up to 600 frames each way, or segment every frame on its own; Roto Brush's engine, cache and model (MobileSAM from Settings ▸ Roto Brush, classical graph cut without it). Since then: the Object Matte tool in the viewer (click / drag a box, hover crosshair), the box as the model's box prompt, background tracking with progress and cancel, Freeze, and segmentations kept in the disk cache (26.5). Missing: a comparison with After Effects (plan) The new one-click roto 10–20 h G7 · target-app-parity.md
15 Hardware video decode and encode No VideoToolbox, NVENC, Quick Sync or VA-API; #498 asks for it (answered: CUDA / NVENC need Nvidia's proprietary SDK through FFI, which the no-unsafe rule forbids); open PR #819 adds hardware decoding via kinema-platform; Kinema has VideoToolbox / NVENC / VA-API paths to borrow 4K playback and export speed 25–45 h G5/G6 · hardware-parity.md
16 Localization depth Menus in 11 languages (ja, zh-hans, zh-hant, uk, es, pt-br, ru, fr, de, cs, ka: 628 rows each); panels in 7 (ja, zh-hans, zh-hant, uk, pt-br, cs, ka); effect names translated in Simplified Chinese and Georgian (307, plus the generated Effect menu), their ~1,650 parameter names untranslated; Korean and Italian (After Effects ships them) absent; Hangul probe added (#599 closed) After Effects is used heavily in Japan, China, Korea, Brazil, Europe 60–110 h + native review G9 · localization-parity.md
17 Media Browser lists files import refuses media_browser.rs lists AVI; media::is_importable has none of them (Targa and Radiance HDR import since #745; DPX and Cineon since #756, log shown as stored: no Cineon Settings conversion yet; MXF OP1a / OP-Atom since #767; Kinema has no AVI demuxer); #431 and #324 closed Confusing failures on common VFX formats 15–30 h G6 · file-format-parity.md
18 Relative paths and relinking Projects store absolute footage paths; no relink when a project moves Moving or sharing a project breaks it 6–12 h G4 · file-format-parity.md
19 Plug-in ecosystem No After Effects SDK hosting (#600, #327 OpenFX, #334, #376 plug-in manager); our WebAssembly API has no third-party plug-ins Many pro projects depend on Trapcode, Element, Saber… 40–80 h for API growth; SDK hosting needs an owner decision G8 · scripting-parity.md
20 Multi-monitor and video output #486: any panel can move into a native window of its own (panel menu ▸ Move Panel to New Window, window.panelWindow) and so onto another screen, restored with the workspace; still missing: dragging tabs between those windows, app shortcuts while one has the focus, named workspaces remembering them, Mercury Transmit to video hardware (we have a second preview window only) Two-screen setups are standard for professionals 10–20 h G2 · hardware-parity.md
21 Small 26.x features Proportional Scrubbing (26.2), pasting Illustrator's own clipboard data as shapes (26.3; SVG markup on the clipboard pastes as a shape layer, #738), variable-font filter (26.3), the rebuilt Effect Controls (26.5). Percentage guides (View ▸ Add Percentage Guide, Convert Guides to Percentage / Pixels) and effect colour labels (Effect Controls header bar and right-click Label menu, effect.setLabel) are in (#1095), built from the release notes' one-line descriptions and never compared with After Effects: the Timeline's effect rows wear the label as a colour bar on the left edge (#1509), but After Effects' exact UI there is unknown Users of the current version expect them 10–20 h left — · ui-parity.md
22 Encoder efficiency HEVC / AV1 have no B-frames, multi-reference or SAO / CDEF; Opus no FEC / DTX; single-file intermediates are 8-bit uncompressed QuickTime only (#372 closed by #778: no 16-bpc, AVI or lossless-compressed codec); #325 render over existing file Larger files than After Effects + Media Encoder 20–40 h G6 · file-format-parity.md
23 Essential Graphics interchange Templates are .ectemplate, not .mogrt; #338 and #611 closed Premiere editors can't use our templates 15–30 h — · file-format-parity.md
24 Timeline depth requests #601 expand precomps in place, #602 reorderable render stack, #604 guide-only effects, #425 keyframe confusion (#355 and #428 closed) Power-user speed 15–30 h G2 · ui-parity.md
25 Accessibility AccessKit is enabled in eframe and tests read focus labels; the Project panel has After Effects' arrow-key navigation and named, stateful AccessKit nodes (#776), but the other panels have had no screen-reader pass or keyboard navigation audit, and there is no contrast check Excludes users; After Effects supports screen readers poorly too 15–30 h G9 · ui-parity.md

Where we're going: workstreams in priority order

Each workstream lists what "done" means, so progress can be measured rather than self-graded.

G1. Measure fidelity against After Effects

The most important missing piece: it turns every other estimate here into a measurement.

G2. Real-user reliability on every platform

Real-user report log (5–10 October)

Kept from the 5 October assessment's "Real-user experience" row, as evidence of what users hit and what was fixed:

Issues #41–#47 (all from the Linux AppImage 0.1.1, 5 October): panning the viewer snaps back, panels can't be resized or rearranged, drag-and-drop and double-click import don't work, layer rename gets stuck, the Layer Settings arrow does nothing, the Project panel clips, the Wayland window icon is generic. Issues #63–#68 (macOS, 5 October): scaling a layer by its handles goes wrong and can stick at 0, two 3D compasses, the viewer lags while a layer is dragged (a frame renders in 20 ms but showed after ≈ 100 ms, behind RAM preview prefetch), the Discord and other links do nothing, Delete doesn't delete in the Project panel, hidden layers can be selected in the viewer. All but the last two were fixed or confirmed fixed with a test on 5–6 October (those two have community PRs); file drops still can't work on Wayland (winit has no support). The panning, rename and arrow bugs had been fixed in v0.2.0 already; nobody had told the reporter. A Windows user (6 October, on Discord) found the font menus listed only the three bundled fonts: installed fonts were read only when a project asked for one, on every platform. Fixed with a regression test on 6 October; the menus now list every installed family and its own styles, and agents get text.fonts / list_fonts. Seven reports of 6 October (Linux .deb and Windows): Project items and files couldn't be dropped on the viewer (#85), nor effects on a layer there (#88); drops in the Timeline ignored where they landed (#89); an angle's revolutions couldn't be edited (#93); toggling Audio, Lock or Shy threw away the RAM preview and playback with audio skipped frames (#103); running out of video memory panicked every frame thread and left frames stuck (#106); choosing a Render Settings template in the Render Queue did nothing (#117: any popup menu moved up to fit the window closed on the press). All seven were fixed with regression tests on 7 October. Reports of 7 October (Linux, macOS, Windows): the app opened the demo project on every launch, so a new comp landed in it (#204); a comp wider than the GPU's texture limit (11000 × 2200) at Full resolution stopped the window drawing (#201); an Intel HD Graphics 5500 couldn't start the app (#198: most likely the window's device asked for limits that GPU doesn't have, and the failure was silent); Audio Spectrum / Waveform stood still in the viewer (#209) and preview sound waited for the whole work area to cache (#208); a layer couldn't be deselected from the time graph, a shape layer's Fill and Stroke showed only with a shape tool and a drawn shape had no stroke to change, Alt+Shift+P didn't reveal Position (#205); a mask selected in the Timeline wasn't selected in the viewer, Mask Feather had no link and took negative values, the Project panel had no selection box (#203); shape layers had no Add menu for Trim Paths and the other operations, and Classic 3D comps hid Geometry Options (#206); dragging Puppet pins re-rendered the layer under the Puppet at every move (#212). All were fixed with regression tests the same day (#219–#222); the #198 fix couldn't be checked on that GPU. Reports of 8 October (browser, Windows, macOS): an empty project at 1280 × 800 with device pixel ratio 2 crashed on its first frame, because the Project panel's scroll bar clamped its thumb to a track shorter than the thumb (#231, any short panel on every platform); Media Browser ▸ Add Files… dropped a file it couldn't read without a word (#226); after the page's WebGPU device was lost, the browser editor froze on its last frame while edits went on (#225); a press in the viewer always took the topmost layer, so a selected layer behind others couldn't be dragged (#230); the language didn't follow the system's (#229); and a list of missing After Effects behaviour (#227): drawing into, copying, pasting and duplicating shape contents, Tool Creates Shape / Mask and Fill / Stroke Options, Turbulent Displace, Wave Warp and Bulge pinning all but a shape layer's bottom-right quadrant, a Spacebar hold that previewed instead of being the Hand tool, the Effect menu in Effect Controls, dropping items on New Composition and dragging over layer switches. All were fixed with regression tests the same day (#235, #237–#241); multi-monitor support and the Project panel's empty-area menu (community PR #210) remain from #227, and effect points on shape and text layers still sit half a comp off. A list of tweaks from an Intel iMac (#290): the layer bar didn't show where extended footage runs past its source, and Enable Time Remapping then ended at the extended out point; footage items had no Interpret Footage in their menu and the work area bar no menu; Label menus named the labels without their colours; the arrow keys didn't nudge layers; a straight motion path had no Bezier handles; Delete on Time Remap deleted the layer; a mask being drawn with the Pen blacked out its layer until it was closed; a double-click on a mask point didn't select the whole mask. All were fixed with regression tests the same day; the rest of #290 had been fixed already (#221, #238, #255) or came with community PRs #210 (the Timeline's empty-area menu) and #213 (tool flyouts on a long press). A report of 9 October (#397): CC Particle World ignored the comp camera and looked flat. It now sees its particles through an active camera layer, as After Effects does, and through its own Extras ▸ Effect Camera (Distance, Rotation X / Y / Z, FOV, added) otherwise; the layer cache also missed camera and light moves for the effects that read them (Card Dance, Shatter, Card Wipe, Caustics). Fixed with regression tests the same day. Most checking happens on macOS. Localisation covers the menus in Japanese, Simplified and Traditional Chinese, and Ukrainian, and since 9 October the cataloged panels, dialogs and tooltips too (Simplified and Traditional Chinese, and Ukrainian; the Japanese rows of the panel catalog are still open); no accessibility work

G3. Stability and a green main

G4. Open After Effects projects

G5. Performance at real-world scale

G6. Media depth

G7. Learned models for Roto Brush and face tracking

G8. Plug-in ecosystem

G9. Reach

For agents choosing work

  1. Read plan/STATUS.md for owner blockers and running work, then this file.
  2. Prefer G1–G3 over new features. A feature that exists but behaves differently from After Effects is not done.
  3. When you fix a behaviour bug in a feature target-app-parity.md marks as done, add it to the evidence above, and update its row in the ranked list (remove it when the gap is closed). That is how this assessment stays honest.
  4. Don't raise target-app-parity.md's numbers without evidence: a G1 score, a user-facing check on more than one platform, or both.

Revision history

Date Change Summary
2026-10-16 minor Gap 8: #932 closed (Convert To Bezier Path converts a shape layer's parametric path, not only mask RotoBezier)
2026-10-13 patch G2: layer bounds no longer compete with editable shape/mask path points (#1220)
2026-10-12 minor Audited against upstream/main 470ea7a3: open-issue count and crash list, closed issues removed from rows 1, 3, 5, 6, 8–12, 15–17, 22–24, G8 and G9 (#759 #include), localization catalogs recounted (≈ 12% to ≈ 18%); rows 7, 14 and 21 left to open PRs #1102, #792 and #1098
2026-10-10 minor Alpha gate checked: no alpha blockers
2026-10-12 minor Gap 21: percentage guides and effect colour labels added (#1095)
2026-10-10 major Re-measured against After Effects 2026 26.5: two numbers (breadth ≈ 91%, ready ≈ 45%), dimension table with hours, a ranked list of 25 gaps with evidence, impact, estimate and parity doc; the real-user evidence moved into a report log under G2; links follow the rename of parity.md to target-app-parity.md
2026-10-08 minor User issues of 6–8 October and their regression evidence
2026-10-05 major First honest assessment: breadth ≈ 99% vs real use ≈ 30–50%; workstreams G1–G9