> For the complete documentation index, see [llms.txt](https://animoia.gitbook.io/animoia-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://animoia.gitbook.io/animoia-docs/properties-and-animation/animation-modifiers.md).

# Animation modifiers

## Modifier rules

A continuous numeric/2D property can combine one each of Wiggle, Time, and Parent with one main modifier: Loop, Bounce, Overshoot, or Audio. The main modifiers are mutually exclusive. Structured/discrete effect parameters usually allow Loop only; path/curve values allow Loop, Bounce, and Overshoot. Source Text allows Variables or Loop, never both. Modifier parameters can't have nested modifiers.

## Wiggle

Adds deterministic smooth noise without changing keyframes.

**Wiggle settings**

| Name      | Type                | Description                                                                                    |
| --------- | ------------------- | ---------------------------------------------------------------------------------------------- |
| Axis      | X/Y/Linked/Unlinked | Selects affected axes. Linked sends one result to both; Unlinked generates each independently. |
| Frequency | Animatable number   | Wiggles per second.                                                                            |
| Amplitude | Animatable number   | Peak deviation in property units.                                                              |
| Phase     | Animatable seconds  | Moves through the noise field; use different static values to de-sync copies.                  |

## Time

Adds `rate × composition time` to the property. Choose X, Y, Linked, or Unlinked for 2D values. **Multiplier** is units per second and is intentionally not animatable; the evaluator uses its static value.

## Parent

Copies another project's property as `source × multiplier + shift` and ignores the target's base value/keyframes. Pick a source with the eyedropper from the Layer panel or Timeline. Numeric sources can scale, invert, and offset; colors, booleans, and paths copy directly. For a scalar target driven by a 2D source, choose source X or Y. Parent reads the source's base/keyframed value without its modifiers, preventing recursive cycles.

## Loop

**Cycle** repeats the keyframed range. **Ping Pong** alternates forward/backward. **Offset** repeats while accumulating the end-to-start difference. **Continue** extrapolates from edge velocity. Direction can be **In**, **Out**, or **Both**. Loop needs keyframes to define a range.

## Bounce

Adds gravity-like rebounds after arriving at keyframes. **Amplitude** is strength as a percentage of arrival velocity, **Decay** controls how quickly rebounds shrink, and **Max Bounces** is the integer count before exact settling.

## Overshoot

Adds a decaying sinusoidal overshoot after keyframes. **Amplitude** scales arrival velocity, **Frequency** is oscillations per second, and **Decay** controls settling speed.

## Audio

Drives a property additively from normalized audio energy. Choose an audio/video/precomp source, drag the low/high edges of the frequency band, choose axes, set **Multiplier** (and **Multiplier Y** when unlinked), and increase **Average Time** in milliseconds to smooth transients. A missing/deleted source leaves the modifier unset.

## Text Variable

Add Variable to Source Text, give it a unique lowercase name, then type its token as `<name>` in the text. The token inherits formatting from its first character and behaves as one unit in canvas editing.

**Text Variable settings**

| Name                | Type                               | Description                                     |
| ------------------- | ---------------------------------- | ----------------------------------------------- |
| Mode                | Time/Counter/Frames                | Chooses generated content.                      |
| Time Format         | mm:ss / hh:flag\_mm:ss / ss / ss.d | Display format in Time mode.                    |
| Time Offset         | Animatable seconds                 | Adds to composition time.                       |
| Value               | Animatable number                  | Counter value; keyframe it for count-ups.       |
| Decimal Places      | Integer                            | Counter precision.                              |
| Thousands Separator | Toggle                             | Groups counter digits.                          |
| Frame Offset        | Animatable frames                  | Adds to current frame number.                   |
| Zero Padding Digits | Integer                            | Minimum frame-number width; 0 disables padding. |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://animoia.gitbook.io/animoia-docs/properties-and-animation/animation-modifiers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
