euca-animation) evaluates skeletal poses every tick from glTF clips. The
evaluation pipeline is: state machine → clip sample → crossfade → montage overlay → root motion →
events → bone matrices. All of it is transform math, so it runs on the headless server; the resulting
bone matrices are what a GPU host consumes to skin a mesh.
Headless logic, GPU display. Loading clips, driving state machines, blending, IK, and root-motion
extraction all run on the
:3917 server with no GPU. Only the final skinned, on-screen
mesh needs a render host.What it does
- Clips & playback — load glTF animations into an
AnimationLibrary; play/stop per entity with speed and looping (euca_animation::animation_evaluate_system). - State machines —
AnimStateMachinewith named states and parametric transitions (float/bool compare conditions), crossfaded. - Blend spaces —
BlendSpace1D/BlendSpace2Dfor parametric clip interpolation (e.g. a locomotion blend by speed/direction). - Montages — one-shot overlays with blend-in/out ramps and bone masks (
MontagePlayer). - Root motion — drive entity translation from the root bone (
extract_root_motion). - IK — analytical
two_bone_ik, iterativefabrik_solvefor N-bone chains, and aLookAtConstraint. - Events — fire animation events at keyframes (
AnimationEventLibrary).
Endpoints
| Method | Path | Description |
|---|---|---|
POST | /animation/load | Load a glTF file with animations |
POST | /animation/play | Start an animation on an entity |
POST | /animation/stop | Stop animation on an entity |
GET | /animation/list | List loaded clips (duration, channels) |
POST | /animation/state-machine | Attach a state machine with states + transitions |
POST | /animation/montage | Play a blended montage overlay |
Example
Status
- ✅ State machines, crossfade blending, blend spaces, montages with bone masks, two-bone IK, FABRIK IK, look-at constraints, root motion, animation events — all shipped and headless.
- The system produces
BoneTransforms; binding them to a skinned material for display is the render host’s job.
Animation endpoints
Load, play, state-machine, and montage endpoints with schemas.