Skip to main content

Python-first 3D mesh registration library

Project description

MeshMonk: High-Performance 3D Mesh Registration

MATLAB users: The MATLAB MEX interface has been removed from this repository as part of the Python-first rewrite. For MATLAB support, use the KU Leuven MIRC fork at https://gitlab.kuleuven.be/mirc/meshmonk

MeshMonk is a C++20 library with Python bindings for high-performance 3D mesh registration. It provides rigid, non-rigid, and pyramid-based registration via a clean Python API backed by a battle-tested C++ algorithmic core.

Overview

MeshMonk is a Python-first 3D mesh registration library. It can be used:

  • As a Python library: pip install 'meshmonk[io]' — then import meshmonk
  • As a CLI tool: meshmonk rigid Template.obj demoFace.obj --out result.obj

Installation

From PyPI:

pip install 'meshmonk[io]'

From source (for development):

git clone https://github.com/jsnyde0/meshmonk.git
cd meshmonk
uv pip install --system '.[io]'

Python API Quickstart

import meshmonk, trimesh

floating = trimesh.load("Template.obj")
target   = trimesh.load("demoFace.obj")

result = meshmonk.pyramid_register(floating=floating, target=target)
print(result.aligned_vertices.shape)  # (N, 3)

CLI Usage

# Rigid registration
meshmonk rigid Template.obj demoFace.obj --out result.obj

# Pyramid (multi-resolution nonrigid) registration
meshmonk pyramid Template.obj demoFace.obj --out result.obj

# View all options for a subcommand
meshmonk rigid --help
meshmonk pyramid --help

CI Matrix

The test suite runs across the following platforms on every pull request:

OS Python Compiler
Ubuntu 22.04 3.10, 3.11, 3.12, 3.13 gcc-11, clang-15
Ubuntu 24.04 3.10, 3.11, 3.12, 3.13 gcc-13
macOS 13 (x86_64) 3.10, 3.11, 3.12, 3.13 AppleClang
macOS 14 (arm64) 3.10, 3.11, 3.12, 3.13 AppleClang
Windows latest 3.12 MSVC

Repository Structure

  • CMakeLists.txt: Root CMake file for the project.
  • library/: Core MeshMonk C++ library (libmeshmonk_shared).
  • bindings/: nanobind Python bindings.
  • meshmonk/: Python package (import meshmonk).
  • vendor/: Third-party dependencies (OpenMesh, nanoflann, Eigen).
  • tests/: Python test suite.
  • docs/: Documentation and architecture decisions.

Development Setup

git clone https://github.com/jsnyde0/meshmonk.git
cd meshmonk
uv pip install --system '.[dev,io]'
pytest tests/

Documentation

MATLAB Users

The MATLAB MEX interface has been removed in v0.1 as part of the Python-first rewrite (see ADR-001 D3).

For MATLAB support, use the KU Leuven MIRC fork: https://gitlab.kuleuven.be/mirc/meshmonk

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

meshmonk-0.3.0.tar.gz (60.0 MB view details)

Uploaded Source

Built Distributions

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

meshmonk-0.3.0-cp312-abi3-win_amd64.whl (422.4 kB view details)

Uploaded CPython 3.12+Windows x86-64

