Summary
Add a standard glTF animation export path so a Posecode movement can be used in an existing web animation pipeline and loaded with Three.js GLTFLoader.
Motivation
A user evaluating Posecode for an animation pipeline asked whether the evaluated movement could be exported as glTF. The renderer already evaluates joint transforms over time, so those poses could be sampled into keyframe tracks and packaged as a glTF animation.
A first useful version should export the rig and animation together. That avoids requiring consumers to solve retargeting before they can load and play the result.
Proposed initial scope
- Sample the evaluated Posecode movement at a configurable frame rate
- Convert joint transforms into Three.js keyframe tracks
- Create an
AnimationClip
- Export the skeleton, mesh, and animation together as glTF or GLB
- Verify the exported asset can be loaded and played through
GLTFLoader
- Preserve movement duration and loop behavior where possible
Later considerations
- Animation-only export
- Retargeting animations onto external rigs
- Joint naming and humanoid skeleton conventions
- Coordinate system and scale compatibility
- Comparing glTF export with the planned BVH export path
Acceptance criteria
- A Posecode movement can be exported from the browser as a glTF or GLB asset
- The exported file loads successfully with Three.js
GLTFLoader
- The included animation plays on the included rig
- The result has documented limitations around retargeting and external skeletons
References
Summary
Add a standard glTF animation export path so a Posecode movement can be used in an existing web animation pipeline and loaded with Three.js
GLTFLoader.Motivation
A user evaluating Posecode for an animation pipeline asked whether the evaluated movement could be exported as glTF. The renderer already evaluates joint transforms over time, so those poses could be sampled into keyframe tracks and packaged as a glTF animation.
A first useful version should export the rig and animation together. That avoids requiring consumers to solve retargeting before they can load and play the result.
Proposed initial scope
AnimationClipGLTFLoaderLater considerations
Acceptance criteria
GLTFLoaderReferences