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, connected components, Delaunay/CDT, polygon arrangements, principal curvatures, closest-point queries, mesh decimation, and mesh I/O. Each result is grouped under the module that owns the operation in trueform.

The benchmark harnesses, definitions, and published results are available in the trueform-benchmarks repository.

trueform module

spatial

Build spatial indexes and query geometry at scale.

Spatial tree build

Build a query-ready spatial hierarchy over an indexed triangle mesh, with file I/O excluded.

up to 10.0× faster
Spatial tree build benchmark — C++

From raw indexed arrays, trueform constructs a query-ready AABB hierarchy over the 1.03M-face dragon in 24.9 ms versus 76.8 ms for MeshLib and 249 ms for CGAL — 3.1× and 10.0× faster. Native mesh conversion and complete tree construction are timed for all three libraries.

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++

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.

trueform module

topology

Inspect and traverse mesh connectivity.

Connected components

Label every edge-connected component of a triangle mesh, arrays in → labels out.

up to 11.7× faster
Connected components benchmark — C++

Across 2,000 production meshes from 100K to 939K triangles, trueform 0.10.3 materializes edge-connected face labels in a 3.6 ms median — 7.1× faster than CGAL and 11.7× faster than libigl at the geometric mean. Three fresh processes × seven samples; native mesh construction included; mimalloc 3.1.5 for every library; all reported component counts agree.

Delaunay & CDT

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

1M points in 26.0 ms
Delaunay & CDT benchmark — 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.

trueform module

geometry

Measure and evaluate geometric properties.

Principal curvatures

Estimate both principal curvature values and directions at every vertex of an indexed surface.

up to 50.6× faster
Principal curvatures benchmark — C++

On indexed sphere meshes from 57K to 1.02M faces, trueform computes both principal curvature values and directions in 30.1 ms at the largest size versus 1.52 s for libigl — 50.6× faster. Mesh construction is outside the timed region; all output arrays are materialized.

ICP registration

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

matches 2024 SOTA
ICP registration benchmark — 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.

trueform module

remesh

Change mesh resolution while preserving shape.

Mesh decimation

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

up to 10.4× faster
Mesh decimation benchmark — C++

Across 100 Thingi10K meshes, geometric-mean decimation times are 61.6 ms for trueform, 73.7 ms for MeshLib and 641.9 ms for CGAL — 1.2× and 10.4× faster. Target: 10% of faces. Trueform and MeshLib preserve the boundary and use matched quality limits; CGAL has no equivalent hard quality floor.

trueform module

arrangement

Split geometry at intersections and recover the resulting structure.

Polygon arrangements

Split a self-intersecting polygon soup along every intersection curve and return the complete subdivided mesh.

up to 24.9× faster
Polygon arrangements benchmark — C++

On a self-intersecting soup made from two copies of the dragon, trueform splits every intersection and returns the complete subdivided mesh in 267 ms at 2.05M input faces — 24.9× faster than CGAL and 23.1× faster than libigl. Float32/int32 arrays in, split mesh and original-face labels out.

trueform module

iso

Extract contours and bands from scalar fields on meshes.

Isocontours

Extract connected curve geometry where a per-vertex scalar field crosses one or more levels.

1M faces in 5.93 ms
Isocontours benchmark — C++

Across 16 scalar levels on the 1.03M-face dragon, trueform returns connected contour paths in 5.93 ms — 39.8× faster than VTK and 124× faster than libigl. VTK and libigl return unconnected line segments, while trueform also performs the path connection. Native mesh construction, scalar values, and levels are prepared before timing.

Embedded isocontours

Split a surface along scalar-field contours and return one fully triangulated, band-labeled mesh.

1M faces in 18.2 ms
Embedded isocontours benchmark — C++

Embedding 16 scalar levels across the 58K–1.03M-face dragon ladder, trueform completes the 1.03M-face recut mesh in 18.2 ms versus 741 ms for VTK — 40.7× faster. With connected contour paths also materialized, it completes in 20.6 ms versus 736 ms — 35.8× faster. Float32/int32 arrays in, triangulated band-labeled mesh out.

trueform module

csg

Combine solid meshes with boolean operations.

Mesh Booleans

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

up to 105× faster
Mesh Booleans benchmark — 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.

Read the full benchmark

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++

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.

Read the full benchmark

trueform module

io

Read and write common mesh formats.

Mesh I/O

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

1M OBJ in 6.54 ms
Mesh I/O benchmark — 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.