Published: 2024-04-27

Updated: 2026-08-27

Dmitry Lambin

Post rating: 0.0

Comparing 3D Boolean Libraries — 2026 Benchmark

The results below show MeshLib performance compared to other 3D boolean libraries.

2.9×
faster than
Manifold
47×
faster than
CGAL
(CGAL also hangs on dental scan)
153×
faster than
Blender boolean
(via trimesh)

3D boolean operations — union, intersection, and difference of triangle meshes — sit at the core of CAD, 3D printing, medical-device design, and AEC pipelines. They sound trivial (combine two meshes) but in production they are where pipelines fail: non-manifold inputs, self-intersections, near-coplanar faces, inconsistent winding, and degenerate triangles all break naive implementations.

This article summarises the headline results of our independent 2026 benchmark of nine mesh boolean libraries. The full per-library, per-case, per-iteration data is in the downloadable PDF report below.

Summary

  • On the 2M-triangle Nefertiti dataset (Union), MeshLib computes the boolean in 0.093 s≈3× faster than Manifold (the strongest OSS baseline) and ≈150× faster than Blender (via trimesh).
  • On a 280K-triangle dental scan with degenerate geometry, CGAL hangs and MCut fails, while MeshLib finishes in 44 ms.
  • MeshLib 3.1.3 is markedly faster than the 3.0.6 build used in our 2024 benchmark — the result of continued work in the boolean core.
  • All inputs and runners are open-source. Full per-library breakdown is in the PDF report below.
To download the full report (PDF), 
enter your email
MeshLib
MCut
Manifold
CinoLib + RobustMesh
CGAL
Rhino 3D
Libigl
Trimesh-Manifold
Trimesh-Blender
License
Licensing options
LGPL 3/Paid support
Apache 2.0
MIT
Open-Source / Commercial
Commercial, with three models
GPL 3, MPL 2
MIT · Manifold Apache-2.0
MIT · Blender GPL-2.0+

We selected nine libraries by popularity, industry adoption, and ease of independent reproduction. Each is listed with the exact version we tested, the current license, and the date of the most recent release as of June 27, 2026.

Methodology in brief. Primary machine: Apple M5 MacBook Air (10-core CPU, 32 GB unified memory), macOS 26. All numbers on this page come from this machine; a Windows x86 cross-run is in the report. We report min over 10 iterations per (library × case × operation); mesh I/O is excluded from the timer; default threading — no OMP_NUM_THREADS overrides — matches how libraries are used in practice. Bracketed (N) values in the PDF tables include one-time geometric pre-computation (e.g., AABB build, Manifold conversion). Full install notes per library and raw timing.json per iteration are in the PDF report.

License-sensitive notes. CGAL’s Polygon Mesh Processing module is GPL — using it in a closed-source product requires a commercial license from GeometryFactory. Trimesh-Blender invokes Blender’s bpy module under GPL-2.0+. MCut is now dual-licensed LGPL-3.0 / GPL-3.0 with a commercial alternative. Manifold (Apache-2.0) and MeshLib’s commercial license are the two licensing-friendly options for proprietary products at production scale.

Input meshes, per-library runners, screenshots, and raw outputs (scripts, timing JSON, result meshes) are published in our shared cloud workspace — SharePoint link. The benchmark source code will be opened publicly later.

Two algorithmic schools of mesh booleans

Before the results, a quick framing of why libraries behave so differently. Modern mesh-boolean implementations fall into two camps.

Exact-arithmetic school

CGAL, CinoLib (indirect predicates). Rational arithmetic or hybrid floating-point + symbolic perturbation every geometric predicate is provably correct. The cost: 10×–100× slower, and combinatorial blow-up on many near-coplanar faces (why CGAL hangs on dental scans).

Robust floating-point school

MeshLib, Manifold, MCut. Stay in IEEE-754 but invest in carefully-built robust predicates (adaptive precision, SoS tie-breaking). The result: 10×–100× faster, tolerant of edge cases, at the price of custom, hand-engineered predicate code.

libigl sits between the two — it borrows CGAL’s exact kernel, inheriting both the correctness guarantees and the speed penalty. Trimesh-Blender and Rhino 3D are application-level kernels tuned over decades for content-creation robustness, not throughput.

3D Boolean Comparison Results

Nefertiti Case

This scenario involves large meshes (2M Triangles each) with complex topology, representing a common challenge in 3D boolean operations.

Union

MeshLib% filename%

Meshes were slightly shifted.

Intersection

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

Meshes were slightly shifted.

Difference A-B

MeshLib% filename%

Meshes were slightly shifted.

