Published: 2026-09-07

Updated: 2026-09-07

Dmitry Lambin

Post rating: 0.0

MeshLib vs MCut: 3D Boolean Operations Benchmark

MeshLib vs MCut 3D boolean benchmark: MeshLib 0.09 s vs MCut 83 s

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.

MeshLib% filename%

Union

Meshes were slightly shifted.

Mesh intersection of Nefertiti model – benchmark case with high triangle count

Intersection

Meshes were slightly shifted.

MeshLib% filename%

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.

MeshLib% filename%

Union

Mesh intersection of dental models – medical mesh intersection test

Intersection

MeshLib% filename%

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.

MeshLib% filename%

Holed, Not Intersected

Boolean Union of meshes, one with a hole aside from the intersection part.

MeshLib% filename%

Holed Intersected

Boolean Union of meshes, one with a hole into the intersection part.
MeshLib% filename%

Self-Intersections​

Boolean Union of meshes, one with self-intersections into meshes’ intersection part.
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.

Play Video

Try MeshLib now

Booleans, mesh repair, decimation and ICP — in your browser, as JavaScript and WebAssembly. No install, no sign-up.

Open live demo

Or install the SDK — free to evaluate

Setup guide · binaries or CMake Setup guide · binaries, MeshLibC2
Share post