Everything in it, and the parts that are not
120 capabilities across 14 areas. The ones that are limited or missing are marked as such, because a list with no gaps in it is a list nobody checks twice.

Compositions and layers
The stack everything else happens in. Nest one composition inside another, and it renders through its own camera until you tell it not to.
- Layer types
- Shape, text, image, video, audio, SVG, Lottie, nested comp, camera, light, null, adjustment, particles.
- Pre-composition
- Nest and instance a comp more than once, with time remapping. Collapse transformations to let it meet the host's space.
- Parenting
- Loop-safe. Re-parenting compensates the local transform, so the layer does not move when you attach it.
- Adjustment layers
- Affect everything beneath them, and break the 3D stack the same way a 2D layer does.
- Guide layers
- Visible while you work, excluded from every export.
- Blend modes
- All 38 of After Effects' modes, Dissolve and Dancing Dissolve included.
- Track mattes
- Alpha and luma, invertible, and decoupled from stacking order so the matte need not sit directly above its target.
- MasksLimited
- Bezier paths, 7 modes, and a mask can scope a single effect rather than the whole layer.
Animation
Every numeric property takes keyframes, and every keyframe carries its own interpolation.
- Graph editor
- Value and speed curves side by side, with real bezier handles that work on linear keys too, and tangent alignment.
- Separated position
- X and Y are independent tracks, so they can ease differently.
- Keyframe assistants
- Easy ease, exponential scale, time-reverse, sequence layers with a real cross-dissolve overlap, stagger, and scaling a keyframe selection in time.
- Bounce
- A decaying bounce generated after the last keyframe, with gravity, elasticity and bounce count. No easing curve can express one, because a bounce is several.
- Motion paths
- Visible and editable on the canvas, with configurable dot spacing.
- Motion sketch
- Record a layer's position by dragging it in real time.
- ExpressionsLimited
- A sandboxed language with coordinate-space helpers and marker access. Convert to keyframes at any point, or disable one without deleting it.
- Time remapping
- Retime a nested composition on its own curve.
- Motion blur
- Shutter angle and phase, adaptive sampling, two-level gating as in After Effects.
- Smart Animate
- Design two boards, name the elements the same, get the transition between them as ordinary keyframes. Neither board is touched.
- Animate In / Out
- A whole selection arrives one after another — varied entrances, uneven stagger, under a project-wide Motion Feel (Snappy / Smooth / Bouncy).
- Beat-synced timing
- Markers on the beats of the composition's audio, and entrances that land on them.
Video
What a motion tool actually needs to do to footage: follow something in it, retime it, caption it, and recut it for every aspect ratio.
- One-click motion tracking
- Click the thing you want followed; feature choice, window sizes and search radius are measured from the footage. Tracks both directions from the playhead; rotation and scale ride on a companion point.
- Stabilization
- The same tracker run in reverse: steady a shot instead of following it.
- Camera solver, planar tracking, rotoNot in it
- Do not exist. If your work leans on these, After Effects with mocha is the right tool.
- Speed ramps
- Ease into 25 / 50 / 200% or a freeze at the playhead — two exact keyframes on an editable curve, on video, audio and pre-comps. Slowing turns on Pixel Motion blending.
- Captions
- Import .srt/.vtt or generate from the composition's audio. Every caption is an ordinary text layer whose clip bar is its cue window; export reads the bars.
- Auto-reframe
- Retarget to 9:16, 1:1, 4:5, 16:9 or 4:3 — a new comp instancing the original, subject-following pan, hard jumps at cuts.
- Multi-track editingNot in it
- Not a goal. Cut long-form in an NLE and bring the finished sequence in as footage.
Text
The full After Effects animator model, including the parts most alternatives skip.
- Text animators
- Animate position, scale, rotation, opacity, tracking or colour across characters, words or lines.
- Range selectors
- Start, end, offset, amount, smoothness, and both ease controls — the full Advanced set.
- Multiple selectors
- Stack more than one selector on a single animator.
- Wiggly selector
- Frequency-driven randomness across the selection.
- Per-character 3D
- Each glyph gets its own transform in 3D space.
- Text on a path
- Glyphs placed by arc length with tangent rotation, along a mask path, with keyframeable first margin.
- Presets
- 18 text presets to start from.
Try the animator model — type your own words, pick a preset, scrub the range:
The range selector sweeps left to right and each letter rides up over the crest.
Vector and shapes
Draw with real tools, then stack operators on the path in any order.
- Drawing tools
- Pen, pencil, pressure-sensitive brush, curvature tool, and the primitive shapes.
- Path operatorsLimited
- An ordered, stackable chain: offset, pucker and bloat, twist, zig-zag, wiggle paths, and boolean merge.
- Trim paths
- Start, end and offset, keyframeable, handling the wrap-past-end case correctly.
- Repeater
- Copies with position, rotation, scale and opacity offsets, cumulative in each copy's own rotated frame.
- Merge paths
- Union, subtract, intersect and exclude, evaluated live at render or applied destructively.
- Strokes
- Taper and Wave profiles that compose with dashes, gradient strokes exposing every stop, and a dash offset that animates.
- Subpaths
- Geometry is a list of subpaths rather than one polyline, so a trim can cut a path into pieces and each piece can carry its own fill, stroke and opacity.
3D space
The Classic 3D model: flat layers standing in a shared space, lit and shot with real cameras.
- 3D layers
- Flip any layer to gain Z position and X/Y rotation.
- Cameras
- One- and two-node, with depth-of-field blur, camera navigation and a camera tool.
- Lights
- Cone angle, falloff, shading, projection and cast shadows.
- Extrusion and bevels
- Beyond Classic 3D: rounded bevels, per-face materials, face picking.
- Views
- Orthographic top, front and left, plus multi-view layouts and custom angles.
- Gizmos
- Move, rotate, scale and universal, drawn at a constant size on screen at any zoom.
- Imported 3D modelsNot in it
- No PBR materials, no HDRI environments, no mesh import. Out of scope by direction.
Rigging
A real skeleton and a mesh deformer, composing on the same layer. After Effects has neither without a plugin.
- Auto-rig presets
- Biped and quadruped: bones, IK chains and controllers built in one operation.
- Bones
- Forward kinematics with linear blend skinning over a triangulated mesh.
- IK
- Analytic two-bone and FABRIK, with pole vectors.
- IK/FK switching
- Per chain, and the conversion preserves the pose.
- Controllers
- The DUIK posing layer, linked to a bone or an IK target and read by the solver directly.
- Weights
- Auto-bound by inverse distance, then painted or typed per vertex.
- Puppet pins
- An as-rigid-as-possible solver over the same mesh, with rotation, stiffness, scale and overlap.
- Bend pins
- A pin whose position derives from the others.
- Puppet sketch
- Record pin movement by dragging, in real time.
Effects and looks
Fewer than After Effects, parameterised properly. Still the honest gap, and a much smaller one than it was.
- Colour correction
- 33 of them: Levels, Curves, Channel Mixer, Colorama, Lumetri, Selective Colour, Shadow/Highlight, the auto set, and Apply Color LUT on the GPU.
- Blur and sharpen
- 12: Gaussian, fast box, directional, radial, channel, compound, bilateral, smart, camera lens blur, sharpen and unsharp mask.
- Distort
- 25: Bezier Warp with a Coons-patch interior, mesh warp, liquify, optics compensation, polar coordinates, ripple, warp, page turn, rolling shutter, corner pin.
- Keying and matte
- 16: Keylight with despill and choke, luma and colour keys, Colour Range, Extract, spill suppressor, matte and simple chokers, Set Matte, minimax.
- Stylize
- 27: glow, the Photoshop-style shadow and bevel family, cartoon, halftone, kaleidoscope, brush strokes, vignette, burn film, add grain, dust and scratches.
- Generate
- 21: beam, gradient ramp, four-colour gradient, fractal and turbulent noise, lens flare, lightning, radio waves, light rays, audio spectrum and waveform, timecode, numbers.
- Transitions
- 10 wipes: linear, radial, iris, grid, light, line sweep, venetian blinds, gradient wipe, card wipe, block dissolve.
- Time
- Echo, posterize-time, wide-time and force-motion-blur — routed through the time plumbing rather than the per-layer effect chain.
- Perspective and channel
- Bevel alpha and edges, spotlight, sphere, cylinder, and channel arithmetic.
- Layer styles
- All nine of After Effects' — drop shadow, inner shadow, outer and inner glow, bevel, satin, colour and gradient overlay, stroke — plus Glass, which resolves against what is behind the layer. Keyframeable.
- Looks
- 25 preset stacks built on the effects: Teal & Orange, Bleach Bypass, Faded Film, Cross Process, Anamorphic Bokeh, Comic Book and a set of transitions.
- On-canvas handles
- Distort centres and other effect controls are draggable in the viewport, not just in the inspector.
- Mask-scoped effects
- An effect can be scoped to a mask region rather than the whole layer — which After Effects cannot do.
- Third-party effectsLimited
- A plugin declares parameters and a shader body; the host writes the pipeline and the draw call. Needs the WebGPU tier — on WebGL2 a plugin effect is inert rather than wrong.
Five of the 183, live — pick one, drag its parameters, bypass it to compare:
The timeline
Where the work actually happens, built to the same anatomy as the tool you already use.
- Clip bars
- Drag to move, drag either edge to trim. Video and audio bars slice the waveform to the audible region.
- Waveforms
- Drawn from real peaks, for audio layers and for the audio inside video layers.
- Cache bar
- A band under the ruler showing real frame-cache coverage — the actual RAM-preview state, not an estimate.
- Work area
- Draggable by either edge or the body, and playback loops inside it.
- Markers
- Composition markers on Shift+1..9 and on the ruler, and layer markers stored layer-relative so they travel with a trimmed layer. Reachable from expressions.
- Labels
- A layer's outline on the canvas is its label colour, and one command selects every layer sharing a label — including every layer that has none.
- Ruler
- Timecode labels that honour the composition's start frame.
- Zoom
- Wheel zoom anchored at the cursor, fit to viewport, reset to 100%.
The assistant
It calls the same operations the interface does, so what it makes is editable.
- Bring your own key
- Anthropic, OpenAI or Gemini, on your own account. No credits and no plan gate — you pay your provider, not us.
- One prompt, one undo
- Everything a run touches lands in a single history entry.
- Reads the document
- Describes the scene, reads tracks, evaluates a property at a time, lists what is available.
- Writes real edits
- Creates layers, sets keyframes and easing, applies effects and presets, builds rigs, poses skeletons.
- Composition tools
- Higher-level moves backed by a hand-authored technique library: titles, lower thirds, logo reveals, camera moves, transitions.
- Self-critique
- A fit critic reviews rendered frames as evidence before the run is accepted.
- Keys never reach the renderer
- The key is held by the desktop shell's main process, which makes the call behind a per-provider SSRF allowlist. The renderer — the side a plugin panel or an imported document can reach — never sees it.
- Not in the local editionNot in it
- The assistant is part of the hosted builds. A build made from the open-source repository does not ship it, and the IPC channels behind it are not registered at all.
Export
The same render graph that draws the viewport writes the file.
- Video
- H.264 in MP4, VP9 in WebM with transparency, and ProRes 4444 with alpha.
- Sequences
- PNG with alpha or JPEG, zipped.
- Vector
- Lottie JSON, for web and mobile players.
- Deterministic frames
- Frame time is index divided by fps, never wall-clock, so two exports of one project are identical.
- Render queue
- Add, duplicate, remove, retry, skip, per-job progress and output-module settings.
- Streams to disk
- Peak memory is one frame. A long export leaves the app usable.
- Refuses bad frames
- A malformed frame aborts the render instead of being written silently.
- Resume a stopped renderNot in it
- Stopping discards the current job's progress. There is no resume yet.
Files and privacy
A project is a directory on your disk that you can read without this application.
- The .motion bundle
- A directory, not an opaque blob. Assets content-addressed by SHA-256.
- Version history
- Local and structurally shared, so history costs a fraction of a copy per save.
- Incremental saves
- Only what changed is written.
- Zero network
- The local edition makes no network calls at all — the API layer refuses to send.
- Recent projects
- The local edition opens on your recent projects rather than an untitled scene. Opening one re-baselines history, so undo cannot step back into the previous document.
- Import
- SVG with CSS animation and SMIL, Lottie, video, audio, images, Illustrator files.
- Preset bundles
- Export your saved presets as one file and import it elsewhere. The result reports added, replaced and skipped separately, so a replacement is never read as an addition.
- CollaborationNot in it
- No multiplayer, no review links, no comments. Removed deliberately rather than left half-built.
Templates
Turn a composition into something someone else can fill in without opening the timeline.
- Named fields
- A template field is a named, typed, addressable write target — text, colour, number or media — rather than a note about which layer to edit.
- Media slots
- Drop a still, a video, an image sequence or a whole composition into a slot, with a fit policy. A masked slot uses Cover, because a letterboxed fill inside a mask reads as a bug.
- Protected time regions
- Mark the parts of the timing that must survive a retime, with a marking UI for setting them.
- Fill from a data table
- Point a CSV at the fields and apply a row: forty lower-thirds from forty rows. One row is one undo entry, not one per field.
- Honest refusalsLimited
- Duplicate and blank headers are refused rather than resolved, a blank numeric cell means no value rather than zero, and media columns are reported as skipped so the limit is visible.
Plugins
Extend the editor — commands, panels, layer types and GPU effects — in a sandbox that assumes the plugin is hostile.
- Permissions first
- What a plugin can do is shown and accepted before any of its code exists anywhere. Consent is per permission, not one yes over the list, and a grant is always intersected with the manifest.
- Worker sandbox
- Network globals, storage and the DOM are removed before the entry module is imported. A refused call names the missing permission instead of silently doing nothing.
- Effects
- A plugin declares typed parameters and a shader body, and the host writes the pipeline, the uniform layout and the draw call. Multi-pass and downsampled passes are supported; the layout is checked against a real GPU.
- Layer kinds
- A plugin can contribute its own layer type with a generated child subtree, and ask for the narrow `scene:proxy` grant that reaches only its own children.
- Network
- A plugin reaches the hosts its manifest listed and only those. The request is made by the main process, so the panel stays network-free, and DNS rebinding is handled rather than assumed away.
- Storage
- Per-plugin global and per-project storage, needing no permission — it neither reads project data nor changes it.
- One undo per change
- Every mutation runs inside the host's edit transaction, and `scene.apply` batches many mutations into one round trip and one undo entry.
- Heartbeat termination
- A plugin that wedges its event loop stops answering and is killed. The editor does not notice.
- Publishing
- Publish from inside the editor and choose who can see it. A publisher can hide or withdraw their own plugin, and a key rotation is told apart from an arbitrary one.
- Registry and review
- Namespaced publishers, domain verification, publish-time scanning, a reviewer queue, a reporting path and a signed revocation list. The package digest is pinned in metadata before the bytes move.
- Reach beyond the sandboxLimited
- No filesystem, no child processes, no native code. WebAssembly is allowed inside the Worker; everything outside it is not.
- Not in the local editionNot in it
- Plugins are a hosted-build feature — the registry, the review queue and the revocation list are what make running third-party code defensible, and a build with none of them does not offer the sandbox either. A project containing plugin content still opens, edits and saves losslessly.
How it compares to After Effects
Feature by feature, including the four areas where After Effects is the better tool and this one is not.