Benchmarks | C++

Geometry

Mesh registration, curvature estimation, and geometric analysis.

Benchmarks for geometric property computation. See experimental setup for methodology.

ICP Registration

Iterative Closest Point (ICP) mesh registration aligning a source mesh to a target mesh. The target is created by applying 200 iterations of Taubin smoothing to the original mesh. The source is the original mesh rotated by random angles (±10° on each axis) and center-aligned to the target. All libraries use identical parameters: 30 ICP iterations, 1000 subsampled points per iteration, and no early stopping. Times are averaged over 1000 runs with different random rotations. All three libraries produce identical chamfer errors, confirming equivalent registration quality.

TrueForm uses tf::fit_icp_alignment with an AABB tree built on target points for O(log n) nearest neighbor queries and random subsampling per iteration. libigl uses igl::iterative_closest_point with stochastic surface sampling. VTK uses vtkIterativeClosestPointTransform with landmark-based sampling.

Source: TrueForm, libigl, VTK

ICP Registration

libigl

ICP Registration (Speedup)

vs libigl
vs

TrueForm ICP registration is 40× faster than VTK and 93× faster than libigl at 1M polygons. TrueForm's random subsampling maintains nearly constant time regardless of mesh size, while other libraries scale linearly.

Principal Curvatures

Computation of principal curvature values and directions at each vertex. Topology is computed from scratch for each run. Both libraries use quadric fitting on k-ring neighborhoods with k=2. TrueForm uses tf::compute_principal_curvatures with parallel k-ring traversal; libigl uses igl::principal_curvature with sequential processing.

The benchmark meshes contain non-manifold geometry, which igl::principal_curvature does not support. To ensure a fair comparison, both libraries are tested on generated sphere meshes sized to match each input mesh's polygon count.

Source: TrueForm, libigl

Principal Curvatures

libigl

Principal Curvatures (Speedup)

vs libigl

TrueForm principal curvature computation is 55× faster than libigl at 1M polygons.

Point Normals

Computation of vertex normals by averaging adjacent face normals. Topology is computed from scratch for each run. TrueForm uses tf::compute_point_normals with parallel face membership traversal; libigl uses igl::per_vertex_normals with area weighting; VTK uses vtkPolyDataNormals with consistency checking and splitting disabled.

Source: TrueForm, libigl, VTK

Point Normals

libigl

Point Normals (Speedup)

vs libigl
vs

TrueForm point normal computation is 3× faster than libigl and 7× faster than VTK at 1M polygons.