Skip to main content

Geometry processing with functional maps.

Project description

GeomFuM logo

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

Installation

We have a pipl package that you can install with the following command from your terminal

pip install geomfum

Or directly from the GitHub repository

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

Or

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

Or the classic pipeline: clone + pip install.

Make sure you have installed the most recent version of Geomstats to correctly handle the backend.

::

pip install geomstats@git+https://github.com/geomstats/geomstats.git@main

⚠️ ISSUES

  • Installation issues may arise from dependencies relying on C++ (particularly robust_laplacian).

  • Make sure all their requirements are installed.

Some functionality requires packages that are not published on PyPI and must be installed manually:

  • Rematching:

pip install git+https://github.com/filthynobleman/rematching.git@python-binding
  • Polpo:

pip install git+https://github.com/geometric-intelligence/polpo.git@main

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 automatically. The GeomFuM backend add functionality, especially regarding sparse matrices and device handling.

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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geomfum-0.1.2.tar.gz (70.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geomfum-0.1.2-py3-none-any.whl (85.7 kB view details)

Uploaded Python 3

File details

Details for the file geomfum-0.1.2.tar.gz.

File metadata

  • Download URL: geomfum-0.1.2.tar.gz
  • Upload date:
  • Size: 70.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for geomfum-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b45045d326d8f67e3db9a82e8c494ab0d96e924bb4c7189d468b54276d67c1e0
MD5 6091a3151739e84eba9b1766401c69bb
BLAKE2b-256 4dd33a953f279902234e1677c74b9752e94d1a4d64c7f745e9f70ba4539dfd4e

See more details on using hashes here.

File details

Details for the file geomfum-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: geomfum-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 85.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for geomfum-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3039f4a31eb1ced6ae0e9cba53692faf81fe33ef2d5bb795197a0e5cf3ff4f7f
MD5 a368cb731b053bc3a77a1f134fd7a602
BLAKE2b-256 417bad2b59dc394039f287b810b3b8b26865b89a48f29bba0af170e171d3f13e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page