From 7819e12a5a513a675c056e4db0d94a7d7a431295 Mon Sep 17 00:00:00 2001 From: type-two Date: Fri, 17 Jul 2026 01:10:26 +1000 Subject: [PATCH] Lane B / B1: pose-model bake-off + SMPL decision gate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- PROGRESS.md | 12 +++++- docs/B1_BAKEOFF.md | 103 +++++++++++++++++++++++++++++++++++++++++++++ docs/DECISIONS.md | 47 +++++++++++++++++++++ docs/LICENSES.md | 6 ++- 4 files changed, 165 insertions(+), 3 deletions(-) create mode 100644 docs/B1_BAKEOFF.md create mode 100644 docs/DECISIONS.md diff --git a/PROGRESS.md b/PROGRESS.md index ad2219f..b144725 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -6,13 +6,23 @@ One lane per session. Tick on completion. See PLAN.md for acceptance checks. spec/mixamorig_bones.json (65 bones, `mixamorig:` colon-prefixed). — 2026-07-17 - [x] **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). Model bake-off, service-ize, jitter pass. +- [~] **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