Published: 2026-09-07
Updated: 2026-09-07
Dmitry Lambin
Post rating: 0.0
MeshLib vs MCut: 3D Boolean Operations Benchmark
MCut takes an unusual angle on booleans: it is first and foremost an exact mesh-cutting library, and union, intersection, and difference come as applications of its cutting machinery. That design promises precision — but what does it cost on real production meshes? We benchmarked MCut against MeshLib on our 2026 test set: large scans, a degenerate dental model, and three qualitative edge cases.
What is MeshLib?
MeshLib is an open-source 3D geometry SDK whose boolean engine was built for real-world workloads from day one. The high-performance C++ core comes with bindings for Python, C#, C, and JavaScript, and the library is designed to digest the meshes scanners actually produce — non-manifold patches are converted automatically into a form the algorithms can process at full speed.
What is MCut?
MCut is an open-source C++ library for cutting and slicing meshes, developed from computer-graphics research on exact mesh arithmetic. Boolean operations are exposed as one application of its general cutting API, which also targets scenarios classic CSG kernels avoid, such as sectioning open meshes. MCut is distributed under LGPL-3, with a commercial licensing option available.
MeshLib vs MCut comparison results
Testing setup — Apple M5 MacBook Air (10-core CPU, 32 GB unified memory), macOS 26. We report the minimum over 10 iterations per operation; mesh I/O is excluded from the timings. To access the input and result meshes used in our tests, visit this link.
Nefertiti Case
This scenario involves large meshes (2M Triangles each) with complex topology, representing a common challenge in 3D boolean operations.
Union
Meshes were slightly shifted.
Intersection
Meshes were slightly shifted.
Difference A-B
Meshes were slightly shifted.
MeshLib 3.1.3.249 | MCut | |
|---|---|---|
Nefertity – Union | 0.09 (0.26) | 83 |
Nefertity – Intersection | 0.08 (0.23) | 83 |
Nefertity – Difference | 0.08 (0.23) | 83 |
Comments
The large-scan case is hard on MCut: every operation takes about 83 seconds, and in our runs the union output additionally contained defects, so it did not pass the correctness check. MeshLib completes the same operations in 0.08–0.09 seconds — roughly a thousand times faster — with correct output for all three operations. Numbers in braces are MeshLib’s one-time geometric precomputations.
Dental Case
In this case, we simulate dental models (≈500K Triangles) with degeneracies and coinciding surfaces, reflecting real-world scenarios encountered in medical applications.
Union
Intersection
Difference A-B
MeshLib 3.1.3.249 | MCut | |
|---|---|---|
Dental – Union | 0.04 (0.06) | Fail |
Dental – Intersection | 0.05 (0.08) | Fail |
Dental – Difference A-B | 0.05 (0.07) | Fail |
Comments
The dental scan, with its degenerate triangles and coinciding surfaces, is the robustness stress test of this benchmark — and MCut fails all three operations on it outright. MeshLib processes the same model in 0.04–0.05 seconds per operation and returns correct results. For dental and medical pipelines, where such geometry is the norm rather than the exception, this case alone is decisive.
Simple Objects Case
In this case, we compare how algorithms behave when handling complex geometries.
Holed, Not Intersected
Boolean Union of meshes, one with a hole aside from the intersection part.
Holed Intersected
Self-Intersections
MeshLib | MCut | |
|---|---|---|
Holed, Not Intersected | Yes | Yes |
Holed Intersected | No* | No |
Self- Intersections | No** | No |
Comments
The qualitative cases show MCut’s cutting heritage: like MeshLib, it successfully processes the mesh whose hole stays clear of the intersection zone. Neither engine accepts a hole inside the intersection area, and both decline self-intersecting input — an operation MeshLib deliberately treats as ill-defined. * MeshLib does not support the representation of non-manifold meshes and automatically converts them to a manifold form.
** The results of such operations are not well-defined, leading to a mesh with numerous inconsistencies, such as self-intersections and degeneracies. In fact, it is not a secret that MeshBoolean operations may eventually fail outright. To explain why this might happen and what to do to avoid such outcomes, we invite you to read this overview of reasons for flawed Mesh Boolean operations.
Why choose MeshLib SDK for 3D boolean operations over MCut?
MCut is a specialized instrument: if your task is literally cutting meshes, it serves a niche few libraries address. As a general boolean engine, the 2026 numbers are hard to argue with: MeshLib is orders of magnitude faster on large scans, survives the degenerate dental case that MCut fails, and ships as a commercially supported SDK with bindings for C++, Python, C#, C, and JavaScript. For production booleans, MeshLib is the safer default.
Try MeshLib now
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