MeshLib

August 28, 2026 · View on GitHub

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 and JavaScript.

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

build-test-distribute PyPI version PyPI downloads Python versions NuGet npm Stars

MeshLib SDK — 3D mesh processing library

Install

pip install meshlib                  # Python
dotnet add package MeshLib           # C#
npm install @meshinspector/meshlib   # JavaScript / WebAssembly

For C++ and C, see the Installation 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 all five languages.

What MeshLib does

3D BooleanFast, exact mesh booleans (union, intersection, difference) plus a voxel-based mode for messy input.
Mesh repairFix self-intersections, degeneracies, tunnels, multiple edges and undercuts; fill and stitch holes on flat and curved surfaces.
Point cloud to meshTriangulation with accurate normal estimation, uniform and grid sampling, outlier removal.
SimplificationDecimation within a set tolerance, remeshing and subdivision that keep the details you care about.
OffsetShell, partial and weighted offsets for 3D printing, machining and hollowing.
RegistrationPoint-to-point and point-to-plane ICP, plus global registration of multiple scans.
Distance & SDFMesh to signed distance field and back by marching cubes, distance maps, iso-lines, projection and ray intersection.
Voxels & CTDICOM import/export, voxel-grid processing and 3D volume rendering.
DeformationLaplacian, freeform and relaxation smoothing, noise reduction.
SegmentationSemi-automatic mesh segmentation guided by a curvature metric; graph-cut segmentation of voxel volumes.
Collision detectionExact and precise self- and pairwise intersection tests.
ViewerAn embeddable OpenGL/ImGui viewer with UI components, or run the algorithms fully headless.
File formatsMeshes, 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, five languages. A native C++ core with official APIs for C, C#, Python and JavaScript/WebAssembly. 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

ProjectFieldWhat it does
Polyga3D scanningPointKit scanning platform, built on MeshLib
VerisurfMetrology3D measurement, inspection and reverse engineering
Brius TechnologiesOrthodonticsCustomized lingual orthodontic appliances
Axial3DMedical imagingScan-to-3D-model services for surgical planning
customed.aiMedical devicesAI-driven patient-specific surgical instruments
ReluDigital dentistryAI segmentation for dental CAD workflows
sphereneGenerative designAdaptive density minimal surfaces for AM
ToffeeXGenerative designPhysics-driven design optimization
EnhatchMedical devicesIntelligent surgery platform
CIMsystemCAM / machiningCAD/CAM software for dental and industrial milling
3DONSDigital dentistryDental treatment planning software
Henning LarsenArchitecture / AECComputational design and terrain modelling
MeshInspector3D printing / QASTL editor, viewer and mesh repair application
SmileInspectorClear alignersFDA-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.