trueform

trueform benchmarks

Performance, measured.

Every published trueform benchmark, in one place. Same inputs. Equivalent work. Every result validated. Each figure states the hardware, compiler settings, library versions, and timed boundary.

On the stated Apple M4 Max system, trueform records the fastest validated result in these comparisons for mesh booleans, Delaunay/CDT, closest-point queries, Python mesh decimation, and mesh I/O. It matches the leading C++ implementations in mesh decimation and ICP.

Benchmark 01

Mesh Booleans

Union, intersection and difference on the Thingi10K corpus at 100K–1M triangles per operand.

up to 105× faster
Mesh Booleans benchmark — C++
C++
Eight libraries on the Thingi10K corpus at 100K–1M triangles per operand. Fastest on every pair — 5.5× MeshLib, 31× CGAL, 105× Geogram at the geometric mean. Full benchmark
Python
Three pip-installable libraries, same corpus: an 18 ms median boolean at 200K–1.5M polygons — fastest on all 1000 pairs. Full benchmark
TypeScript
Client-side WebAssembly head-to-head: a 21.9 ms median boolean — 12.6× faster than Manifold WASM, closed and manifold on all 1000 pairs. Full benchmark

Benchmark 02

Variadic mesh booleans

One arrangement over 4, 16, or 64 operands, compared with native N-ary and chained pairwise implementations.

up to 648× faster
Variadic mesh booleans benchmark — C++
C++
N-ary union over 4, 16, and 64 Thingi10K meshes. At N = 64, trueform completes the full arrangement in 103 ms — 14× faster than Solidean and Manifold, 138× MeshLib, and 648× Geogram. Full benchmark

Benchmark 03

Delaunay & CDT

Delaunay and constrained 2D triangulation, arrays in → triangles out.

1M points in 26.0 ms
Delaunay & CDT benchmark — C++
C++
On 1M random points, trueform completes Delaunay triangulation in 26.0 ms — 1.4× faster than Delaunay32 and 17.1–28.6× faster than Triangle, CGAL, Geogram, artem-ogre/CDT, and detria. With 100K non-crossing constraints, trueform completes the CDT in 62.3 ms, 7.6–12.7× faster than the five participating libraries. Float/int32; arrays in → arrays out; region labels excluded; every row validated.

Benchmark 04

Closest point

100K nearest-surface queries per mesh with the spatial tree prebuilt — build once, query many.

up to 2.2× faster
Closest point benchmark — C++
C++
100K nearest-surface queries per mesh on the Thingi10K corpus, tree prebuilt — a 73 ms median batch, 1.8× faster than MeshLib and 2.2× faster than libigl. Parallel broadcast queries, arrays in → arrays out.
Python
100K nearest-surface queries per mesh on the Thingi10K corpus, tree prebuilt — a 76 ms median batch, ~2× faster than both MeshLib and libigl. Broadcast queries, arrays in → arrays out.

Benchmark 05

Mesh decimation

Quadric edge-collapse to 10% of the faces, manifoldness preserved — the hard part done right.

up to 10× faster
Mesh decimation benchmark — C++
C++
Decimating Thingi10K meshes to 10% — a 66 ms median, on par with MeshLib and 10× faster than CGAL Garland–Heckbert. All three preserve manifoldness (the bulk of the work); arrays in → arrays out, including the half-edge build.
Python
Decimating Thingi10K meshes to 10% at a shared 0.3 quality floor — a 55 ms median, 1.7× faster than MeshLib and 2.3× faster than pyfqmr. Arrays in → arrays out, including the half-edge build.

Benchmark 06

ICP registration

Rigid point-cloud alignment — recover a known transform by registering a perturbed copy.

matches 2024 SOTA
ICP registration benchmark — C++
C++
Point-to-point registration with 10% sampling and an RMSE convergence gate — a 36 ms median, neck-and-neck with small_gicp (2024 SOTA GICP) and 1.4× faster than MeshLib. Arrays in → arrays out.
Python
Point-to-plane registration with 10% stochastic sampling per iteration and an RMSE convergence gate — a 52 ms median, on par with small_gicp and 1.3× faster than MeshLib, at the highest convergence rate of the three.

Benchmark 07

Mesh I/O

OBJ and binary STL into indexed float32/int32 geometry, including exact vertex welding for STL.

1M-triangle OBJ in 6.54 ms
Mesh I/O benchmark — C++
C++
At 1.03M triangles, trueform reads triangulated OBJ into indexed float32/int32 geometry in 6.54 ms — 2.0× faster than RapidObj, 10.2× tinyobjloader, 112.5× CGAL, and 145.5× libigl. It reads and exactly welds binary STL in 42.5 ms, 5.4–9.3× faster than stl_reader, VTK, libigl, and CGAL. Warm-file timings include opening, parsing, and final output construction; every row validated.