feat(quadruped): gait engine, glTF pose evaluate, AKIRA hound demo - #422
feat(quadruped): gait engine, glTF pose evaluate, AKIRA hound demo#422arkavo-com wants to merge 2 commits into
Conversation
Add QuadrupedGait (procedural trot + wheel-drive) and GLTFAsset.evaluate / restPose / nodeIndex for runtime node-level posing. AKIRAHoundGen emits a glTF hound; AKIRAHoundDemo headless-renders walk, drive, and transition.
|
❌ Claude Code Review ran on Findings (if any) are posted as inline comments; none means the review found nothing to flag. Run log. |
Ground clamp now targets stance ground and swing stepHeight so a chain longer than standingHeight actually steps. restPose/evaluate decompose node.matrix. Demo value flags bounds-check argv, lock pixel buffers writable, and fail on adaptor.append. QuadrupedRigError is LocalizedError.
|
Gitar review |
|
Note Automatic reviews are paused because your team has used its included automatic processing for this billing period (headroom scales with your seat count). You can still comment "Gitar review" to run one anytime, and automatic reviews resume on their own by September 1. Add seats for more headroom. Code Review ✅ Approved 4 resolved / 4 findingsAdds a procedural quadruped gait engine, glTF pose evaluation APIs, and AKIRA hound demo executables. Addressed missing argument bounds checks, pixel buffer write locking, LocalizedError conformance, and matrix-authored node handling. ✅ 4 resolved✅ Bug: CLI value flags crash with index-out-of-range if value is omitted
✅ Bug: CVPixelBuffer locked .readOnly while being written to
✅ Quality: QuadrupedRigError lacks LocalizedError conformance
✅ Edge Case: evaluate()/restPose() silently treat matrix-authored nodes as identity
Was this helpful? React with 👍 / 👎 | Gitar |
Summary
Adds a public
QuadrupedGaitlibrary (procedural trot + wheel-drive), a glTF runtime pose API (GLTFAsset.evaluate/restPose/nodeIndex), and two executables that generate and headless-render an AKIRA-style quadruped.What's in this PR
QuadrupedGaitEngine(diagonal trot pairing, 2-bone foot clamp, drive wheels, drive↔walk blend) andQuadrupedRigControllermapping engine output onto named glTF nodes.rebuildDrawCallsfrom baked animation playback; addsevaluate(poses:)for procedural node overrides without mutating the asset.AKIRA_Hound.glb(TRS-only, −Z forward, rest-pose wheel-cancel).drive/walk/transition, optional VRM rider./hound-demo-output/and/perf-review-output/.Usage
Tests
QuadrupedGaitEngineTests— 7 passedGLTFNodePoseEvaluationTests— 5 passedGLTFAnimationTests/GLTFAnimatedLightsTests/GLTFMorphTests— 11 passed (cover therebuildDrawCallsextract)Follow-ups
evaluate/restPosecurrently seed TRS only; matrix-authored nodes become identity (the new fixture is TRS-only).QuadrupedRigErrorshould conform toLocalizedError.