mocapgod/docs/CAPTURE.md
type-two 468f35be7d Lane A: capture protocol + ingest pipeline
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>
2026-07-17 00:44:56 +10:00

2.0 KiB
Raw Blame History

Filming protocol — read once, keep on the tripod

One page. Follow it and the pose engine has an easy time; break it and Lane C fights soup.

The shot

  • Phone landscape, on a tripod or leaned so it can't move. Never handheld, never portrait.
  • 1080p, 60fps. 4K is wasted — pose models downscale anyway. 60fps → we resample to 30.
  • Whole body in frame the entire take — feet included. If a foot leaves the frame, the ground contact is lost and the clip drifts. Frame with headroom top and bottom.
  • 23 m from the phone. Close enough to fill the frame, far enough that a step doesn't clip you out.
  • Even light, plain-ish background. No harsh single-side shadow, no busy patterns behind you.
  • Fitted clothes. Baggy hoodies and swishy pants = joint error. Snug beats stylish here.

The take

  1. Start in a T-pose, hold ~1 s. Arms straight out, legs together, facing the phone.
  2. Do one move — a walk, a DJ scratch, a pick-up. One move per take.
  3. End in a T-pose, hold ~1 s.
  4. Keep takes 530 s. Short and clean beats long and mushy. Re-film rather than salvage.

The T-pose bookends are not optional: they're the calibration reference and the anchor Lane C uses to auto-trim the clip. No bookends → manual trimming.

Getting it to the pipeline

  • AirDrop the clip from the phone to ultra, save into ~/Documents/MOCAPGOD/capture/inbox/.
  • Then run python3 ingest.py (or let the Lane D mocap CLI do it). Ingest validates, normalizes to 30fps, and ships it to the m3ultra queue. Rejects (portrait, no feet, garbage) land in capture/rejected/ with a reason in capture/LEDGER.tsv — check there if a clip vanishes.

Common rejections (and the fix)

Symptom Fix
portrait Rotate the phone. Landscape only.
too short / malformed Re-film; hold the T-poses, aim for 530 s.
drifty / foot-skating result Feet left the frame, or baggy clothes — re-film closer to protocol.