MeshLib 3.1.3.249
MCut
Manifold
CinoLib + RobustMesh
CGAL
Rhino 3D
Libigl
Trimesh-Manifold
Trimesh-Blender
Nefertity – Union
0.09 (0.26)
83
0.27 (1.0)
6.6
4.4
27
21
1.0
14
Nefertity – Intersection
0.08 (0.23)
83
0.19 (0.89)
7.1
3.6
27
21
0.94
13
Nefertity – Difference
0.08 (0.23)
83
0.21 (0.92)
7.5
3.8
28
23
1.0
14

Annotations

  • All the results are in Seconds.
  • Red numbers: Indicate that the operation was performed, but the result is incorrect.
  • (Numbers in braces): Denote necessary geometric computations that should be performed once.
  • N/D: Stands for “No Data,” meaning it was not measured.

Takeaway. On clean 2M-triangle geometry MeshLib is the fastest by a wide margin — ≈0.09 s per operation, about 3× ahead of Manifold (the strongest OSS engine) and 40–150× ahead of the exact-arithmetic and application-level engines. Every library returns a correct result here; the separation is purely throughput.

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

MeshLib% filename%

Intersection

Mesh intersection of dental models – medical mesh intersection test

Difference A-B

MeshLib% filename%
MeshLib 3.1.3.249
MCut
Manifold
CinoLib + RobustMesh
CGAL
Rhino 3D
Libigl
Trimesh-Manifold
Trimesh-Blender
Dental – Union
0.04 (0.06)
Fail
0.05 (0.14)
1.0
Fail
7.8
4.3
0.15
4.1
Dental – Intersection
0.05 (0.08)
Fail
0.04 (0.14)
1.0
Hang
7.8
4.3
0.15
3.9
Dental – Difference A-B
0.05 (0.07)
Fail
0.05 (0.15)
0.96
Hang
7.8
4.4
0.15
4.2

Annotations

  • All the results are in Seconds.
  • Red numbers: Indicate that the operation was performed, but the result is incorrect.
  • (Numbers in braces): Denote necessary geometric computations that should be performed once.
  • Fail: Indicates that the library rejected to process the operation.

Takeaway. The dental scan is where robustness shows: degenerate triangles and coinciding surfaces make MCut fail and CGAL hang outright, while MeshLib stays correct and finishes in ≈0.045 s — roughly 20–180× faster than the engines that survive the input at all.

Simple Objects Case

In this case, we compare how algorithms behave when handling complex geometries.

Holed, Not Intersected

MeshLib% filename%

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

Holed Intersected

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

Self-Intersections​

MeshLib% filename%
Boolean Union of meshes, one with self-intersections into meshes’ intersection part.
MeshLib
MCut
Manifold
CinoLib + RobustMesh
CGAL
Rhino 3D
Libigl
Trimesh-Manifold
Trimesh-Blender
Holed, Not Intersected​
Yes
Yes
No
Yes
Yes
Yes
No
No
Yes
Holed, Intersected​
No*
No
No
Yes
No
Yes
No
No
Yes
Self-Intersections​
No**
No
Yes
Yes
No
Yes
Yes
Yes
Yes

Annotations

  • Yes – the operation is supported.
  • No – the operation is not supported.
  • Red: Indicate that the operation was performed, but the result is incorrect.

* 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. Further, to understand why Mesh Boolean operations might fail and how to avoid such outcomes, our team has prepared an informative piece. So click here to learn why 3D Boolean operations don’t deliver the desired results sometimes.

Takeaway. These qualitative cases separate “returns a mesh” from “returns the right mesh.” MeshLib and the exact engines apply strict CSG semantics (a hole is respected, a self-intersection is rejected as ill-defined), whereas the content-creation kernels (Blender, Rhino) happily produce a watertight—but geometrically different—solid. Which behaviour is “correct” depends on whether you are doing parametric CAD or content authoring.

Why 3D boolean operations fail in practice (and how each library handles it)

Four edge cases distinguish a library that "works on a tutorial" from one that "ships in production."

Non-manifold geometry

Real-world scans and repaired meshes often contain edges shared by more than two triangles. CGAL and libigl reject such input. Manifold requires repair upstream, while MeshLib auto-converts meshes before computing the boolean. Trimesh-Blender and Rhino 3D tolerate these cases more gracefully.

Self-intersections in the input

Boolean operations on self-intersecting meshes are mathematically unstable. CGAL refuses such input, while MCut often fails on degenerate geometry. MeshLib auto-cleans and continues processing, though additional cleanup may still be needed downstream.

