Skip to content

curvature

Benchmarks of ordito.curvature against every library that computes the same thing. Each chart shows the time of every library relative to ordito on CUDA (1x, in green): a longer bar took longer. The table under each chart lists every input the function was measured on. See Benchmarks for how to read and reproduce these numbers.

Measured on GPU: NVIDIA GeForce RTX 5090 · CPU: Intel Xeon w7-2495X

Summary

0.1x1x10x100x1000xordito (CUDA): the reference, 1xordito (CUDA)1xPyVista: 8.9x ordito's time, geometric mean over 1 functions; slower than ordito in 1PyVista8.9x (1)libigl: 68x ordito's time, geometric mean over 1 functions; slower than ordito in 1libigl68x (1)MeshLab: 74x ordito's time, geometric mean over 3 functions; slower than ordito in 3MeshLab74x (3)trimesh: 133x ordito's time, geometric mean over 2 functions; slower than ordito in 2trimesh133x (2)
Time relative to ordito (CUDA), geometric mean over the curvature functions both implement; in parentheses, the number of functions. Log scale. Runs stopped at the time limit are left out.
Values
Library Time relative to ordito Functions compared ordito faster in
PyVista 8.9x 1 1
libigl 68x 1 1
MeshLab 74x 3 3
trimesh 133x 2 2

discrete_gaussian_curvature

0.1x1x10x100xordito (CUDA): 169.3 µs, 1x ordito's timeordito (CUDA)1x · 169.3 µsMeshLab: 2.99 ms, 18x ordito's timeMeshLab18x · 2.99 mstrimesh: 15.30 ms, 90x ordito's timetrimesh90x · 15.30 ms
sphere_small (5 120 faces) · radius_scale=2.0 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 169.3 µs 1x
MeshLab 2.99 ms 18x
trimesh 15.30 ms 90x
All inputs
Input ordito (CUDA) MeshLab trimesh
sphere_small radius_scale=2.0 169.3 µs 2.99 ms 15.30 ms
sphere_small radius_scale=4.0 247.9 µs 23.96 ms
sphere_med radius_scale=2.0 225.5 µs 48.80 ms
sphere_med radius_scale=4.0 392.4 µs
sphere_large radius_scale=2.0 258.7 µs 239.00 ms
sphere_large radius_scale=4.0 420.8 µs

discrete_mean_curvature

0.1x1x10x100x1000xordito (CUDA): 637.2 µs, 1x ordito's timeordito (CUDA)1x · 637.2 µsMeshLab: 4.40 ms, 6.9x ordito's timeMeshLab6.9x · 4.40 mstrimesh: 119.36 ms, 187x ordito's timetrimesh187x · 119.36 ms
sphere_small (5 120 faces) · radius_scale=2.0 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 637.2 µs 1x
MeshLab 4.40 ms 6.9x
trimesh 119.36 ms 187x
All inputs
Input ordito (CUDA) MeshLab trimesh
sphere_small radius_scale=2.0 637.2 µs 4.40 ms 119.36 ms
sphere_small radius_scale=4.0 1.15 ms 222.87 ms
sphere_med radius_scale=2.0 761.8 µs 47.79 ms
sphere_med radius_scale=4.0 1.38 ms
sphere_large radius_scale=2.0 1.89 ms 234.61 ms
sphere_large radius_scale=4.0 3.80 ms

principal_curvature

0.1x1x10x100x1000xordito (CUDA): 1.82 ms, 1x ordito's timeordito (CUDA)1x · 1.82 msPyVista: 27.94 ms, 15x ordito's timePyVista15x · 27.94 msMeshLab: 203.08 ms, 111x ordito's timeMeshLab111x · 203.08 mslibigl: 305.60 ms, 168x ordito's timelibigl168x · 305.60 ms
sphere_med (81 920 faces) · radius=3 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 1.82 ms 1x
PyVista 27.94 ms 15x
MeshLab 203.08 ms 111x
libigl 305.60 ms 168x
All inputs
Input ordito (CUDA) libigl MeshLab PyVista
sphere_small radius=3 688.3 µs 17.88 ms 12.12 ms 1.70 ms
sphere_small radius=8 2.54 ms 60.91 ms
sphere_med radius=3 1.82 ms 305.60 ms 203.08 ms 27.94 ms
sphere_med radius=8 5.22 ms 1.043 s
sphere_large radius=3 5.59 ms 969.09 ms 105.33 ms
sphere_large radius=8 20.90 ms