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:

  1. Loading Meshes - How to load a mesh from a file? - Learn how to load mesh files and point clouds - Understand the basic data structures

  2. Laplace-Beltrami Operator - How to compute the mesh Laplacian? - Compute the Laplace-Beltrami matrix - Understand the fundamental operator for shape analysis

  3. Laplace-Beltrami Spectrum - How to compute the mesh Laplacian spectrum? - Compute eigenfunctions and eigenvalues - Set up the spectral basis for functional maps

  4. Shape Descriptors - How to compute descriptors? - Compute Heat Kernel Signatures (HKS) - Compute Wave Kernel Signatures (WKS) - Understand shape descriptors

  5. 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:

  1. Functional Maps - How to compute a functional map? - Compute functional maps between shapes - Understand the optimization process

  2. Pointwise Correspondences - How to compute a pointwise map from a functional map? - Convert functional maps to pointwise correspondences - Visualize correspondences

  3. Refinement - How to refine a functional map? - Apply ZoomOut and other refinement techniques - Improve correspondence quality

Advanced Topics#

For more advanced usage:

  1. Landmarks - How to set landmarks? - Use landmark correspondences - Constrain functional maps with landmarks

  2. Hierarchical Meshes - How to create a hierarchical mesh and what can be done with it? - Work with multi-resolution meshes - Multi-scale functional maps

  3. Rematching - How to use ReMatching to compute a functional map? - Use the Rematching algorithm - Low-resolution shape correspondence

Deep Learning#

For deep learning approaches:

  1. Deep Functional Maps - How to use a Functional Map Model - Use neural networks for feature extraction - Learn-based functional maps

  2. 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:

  1. Basic Visualization - How to plot a mesh? - Basic mesh and correspondence visualization - Plotting tools and techniques

  2. 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:

  1. 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

  2. Start Jupyter: .. code-block:: bash

    jupyter lab

  3. Navigate to the notebooks directory and start with 00_load_mesh_from_file.ipynb

  4. 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:

  1. Explore the demos - Check out the demos/ directory for more complex examples

  2. Read the concepts - Understand the theoretical foundations in Concepts

  3. Check the API - Reference the complete API in API Reference

  4. Join the community - Visit our Discord server

For questions and issues, visit our GitHub repository.