Skip to main content

MeshLib logo

MeshLib — an SDK that supercharges your 3D data processing efficiency

Geometry algorithms engineered to revolutionize. We help software engineers process, repair, measure and optimize 3D data with next-generation algorithms, reducing development time and costs — mesh boolean, mesh repair, decimation, offset, point cloud triangulation, ICP registration and voxel processing, in C++, C, C#, Python, JavaScript, Rust and Java.

▶ Try it live · Website · Documentation · Quick start · Examples · Benchmarks · Discussions

build-test-distribute PyPI version PyPI downloads Python versions NuGet npm crates.io crates.io downloads Maven Central Stars

MeshLib SDK — 3D mesh processing library

Install

pip install meshlib                  # Python
dotnet add package MeshLib           # C#
npm install @meshinspector/meshlib   # JavaScript / WebAssembly
cargo add meshlib@<version>          # Rust, the exact version from crates.io

For C++ and C, see the Installation Guide; for Rust, the Rust setup guide; for Java, com.meshinspector:meshlib from Maven Central, see the Java setup guide.

60 seconds to your first result

Turn a scan into a triangle mesh:

from meshlib import mrmeshpy as mm

pc   = mm.loadPoints("scan.ply")           # point cloud from any scanner
mesh = mm.triangulatePointCloud(pc)        # point cloud -> triangle mesh
mm.saveMesh(mesh, "model.stl")

Boolean operations that just work, with no non-manifold surprises:

from meshlib import mrmeshpy as mm

a = mm.makeUVSphere(1.0, 64, 64)
b = mm.copyMesh(a)
b.transform(mm.AffineXf3f.translation(mm.Vector3f(0.7, 0.0, 0.0)))

res = mm.boolean(a, b, mm.BooleanOperation.Union)
if not res.valid():
    raise RuntimeError(res.errorString)
mm.saveMesh(res.mesh, "out_boolean.stl")

Heal a broken scan into a watertight, printable model. Voxel-based repair rebuilds the surface through a signed distance field, so holes, self-intersections and non-manifold edges disappear in a single pass:

from meshlib import mrmeshpy as mm

mesh = mm.loadMesh("broken.stl")

params = mm.GeneralOffsetParameters()
params.voxelSize = mesh.computeBoundingBox().diagonal() / 200
params.signDetectionMode = mm.SignDetectionMode.HoleWindingRule
params.closeHolesInHoleWindingNumber = True

fixed = mm.generalOffsetMesh(mm.MeshPart(mesh), 0.0, params)   # watertight
mm.saveMesh(fixed, "fixed.stl")

Voxel repair resamples the surface, so the result is denser than the input — add decimateMesh to bring the triangle count back down within a tolerance you set. Lighter, topological repair (fixMeshDegeneracies, fillHole, fixSelfIntersections) is available when you need to preserve the original vertices.

More in Tutorials and the examples/ folder — including complete, runnable programs for repair, boolean, offset, ICP and triangulation in C++, C, C#, Python and JavaScript, and for boolean, decimation and loading/saving in Rust and Java.

What MeshLib does

3D Boolean Fast, exact mesh booleans (union, intersection, difference) plus a voxel-based mode for messy input.
Mesh repair Fix self-intersections, degeneracies, tunnels, multiple edges and undercuts; fill and stitch holes on flat and curved surfaces.
Point cloud to mesh Triangulation with accurate normal estimation, uniform and grid sampling, outlier removal.
Simplification Decimation within a set tolerance, remeshing and subdivision that keep the details you care about.
Offset Shell, partial and weighted offsets for 3D printing, machining and hollowing.
Registration Point-to-point and point-to-plane ICP, plus global registration of multiple scans.
Distance & SDF Mesh to signed distance field and back by marching cubes, distance maps, iso-lines, projection and ray intersection.
Voxels & CT DICOM import/export, voxel-grid processing and 3D volume rendering.
Deformation Laplacian, freeform and relaxation smoothing, noise reduction.
Segmentation Semi-automatic mesh segmentation guided by a curvature metric; graph-cut segmentation of voxel volumes.
Collision detection Exact and precise self- and pairwise intersection tests.
Viewer An embeddable OpenGL/ImGui viewer with UI components, or run the algorithms fully headless.
File formats Meshes, point clouds, CT scans, polylines, distance maps and G-code — full list.

