You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Volume and VolumeGeometry can accept a rank-deficient affine matrix when a dependent column is small enough to pass the approximate scaled-orthogonality check. The object is then invalid for later spatial operations that require inversion.
To reproduce
Start from an identity affine and make one spatial column a small multiple of another, for example:
Current behavior: construction succeeds, but downstream operations may fail at np.linalg.inv().
Expected behavior
The public volume constructors should reject non-invertible affine matrices immediately with a clear ValueError, while continuing to accept genuinely invertible scaled-orthogonal affines.
Scope
Validate invertibility at the shared constructor boundary, update the affine contract documentation, and cover both Volume and VolumeGeometry.
Process note
I am filing this issue before the replacement pull request in accordance with the developer guide's issue-first recommendation. PR #435 was opened before that preflight and will be superseded.
Duplicate of #440. A parallel authorized remediation had already created the canonical issue-first record and compliant replacement PR before this batch completed.
Activity
yinkev commentedon Jul 25, 2026
Duplicate of #440. A parallel authorized remediation had already created the canonical issue-first record and compliant replacement PR before this batch completed.