mocapgod/docs/DECISIONS.md
type-two 9db4fec988 Lane B / session-5 item 2: draft SKEL Path-A commercial-license email
Ready-to-send draft in docs/DECISIONS.md for John to send to ps-license@tue.mpg.de
(indie AU dev, in-pipeline use, SKEL files not redistributed — only retargeted
motion ships). Path B continues; a grant converts B->A with zero pipeline rework.

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

140 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 HSMR `docs/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).
## Path A — SKEL commercial-licence email (READY TO SEND — John sends it himself)
Parallel risk-retirement (session-5 order 2). Path B ships meanwhile; if MPI grants a licence
the grey area in Decision 1 disappears with **zero pipeline rework** (same HSMR/SKEL engine).
**Do not wait on the reply.** John: fill the two `[brackets]`, send from your address to
`ps-license@tue.mpg.de`. I can't send email or create the account — this is yours.
> **To:** ps-license@tue.mpg.de
> **Subject:** Commercial licence enquiry — SKEL body model (indie game developer)
>
> Dear Perceiving Systems licensing team,
>
> I'm a solo independent game developer based in Australia. I'd like to enquire about a
> commercial licence for the **SKEL body model** (v1.1.1, from skel.is.tue.mpg.de).
>
> **Use case.** I'm building a small in-house tool that recovers 3D human motion from ordinary
> single-camera video of myself, to author animation clips for stylised characters in my own
> indie games. SKEL is used inside the pipeline at inference time (via the HSMR pose-recovery
> model) to estimate body pose.
>
> **Redistribution: none.** The SKEL/BSM model files stay on my own machine — I do not
> redistribute them or any Max-Planck-derived asset. What ships in the games is only the
> resulting joint **motion**, retargeted onto my own separately-authored character skeletons
> (a Mixamo-style rig). No SKEL mesh, shape space, or model file is included or exposed in any
> shipped product.
>
> **Scale.** Small and indie: modest commercial revenue, a single developer, no external funding.
>
> Could you let me know whether an **indie / small-developer commercial licence** is available
> for this kind of in-pipeline, non-redistributed use, and the terms and any fee? I'm happy to
> provide more detail on the pipeline or sign whatever agreement you need.
>
> Thank you,
> [your name]
> monsterrobot.party · [contact email]
If MPI replies with terms, record the outcome here and flip Decision 1 from Path B to Path A
(nothing in the pipeline changes — same engine, the licence just retires the NC risk).
## 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.json` is 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 23 clear, the next session installs the chosen human engine,
proves MPS + global trajectory, and proceeds to B2 (service-ize) / B3 (jitter).