48b04084fa
persons_arkit_2d_t was written by IphoneUSBSource but never read. A USB drop left the frozen skeleton on screen indefinitely. - Add arkit_2d_fresh(ts_by_pid, now, max_age=1.0) pure helper in hand_display.py (8 TDD tests, all green) - renderer._update_skeleton: use_arkit now requires at least one pid younger than 1 s (replaces bool check) - Per-pid freshness gate in draw loop skips stale pids
data_only_viz
Python + Metal visualiser for the AV-Live data-only patch.
Hand features OSC
/pose/hands [pid=0, lx, ly, lopen, lspeed, rx, ry, ropen, rspeed, dist]
- Emitted once per pipeline tick by
pose_bridge.send_handsto sclang:57121. - L = leftmost hand on screen, R = rightmost; absent hand -> its 4 floats are 0.
- Ranges: positions/openness/dist in [0,1]; speed >= 0 (normalized units/frame).
- Consumed by SuperCollider
~handFeat(data_only) and the Metal renderer uniforms. - Multi-person is not yet carried (pid is always 0).