Repository navigation
Stress test
A template that looks right with the designer's text can break in an editor's or a client's hands: a long German
name overflows its box, Arabic comes out left to right, a number shows as 1e+21. ae_stress_test finds that
before they do. It pushes worst-case inputs through every variable the comp exposes and measures each result.
Ask for it in plain words: "Stress-test the lower third with long German names and Arabic."
- The comp's variables: its Essential Graphics controllers (text, numbers, checkboxes, menus, colours, media replacement) and text that reads data, or the layers you name.
- Test data, not looks: long German and Finnish strings scaled from the current text, Hebrew and Arabic with digits, Japanese, Chinese, Korean, Thai, Hindi, combining marks, emoji, all caps, empty, one character, no spaces; zero, negative, huge, past the slider limit, many decimals, both separator styles, percent; every checkbox and menu state.
- Your own values, or rows from a CSV or JSON file, each row one variant.
By default each control is varied on its own (combinations: "single"); "together" and "all" combine them.
Combinations are sampled evenly up to maxVariants (default 80), and the report says what was kept.
At the animation's key frames and where each text starts and stops being visible (up to 12 frames by default):
- Overflow of a paragraph box, by how many pixels and lines (After Effects 24.6 or later).
- Safe areas: the frame, title-safe or action-safe, with your margins.
- Text size: your minimum font size or cap height, or smaller than the comp's own text.
- Missing glyphs (After Effects 25.1 or later): the report names the font you designed with and the font After Effects fell back to.
- Direction: right-to-left and complex scripts without the paragraph direction or composer they need.
- Lines: line count, and line breaks inside a word (After Effects 24.3 or later).
- Overlap with layers you name.
- Numbers: whether a number shows right in the text that displays it.
What already fails in the comp as it is now is listed once, as the baseline, so it doesn't repeat in every variant. A check your After Effects version can't run is reported as not run, never as passed.
Expressions that reference something by its English display name, such as effect("Slider Control")("Slider"),
thisLayer("Transform")("Opacity") or a default shape or mask name, break when the project opens in an After Effects
in another language. Each one is listed with the language-safe form (an index, a match name or an attribute).
action: "expressions" runs only this scan.
Every variant is set on a scratch copy of the comp, which the same step removes again. Afterwards your comp is read
back, every property value, and must be identical; if it isn't, the report says so. proveUnchanged: true adds a
pixel proof (see Proven edits). In Read-only mode the stress test returns the plan and the expression
scan only.
- PASS or FAIL, with what breaks, where, at which frame and by how much, for example "Title overflows its box by 184 px; 3 lines, the box shows 2 at f48".
- A grid of variants and checks.
- A contact sheet PNG for each failing variant (up to 12).
- In AI apps that show in-chat views, the grid comes with each failing frame marked.
| Option | Meaning | Default |
|---|---|---|
comp |
The comp to test | the active comp |
targets |
Which controls or layers to vary, with limits per target (maxLines, maxWidthPx) |
every variable the comp exposes |
sets, exclude
|
Which groups of test data to use or leave out ("rtl", "cjk", "number"…) |
all that fit each control |
values, data, columns
|
Your own values, or CSV / JSON rows mapped to controls | — |
combinations |
"single", "together" or "all"
|
"single" |
maxVariants |
At most this many variants (1–500) | 80 |
frames, maxFrames
|
Exact frames to check, or at most this many chosen frames (1–60) | 12 |
checks |
Which checks run, with your limits (safe area, minimum size, overlap layers…) | all |
proveUnchanged |
Also prove with pixels that the comp is unchanged | off |
dryRun |
Only the plan | off |
timeBudgetSeconds |
Stop starting new variants after this long (10–3600) | 300 |
- It tests the inputs it generates or that you give it, at the chosen frames. A problem that only shows at another frame, or with another string, can be missed.
- Overflow, glyph and line-break checks need newer After Effects versions (24.6, 25.1, 24.3); on older ones they are reported as not run.
- Scripts can't set per-character direction or kashida justification, so those aren't tested.
Start here
Using Surehand
- The Surehand panel
- Approvals
- What the AI can do
- Precision tools
- Checkpoints
- Proven edits
- Project history
- Project X-ray
- Precomp surgery
- Preflight
- Stress test
- Versions, localization and reformat
- Rendering
- Render speed, handoff and farms
- Chat in After Effects
- In-chat views
Reference
Developers