Mesh Boolean Library Comparison and Benchmarks at Industry Scale — 2026
Eight mesh boolean libraries on the Thingi10K corpus at 100K–1M triangles per operand. trueform is the fastest tested: pairwise 5.5–105× geomean, N-ary at N=64 14–648×, in-browser 12.6× over Manifold WASM.
Engineering — finite element analysis, simulation, geomodeling, CAD, additive manufacturing — runs mesh booleans at scale. At 100K to 1M triangles per operand, library timings spread two orders of magnitude.
Eight mesh boolean libraries on the Thingi10K corpus across three operations: pairwise, N-ary, and in-browser. Each library in its as-shipped, multi-threaded, optimized build. Timings are arrays-in to arrays-out — the cost a user actually pays.

























On this corpus, trueform is the fastest mesh boolean library tested.
- Pairwise — 15.7 ms median, fastest on every pair of the 1000-pair corpus. 5.5× MeshLib, 7.5× Manifold, 9.2× Solidean, 27× Cherchi, 31× CGAL, 105× Geogram (geometric mean).
- N-ary at N=64 — 103 ms median. 14× Solidean and Manifold, 44× Cherchi, 138× MeshLib, 536× CGAL, 648× Geogram.
- In-browser — 21.9 ms WebAssembly median, 12.6× Manifold WASM. Faster than any prior method runs natively.
Libraries tested
- Geogram 1.10 — Exact predicates and constructions via multi-precision floats.
- CGAL 6.1 (EPICK, corefinement) — Exact predicates with inexact constructions.
- Cherchi et al. (reference implementation) — Exact arrangement via indirect predicates.
- MeshLib 3.1 — Simulation of Simplicity for degeneracy handling.
- Manifold 3.5 — Deterministic floating point with symbolic perturbation. Ships native and WebAssembly.
- Solidean (Community 2026-04-07-be517c) — Exact constructions via octree-embedded BSP. Specialized for iterated CSG.
- three-bvh-csg 0.0.17 — BVH-based CSG evaluator for three.js. Browser only.
- trueform 0.9.8 — Topologically-exact arrangements via a bounded integer kernel. Ships native and WebAssembly.
Protocol
Each method is timed from input arrays (vertices, triangles) to output arrays of the same shape. Import, internal structures, the boolean, output emission — all in the timer. Only file I/O is outside. No amortisation: every structure rebuilt on every operation.
Result agreement. All libraries computed the same solid. Signed volumes and surface areas agree within floating-point tolerance on every pair. The comparison is wall-clock only. (One exception in the browser case, noted there.)
Corpus. Random sets of solid, manifold, non-self-intersecting Thingi10K meshes, 100K to 1M triangles per operand. Each operand is normalised to unit extent. For each pair (or N-tuple), 10 configurations are generated — independent random rotations per operand, then translations chosen so the bounding boxes overlap. Each pairwise case is assigned a random union, intersection, or difference; the N-ary sweep takes their union. Thingi10K IDs and per-operand triangle counts for every case are published: pairwise corpus, N-ary corpus.
Hardware. Apple M4 Max, 16 threads, macOS. Native builds compiled with the default release flags from each library's build system. Browser runs in Chrome 148 on the same machine.
Pairwise booleans
One boolean per pair across the 1000-pair corpus. trueform is fastest on every one of them.

CGAL's tail
CGAL's corefinement can degenerate super-polynomially on near-degenerate contacts. On one pair (Thingi10K models 844209 and 518083, 0.86M input triangles), CGAL ran for over five hours of CPU on a single core; trueform returned the same result in 20 ms. Operations are capped at 120 s; this pair is excluded from CGAL's distribution.
N-ary booleans
For trueform, an N-ary boolean is one arrangement over all N operands. The native N-ary engines (Manifold, Cherchi, Geogram) arrange all operands at once. The others chain N-1 pairwise booleans, keeping their result in their own representation across the chain and emitting arrays once at the end.
40 random N-operand sets at each N ∈ {4, 16, 64}, each operand rotated and placed in an overlapping cluster. Vertical axis is log scale — a constant visual gap is an order-of-magnitude factor.

Solidean, Manifold, and Cherchi stay near a fixed factor as N grows. MeshLib, CGAL, and Geogram climb with the chain — MeshLib re-imports a growing materialised mesh at every step, CGAL's exact predicates degrade with operand count, and Geogram's exact arithmetic blows up with combined complexity.
In-browser CSG
The WebAssembly build runs the same pipeline client-side — try it live. Compared against Manifold's WebAssembly build and three-bvh-csg, the BVH-based CSG evaluator for three.js, on the pairwise corpus.

WebAssembly costs trueform about 1.4× over native (15.7 ms to 21.9 ms). At 21.9 ms median, trueform in the browser is still faster than every prior method runs natively; MeshLib's native median is 86 ms.
three-bvh-csg correctness
three-bvh-csg struggles with correctness at this scale. On 978 of 1000 pairs it returns an open mesh rather than a closed, manifold solid, and is watertight on only 22. It is attempting the same boolean as the others, with less robustness; the 41.2× figure is wall-clock against those runs.
trueform · Try it live · Lunar · GitHub · Documentation
@article{polydera:benchmarking-mesh-boolean-libraries-2026,
title={Mesh Boolean Library Comparison and Benchmarks at Industry Scale — 2026},
author={Sajovic, {\v{Z}}iga, Polydera},
year={2026},
url={https://polydera.com/algorithms/benchmarking-mesh-boolean-libraries-2026},
organization={Polydera}
}