Coplanar or near-coplanar faces

Floating-point precision makes coplanar triangles difficult to classify. CGAL and CinoLib solve this exactly but with a major speed penalty. MeshLib and Manifold use robust predicates that handle common real-world cases much faster.

Winding direction and
"inside vs outside."

When closed surfaces overlap, boolean results depend on surface orientation. Trimesh-Blender and Rhino 3D ignore orientation semantics, while MeshLib, CGAL, and Manifold use strict CSG rules with explicit winding behavior.

MeshLib vs each library — pairwise deep-dives

The full result tables for all 9 libraries are in the PDF report. The page-by-page head-to-heads below go beyond benchmark numbers into API, licensing, integration cost, and edge-case behaviour for each pair.

How to choose a mesh boolean library for your project

A short decision guide based on this benchmark:

Recommended
~3.5× faster

RECOMMENDED

MeshLib

Best for

Large production meshes, medical scans, and commercial boolean pipelines.

Why

Fastest benchmark result with strong robustness on degenerate real-world geometry.

Tradeoffs

Commercial license required for deployment.

Apache-2.0
Best OSS choice

RECOMMENDED

Manifold

Best for

General-purpose CSG where permissive licensing matters.

Why

Strong open-source option with good performance, active maintenance, and production use.

Tradeoffs

Slower than MeshLib on large or difficult meshes.

Python workflow
Quick setup

RECOMMENDED

Trimesh + Manifold

Best for

Prototypes, scripts, and simple Python-based geometry workflows.

Why

Uses the Manifold backend with a simple install and familiar Python API.

Tradeoffs

Not the best choice for maximum production performance.

Exact arithmetic
10×–100× slower

RECOMMENDED

CGAL or CinoLib

Best for

Academic or research cases where provable exactness matters more than speed.

Why

Exact or indirect predicates can resolve difficult numerical cases reliably.

Tradeoffs

Major performance penalty on large real-world meshes.

CAD workflow
Switch over ~500K tris

RECOMMENDED

Rhino native → MeshLib

Best for

Rhino, Grasshopper, and AEC workflows that need tight integration first.

Why

Rhino native boolean is convenient inside the ecosystem; MeshLib is stronger for larger meshes.

Tradeoffs

Native boolean may not scale well on heavier geometry.

Low complexity
Pick by license

RECOMMENDED

Any OSS option

Best for

Small clean meshes under 100K triangles with simple boolean needs.

Why

Most libraries can handle simple clean geometry well enough.

Tradeoffs

License and integration model matter more than benchmark speed.

Frequently Asked Questions

What is the fastest 3D boolean library in 2026?

For commercial deployments where licensing allows, MeshLib (≈0.09 s Union on a 2M-triangle mesh). For fully-permissive OSS, Manifold (Apache-2.0, ≈0.5 s Union on the same mesh).

The most common causes are non-manifold input, self-intersecting input, near-coplanar faces, and inconsistent winding. Different libraries handle each of these differently — see the section above for the per-library breakdown, and our deeper walk-through at Why 3D Boolean Operations Don’t Always Deliver the Desired Results.

On a 2M-triangle Nefertiti dataset MeshLib runs Union in 0.093 s while CGAL takes 4.4 s — a 47× difference. On a dental scan with degenerate geometry, CGAL hangs entirely while MeshLib finishes in 44 ms. The full head-to-head is in CGAL alternative for 3D boolean operations.

For prototyping: trimesh with the Manifold backend (trimesh.boolean.union(meshes, engine='manifold')). For production with large meshes: meshlib (pip install meshlib), about 11× faster than Trimesh-Manifold on the Nefertiti dataset.

No — MeshLib uses a dual license. The core library is free for non-commercial use; commercial deployment requires a paid license. See meshlib.io/license for terms and pricing.

It depends on the library. CGAL and libigl reject non-manifold input outright. Manifold requires upstream repair. MeshLib auto-converts to manifold form before computing the boolean. CinoLib handles it natively via indirect predicates.

Why choose MeshLib SDK for 3D boolean operations?

MeshLib leads in 3D processing, offering advanced 3D boolean operations, known for their speed and precision. As an open-source 3D geometry library, it supports C++, Python, C, and JavaScript, offering versatility and easy integration into various projects. MeshLib’s recognition as the fastest tool for 3D boolean operations on the market accelerates project timelines, while its accuracy ensures the highest quality of 3D models. Besides MeshLib is based on robust algorithms and calculations you may learn more about here link. This combination of features makes MeshLib an essential resource for anyone looking to develop undertake sophisticated 3D modeling and application development. 

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