moment_invariant op• Data kinds: points → descriptor
• Call: import fullseye as fs; fs.ledger.principal_moments(points) -> 'np.ndarray' (to call the implementation directly, import moments3d; moments3d.principal_moments(points) -> 'np.ndarray'; from the registry, ops3d.get("principal_moments"))
The eigenvalues of the inertia tensor (the principal moments, sorted descending, rotation invariant).
The inertia tensor is symmetric, so its eigenvalues are real. Rotating the point cloud by R transforms I → R I Rᵀ by a similarity transform, and the eigenvalues are invariant (exactly). The returned values are sorted in descending order, so they agree regardless of coordinate system or rotation.
np.ndarray, shape (3,)
Principal moments of inertia in descending order λ1 >= λ2 >= λ3 >= 0.
Notes:
• These are the eigenvalues of inertia_tensor, related to the covariance eigenvalues c_i by λ_i = (c_1 + c_2 + c_3) - c_i. For a long thin rod the smallest eigenvalue (about the rod's axis) approaches 0; for a sphere all 3 are equal.
• Units are length². Invariant to translation and rotation but not invariant to scale (s times the scale gives s² times the value). If you need scale invariance, use moment_invariants.
• Input is (N,3), N >= 1 (1 point gives all 0). Invalid shape or non-finite values raise ValueError.
• If you need the principal axis vectors (eigenvectors), use moment_axes. Deterministic.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• shape_desc_pose — py -3.11 examples_3d/shape_desc_pose.py
descriptor as input)fuse_to_voxel · shape_distance
moment_invariant)moment_invariants · central_moments · inertia_tensor
*Provenance: moments3d.py — 3D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.