Mesh Healing
Mesh healing repairs holes and topology defects to prepare a mesh for the rest of the 3D pipeline: simulation, printing and analysis.
Discover moreRepair, combine and optimize triangle meshes
MeshLib covers the whole life of a triangle mesh: repair what the scanner or the export broke, combine and compare parts, then simplify and offset the result for printing, machining or visualization. One SDK for C++, Python, C# and C.
Repair mesh defects before any other operation.
Mesh healing repairs holes and topology defects to prepare a mesh for the rest of the 3D pipeline: simulation, printing and analysis.
Discover moreHole filling corrects topological defects: missing regions where a continuous surface is expected.
Discover moreSmoothing algorithms reposition vertices to reduce noise and improve surface quality.
Discover moreBoolean operations, exact common volumes and collision checks between models.
Union, intersection and difference of two 3D objects, used to reshape their geometry.
Discover moreMesh intersection computes the exact common volume shared by two polygonal models.
Discover moreCollision detection determines whether two or more objects intersect.
Discover moreReduce triangle counts and control wall thickness without losing the shape.
Mesh simplification, also called decimation, reduces the number of triangles in a 3D model.
Discover moreMesh offsetting expands or contracts a mesh surface by a set distance, for example to control wall thickness for 3D printing.
Discover moreEvery mesh algorithm follows the same pattern: load, call one function, save. The same API is available in C# and C.
from meshlib import mrmeshpy as mm
a = mm.loadMesh("part_a.stl")
b = mm.loadMesh("part_b.stl")
result = mm.boolean(a, b, mm.BooleanOperation.Union)
if result.valid():
mm.saveMesh(result.mesh, "union.stl")// error handling of load and save omitted for brevity
auto a = MR::MeshLoad::fromAnySupportedFormat( "part_a.stl" );
auto b = MR::MeshLoad::fromAnySupportedFormat( "part_b.stl" );
auto result = MR::boolean( *a, *b, MR::BooleanOperation::Union );
if ( result.valid() )
MR::MeshSave::toAnySupportedFormat( result.mesh, "union.stl" );Booleans, mesh repair, decimation and ICP — in your browser, as JavaScript and WebAssembly. No install, no sign-up.
Open live demoOr install the SDK — free to evaluate
Mesh processing is the set of algorithms that repair, combine, simplify and reshape polygonal 3D models: mesh healing and hole filling, boolean operations, intersection and collision checks, decimation and offsetting.
MeshLib is written in C++ and has bindings for Python, C# and C. It also runs in the browser through JavaScript and WebAssembly.
Yes. Run mesh healing and hole filling first, then the boolean. Our article on mesh repair for boolean operations walks through it.
Yes. The MeshLib live demo runs in the browser with no registration and covers booleans, mesh repair, decimation and more.
We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.
The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site.
We also use third-party cookies that help us analyze how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. These cookies will only be stored in your browser with your prior consent.
You can choose to enable or disable some or all of these cookies but disabling some of them may affect your browsing experience.
Your browser is sending a Global Privacy Control signal, so we treat it as an opt-out of advertising: “Accept All” leaves the Advertisement category off. You can still turn it on yourself under Customize.
To learn more about how Google processes personal information, visit: Google privacy policy
Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.
Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.
Other cookies are those that are being identified and have not been classified into any category as yet.