spectralbrain.compute_ibks#

spectralbrain.compute_ibks(decomp, *, gaussian_curvature=None, alpha=0.1, k_neighbours=10)[source]#

Improved BKS with curvature-aware neighbourhood aggregation.

Augments BKS with Gaussian curvature information to improve stability at articulation points and high-curvature regions.

IBKS(x) = BKS(x) + α · mean_{y ∈ N(x)} |K(y)| · BKS(y)

where K is Gaussian curvature and N(x) is the k-nearest neighbourhood.

Parameters:
  • decomp (SpectralDecomposition)

  • gaussian_curvature (ndarray, shape (N,), optional) – Pre-computed Gaussian curvature. If None, the curvature term is approximated from the eigenvectors (less accurate but avoids requiring a mesh).

  • alpha (float) – Blending weight for the curvature term.

  • k_neighbours (int) – Neighbourhood size for local aggregation.

Returns:

ndarray, shape (N,) – Per-vertex IBKS.

Return type:

ndarray[tuple[Any, …], dtype[floating]]

References

Zhang Y et al. Improved biharmonic kernel signature for 3D non-rigid shape matching and retrieval. The Visual Computer 40:969–980, 2024.