Skip to content

metrics

Benchmarks of ordito.metrics 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)1xMeshLib: 6.9x ordito's time, geometric mean over 1 functions; slower than ordito in 1MeshLib6.9x (1)Open3D: 36x ordito's time, geometric mean over 2 functions; slower than ordito in 2Open3D36x (2)PyTorch3D (CUDA): 50x ordito's time, geometric mean over 4 functions; slower than ordito in 4PyTorch3D (CUDA)50x (4)libigl: 77x ordito's time, geometric mean over 3 functions; slower than ordito in 3libigl77x (3)MeshLab: 370x ordito's time, geometric mean over 1 functions; slower than ordito in 1MeshLab370x (1)
Time relative to ordito (CUDA), geometric mean over the metrics 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
MeshLib 6.9x 1 1
Open3D 36x 2 2
PyTorch3D (CUDA) 50x 4 4
libigl 77x 3 3
MeshLab 370x 1 1

chamfer_points_to_points

0.1x1x10x100xordito (CUDA): 2.30 ms, 1x ordito's timeordito (CUDA)1x · 2.30 msOpen3D: 141.80 ms, 62x ordito's timeOpen3D62x · 141.80 msPyTorch3D (CUDA): 214.89 ms, 94x ordito's timePyTorch3D (CUDA)94x · 214.89 ms
dragon (871 414 faces) · single_directional=True · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 2.30 ms 1x
Open3D 141.80 ms 62x
PyTorch3D (CUDA) 214.89 ms 94x
All inputs
Input ordito (CUDA) Open3D PyTorch3D (CUDA)
sphere_small single_directional=True 230.8 µs
sphere_small single_directional=False 406.1 µs
bunny_decimated single_directional=True 314.6 µs 2.24 ms 733.6 µs
bunny_decimated single_directional=False 519.8 µs 4.48 ms 1.44 ms
bunny single_directional=True 438.3 µs 12.20 ms 2.90 ms
bunny single_directional=False 851.6 µs 24.11 ms 5.74 ms
dragon single_directional=True 2.30 ms 141.80 ms 214.89 ms
dragon single_directional=False 4.40 ms 287.59 ms 429.81 ms
happy_buddha single_directional=True 2.48 ms 175.97 ms 342.49 ms
happy_buddha single_directional=False 4.46 ms 353.71 ms 684.85 ms
lucy single_directional=True 169.49 ms 8.918 s > 10 min
lucy single_directional=False 381.85 ms 19.107 s > 10 min

hausdorff_points_to_points

0.1x1x10x100x1000x10000xordito (CUDA): 4.40 ms, 1x ordito's timeordito (CUDA)1x · 4.40 msOpen3D: 288.26 ms, 66x ordito's timeOpen3D66x · 288.26 msMeshLab: 7.850 s, 1785x ordito's timeMeshLab1785x · 7.850 s
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 4.40 ms 1x
Open3D 288.26 ms 66x
MeshLab 7.850 s 1785x
All inputs
Input ordito (CUDA) MeshLab Open3D
sphere_small 443.0 µs
bunny_decimated 565.5 µs 14.39 ms 4.46 ms
bunny 857.7 µs 136.99 ms 24.51 ms
dragon 4.40 ms 7.850 s 288.26 ms
happy_buddha 4.43 ms 11.491 s 351.29 ms
lucy 382.38 ms > 10 min 19.733 s

chamfer_points_to_mesh

0.1x1x10x100x1000xordito (CUDA): 12.31 ms, 1x ordito's timeordito (CUDA)1x · 12.31 msMeshLib: 156.07 ms, 13x ordito's timeMeshLib13x · 156.07 mslibigl: 971.87 ms, 79x ordito's timelibigl79x · 971.87 msPyTorch3D (CUDA): 10.735 s, 872x ordito's timePyTorch3D (CUDA)872x · 10.735 s
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 12.31 ms 1x
MeshLib 156.07 ms 13x
libigl 971.87 ms 79x
PyTorch3D (CUDA) 10.735 s 872x
All inputs
Input ordito (CUDA) libigl MeshLib PyTorch3D (CUDA)
sphere_small 594.8 µs
bunny_decimated 898.1 µs 38.06 ms 1.01 ms 4.62 ms
bunny 1.59 ms 67.50 ms 6.95 ms 75.58 ms
dragon 12.31 ms 971.87 ms 156.07 ms 10.735 s
happy_buddha 9.90 ms 1.157 s 153.11 ms 16.638 s
lucy 1.136 s 84.102 s 18.666 s > 10 min