meshmonk-0.3.0-cp312-abi3-musllinux_1_2_x86_64.whl (821.6 kB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ x86-64

meshmonk-0.3.0-cp312-abi3-musllinux_1_2_aarch64.whl (778.8 kB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

meshmonk-0.3.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (347.5 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

meshmonk-0.3.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (314.3 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

meshmonk-0.3.0-cp312-abi3-macosx_11_0_arm64.whl (259.8 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

meshmonk-0.3.0-cp311-cp311-win_amd64.whl (422.9 kB view details)

Uploaded CPython 3.11Windows x86-64

meshmonk-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl (822.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

meshmonk-0.3.0-cp311-cp311-musllinux_1_2_aarch64.whl (779.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

meshmonk-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (348.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

meshmonk-0.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (315.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

meshmonk-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (260.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

meshmonk-0.3.0-cp310-cp310-win_amd64.whl (422.8 kB view details)

Uploaded CPython 3.10Windows x86-64

meshmonk-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl (822.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

meshmonk-0.3.0-cp310-cp310-musllinux_1_2_aarch64.whl (779.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

meshmonk-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (347.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

meshmonk-0.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (314.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

meshmonk-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (260.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file meshmonk-0.3.0.tar.gz.

File metadata

  • Download URL: meshmonk-0.3.0.tar.gz
  • Upload date:
  • Size: 60.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for meshmonk-0.3.0.tar.gz
Algorithm Hash digest
SHA256 33f108c6876a305cf66a05bd42f80bfefb4aa3cbe7feb5931055be2b0b4d17d6
MD5 471083b7c8d52d595c1ebee6fe96d943
BLAKE2b-256 9c995739edf09be0f2cc8d176edafada44fb352bd03ea68f7e5d6c45b768931a

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0.tar.gz:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: meshmonk-0.3.0-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 422.4 kB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for meshmonk-0.3.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8268dd853a7de9f60c32795a44dd996362a23298c2ca1599021328f61ebdd2ce
MD5 0e4f38a5c03442e2e1bf15ee6e0d6516
BLAKE2b-256 9e375466a1dd89ead8d51aea5779c9ef71021505d3353144db70de481ec0eace

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp312-abi3-win_amd64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1b503667107babe767b4714057396363deffba21b7761c0249b8335ba713c667
MD5 42e7185666946ea98b7ba2bde326d170
BLAKE2b-256 680850ed7993ce0f9f916fa1470ae0feca7b0bec2b88f85f8dbcb448f5e7932d

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp312-abi3-musllinux_1_2_x86_64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 df65312a81f628d35d2be2522c5632766451dc6057655050e093459e926ea55f
MD5 d92491c7704429e833fe6c4949179224
BLAKE2b-256 6b3f08ec08250851502cb3663259cb2973df7ca0d78357b7974508416d9b11a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp312-abi3-musllinux_1_2_aarch64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59b8e73167a0e5877dd6f178aeb50ce595d12d48c0863292c9acb34cd59ce01d
MD5 8eb5202f1548d2ba3a5cfe991ed861ed
BLAKE2b-256 fc10bc6b50c26f9c5dde10f06b861a4d02e449e166b21417dd8a7a4b863a786b

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2efd91c64b6513e19246fb1a30bd9b0b72a1f0fe2dbf8ed2c1d3eae67b983406
MD5 b9b28c75c5f3fe29b4eb676638062baa
BLAKE2b-256 84f812a8b55e76d9c09587e217628914fcf5669c749012cdbc243390351359f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f62344ce0e4706110cb42bf54e5666f491bef9a3b9c4a980d86224da76cfdd9b
MD5 3e3c7ec53c7341a1d5e18f6d43424b88
BLAKE2b-256 0951003b9aeb0afe3850ac081186348756118665af740c2232a5e8b656eb367f

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp312-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: meshmonk-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 422.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for meshmonk-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0c25e192e77bbdf74dc410650415330578ac3b7b30e3f4a6553055c4e0e890e6
MD5 b860b59e7f892a74f0d522c9a05bdaff
BLAKE2b-256 ada1d126553b2ea42bb5cb636e3561b6dcc206bc5422071329da74a1e4c1f410

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 68e00909217ce1efc310b6580b71b348ec6f120fe70312951505fac8f0d14053
MD5 301376f4f6adb9c6beb939faed74bf97
BLAKE2b-256 caddc5dbf7ef9f3427616d0edd7d0e51b6be78e155bd126ff1249451db572da4

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c8227ee3bee9c0760121f16a5bd246da98707c846c764b1f515c47faf7dd194e
MD5 777c7c9fb49d318a5cd8d2f031a79f8c
BLAKE2b-256 c2ef04c223ce2ef9ba92a50f353a1a207ba91ad00b4712a28190df2c3afdc587

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cee9654fbb599287bb90b85dfa575d1dba97cc5e5927bfa4582122acea92e908
MD5 66519dd3e901a6528d7a642bd17f92a8
BLAKE2b-256 a1260d52d42b248102ff9fd98e435d518a9061be959186c806ff21073e6d974d

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 295598d94365d97c5485aef608f26154e06f0434179361d5f0658e7b48e2977a
MD5 82129e8d441222ee4532bff1ccc481fc
BLAKE2b-256 7cdd7b2e14dd237491083e26ca15435f7488879352c41baafda13766236065a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ab2e6f4b2d28ebdf79d8badc0f704794b2d875ad57266bbb5840e3557e47a74
MD5 3c3ea722a3fb13e05ae99aa575aa18b3
BLAKE2b-256 1c3623d55ddda7cacee23bb9d8403ba54eaaaa722ff9464e98cf04c6daa6e4c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: meshmonk-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 422.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for meshmonk-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 daf7c8371aaad6b8502859cc6af562de9d72c2d5ca945df24b51e029fd067b2f
MD5 38fe7be4cf2844f6664a9de5a9c3b22e
BLAKE2b-256 907d69a6aa5f72963bc50ff6abbf04b0641ace221d1eb58acf39fab7fc39b1ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 05dd5043383f75964a5eabe1c3d16f336d6c245dc367b40cb8f92380d5c30cfd
MD5 1cf95b551941f4f6f9f57864ce61f7c8
BLAKE2b-256 802ed6dceee47451a20b7003a59b2a9dc0fe909e258211023a40c235d509c568

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 db212c3d7e2fe8267d5baa81e103e78ca6e61c92e68f6f7a26eda68454bffad8
MD5 29426f0dd01666fa616e2e2af3b3801d
BLAKE2b-256 608b0e85c22daf322eb809b59d48d40fde410405666ef75dad2342a0788e87eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16d3b4722a277e583bc324e3ee315bccf258d724f0df142cb6ed83bc26af3070
MD5 4d0e48b36e9ab87c642cb9be6590d77c
BLAKE2b-256 16c4317a671511997c6b757e95d561e49be402ac0821661aa3e54684cfd7397f

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 00ef8d0dc99e8005816bfbfd20d3b9b3ea975818ca55a45a551585831ed2e813
MD5 65452105d5c869d8dce3fe6aa8707003
BLAKE2b-256 0d99450082d72151631f68735c5ee161408031c06c05ff8f2b4b5b9c030c670d

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshmonk-0.3.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for meshmonk-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3d2fb47dbc7c7177d37fb060bf0dd2833ba47cc9fb87ce759c47d73bf80afd83
MD5 6910aff4b3937704a4177aaf6d2b82ed
BLAKE2b-256 a22173705050c5f7604e9eb4dde56456ba8251f8c8200b9a5d4f9ec97bd05725

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshmonk-0.3.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on jsnyde0/meshmonk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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