Full feature reference: meshlib.io/features.

Why teams pick MeshLib

Measured, not claimed. Our boolean benchmark compares MeshLib across nine libraries on 2M-triangle models — method, data and input meshes. The simplification benchmark does the same for decimation across 11 libraries. Both are public and reproducible.

Manifold by construction. Meshes use a half-edge data structure, in which most non-manifold situations are simply not representable — a non-manifold edge, or a vertex with two closed rings of triangles around it. Broken topology is caught where it happens, not three pipeline stages later.

One engine, seven languages. A native C++ core with official APIs for C, C#, Python, JavaScript/WebAssembly, Rust and Java. The same algorithms, the same results — on the desktop, on a server, or in a browser tab.

Built for real workloads. Core algorithms are multithreaded; a CUDA module accelerates distance maps, signed distance fields, offsets and swept volumes on NVIDIA GPUs.

We use it ourselves. MeshInspector, our desktop and web application, and SmileInspector, our FDA-cleared clear-aligner platform, are both built entirely on this SDK, so it is exercised every day on real production data.

Supported, not abandoned. Backed by a full-time team with commercial support, regular releases and a responsive issue tracker.

Platforms

Windows · macOS · Linux (Ubuntu/Debian, Fedora/RHEL) · WebAssembly

Built with MeshLib

Project Field What it does
Polyga 3D scanning PointKit scanning platform, built on MeshLib
Verisurf Metrology 3D measurement, inspection and reverse engineering
Brius Technologies Orthodontics Customized lingual orthodontic appliances
Axial3D Medical imaging Scan-to-3D-model services for surgical planning
customed.ai Medical devices AI-driven patient-specific surgical instruments
Relu Digital dentistry AI segmentation for dental CAD workflows
spherene Generative design Adaptive density minimal surfaces for AM
ToffeeX Generative design Physics-driven design optimization
Enhatch Medical devices Intelligent surgery platform
CIMsystem CAM / machining CAD/CAM software for dental and industrial milling
3DONS Digital dentistry Dental treatment planning software
Henning Larsen Architecture / AEC Computational design and terrain modelling
MeshInspector 3D printing / QA STL editor, viewer and mesh repair application
SmileInspector Clear aligners FDA-cleared aligner treatment planning platform

Shipping something built on MeshLib? Open a PR and add it here — we like showing what people build.

Getting started

  1. Try the live demo — booleans, repair, decimation and ICP in the browser. No install, no sign-up.
  2. Evaluate locally. pip install meshlib, then work through the tutorials. Free for non-commercial and educational use under our licence.
  3. See it in an application. MeshInspector is the GUI built on MeshLib — desktop and web, 30-day trial.
  4. Book a call. Integration guidance, architecture questions and commercial licensing tailored to your project.

Licence

MeshLib is source-available: read the code, fork it, and use it free for non-commercial and educational work. Commercial use requires a licence — see the full terms and the licence page.

Citing MeshLib

If MeshLib supports your research, please cite the exact version you used — find it with pip show meshlib.

