Package: pyfmaps
V 1.0 is coming very soon, with release on PyPiExpected pyFM.torch versionpyFM - Python bindings for functional mapspyFM 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.FeaturesA TriMesh class incuding many standard geometric measures with python code, including geodesic distances (using theheat 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 ofHKSandWKS(and their version for landmarks) with multiple level of automation for parameters selection (from full automatic to total control)Implementation of icp andZoomOuton PythonFastconversion from Functional Map to vertex to vertex map orprecise mapusing p-dimensionalvertex to mesh projectionA FunctionalMapping class for straightforward computation of Functional Maps mixing all the previous featuresFunctions for evaluating functional maps.Support for Functional Map Networks : Consistent Latent Basis, Canonical Consistent Latent Basis, consistency weights, Consistent ZoomOutIn particular this codebade contains python implementations of the following papers :The Heat Method for Distance ComputationA Concise and Provably Informative Multi-Scale Signature Based on Heat DiffusionThe Wave Kernel Signature: A Quantum Mechanical Approach To Shape AnalysisZoomOut: Spectral Upsampling for Efficient Shape Correspondence, with MatLab implementationhereDeblurring and Denoising of Maps between Shapes, with Matlab implementationhereFunctional Maps: A Flexible Representation of Maps Between ShapesInformative Descriptor Preservation via Commutativity for Shape MatchingContinuous and Orientation-preserving Correspondences via Functional Maps, only the orientation preserving / reversing term, matlab implementation can be foundhereMap-Based Exploration of Intrinsic Shape Differences and VariabilityAn Optimization Approach to Improving Collections of Shape MapsLimit Shapes – A Tool for Understanding Shape Differences and Variability in 3D Model CollectionsCONSISTENT ZOOMOUT: Efficient Spectral Map Synchronization, with Matlab implementationhereIncoming featuresPython code forDiscrete OptimizationandReversible Harmonic Mapshould be released soon.
Don't hesitate to reach out at <rmagnet@> <lix.polytechnique.fr> for requests.DependenciesHard dependencies arenumpy,scipy,tqdm,scikit-learnfor its KDTree implementation.The main non-standard (optional) dependencies arepotpourri3dfor its robust geodesic distance computation androbust_laplacianwhich provide an implementation of both intrinsic delaunay and tufted Laplacian. If these functionalities are not needed one can remove the importshereandhere.I did not build on thetrimeshpackage which has some strange behaviour with vertex reordering.Remark on Code notationsIn the whole codebase, we consider pairs of meshesmesh1andmesh2. Functional maps always gofrommesh1tomesh2(denotedFM_12) and pointwise maps alwaysfrommesh2tomesh1(denotedp2p_21)Example CodeRunning theexample notebookgives you an overview of the package functions.
Note that this notebook requires themeshplotpackage, which is an easy to use interface forpythreejs, 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 matchingSee theExample Notebookfor example of code.