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")
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.
• 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.
• sh_descriptor_retrieval — py -3.11 examples_3d/sh_descriptor_retrieval.py
• shape_descriptor — py -3.11 examples_3d/shape_descriptor.py
measurement as input)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
describe)*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.