chamfer_points_to_points_loss

0.1x1x10x100xordito (CUDA): 2.37 ms, 1x ordito's timeordito (CUDA)1x · 2.37 msPyTorch3D (CUDA): 215.10 ms, 91x ordito's timePyTorch3D (CUDA)91x · 215.10 ms
dragon (871 414 faces) · single_directional=True · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 2.37 ms 1x
PyTorch3D (CUDA) 215.10 ms 91x
All inputs
Input ordito (CUDA) PyTorch3D (CUDA)
sphere_small single_directional=True 295.2 µs
sphere_small single_directional=False 459.9 µs
bunny_decimated single_directional=True 343.4 µs 961.8 µs
bunny_decimated single_directional=False 582.6 µs 1.78 ms
bunny single_directional=True 506.1 µs 3.24 ms
bunny single_directional=False 889.3 µs 6.15 ms
dragon single_directional=True 2.37 ms 215.10 ms
dragon single_directional=False 4.51 ms 430.86 ms
happy_buddha single_directional=True 2.59 ms 344.63 ms
happy_buddha single_directional=False 4.72 ms 687.50 ms
lucy single_directional=True 171.12 ms > 10 min
lucy single_directional=False 387.29 ms > 10 min

chamfer_points_to_mesh_loss

0.1x1x10x100x1000xordito (CUDA): 10.50 ms, 1x ordito's timeordito (CUDA)1x · 10.50 msPyTorch3D (CUDA): 5.402 s, 514x ordito's timePyTorch3D (CUDA)514x · 5.402 s
dragon (871 414 faces) · single_directional=True · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 10.50 ms 1x
PyTorch3D (CUDA) 5.402 s 514x
All inputs
Input ordito (CUDA) PyTorch3D (CUDA)
sphere_small single_directional=True 423.6 µs
sphere_small single_directional=False 593.6 µs
bunny_decimated single_directional=True 698.0 µs 2.43 ms
bunny_decimated single_directional=False 932.5 µs
bunny single_directional=True 1.24 ms 42.23 ms
bunny single_directional=False 1.85 ms
dragon single_directional=True 10.50 ms 5.402 s
dragon single_directional=False 12.83 ms
happy_buddha single_directional=True 7.72 ms 8.377 s
happy_buddha single_directional=False 10.28 ms
lucy single_directional=True 972.21 ms > 10 min
lucy single_directional=False 1.139 s

hausdorff_points_to_mesh

0.1x1x10x100xordito (CUDA): 12.43 ms, 1x ordito's timeordito (CUDA)1x · 12.43 mslibigl: 954.39 ms, 77x ordito's timelibigl77x · 954.39 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 12.43 ms 1x
libigl 954.39 ms 77x
All inputs
Input ordito (CUDA) libigl
sphere_small 579.5 µs
bunny_decimated 1.02 ms 38.80 ms
bunny 1.83 ms 68.03 ms
dragon 12.43 ms 954.39 ms
happy_buddha 9.91 ms 1.140 s
lucy 1.136 s 88.208 s

chamfer_mesh_to_mesh

0.1x1x10x100x1000xordito (CUDA): 15.79 ms, 1x ordito's timeordito (CUDA)1x · 15.79 mslibigl: 2.241 s, 142x ordito's timelibigl142x · 2.241 s
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 15.79 ms 1x
libigl 2.241 s 142x
All inputs
Input ordito (CUDA) libigl
sphere_small 567.0 µs
bunny_decimated 878.9 µs 90.76 ms
bunny 2.21 ms 154.57 ms
dragon 15.79 ms 2.241 s
happy_buddha 14.69 ms 2.748 s
lucy 1.766 s 155.966 s

Without a reference

No other library computes these, so they have no comparison. ordito (CUDA)'s median time on the largest input it was measured on:

Function Input ordito (CUDA)
chamfer_mesh_to_mesh_loss lucy 1.781 s
hausdorff_mesh_to_mesh lucy 1.766 s
chamfer_points_to_points_coincident lucy 43.66 ms