@software{meshlib,
  author       = {{MeshLib Development Team}},
  title        = {{MeshLib}: 3D Mesh Processing Library},
  organization = {AMV Consulting LLC},
  year         = {2026},
  version      = {3.1.3.429},
  url          = {https://meshlib.io},
  note         = {Please cite the exact version used in your work}
}

Other styles (APA, IEEE, Chicago) and guidance on citing a specific algorithm: meshlib.io/citation-guide. Published something that uses MeshLib? Tell us in Discussions — we keep a list.

Community and support

If MeshLib saves you time, a ⭐ helps other engineers find it.

Metadata

Release files for meshlib-core 3.2.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for meshlib-core 3.2.0.3
File Actions
meshlib_core-3.2.0.3-cp38-abi3-win_arm64.whl CPython 3.8 abi3 Windows ARM64 Details for meshlib_core-3.2.0.3-cp38-abi3-win_arm64.whl
meshlib_core-3.2.0.3-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details for meshlib_core-3.2.0.3-cp38-abi3-win_amd64.whl
meshlib_core-3.2.0.3-cp38-abi3-manylinux_2_28_x86_64.whl CPython 3.8 abi3 Linux glibc 2.28+ x86-64 Details for meshlib_core-3.2.0.3-cp38-abi3-manylinux_2_28_x86_64.whl
meshlib_core-3.2.0.3-cp38-abi3-manylinux_2_28_aarch64.whl CPython 3.8 abi3 Linux glibc 2.28+ ARM64 Details for meshlib_core-3.2.0.3-cp38-abi3-manylinux_2_28_aarch64.whl
meshlib_core-3.2.0.3-cp38-abi3-macosx_12_0_x86_64.whl CPython 3.8 abi3 macOS 12.0+ x86-64 Details for meshlib_core-3.2.0.3-cp38-abi3-macosx_12_0_x86_64.whl
meshlib_core-3.2.0.3-cp38-abi3-macosx_12_0_arm64.whl CPython 3.8 abi3 macOS 12.0+ ARM64 Details for meshlib_core-3.2.0.3-cp38-abi3-macosx_12_0_arm64.whl

Total release size: 203.2 MB

Release files / meshlib_core-3.2.0.3-cp38-abi3-win_arm64.whl

Download URL meshlib_core-3.2.0.3-cp38-abi3-win_arm64.whl
Size 28.5 MB
Tags CPython 3.8 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
290c71b20d6c37e2e2ad209a783ac1961ccf4ae1f7d95f5e98d44b3a9c8356b0
BLAKE2b-256 checksum
How to use checksums
f47ccf4e45e9907b1ba0e72fd85a55bd47cd8131a1393eb1f38f842f5b2219bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / meshlib_core-3.2.0.3-cp38-abi3-win_amd64.whl

Download URL meshlib_core-3.2.0.3-cp38-abi3-win_amd64.whl
Size 29.9 MB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
6f5d35145dfb6a9e5e4adf29c1659b1c1591c8b85c74b06a1a8e77649b4ada85
BLAKE2b-256 checksum
How to use checksums
60c35eac096d2a84089e55baa4ba05e032bb416a28f5170df00041b89e64fa62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / meshlib_core-3.2.0.3-cp38-abi3-manylinux_2_28_x86_64.whl

Download URL meshlib_core-3.2.0.3-cp38-abi3-manylinux_2_28_x86_64.whl
Size 40.9 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
0a79bf6c72a347d9355062a3603b2f3c6024f63a1edb7a68292e5ed1405c4d97
BLAKE2b-256 checksum
How to use checksums
fb77e60dcfe75298d51eee1eee8a041cb398a2b9fbd85759fc8256db912c8970
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / meshlib_core-3.2.0.3-cp38-abi3-manylinux_2_28_aarch64.whl

Download URL meshlib_core-3.2.0.3-cp38-abi3-manylinux_2_28_aarch64.whl
Size 39.5 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
6f3e1398c7e41fb81a8738bab6272e1bdf5034be6895b021a2b05a00f13b6755
BLAKE2b-256 checksum
How to use checksums
18f0cfb45988de70c349018d4ad9bc014a2f312f3526c3b1e67ba9f8cfa8f2f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / meshlib_core-3.2.0.3-cp38-abi3-macosx_12_0_x86_64.whl

Download URL meshlib_core-3.2.0.3-cp38-abi3-macosx_12_0_x86_64.whl
Size 33.8 MB
Tags CPython 3.8 abi3 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
fd462527700d7c0aafbce8a23b4bb7c54cc4cba6035cd466e40a13dedaa339fd
BLAKE2b-256 checksum
How to use checksums
bc03749ed363ec168316cf2680302511d7f677cb7c7ce94480770c09a40ecbc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / meshlib_core-3.2.0.3-cp38-abi3-macosx_12_0_arm64.whl

Download URL meshlib_core-3.2.0.3-cp38-abi3-macosx_12_0_arm64.whl
Size 30.6 MB
Tags CPython 3.8 abi3 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
64f0fb0553f7d6b0e18b2ddfa9f4be7b6ac44d2a20b5cd0edd38d7383240d299
BLAKE2b-256 checksum
How to use checksums
2d7a0c2ae52ae720b98c61ea26cb4ed563df820039f3c71ef18e081406293318
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for meshlib-core 3.2.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

3.2.0.3 This release

6 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page