spectralbrain.compute_shapedna#

spectralbrain.compute_shapedna(decomp, *, normalize='area', skip_zero=True)[source]#

ShapeDNA — the LBO eigenvalue fingerprint.

The simplest spectral descriptor: the truncated sequence of eigenvalues, optionally normalised for cross-subject comparison.

\[\text{ShapeDNA} = (\lambda_1, \lambda_2, \ldots, \lambda_k)\]
Parameters:
  • decomp (SpectralDecomposition) – Precomputed eigenpairs.

  • normalize (str) – "none" — raw eigenvalues. "area" — multiply by surface area (Reuter convention). "volume" — multiply by volume^{2/3}. "fiedler" — divide by λ₁.

  • skip_zero (bool) – Exclude λ₀ ≈ 0 (the constant mode).

Returns:

ndarray, shape (d,) – Eigenvalue vector. d = k−1 if skip_zero, else d = k.

Return type:

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

References

Reuter M, Wolter FE, Peinecke N. Laplace–Beltrami spectra as “Shape-DNA” of surfaces and solids. Computer-Aided Design 38(4):342–366, 2006.