nx_pose_coach.nx
buildroot/runtime/nx_pose_coach.nx
about
nx_pose_coach.nx -- the COACH's read (roadmap R8): compare a USER pose track to a REFERENCE track and say
WHAT is off (which joint, how far) and score the form -- with TEMPO-INVARIANT alignment (DTW) so a slower/
faster attempt isn't penalised for form. Pure integer math on joint-position tracks (track[f*nj*3 + j*3 + c]);
the tracks come from R3-retarget (from video via R2) or the rig. This is "help people achieve their goals":
name the error, not just a number. license_tier: ORIGINAL
dependencies 1 imports · 2 importers
imports: nx_syscalls.nx
imported by: nx_pose_coach_gate.nxnx_synth_serve.nx
structs
| none |
consts
| none |
functions
| 8 | func pc_isqrt(v: i64) -> i64 { if v <= 0 { return 0 } var x: i64 = v; var y: i64 = (x + 1) / 2; while y < x { x = y; y = (x + v / x) / 2 } return x } called by 1: pc_jdist |
| 10 | func pc_jdist(t1: *i64, o1: i64, t2: *i64, o2: i64) -> i64 |
| 15 | func pc_framedist(ref: *i64, ri: i64, user: *i64, uj: i64, nj: i64) -> i64 |
| 22 | func pc_score(ref: *i64, user: *i64, T: i64, nj: i64, jdev: *i64) -> i64 |
| 38 | func pc_worst_joint(jdev: *i64, nj: i64) -> i64 |
| 45 | func pc_dtw(ref: *i64, user: *i64, T: i64, nj: i64) -> i64 |
| 66 | func pc_form_score(total: i64, samples: i64, tol: i64) -> i64 |