shape_descriptor op• Data kinds: points → descriptor
• Call: import fullseye as fs; fs.ledger.extent_signature(points) -> 'np.ndarray' (to call the implementation directly, import descriptors3d; descriptors3d.extent_signature(points) -> 'np.ndarray'; from the registry, ops3d.get("extent_signature"))
The ratios of the extent along the PCA principal axes (the eigenvectors of the covariance).
The eigenvalues of the covariance matrix are invariant to rotation. Here the square roots of the eigenvalues (= the standard deviation along each principal axis, with the dimension of length) are sorted in descending order and normalised to sum 1, giving a (3,) vector. This removes the absolute scale and yields a "slenderness of shape" index that is invariant to rotation, translation and scale.
• Isotropic shapes (sphere, cube) → the 3 components are almost equal [~0.33, ~0.33, ~0.33]
• Slender rod → 1 component dominates [~0.9, ~0.05, ~0.05]
points : array_like, shape (N, 3)
Point cloud. N >= 3 is required (to build a meaningful covariance).
np.ndarray, shape (3,)
Extent vector sorted in descending order and normalised to sum 1.
• 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
shape_descriptor)d2_distribution · a3_distribution · describe · shape_distance
*Provenance: descriptors3d.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.