match_sh_descriptor — 3D describe op

• Data kinds: voxel × voxel → measurement

• Call: import fullseye as fs; fs.ledger.match_sh_descriptor(a, b, L=8, nradii=12, device='cpu') (to call the implementation directly, import match3d; match3d.match_sh_descriptor(a, b, L=8, nradii=12, device='cpu'); from the registry, ops3d.get("match_sh_descriptor"))

• GPU: this op has a GPU path (device="cuda")

Usage

The cosine similarity between two SH descriptors (rotation-invariant shape matching). Closer to 1 means a more similar shape. The voxel × SH column.

Flattens sh_descriptor(a, L, nradii) and sh_descriptor(b, L, nradii), L2-normalises them and returns the inner product as a float. Band energies are non-negative, so the value is in [0, 1] (never negative). If either descriptor is all 0 (empty volume), 0.

• a, b are cube volumes (the premise of sh_descriptor). The shapes may differ, but the shell radii are

set by each N, so objects at different scales count as different and score low (not scale invariant). Also sensitive to centre offsets (centre on the centroid first).

• Invariant to rotation (band energy). However, a mirror image also gives the same value.

• ntheta/nphi are fixed at the default (32×64). Only comparisons with the same settings are meaningful.

• Does not return a position. "Where is it" is match_shape_3d etc.; "is it the same shape" is this op.

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)

• sh_descriptor_retrieval — py -3.11 examples_3d/sh_descriptor_retrieval.py

• shape_descriptor — py -3.11 examples_3d/shape_descriptor.py

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

vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle

Same category (describe)

sh_descriptor


*Provenance: match3d.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.