Files
Tibor Fulop b3db886260 fix(shoe_pose): gravity upright prior so the shoe stays sole-down
Silhouette IoU is invariant to which face of the shoe points at the camera, so
the optimizer drifted from the upright init into sole-facing (up-axis tilted
~90deg) or upside-down (~180deg) poses that matched the mask outline equally
well. Add an upright prior to solve_pose's loss: upright_weight * (1 - cos angle
between the model up axis and gravity-derived world up). up_world is threaded
from calibrate(); exposed as the 'upright_strength' node input (default 1.0).

Validated: from a pitch=70 start, weight 0 leaves up.worldup=0.17 (sole-facing),
weight 1.5 -> 0.99 (sole-down). Adds up_axis_world/upright_penalty helpers
(closed-form, pyrender-free) with unit + solver regression tests.
2026-06-23 13:30:06 +02:00
..