B1's MoCapAnything pick reversed (animal model, wrong for human capture); license analysis recorded in LICENSES.md. John chose Path B: run HSMR->SKEL locally on ultra (MPS), ship rig-motion only, accept the non-commercial licence risk as interim until a commercial SKEL licence request goes out (Path A, the clean upgrade). Engine installed under .engine/ (gitignored): uv venv py3.10, torch 2.13 MPS-green, ungated weights, smoke_test.py with Apple-Silicon bypasses (detectron2 stubbed with full-frame bbox, headless pyrender stubbed -> QC in Blender) -- see docs/B_ENGINE_SETUP.md. Remaining before B ships: John's gated SKEL v1.1.1 download, then the forward-pass smoke test (MPS end-to-end, timing, pose sanity). Known caveat: HSMR is per-frame so root is camera-space cam_t, NOT world-grounded -> Lane C derives root from foot-contact. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.7 KiB
Decisions needing John
Status 2026-07-17 (session 2): Lane B1's engine pick is REVERSED (Decision 1). The disk
work (Decision 2) from the concurrent session is preserved intact. Corrected, license-verified
analysis below + LICENSES.md. Prior "SMPL hard-stop avoided / go MoCapAnything" memo
superseded (git @ 7819e12).
Decision 1 — pose engine: B1 picked an ANIMAL model for a HUMAN job; the gate is LIVE
RESOLVED 2026-07-17 — John chose Path B (run local, accept NC risk). Engine = HSMR → SKEL on the fleet. Ship only the retargeted mixamorig motion (no Max-Planck file redistributed); John explicitly accepts the judgment call that authoring game clips from an NC-licensed model is his risk. Path A (email MPI for a commercial licence) stays on the shelf as the clean upgrade if that risk ever needs retiring. MPS verified green on ultra this session (torch 2.13.0,
mps_available=True,mps_built=True). Sole remaining blocker to a first forward pass: the gated SKEL download — John's manual step (register at skel.is.tue.mpg.de → download.php →skel_models_v1.1.zip, must be v1.1.1, unzip into.engine/HSMR/data_inputs/body_models/skel/per HSMRdocs/SETUP.md). Behind a login + NC-licence agreement, so it is John's to do — I can't create the account or accept the terms. Analysis below is retained for the record.
B1 chose MoCapAnything V2 for being MIT/MIT with no SMPL, and concluded "the SMPL hard-stop
is avoided." Reading the actual repo this session shows why that's wrong: MoCapAnything is an
animal motion-capture system — 71 animal retarget targets (Alligator…Tyranno), trained
on zoo1030 (animals) + obj1k (objects), no human/biped/mixamorig reference and no
fingers. MOCAPGOD's v1 job is capturing John (a human) onto mixamorig (PLAN line 1; the
Lane B brief says "monocular human motion recovery"). MoCapAnything didn't dissolve the SMPL
gate — it swapped in a task the gate doesn't cover. Wrong tool for the human path. (It's a
clean, strong tool for creature NPCs — option C.)
Verified from license text this session (links/dates in LICENSES.md):
| Human-capable option | Code license | Body model | Body-model license | On the fleet? |
|---|---|---|---|---|
| GVHMR / WHAM / TRAM / OnlineHMR (accuracy leaders) | research/NC (GVHMR NC confirmed) | SMPL | NC — commercial via Meshcapade (quote) | PyTorch→MPS ✓ |
| HSMR (CVPR25 oral) / SKEL-CF (Nov 2025) | MIT (HSMR) | SKEL | NC — commercial via MPI ps-license@tue.mpg.de |
PyTorch→MPS ✓ (unverified) |
| GEM-X (NVIDIA) | Apache | SOMA (not SMPL) | commercial-ready | CUDA-only — OFF fleet ✗ |
| MoCapAnything V2 | MIT | none | — (clean) | ✓ but animal-only ✗ for humans |
No free-lunch, commercial-clean, on-fleet, world-grounded human model exists. SMPL and SKEL are both Max-Planck research licenses with an "email for commercial" path; the one clean-licensed human model (GEM-X) needs NVIDIA hardware the fleet lacks. Pick a direction:
A. License a body model, use a proven human model — RECOMMENDED. Email for an indie
commercial license. Primary: SKEL → HSMR (code is MIT, outputs a biomechanical skeleton
ideal for the mixamorig retarget) via ps-license@tue.mpg.de. Fallback: SMPL via
sales@meshcapade.com (unlocks WHAM/TRAM, though their code licenses also need clearing).
One email + likely a modest fee + a few days. Clean and shippable. I can draft the email; I
can't send it.
B. SMPL-free-outputs path (PLAN Path B) — run locally, ship only your rig's motion. HSMR's code is MIT: run on the fleet, extract joint rotations, retarget onto YOUR mixamorig, ship only that — distribute no Max-Planck file. Zero cost, unblocks today. Risk: the NC licenses forbid "production of artefacts for commercial purposes"; whether authoring game clips counts is a legal judgment call. The clean mitigation (email MPI to ask) collapses into A. John-accepts-risk.
C. Reconsider scope — creatures now, defer the human license. MOCAPGOD's downstream is stylized NPCs + a centaur RPG; some targets aren't human. If the near-term need is creature NPCs, MoCapAnything (MIT, clean, on-fleet) does that TODAY; defer the human-capture license until you need your own DJ clips.
→ Recommendation A. Honest, cheap, converts B's grey into a clear yes. In parallel I keep MoCapAnything as the sanctioned creature engine (free upside, blocks nothing) and verify HSMR's MPS-runnability so we're ready when a license lands. I will not build the human v1 pipeline on an NC model without your explicit go (that's B).
Decision 2 — clear m3ultra disk (RESOLVED pending reboot, 2026-07-17)
Was 98% full (20 GB free). Deleted unsloth/GLM-4.6-GGUF (147 GB, re-downloadable, 0 code
refs) from the HF cache with John's OK. But df still shows 20 GB — the freed blocks are
pinned by macOS OS-update snapshots: a macOS Tahoe 26.5.2 update is staged (recommended
/ security, "Action: restart") and the box has 18 days uptime. Space realizes on next
reboot, which also applies the pending update. No ~/.jobs heartbeat job is running (load is
just the Claude desktop app), so a reboot kills nothing tracked.
→ John: reboot m3ultra when convenient → applies 26.5.2 + reclaims 147 GB (→ ~167 GB free, ample for Lane B). Not doing this myself — it's your workstation. Kept the FLUX variants (you deselected them); another ~200 GB is prunable there later if wanted.
Decision 3 — test footage (blocker for the real quality call)
capture/inbox/ is empty. Whichever human engine Decision 1 unlocks, the honest
walk/dance/pick-up-object quality verdict — and all of B2/B3 + the acceptance check — needs your
clips. (HSMR has an HF Space + demo images for the MPS/trajectory smoke-test before your
footage.) Film the PLAN's three per docs/CAPTURE.md (T-pose bookends, feet in frame), drop
them in the inbox, then python3 ingest.py.
→ John: film + ingest walk / dance / pick-up-object when convenient.
Blast radius of the Decision-1 reversal (next session must know)
- Lane B1 is NOT done — wrong engine selected. Re-opened; PROGRESS un-ticked.
- VOID the old note "MoCapAnything is BVH-direct, skip the retarget rig." Any human model
emits SMPL or SKEL, not mixamorig → Lane C's constraint-retarget IS required again,
and
spec/{smpl,skel}_to_mixamorig.jsonis back on the menu. - Preconditions: disk resolves on the m3ultra reboot (Decision 2); the MPS/global-trajectory smoke-test still stands for whichever engine John's pick unlocks.
Once Decision 1 is picked and 2–3 clear, the next session installs the chosen human engine, proves MPS + global trajectory, and proceeds to B2 (service-ize) / B3 (jitter).