Published: 2026-09-07
Updated: 2026-09-07
Dmitry Lambin
Post rating: 0.0
MeshLib vs CinoLib: 3D Boolean Operations Benchmark
Among research boolean engines, the robust-booleans pipeline shipped with CinoLib has a special reputation: it is built to never give up, resolving even pathological input with exact arithmetic. We put that reputation to the test against MeshLib in our 2026 benchmark — timing both libraries on large scans and a degenerate dental mesh, and probing three edge cases that break most engines.
What is MeshLib?
MeshLib is an open-source 3D geometry SDK with a performance-first C++ core and official bindings for Python, C#, C, and JavaScript. Booleans are one of its flagship tools: the engine is tuned for scanned, imperfect data and multi-million-triangle meshes, converting non-manifold input into a processable form instead of rejecting it. That combination of speed and tolerance is why MeshLib powers commercial applications in dental, orthopedics, and 3D printing.
What is CinoLib?
CinoLib is an open-source, header-only C++ library for processing polygonal and polyhedral meshes, maintained as a research platform. For booleans it integrates a robust mesh-boolean pipeline built on exact arithmetic, designed to produce a valid result on any input, however broken. The library is MIT-licensed and aimed primarily at researchers and prototype builders.
MeshLib vs CinoLib 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 | CinoLib + RobustMesh | |
|---|---|---|
Nefertity – Union | 0.09 (0.26) | 6.6 |
Nefertity – Intersection | 0.08 (0.23) | 7.1 |
Nefertity – Difference | 0.08 (0.23) | 7.5 |
Comments
Both libraries return correct results on the two-million-triangle scans, so this case is purely about speed. Exact-arithmetic robustness costs the CinoLib pipeline 6.6–7.5 seconds per operation, while MeshLib finishes each boolean in under a tenth of a second. Even after adding MeshLib’s one-time precomputations (the numbers in braces), the gap remains well above an order of magnitude.
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 | CinoLib + RobustMesh | |
|---|---|---|
Dental – Union | 0.04 (0.06) | 1.0 |
Dental – Intersection | 0.05 (0.08) | 1.0 |
Dental – Difference A-B | 0.05 (0.07) | 0.96 |
Comments
The degenerate dental scan slows the CinoLib pipeline to about one second per operation — a solid result that few engines match, and the output is correct. MeshLib returns the same correct booleans roughly twenty times faster, at 0.04–0.05 seconds per operation. Both libraries pass this robustness test; the question is whether the speed fits an interactive application.
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 | CinoLib + RobustMesh | |
|---|---|---|
Holed, Not Intersected | Yes | Yes |
Holed Intersected | No* | Yes |
Self- Intersections | No** | Yes |
Comments
The edge cases are where the CinoLib pipeline shines: it returns a result in all three scenarios, including a hole inside the intersection zone and self-intersecting input — the widest qualitative coverage in our benchmark. MeshLib takes a more conservative stance by design: it processes the hole that stays clear of the intersection zone and treats the remaining two setups as ill-defined rather than silently altering the geometry. * 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 CinoLib?
For research on broken meshes, the CinoLib robust-boolean pipeline is a remarkable tool, and MIT licensing makes it easy to try. Production is a different equation: MeshLib delivers correct booleans 20–80× faster on real-world data, handles scanner output at interactive speed, and is available as a maintained commercial SDK with bindings for C++, Python, C#, C, and JavaScript and professional support. When booleans sit inside a shipping product, that is usually the deciding factor.
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