Files
effectcraft/docs/file-format-parity.md
vangel76andClaude Sonnet 5.5 19e4fc7c60 docs: re-audit gaps.md and parity docs against main (2026-10-12)
Open-issue count, crash list, closed-issue references, localization
catalog counts, export formats and #include status checked against
upstream/main 470ea7a3. Rows 7, 14 and 21 of gaps.md untouched (pending
in PRs #1102, #792, #1098).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 21:36:26 +02:00

9.0 KiB
Raw Permalink Blame History

File format parity

Last reviewed: 2026-10-12 · Last updated: 2026-10-12 · Change: minor (closed issue references re-audited against upstream/main 470ea7a3) · Target: Adobe After Effects 2026

Every format After Effects reads or writes, with EffectCraft's support. After Effects' list comes from its installed bundle (26.5.0.89: Info.plist CFBundleDocumentTypes, Plug-ins/Format, Resources/usd_plugins) and its public documentation; ours from crates/media/src/lib.rs (STILL_EXTENSIONS, VIDEO_EXTENSIONS, MODEL_EXTENSIONS, FilmCraft's AUDIO_EXTENSIONS), crates/engine/src/commands/file.rs (DATA_EXTENSIONS) and OutputFormat::ALL in crates/project/src/render_queue.rs. Video codecs come from FilmCraft's pure-Rust crates (architecture.md).

Overall ≈ 50% (estimated, weighted by use): modern delivery and interchange formats are strong, but After Effects' own project, template and preset formats, which decide whether existing work moves over, are 0%.

Fidelity key: exact (bit-exact or within a stated tolerance of a reference), good (round trips and renders, checked by tests, not against After Effects), partial (named limitations), none.

After Effects' own formats

Format After Effects EffectCraft read Write Fidelity / notes Tested by
Project .aep R/W (native) none none Main file format; needs an owner decision on clean-room scope (#190; #248, closed as its duplicate: py-aep as an external converter; open PRs #251 and #860). Blocks beta —
XML project .aepx R/W none none Same decision as .aep —
Templates .aet / .aetx R/W none none Own .ectemplate (Home ▸ Templates, Save as Template) templates.rs tests
Motion Graphics template .mogrt W (and R in Premiere) none none Own .ectemplate Essential Graphics templates; FilmCraft rejects our .fcgt export (#611) essential.rs tests
Animation preset .ffx R/W, 621 bundled none none Own JSON .ecpreset; .ffx is out of clean-room scope (AGENTS.md §2) animation.rs tests
Render Settings / Output Module templates .ars / .aom R/W none none Templates are stored in the project and settings instead render_templates.rs tests
Scripts .jsx R (run) yes — After Effects object model and ScriptUI (scripting-parity.md) crates/script tests
Binary scripts .jsxbin R (run) none — No public specification: out of scope —
Motion graphics JSON .mgjson R (data) none none Media Browser lists it; import accepts only .json / .csv / .tsv data —
Captions .aecap, graphics .aegraphic R/W none none — —
Native .ecproj — yes yes Versioned JSON; schema migrations tested; absolute footage paths, no relinking (gap 18) engine project tests

Footage: stills

Format After Effects Read Write Fidelity / notes
PNG R/W yes yes (sequence) good
JPEG R/W yes yes (sequence) good
TIFF R/W yes yes (sequence) good
OpenEXR (multi-layer, Cryptomatte) R/W yes yes (32-bit sequence) good; HTJ2K compression fails (#482); EXRs without an unnamed RGB layer decode twice (#474)
Photoshop PSD / PSB R (footage, composition) / W (layers, sequence) yes (layers, groups, masks, styles, smart objects) Save Frame As ▸ Photoshop Layers; no Photoshop sequence output good, from Adobe's published spec
Illustrator .ai, PDF, EPS R yes (vector, Continuously Rasterize, Create Shapes) — partial: no JPX / JBIG2 images, no Illustrator procset EPS
SVG R yes — good; SVG markup on the clipboard pastes as a shape layer (26.3, #738); Illustrator's own clipboard data (PDF/AI) doesn't
GIF R/W yes yes (animated) good
BMP R yes — good
WebP — yes (still; animated WebP as footage with its frames, timing and alpha, #762) — beyond After Effects
Targa .tga R/W yes (still and sequence; alpha interpreted on import) none good for import (#745); no Targa output
DPX / Cineon .dpx .cin R/W yes (still and sequence; 8/10/12/16-bit luma, RGB, RGBA, both byte orders; log code values shown as stored) none partial: import (#756); no Interpret Footage ▸ Cineon Settings (log to linear), no DPX output; common in film VFX
Radiance .hdr R/W yes (still and sequence, 32-bit linear float like OpenEXR) none good for import (#745); no Radiance output
SGI, PICT, ElectricImage, RLA/RPF images R none none Legacy; RPF camera data import exists (keys.rpfCameraImport)
Camera Raw (DNG, CR3, NEF…) R (Camera Raw) none none LightCraft has decoders that could be shared
HEIF / AVIF R (platform) none none —

Footage: video and audio

Format After Effects Read Write Fidelity / notes
MP4 / MOV with H.264 R/W yes yes (own encoder, + AAC) decoder bit-exact on conformance streams (FilmCraft)
HEVC (H.265) R/W yes yes (MP4 hvc1, Main / Main 10) encoder bit-exact with ffmpeg's decode; no B-frames / SAO, larger files
AV1 R yes yes (MP4 av01, WebM) beyond After Effects' export; no B-frames / CDEF
Apple ProRes (422 family, 4444) R/W yes yes good; 4444 colour tag wrong (#340); no ProRes RAW
WebM / Matroska (VP9, AV1, Opus) R (limited) yes, incl. VP9 alpha yes beyond After Effects
MXF (OP1a / OP-Atom) R/W yes (FilmCraft's demuxer: AVC, MPEG-2 incl. XDCAM / D-10, VC-3 / DNxHD, ProRes; PCM audio) none partial: import (#767), checked against ffmpeg; no MXF output
AVI R none none Media Browser lists it
DNxHD / DNxHR R/W unverified (FilmCraft decodes it; reachable only inside .mov) none —
BRAW, R3D, ARRIRAW R (plug-ins / SDKs) none none proprietary SDKs
Variable-frame-rate phone video R unverified — needs a real-media corpus
WAV, AIFF R/W yes yes (16-bit PCM) good
MP3, AAC / M4A, FLAC, Ogg, Opus R yes AAC and Opus inside video only MP3 silence (#324) is closed

3D models

Format After Effects 26 Read Notes
glTF / GLB R yes (meshes, PBR, skins, animations) good
OBJ / MTL R yes good
FBX R (usdFbx) yes (7.x binary and ASCII: meshes with normals, UVs and per-polygon materials, the Model hierarchy with pivots and pre/post rotation, Lambert/Phong materials with embedded or relative textures, axes turned to Y-up; no animation, skinning, cameras or lights; 6.x rejected) partial
USD / USDZ R (usd_plugins) none gap 13
STL R (usdStl) yes (binary and ASCII, VisCAM and Magics facet colours; Z-up turned to Y-up) good
Substance 3D materials .sbsar R (26.0) none gap 13

Interchange and data

Format After Effects Read Write Notes
Premiere Pro .prproj R (import) none none Out of clean-room scope pending a decision; we interchange through FCP7 XML, FCPXML, OTIO, EDL, AAF and OMF instead (beyond After Effects)
Lottie JSON / dotLottie via third-party plug-ins yes yes beyond After Effects; a warnings list names what Lottie can't express
JSON / CSV / TSV data R yes (footage(), data layers) — good
LUTs (.cube, .3dl, .csp, .spi1d/3d, CDL) R yes (Apply Color LUT, OCIO effects) — Apply Color LUT bug (#514) is closed
OpenColorIO configs R (OCIO 2.5.1, ACES 2.0 in 26.5) yes (OCIO v2 subset, Blender configs) — partial: no ACES 2.0 output transforms
Fonts (TTF, OTF, TTC, variable) R yes — good
Mocha shapes R (Mocha AE) own documented JSON — Mocha's format is not public
Vanishing Point .vpe R none — no public specification; the menu entry explains why

Render queue outputs (OutputFormat::ALL, 13)

H.264 MP4, HEVC MP4, AV1 MP4, ProRes MOV, uncompressed 8-bit RGB / RGB + Alpha MOV (raw , + PCM; #372), WebM (VP9 or AV1 + Opus), PNG / JPEG / TIFF / OpenEXR sequences, animated GIF, WAV, AIFF. Missing against After Effects + Media Encoder: 16-bpc uncompressed, AVI and lossless-compressed single-file video (Animation / PNG codecs), DPX / Targa / Photoshop sequences, MXF, DNxHR, hardware encoders (hardware-parity.md), and rendering safely over an existing file (#325).

Estimate

≈ 130–230 h: .aep / .aepx import 80–160 h (after the owner decision), wiring TGA / DPX / HDR / MXF / AVI / DNx import and DPX/TGA output 10–20 h, FBX animation and skinning, USD and Substance 20–40 h, relinking 6–12 h, .mogrt-compatible templates 15–30 h (partly parallel with the rest).

Revision history

Date Change Summary
2026-10-12 minor #324 and #514 marked closed; open .aep PRs #251 and #860 noted
2026-10-10 major First file format parity document, from the After Effects 26.5 bundle and this repository's import/export registries