Geometry
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.
ICP Registration


ICP Registration (Speedup)

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.
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.Principal Curvatures

Principal Curvatures (Speedup)
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.
Point Normals


Point Normals (Speedup)

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