Getting Started with GeomFuM#
Welcome to GeomFuM! This section will guide you through the basics using our comprehensive collection of Jupyter notebooks.
Quick Start#
The best way to get started with GeomFuM is to follow our step-by-step notebook tutorials. These notebooks contain real, working examples that you can run and modify.
Essential Tutorials#
Start with these fundamental notebooks in order:
Loading Meshes - How to load a mesh from a file? - Learn how to load mesh files and point clouds - Understand the basic data structures
Laplace-Beltrami Operator - How to compute the mesh Laplacian? - Compute the Laplace-Beltrami matrix - Understand the fundamental operator for shape analysis
Laplace-Beltrami Spectrum - How to compute the mesh Laplacian spectrum? - Compute eigenfunctions and eigenvalues - Set up the spectral basis for functional maps
Shape Descriptors - How to compute descriptors? - Compute Heat Kernel Signatures (HKS) - Compute Wave Kernel Signatures (WKS) - Understand shape descriptors
Descriptor Pipeline - How to create a descriptor pipeline? - Create descriptor computation pipelines - Combine multiple descriptors efficiently
Functional Maps Tutorials#
Once you understand the basics, dive into functional maps:
Functional Maps - How to compute a functional map? - Compute functional maps between shapes - Understand the optimization process
Pointwise Correspondences - How to compute a pointwise map from a functional map? - Convert functional maps to pointwise correspondences - Visualize correspondences
Refinement - How to refine a functional map? - Apply ZoomOut and other refinement techniques - Improve correspondence quality
Advanced Topics#
For more advanced usage:
Landmarks - How to set landmarks? - Use landmark correspondences - Constrain functional maps with landmarks
Hierarchical Meshes - How to create a hierarchical mesh and what can be done with it? - Work with multi-resolution meshes - Multi-scale functional maps
Rematching - How to use ReMatching to compute a functional map? - Use the Rematching algorithm - Low-resolution shape correspondence
Deep Learning#
For deep learning approaches:
Deep Functional Maps - How to use a Functional Map Model - Use neural networks for feature extraction - Learn-based functional maps
Neural Adjoint Maps - How to compute a Neural Adjoint Map - End-to-end correspondence learning - Neural adjoint map computation
Visualization#
Learn to visualize your results:
Basic Visualization - How to plot a mesh? - Basic mesh and correspondence visualization - Plotting tools and techniques
Distance Visualization - How to visualize distance to a point in a mesh? - Visualize geodesic distances - Error analysis and visualization
Running the Notebooks#
To run these tutorials:
Install GeomFuM with all dependencies: .. code-block:: bash
pip install geomfum[opt,test-scripts,plotting-all]@git+https://github.com/DiG-AIR/geomfum.git@main
Start Jupyter: .. code-block:: bash
jupyter lab
Navigate to the notebooks directory and start with 00_load_mesh_from_file.ipynb
Follow the links at the end of each notebook to progress through the tutorials
Interactive Learning#
Each notebook is designed to be interactive:
Run cells sequentially to understand the concepts
Modify parameters to see how they affect results
Experiment with different shapes from the dataset
Try your own meshes by changing the file paths
Dataset#
The tutorials use the GeomFuM dataset which includes:
Animal shapes: cats, lions, horses, etc.
Human shapes: various poses and subjects
Synthetic shapes: for testing and validation
To use your own data, simply replace the dataset paths with your mesh files.
Next Steps#
After completing the tutorials:
Explore the demos - Check out the demos/ directory for more complex examples
Read the concepts - Understand the theoretical foundations in Concepts
Check the API - Reference the complete API in API Reference
Join the community - Visit our Discord server
For questions and issues, visit our GitHub repository.