Skip to main content

Python bindings for functional maps

Project description

V 1.0 is coming very soon, with release on PyPi

Expected pyFM.torch version

pyFM - Python bindings for functional maps

pyFM is a pure python implementation of multiple tools used for Functional Maps computations. Namely, it implements shape signatures, functional map optimization and refinement algorithm, and above all an easy-to-use interface for using functional maps.

Features

  • A TriMesh class incuding many standard geometric measures with python code, including geodesic distances (using the heat method), normals, projection on the LBO basis, export of .off or .obj files with textures.
  • A pure Python (fast) implementation of Laplace-Beltrami Operator.
  • Implementation of HKS and WKS (and their version for landmarks) with multiple level of automation for parameters selection (from full automatic to total control)
  • Implementation of icp and ZoomOut on Python
  • Fast conversion from Functional Map to vertex to vertex map or precise map using p-dimensional vertex to mesh projection
  • A FunctionalMapping class for straightforward computation of Functional Maps mixing all the previous features
  • Functions for evaluating functional maps.
  • Support for Functional Map Networks : Consistent Latent Basis, Canonical Consistent Latent Basis, consistency weights, Consistent ZoomOut

In particular this codebade contains python implementations of the following papers :

Incoming features

Python code for Discrete Optimization and Reversible Harmonic Map should be released soon. Don't hesitate to reach out at <rmagnet@> <lix.polytechnique.fr> for requests.

Dependencies

Hard dependencies are numpy, scipy, tqdm, scikit-learn for its KDTree implementation.

The main non-standard (optional) dependencies are potpourri3d for its robust geodesic distance computation and robust_laplacian which provide an implementation of both intrinsic delaunay and tufted Laplacian. If these functionalities are not needed one can remove the imports here and here.

I did not build on the trimesh package which has some strange behaviour with vertex reordering.

Remark on Code notations

In the whole codebase, we consider pairs of meshes mesh1 and mesh2. Functional maps always go from mesh1 to mesh2 (denoted FM_12) and pointwise maps always from mesh2 to mesh1 (denoted p2p_21)

Example Code

Running the example notebook gives you an overview of the package functions. Note that this notebook requires the meshplot package, which is an easy to use interface for pythreejs, which allows to display mesh in an easy fashion on notebooks.

All functions in the package are documented, with a descriptions of parameters and output.

Example Code for shape matching

See the Example Notebook for example of code.

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

pyfmaps-1.0.0.tar.gz (343.1 kB view details)

Uploaded Source

Built Distribution

pyfmaps-1.0.0-py3-none-any.whl (56.7 kB view details)

Uploaded Python 3

File details

Details for the file pyfmaps-1.0.0.tar.gz.

File metadata

  • Download URL: pyfmaps-1.0.0.tar.gz
  • Upload date:
  • Size: 343.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for pyfmaps-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ca7e0382b41baa099b36db05ee19886b15f9387630742c4009792aaa71dec2b5
MD5 f6f5024d45c4ef8b2f753bbf1f301fb9
BLAKE2b-256 ce230ef3ee7370670e13a6e103048d7b7dbaeac516bce697d272bbdb236c3cea

See more details on using hashes here.

Provenance

File details

Details for the file pyfmaps-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyfmaps-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 56.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for pyfmaps-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6811a34316ba8ad5dc4ce746d306581327fd6fef76ab278b3ce8aa13700be7b4
MD5 0121f63745e104940ebf1b26262e203f
BLAKE2b-256 adbdad147fd4352ca9fc811962e35e741b7fe6fcfb8674a97be6deb982e3ca78

See more details on using hashes here.

Provenance

Supported by

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