You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
A character component: a moving, aiming, reacting person in a few lines #903
Setting up one figure on the animation pipeline takes too much: the showcase's figure on a stick is 96 lines and 56 calls across seven modules (figure, animator, clips, retarget, ikrig, mover, pose), with the clip preparation (straighten, loop cut, crop about the move) done by hand. Beside the pipeline, older modules still do parts of the same job (anim, feet, lookat, locomotion, idle, posing, ik, handover, and motion's own feet).
Wanted: one component, the way Unity's Animator plus a CharacterController reads, with defaults that are right for a person:
hero = character.humanoid(e, "Hero", "people/adventurer.glb", character.gaits("100style/neutral"))
character.move(hero, velocity, facing) // every frame, from the game
character.aim(hero, target)
character.hit(hero, bone, point, impulse) // physical reaction, then back to the animation
Locomotion out of the box: idle, starts and stops by distance, a 2D blend of the gaits, turns on the spot in steps, motion matching where a database is given.
Feet, look and aim IK on by default, held to the numbers test_anim_pipeline and test_ik_constraints already measure.
States, takes and transitions declarable as data (a file), not only as calls.
Everything underneath still reachable for a game that wants it.
Done when the showcase's figures are each set up in a few lines through it, the README's animation example is the real code, and every check in test_anim_pipeline and test_ik_constraints holds through the component.
Reopened: #905's merge (68934a3) closed this, but it carried only the hand-off between writers (animator.pause, resume, share_take, safe behaviour removal). The remaining work is as written above.
Moves as data, from the joint plan with Siltreach (2026-11-02): one graph file format (states, takes by file and name with their retarget, transitions with their conditions, events, parameters) read into the animator. A profession's action set is one such file, so a new profession is data, not code. This is the 'states as data' item above.
Activity
nicolas-maman commentedon Nov 2, 2026
Reopened: #905's merge (68934a3) closed this, but it carried only the hand-off between writers (animator.pause, resume, share_take, safe behaviour removal). The remaining work is as written above.
nicolas-maman commentedon Nov 2, 2026
Moves as data, from the joint plan with Siltreach (2026-11-02): one graph file format (states, takes by file and name with their retarget, transitions with their conditions, events, parameters) read into the animator. A profession's action set is one such file, so a new profession is data, not code. This is the 'states as data' item above.
README: the street at golden hour, people walking it, and what ae3d i…
character: a person in one call, using seats and benches; stops on th…
character: moving by a database of whole captures (#903)
animgraph: a graph of states as a data file (#903)
people: a person in a few lines; the showcase's stick and walker thro…
character: a capsule to climb by; freed whole; turning and stairs hel…
feet: a toe pushing off held through a blend; a release eased from it…
character: people on graph files; every showcase figure through it (#903
physanim: physical animation body by body; character.hit (#858, #903)
Merge pull request #921 from aether-lang-dev/feat/motion-next