Benchmarks | C++

Cut

Boolean operations and curve embedding.

Benchmarks for mesh cutting operations. See experimental setup for methodology.

Boolean

Boolean union of two overlapping meshes. The second mesh is a rotated copy around the mesh centroid, using the smallest bounding box axis. TrueForm uses tf::make_boolean with exact predicates, canonical topology; topology structures are precomputed to match CGAL's Surface_mesh which includes built-in topological representation. MeshLib uses mr.boolean with int32 exact predicates and SoS. CGAL uses corefine_and_compute_union with Exact_predicates_inexact_constructions_kernel; libigl uses igl::copyleft::cgal::mesh_boolean with exact predicates (EPECK).

Source: TrueForm, MeshLib, CGAL, libigl

Boolean Operations (Union)

MeshLib
CGAL
libigl

Boolean Operations (Speedup)

vs MeshLib
vsCGAL
vs libigl

TrueForm boolean union is 6× faster than MeshLib, 84× faster than CGAL, and 278× faster than libigl at 1M polygons per mesh, completing in 28ms.

Polygon Arrangements

Arrangement of a polygon soup — resolving all self-intersections by splitting faces along intersection curves, including crossing and nested contours. Two copies of the mesh are concatenated into a single self-intersecting mesh; the second copy is rotated around the mesh centroid, using the smallest bounding box axis. TrueForm uses tf::make_polygon_arrangements with exact predicates, canonical topology; no structures are precomputed to match libigl which also builds everything from raw input. libigl uses igl::copyleft::cgal::remesh_self_intersections with exact predicates (EPECK).

Source: TrueForm, libigl

Self-Intersection Curves

libigl

Self-Intersection Curves (Speedup)

vs libigl

TrueForm polygon arrangements is 32× faster than libigl at 2 × 1M polygons.

Embedded Isocurves

Embedding of isocontours into mesh topology by splitting faces along level-set curves. The scalar field is Euclidean distance from the mesh centroid; isovalues are evenly spaced across the field range. TrueForm uses tf::embedded_isocurves with exact predicates; VTK uses vtkBandedPolyDataContourFilter. Results shown for 16 isovalues.

Source: TrueForm, VTK

Embedded Isocurves (16 cuts)

Embedded Isocurves Speedup (16 cuts)

vs

TrueForm embedded isocurve extraction is 33× faster than VTK at 1M polygons.