moment_invariant op• Data kinds: points → matrix
• Call: import fullseye as fs; fs.ledger.inertia_tensor(points) -> 'np.ndarray' (to call the implementation directly, import moments3d; moments3d.inertia_tensor(points) -> 'np.ndarray'; from the registry, ops3d.get("inertia_tensor"))
The inertia tensor (3,3) of a point set (from the central second moments; uniform mass, total mass 1).
I_xx = mean(y²+z²), I_yy = mean(x²+z²), I_zz = mean(x²+y²), I_xy = -mean(xy), I_xz = -mean(xz), I_yz = -mean(yz). Using the covariance C, this is equivalent to I = tr(C)·E₃ − C (E₃ is the identity matrix). Symmetric and positive semi-definite. Translation invariant because of centroid centring.
np.ndarray, shape (3, 3)
Symmetric inertia tensor.
Notes:
• Units are length² (points are treated as equal masses of mass 1, so density does not enter). Rotating the point cloud maps it to R I Rᵀ; the eigenvalues (principal_moments) are the rotation invariants and the eigenvectors are the principal axes (moment_axes).
• Input is (N,3), N >= 1 (1 point gives the zero matrix). Invalid shape or non-finite values raise ValueError.
• Relation to the covariance C: I = tr(C)·E₃ - C; C and I have the same eigenvectors, and the eigenvalues are tr(C) - c_i.
• These are moments of the sample points, not of the solid (volume), so even for the same shape the values change with bias in point density. To even out the density, use voxel_grid_downsample beforehand. 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.
• moment_invariants — py -3.11 examples_3d/moment_invariants.py
matrix as input)moment_invariant)moment_invariants · principal_moments · central_moments
*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.