---
name: set-anima-animations
description: Anima's animations and how to download them. Use when a game needs motion clips for Set's base character (breathing, walking and running, jump, punch, hit reaction, kneel, throw), the timing rules of its weapon actions, the schema of a clip's metadata, or wants to know what a downloaded clip contains and what stays in the runtime.
license: Free to use when obtained from set.world, commercially too (the API, what it returns, the skills and downloaded models). The source code of Set is © Jimmy Lee under CC BY-NC 4.0 and its commercial use needs a paid waiver.
metadata:
  version: "0.8.9"
  title: Animations
---

# Animations (AnimaSystem)

Anima has no imported animation files. Every pose comes from one deterministic pose function over its 48-bone rig (`anima-motion-56`), and every preview, scene actor and downloaded clip samples that same function. Motion is part of Set's own game layer; the API returns no animation.

## Download a clip

Clips are built in the browser at `https://set.world/anima`. Scroll a column into view, set its controls, then choose **Download motion** (or **Download model** in the first two columns).

| Column | File | Clip |
| --- | --- | --- |
| Base avatar, Portrait face | `anima.glb` | Breathing, 4 s loop |
| Walking | `anima-walk.glb` | One stride in place at the chosen walk-to-run blend |
| Jump | `anima-jump.glb` | 4 s jump at the chosen height |
| Attacking | `anima-punch.glb` | The 4 s unarmed punch |
| Taking a hit | `anima-hit.glb` | Eight hits at the chosen frequency and direction, then full recovery |
| Kneeling | `anima-kneel.glb` | 4 s kneel, hold and rise |
| Lobbing a WorldSphere | `anima-throw.glb` | 12 s pickup, hold and overhand lob, with the prop's own track |

Each file is a GLB with the rigged model and one clip sampled at 60 Hz as position and rotation tracks per bone. Download and load it exactly as the model in [Character models](https://set.world/skills/anima-character-models): the button is **Download motion**, and the clip is `asset.animations[0]`.

## The clip's metadata

The root node's `extras.motion` records what was sampled:

```ts
type ClipMotion = {
  kind: 'idle' | 'walk' | 'jump' | 'punch' | 'hit' | 'kneel' | 'throw';
  version: string;                 // "anima-motion-56"
  gait: number;                    // the walk-to-run blend, 0..1
  inPlace: boolean;                // true for idle, walk, jump and throw
  jumpHeight?: number;             // jump: the slider amount, 0..1
  jumpApex?: number;               // jump: the height in model units
  hitsPerMinute?: number;          // hit
  hitDirection?: string;           // hit: "all" or one of the eight sides
  hits?: number;                   // hit: 8
  completeRecovery?: boolean;      // hit
  worldSphere?: Record<string, unknown>;   // throw: the prop's radius, timing and launch
};
```

```json
{ "kind": "jump", "version": "anima-motion-56", "gait": 0, "jumpHeight": 0.5, "jumpApex": 1.25, "inPlace": true }
```

A schema for clips in your game:

```ts
type AnimationClipAsset = { key: string; file: string; kind: ClipMotion['kind']; durationSeconds: number; loop: boolean; motionVersion: string };
// { key: 'walk', file: '/assets/anima-walk.glb', kind: 'walk', durationSeconds: 1.16, loop: true, motionVersion: 'anima-motion-56' }
```

**Not in a clip:** live IK, grip fitting, weapon actions, ragdolls, hit recoil, cloth and motion blending. Those are runtime controllers in `three-isometric-engine/avatar/motion.mjs`.

## The body motions

The timings in this table are read from the pose function as it stood at `anima-motion-56`; the clip you download carries the version it was sampled from.

| Motion | Rule |
| --- | --- |
| Breathing idle | A 4 s cycle; every action layers on it and returns to it |
| Walk to run | One continuous phase blended by `g` from 0 to 1: stride half-length 0.29 to 0.48, duty 0.64 to 0.42, 0.86 to 1.62 cycles per second. A blend change never resets the stride |
| Jump | Height `0.30 + 1.90 × amount` model units; crouch, push off at 0.67 s, rise gravity 10, fall gravity 14, absorbing landing |
| Punch | 4 s action, impact at 1.32 s; guard, windup, hip and spine drive; one sole stays grounded |
| Hit reaction | Each hit drives recoil, fold, stagger and a step for 2.4 s; hits add up and extend recovery |
| Kneel | 4 s, down on the right knee; its held and rising part is the get-up after a fall |
| Landing and get-up | Landing 0.85 s; get-up blends 0.65 s, holds 0.85 s, rises 1.30 s |
| Ragdoll | Sixteen bodies for death, pickup and tumbles; a living Anima gets up and resumes |

Elbows and knees solve with two-joint IK in stable pole planes; the pelvis drops rather than overextending a leg; every pose starts from rest, so nothing accumulates between cycles.

## Weapon actions

Every held item has one one-handed action, authored over a 4-second cycle (authored time, not wall time). The item's base type decides the action, and the action's delivery decides what it does:

| Delivery | Actions |
| --- | --- |
| melee | `bash`, `slash`, `jab`, `thrust`, `chop`, `shieldBash`, `lash`, `twirl` |
| projectile | `aim`, `fire`, `whirl`, `throw`, `return`, `blast`, `gunfire`, `hurl`, `skewer` |
| aura | `strum`, `play`, `rupture`, `crossRupture`, `repulse` |
| wave | `flick`, `gaze` |

Which of the 145 mainhands plays which action is one column of the held-item table in [Derived combat](https://set.world/skills/anima-derived-combat).

- **Tempo.** How fast an action plays is owned by [Derived combat](https://set.world/skills/anima-derived-combat).
- **Hands.** One complete action at a time. Two held items alternate complete right and left turns; the left hand mirrors the action against its own anatomy.
- **Kneeling shots.** Crossbows, the Rifle, the Hand cannon and the harpoon gun kneel on the firing-side knee and shoot level.
- **Steps.** A thrust steps the weapon-side foot into the lunge; a chop steps the other foot forward with bent knees.
- **Windup.** Long tools pull the torso back further, short tools less; the strike pose and contact timing never move.

Weapon actions are not downloadable clips. To see each one: `https://set.world/anima-all-weapons` (every mainhand, Show attacks) and `https://set.world/item-models` (Start attack on the chosen item). Their keyframes are in `three-isometric-engine/weapons/actions.ts`.

## Reference

Clocks, pausing and what interrupts an action in a running scene are in [Scenes](https://set.world/skills/anima-scenes) and [Derived combat](https://set.world/skills/anima-derived-combat). Equations and timings are §15.7 to §15.21 of the reference, and weapon action rules §13.22 and §13.69 ([Algorithms](https://set.world/skills/algorithms)). The poses are stylised demonstrations, not a validated combat or locomotion model. Set has not tested the clips in other engines.
