Skip to content

3diglab/geomfum

Repository files navigation

GeomFuM logo

GeomFuM is a Modular Python Package for Machine Learning with Functional Maps. Have a look at our Software Paper Preprint.

Installation

pip install geomfum@git+https://github.com/3diglab/geomfum.git@main

Or

pip install geomfum

Or the classic pipeline: clone + pip install.

⚠️ ISSUES

  • Installation issues may arise from dependencies relying on C++ (particularly robust_laplacian).
  • Make sure all their requirements are installed.
  • For pyRMT, follow the instructions here.

How to use

The how-to notebooks are designed to safely let you dive in the package.

Why not starting from the beginning and simply follow the links that inspire you the most?

Choose the backend

GeomFuM can run seamlessly with numpy and pytorch. By default, the numpy backend is used. The visualizations are only available with this backend.

The backend is based on the Geomstats backend, which is installed via its standalone package gsops .

You can choose your backend by setting the environment variable GEOMSTATS_BACKEND to numpy, or pytorch, and importing the backend module. From the command line:

export GEOMSTATS_BACKEND=<backend_name>

and in the Python3 code:

import gsops.backend as gs

Contributions

We welcome contributions from the community! If you have suggestions, bug reports, or want to improve the code or documentation, feel free to:

  • Open an issue
  • Submit a pull request
  • Improve or add new examples/notebooks

Please follow our contribution guidelines and adhere to best practices for clean, modular, and well-documented code.

Community

Join our Discord Server! https://discord.gg/THHku2ckJs

List of Implemented Papers

  1. Functional Maps: A Flexible Representation of Maps Between Shapes
  2. Rematching: Low-resolution representations for scalable shape correspondence
  3. ZoomOut: Spectral Upsampling for Efficient Shape Correspondence
  4. Fast Sinkhorn Filters: Using Matrix Scaling for Non-Rigid Shape Correspondence with Functional Maps
  5. Structured regularization of functional map computations
  6. Bijective upsampling and learned embedding for point clouds correspondences
  7. Deep Geometric Functional Maps: Robust Feature Learning for Shape Correspondence
  8. Laplace-Beltrami Eigenfunctions Towards an Algorithm That "Understands" Geometry
  9. The Heat Method for Distance Computation
  10. A Concise and Provably Informative Multi-Scale Signature Based on Heat Diffusion
  11. The Wave Kernel Signature: A Quantum Mechanical Approach To Shape Analysis
  12. Informative Descriptor Preservation via Commutativity for Shape Matching
  13. DiffusionNet: Discretization Agnostic Learning on Surfaces
  14. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

Acknowledgement

We thank the geometry processing and functional maps community for their foundational research and ongoing contributions that inspired this work, particularly open-source libraries on functional maps such as pyFM (RobinMagnet), FMNet (pvnieo), and Unsupervised-Learning-of-Robust-Spectral-Shape-Matching (dongliangcao), which provided valuable implementations and examples. We tried our best, referencing all relevant works in the library to give credit to researchers and developers; however, we acknowledge that we could have missed some! Please contact us and propose a change if you want recognition and think something is missing!

If you use Geomfum, please cite the Software to give recognition to any contributor of the project.

This work was partially supported by the European Union (Next Generation EU), MUR (REGAINS), NVIDIA Academic Hardware Grant, and the NSF (MRSEC and CAREER awards).

Have FuM!

Packages

No packages published

Contributors 7

Languages