Issue triage: editor docs, playground speed persistence, desk presets, BVH + glTF export#108
Merged
Merged
Conversation
Signed-off-by: Claude <noreply@anthropic.com>
…eloads (#22) Signed-off-by: Claude <noreply@anthropic.com>
The content pages under playground/public/moves were stale relative to the current spec/examples sources (the honest reach/ground-lock contact changes in the example scripts had not been regenerated) and still shipped a page for the pirouette example, which is marked experimental and is therefore excluded from the launch-ready generator output. Signed-off-by: Claude <noreply@anthropic.com>
Adds three new desk/office wellness movements to the library: - seated-torso-twist: gentle seated rotation for the mid-back and obliques - shoulder-blade-retraction: scapular retraction / rowing squeeze - wrist-forearm-rolls: standing wrist circles with forearm pronation/supination Each stays within the parser ROM bounds (0 clamp warnings) and passes the biomechanical invariant eval. Registered in the playground preset library and static movement pages regenerated. Signed-off-by: Claude <noreply@anthropic.com>
Adds exportBVH() to posecode-render: bakes a movement's authored joint motion plus root travel/turn choreography into a standard Biovision Hierarchy (.bvh) file, headlessly (no WebGL), by sampling the timeline at a configurable frame rate. - Skeleton mirrors the mannequin bone tree; leaves terminate with End Sites. - Right-handed Y-up, +Z facing, metres (configurable scale), ZXY Euler order (Zrotation Xrotation Yrotation channels) for wide tool compatibility. - Full looped runtime (cycle incl. loop-reset wrap x repeats) is baked so duration and loop count survive; root position channels carry travel/turn. - Fingers excluded by default (opt in via includeFingers). - Playground gains a 'Download BVH' button; renderer chunk stays lazy-loaded. - Documented scope: authored motion, not the contact/IK-solved motion (future). Tested headlessly: hierarchy/channel-count/frame-count structure, a rotation round-trip that reconstructs the sampled pose, root translation for a travelling movement, finger opt-in, and scale. Signed-off-by: Claude <noreply@anthropic.com>
Adds exportGLTF() (and buildAnimatedRig()) to posecode-render: bakes a movement into a glTF/GLB asset — the procedural mannequin rig plus one AnimationClip driving joint rotations and root travel/turn — via Three.js GLTFExporter. - Samples the authored timeline at a configurable fps; joint nodes are named by Posecode bone id, the animated root group is 'posecode_root'. - Full looped runtime baked as keyframes so duration/loop count survive. - Returns a GLB ArrayBuffer by default, or a glTF JSON object (binary:false). - Playground gains a 'Download glTF' button; render chunk stays lazy-loaded. - Documented limitations: procedural rig (no retargeting onto external/humanoid skeletons yet) and authored motion (not the contact/IK-solved motion). Tested headlessly: track construction, and a GLB round-trip through GLTFLoader that rebinds the clip to an AnimationMixer and advances it. Signed-off-by: Claude <noreply@anthropic.com>
Demi-plié, Relevé, Tendu, and Chassé are ballet examples that have not been reviewed by anyone with dance-domain knowledge. Per the dance UAT tracking issue (#91) and its focused split #103, they must not be presented as launch-ready until turnout, naming (Relevé vs Elevé), and step mechanics are signed off by a reviewer. Downgrade all four to 'experimental', which removes them from the generated launch-ready movement gallery until reviewed. Ballroom steps (box step, grapevine, waltz box) are unaffected and keep the Dance domain in the gallery. Updates the library-ordering test to match. Signed-off-by: Claude <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
12 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Works through several open issues, easy → hard, in one branch.
Fixes #20 — Editor file-association docs. Added a
.posecodefile-association guide (VS Code, Cursor, Sublime, Neovim) toeditors/vscode/README.md, plus an editor-support pointer in the main README.Fixes #22 — Playground playback speed. The speed control already existed; added the missing 1.5× step and made the selected speed persist across reloads (
localStorage), applied when the viewer loads.Fixes #21 — Desk/office posture presets. Three new movements —
seated-torso-twist,shoulder-blade-retraction,wrist-forearm-rolls— all within parser ROM (0 clamp warnings), passing the eval, registered in the library, static pages regenerated.Fixes #63 — BVH motion export. New
exportBVH()inposecode-renderbakes authored joint motion + root travel/turn into a standard.bvhheadlessly (no WebGL). Playground Download BVH button. Documented coordinate system (Y-up, +Z, metres,ZXYEuler order) and scope (authored motion, not the IK-solved motion).Fixes #90 — glTF/GLB animation export. New
exportGLTF()/buildAnimatedRig()export the mannequin rig plus a bakedAnimationClipvia Three.jsGLTFExporter. Playground Download glTF button. Loads back throughGLTFLoaderand plays on the included rig. Documented limitations (procedural rig, no retargeting yet).Also part of the dance UAT umbrella #91 (which was split into focused sub-issues #100–#107):
demi-plie,releve,tendu,chasse) experimental so they no longer appear in the launch-ready gallery until a dance-domain reviewer signs off (tracked in Correct and validate the ballet examples (demi-plié, elevé/relevé, pirouette, chassé) #103).Two housekeeping commits: regenerated movement pages that had drifted from the current example sources, and updated the library-ordering test for the ballet status change.
Type of Change
.posecodescript and registering it)Checklist
npm run typecheckpasses successfullynpm run buildcompiles without errorsnpm test) and all tests pass (410 passing)npm run eval) and all checks pass (0 parse failures, 0 clamp warnings)node scripts/generate-content-pages.mjsto regenerate the static pages🤖 Generated with Claude Code
Generated by Claude Code