mocapgod/PROGRESS.md
type-two 7819e12a5a Lane B / B1: pose-model bake-off + SMPL decision gate
Fresh SOTA survey (per PLAN — distrust the snapshot). Findings:
- MoCapAnything V2 (MIT code+weights, no SMPL, BVH-direct onto arbitrary
  rig) is the pick — sidesteps the SMPL commercial-license hard-stop and
  collapses the SMPL->mixamorig mapper + most of Lane C retarget.
- GVHMR: best accuracy but non-commercial code license -> reference only.
- GEM-X: commercial-clean + perfect output but CUDA-only -> off-fleet.

Stopped at the John-decision gate (docs/DECISIONS.md): confirm engine,
clear m3ultra disk (97% full), supply test footage. Inference eyeball,
B2 service-ize, B3 jitter remain.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 01:10:26 +10:00

2.1 KiB

MOCAPGOD progress ledger

One lane per session. Tick on completion. See PLAN.md for acceptance checks.

  • Lane 0 — bootstrap. git + .gitignore, docs/LICENSES.md skeleton, spec/mixamorig_bones.json (65 bones, mixamorig: colon-prefixed). — 2026-07-17
  • Lane A — capture + ingest. docs/CAPTURE.md protocol, ingest.py (probe → 30fps normalize → rename → rsync to m3ultra queue → LEDGER.tsv). — 2026-07-17
  • [~] Lane B — pose engine (m3ultra). B1 research + selection DONE (2026-07-17): picked MoCapAnything V2 (MIT/MIT, no SMPL, BVH-direct onto mixamorig) — see docs/B1_BAKEOFF.md. Stopped at the John-decision gate (docs/DECISIONS.md): confirm engine + clear m3ultra disk (97% full) + supply test footage. Inference eyeball, B2 (service-ize), B3 (jitter) remain.
  • Lane C — retarget + cleanup (Blender). bvh → mixamorig FBX + QC turntable.
  • Lane D — clip factory. mocap CLI end-to-end; games + Unreal integration.
  • Lane E — ML upgrades (post-v1, gated).
  • Lane F — UX (optional).

Notes for the next lane

  • MoCapAnything is BVH-direct onto an arbitrary rig. If it hits mixamorig directly, do NOT build spec/smpl_to_mixamorig.json (B2 task 2) or Lane C's constraint-retarget rig — both are obsoleted. Verify the direct-to-mixamorig path first; only build a mapper if it can't. (# ponytail: don't write the retarget machinery a BVH-direct model deletes.)
  • Check MPS + global-trajectory FIRST next session (the two unproven risks in B1_BAKEOFF). MoCapAnything ships a ~160MB sample + HF demo — smoke-test without waiting on John's footage.
  • Ground-truth skeleton naming is mixamorig: (colon), armature object named Armature. Lane C's name-map must handle colon vs underscore variants (PLAN warned about this).
  • Blender headless entrypoint: /Applications/Blender.app/Contents/MacOS/Blender --background --python <script>.
  • House style for Blender scripts: ~/Documents/character_kit/scripts/merge_anims.py (note its units warning: mixamorig head sits at ~0.0505 native units — don't rescale via parent).