We explore the spectral decomposition of the Laplace-Beltrami operator on triangle meshes. This repo implements the core ideas from scratch and demonstrates them on sphere and torus.
| # | Notebook | What it covers |
|---|---|---|
| 01 | Laplacian Construction | Building the cotangent and uniform Laplacians, mass matrix, verifying symmetry and null space |
| 02 | Eigenvector Visualization | Spectral decomposition, eigenvalue spectrum, visualizing eigenfunctions on sphere and torus |
| 03 | Spectral Embedding | Laplacian eigenmaps, 2D/3D spectral coordinates |
git clone https://github.com/parthchav/spectral-mesh-analysis.git
cd spectral-mesh-analysis
pip install -e .
# Generate sample meshes
python src/generate_meshes.py
# Launch notebooks
jupyter notebook notebooks/├── src/
│ ├── laplacian.py # Laplacian assembly and eigensolvers
│ ├── viz.py # Visualization helpers (pyvista + matplotlib)
│ └── generate_meshes.py # Generate sphere, torus, plane meshes
├── notebooks/
│ ├── 01_laplacian_construction.ipynb
│ ├── 02_eigenvectors_visualization.ipynb
│ └── 03_spectral_embedding.ipynb
├── meshes/ # Generated sample meshes
└── setup.py
- meshes generated from trimesh library.
- Eigenvalue problems solved with
scipy.sparse.linalg.eigsh. - 3D mesh visualization uses PyVista.
- Reuter, Wolter, Peinecke — Laplace-Beltrami spectra as "Shape-DNA" of surfaces and solids (2006)
- Levy — Laplace-Beltrami Eigenfunctions: Towards an Algorithm That "Understands" Geometry (2006)
- Crane — Discrete Differential Geometry: An Applied Introduction
- Botsch et al. — Polygon Mesh Processing, Ch. 3