Skip to content

v0.1.5

Choose a tag to compare

@Denjino Denjino released this 20 May 18:11
· 6 commits to claude/build-horizon-view-v1-wstzS since this release
a0f94a7
Make calibration robust to MediaPipe's yaw sign convention

Calibration was rejecting valid captures with "head moved the wrong
way for at least one dot" even when the user followed the prompts.
Two contributing bugs:

1. The spline assumed positive yaw == looking right. MediaPipe's
   facialTransformationMatrix output sign depends on driver and
   mirroring conditions, and on at least some setups it's inverted
   relative to that assumption. The spline then sorted samples by
   yaw and checked that screenX was strictly INCREASING along that
   order — which fails the moment the convention is flipped, because
   sorted yaw walks screenX from +1 down to -1.

   Fix: infer the sign from the first/last screenX pair and apply it
   transparently in both fit and evaluate. The fitter only needs the
   yaws to be monotonic; either direction works.

2. The calibration listener was being fed the *raw* per-frame yaw, not
   the One-Euro-filtered yaw. A single noisy frame at the moment of
   Space press could push one capture far enough off-axis to flip an
   adjacent pair. Now the listener receives both filtered and raw,
   and calibration captures the filtered value (the filter is already
   running every frame regardless).

Error messages on the remaining genuine failure modes are sharper:
duplicate yaws now say "turn your head more deliberately between
dots", non-monotonic says "redo with slower, more deliberate head
turns".