Skip to content

Precision tools

Ron Yitzhaki edited this page Oct 19, 2026 · 1 revision

Precision tools

Exact control over timing, easing, layout, files and stills, in numbers rather than looks. Ask for it in plain words ("put these keys on whole frames", "copy the ease of the logo's last key to the three titles", "align these to the left edge of the title"); the AI uses these tools. They are on demand: in the core tool set the AI reaches them through ae_tools / ae_call (see What the AI can do).

Every edit is one undo step and returns a change report, as with every other tool.

Keyframe tables

Tool What it does
ae_get_keyframes Reads the keys of many layers and properties as a table. Each key has its whole frame and exact time, the value, the interpolation, and its ease exactly as After Effects stores it (speed in the property's units per second, influence in %). Keys that sit between frames are flagged (offFrame), never rounded silently. curves: true adds the normalised curve of each segment (as cubic-bezier numbers).
ae_set_keyframe_table Writes such a table back, many properties in one undo step. A wrong number of ease values, an influence outside 0.1–100, two keys on one frame, or roving on a first or last key are refused before anything is written.

ae_set_keyframes, ae_edit_keyframes, ae_remove_keyframes, ae_copy_keyframes and ae_get_layer_bounds also take whole frames instead of seconds, and ae_set_keyframes takes one ease per dimension.

Ease counts. A spatial property (Position, Anchor Point) has one ease per key side, along the motion path. Other properties have one per dimension: Scale has three, Opacity one. After Effects reports influence 0 on a side no segment uses (a key set to Bezier without an explicit ease); Surehand writes such a value as 0.1, After Effects' minimum.

Easing

Tool What it does
ae_copy_ease Copies the ease of one reference key to many keys and layers. Same number of ease values: per dimension. A reference with one: to every dimension. Otherwise name the reference dimension (sourceDimension). Speed is in each property's own units, so choose copy, keep (copy only the influence) or zero.
ae_audit_easing Read-only. Finds a comp's own most-used curves (overall and per property type) and lists the segments that match none, with layer, frames, the exact ease and the nearest norm. Useful to check a motion system's consistency, not to impose a style.

Retiming

ae_retime_keyframes has four modes; every key lands on a whole frame:

  • scale: stretch or compress timing around the first key, the last key or a given frame (factor, or a target duration in frames). Speeds are scaled so each curve keeps its shape.
  • offset: shift keys (or whole layers) by N frames.
  • stagger: layer i moves by i × N frames, in the order you give.
  • conform: change the comp's frame rate and put keys and layer timing on the new frames. It reports what was rounded and by how much.

Keys that would land on the same frame are refused before anything changes.

Measured layout

ae_align_layers aligns (left, right, top, bottom, centres), distributes with equal gaps, or centres in the comp, using the layers' measured on-screen bounds: through scale, rotation and parenting, with text measured by its glyphs. It is not based on anchor points. It measures again after moving and reports any error left (normally 0). dryRun: true only reports the moves. 3D layers (or layers with a 3D parent), locked layers and expression-driven positions are left alone, with the reason.

Files and stills

Tool What it does
ae_find_files Finds files on disk (no After Effects needed): ~, globs such as **/*.{mov,mp4}, names with accents in either Unicode form, depth and result limits. It never follows a folder twice.
ae_export_frames Full-resolution PNG stills of comps, of chosen layers only, or of footage, several per call (frame lists or ranges, [####] numbering). Works whatever the comp's preview resolution; leaves no undo step. An existing file is never replaced unless you ask (overwrite: true).

ae_import_files reports, per file, when After Effects rejected the requested import as (for example a PNG as a comp) and what it imported instead; strictImportAs: true refuses the whole import instead.

Tested

On After Effects 2025 and 2026, macOS and Windows 11. 3D layers aren't aligned yet (screen position needs depth).

Clone this wiki locally