docs/CAPTURE.md — one-page filming protocol (landscape, feet in frame, T-pose
bookends, 5-30s takes, AirDrop to capture/inbox/).
ingest.py — scans capture/inbox/, probes each clip (ffprobe, display-orientation
aware so phone rotation tags are respected), rejects portrait/malformed to
capture/rejected/ with a reason, normalizes the rest to 30fps h264 (audio
stripped), renames YYYYMMDD_<name>.mp4, rsyncs to the m3ultra pose queue, and
logs every disposition to capture/LEDGER.tsv. Failed ships keep the normalized
file in capture/staged/ so a re-run retries without re-encoding.
--selfcheck exercises probe+validate on synthesized landscape/portrait clips.
Verified end-to-end: inbox drop -> one command -> clip in m3ultra queue, portrait
rejected with clear error, ledger rows written.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
git init + .gitignore (weights/capture/queue/out/media excluded), docs/LICENSES.md
skeleton with the SMPL gate, PROGRESS.md ledger, and spec/mixamorig_bones.json —
65 mixamorig bones (colon-prefixed) dumped from character_kit/female/female_game.glb
via headless Blender. This bone file is the retarget ground truth for Lane C.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>