5 Commits

Author SHA1 Message Date
forbes
5ec5c77db4 chore: add .mailmap to normalize git identity 2026-03-03 14:17:30 -06:00
cd7f66f20a Merge pull request 'fix(solver): enforce quaternion continuity on dragged parts during drag (#338)' (#40) from fix/drag-quat-continuity into main
Reviewed-on: #40
2026-02-27 15:39:17 +00:00
eaa5f3b0c0 Merge branch 'main' into fix/drag-quat-continuity 2026-02-27 15:39:01 +00:00
forbes-0023
f85dc047e8 fix(solver): enforce quaternion continuity on dragged parts during drag (#338)
The _enforce_quat_continuity function previously skipped dragged parts,
assuming the GUI directly controls their placement.  However, Newton
re-solves all free params (including the dragged part's) to satisfy
constraints, and can converge to an equivalent but distinct quaternion
branch.  The C++ validateNewPlacements() then sees a >91 degree rotation
and rejects the step.

Two-level fix:

1. Remove the dragged_ids skip — apply continuity to ALL non-grounded
   bodies, including the dragged part.

2. Add rotation angle check beyond simple hemisphere negation: compute
   the relative quaternion angle using the same formula as the C++
   validator (2*acos(w)).  If it exceeds 91 degrees, reset to the
   previous step's quaternion.  This catches branch jumps where the
   solver finds a geometrically different but constraint-satisfying
   orientation (e.g. Cylindrical + Planar with 180-degree ambiguity).

Verified: all 291 solver tests pass.
2026-02-27 09:37:10 -06:00
54fec18afb Merge pull request 'test: add console test reproducing planar drag quaternion flip (#338)' (#39) from test/planar-drag-console-test into main
Reviewed-on: #39
2026-02-27 15:30:58 +00:00

7
.mailmap Normal file
View File

@@ -0,0 +1,7 @@
forbes <contact@kindred-systems.com> forbes <joseph.forbes@kindred-systems.com>
forbes <contact@kindred-systems.com> forbes <zoe.forbes@kindred-systems.com>
forbes <contact@kindred-systems.com> forbes-0023 <joseph.forbes@kindred-systems.com>
forbes <contact@kindred-systems.com> forbes-0023 <zoe.forbes@kindred-systems.com>
forbes <contact@kindred-systems.com> josephforbes23 <joseph.forbes@kindred-systems.com>
forbes <contact@kindred-systems.com> Zoe Forbes <forbes@copernicus-9.kindred.internal>
forbes <contact@kindred-systems.com> admin <admin@kindred-systems.com>