extent_signature — 3D 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"))

Usage

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]

Parameters

points : array_like, shape (N, 3)

Point cloud. N >= 3 is required (to build a meaningful covariance).

Returns

np.ndarray, shape (3,)

Extent vector sorted in descending order and normalised to sum 1.

References (sample data, literature)

• 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.

Runnable examples (verified samples that actually call this op)

• shape_desc_pose — py -3.11 examples_3d/shape_desc_pose.py

Ops the type connects to (they accept descriptor as input)

fuse_to_voxel · shape_distance

Same category (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.