Skip to content

sample

Benchmarks of ordito.sample 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.1x1x10x100x1000x10000xordito (CUDA): the reference, 1xordito (CUDA)1xMeshLib: 14x ordito's time, geometric mean over 1 functions; slower than ordito in 1MeshLib14x (1)PyTorch3D (CUDA): 21x ordito's time, geometric mean over 1 functions; slower than ordito in 1PyTorch3D (CUDA)21x (1)Open3D: 80x ordito's time, geometric mean over 1 functions; slower than ordito in 1Open3D80x (1)MeshLab: 375x ordito's time, geometric mean over 1 functions; slower than ordito in 1MeshLab375x (1)libigl: 375x ordito's time, geometric mean over 2 functions; slower than ordito in 2libigl375x (2)trimesh: 1533x ordito's time, geometric mean over 1 functions; slower than ordito in 1trimesh1533x (1)
Time relative to ordito (CUDA), geometric mean over the sample 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 14x 1 1
PyTorch3D (CUDA) 21x 1 1
Open3D 80x 1 1
MeshLab 375x 1 1
libigl 375x 2 2
trimesh 1533x 1 1

sample_surface

0.1x1x10x100x1000x10000xordito (CUDA): 50.0 µs, 1x ordito's timeordito (CUDA)1x · 50.0 µsPyTorch3D (CUDA): 1.62 ms, 32x ordito's timePyTorch3D (CUDA)32x · 1.62 mslibigl: 13.23 ms, 265x ordito's timelibigl265x · 13.23 mstrimesh: 192.25 ms, 3847x ordito's timetrimesh3847x · 192.25 ms
dragon (871 414 faces) · count=10000 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 50.0 µs 1x
PyTorch3D (CUDA) 1.62 ms 32x
libigl 13.23 ms 265x
trimesh 192.25 ms 3847x
All inputs
Input ordito (CUDA) libigl PyTorch3D (CUDA) trimesh
sphere_small count=10000 55.3 µs
sphere_small count=100000 64.7 µs
bunny_decimated count=10000 54.5 µs 4.25 ms 1.03 ms 4.52 ms
bunny_decimated count=100000 70.8 µs 26.60 ms 976.6 µs 21.69 ms
bunny count=10000 51.4 µs 4.58 ms 1.00 ms 14.26 ms
bunny count=100000 71.9 µs 27.62 ms 999.3 µs 33.24 ms
dragon count=10000 50.0 µs 13.23 ms 1.62 ms 192.25 ms
dragon count=100000 70.5 µs 42.09 ms 1.63 ms 230.85 ms
happy_buddha count=10000 50.8 µs 16.35 ms 1.76 ms 248.09 ms
happy_buddha count=100000 77.0 µs 44.51 ms 1.77 ms 287.58 ms
lucy count=10000 740.6 µs 634.22 ms failed 7.356 s
lucy count=100000 770.2 µs 607.16 ms failed 7.438 s

blue_noise

0.1x1x10x100x1000xordito (CUDA): 1.21 ms, 1x ordito's timeordito (CUDA)1x · 1.21 msMeshLib: 12.08 ms, 10x ordito's timeMeshLib10x · 12.08 msOpen3D: 57.02 ms, 47x ordito's timeOpen3D47x · 57.02 mslibigl: 304.39 ms, 252x ordito's timelibigl252x · 304.39 msMeshLab: 488.56 ms, 404x ordito's timeMeshLab404x · 488.56 ms
dragon (871 414 faces) · radius_scale=1.0 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 1.21 ms 1x
MeshLib 12.08 ms 10x
Open3D 57.02 ms 47x
libigl 304.39 ms 252x
MeshLab 488.56 ms 404x
All inputs
Input ordito (CUDA) libigl MeshLab MeshLib Open3D
sphere_small radius_scale=1.0 1.03 ms
sphere_small radius_scale=0.5 1.76 ms
bunny_decimated radius_scale=1.0 1.05 ms 232.43 ms 49.63 ms 11.56 ms 33.68 ms
bunny_decimated radius_scale=0.5 1.76 ms 1.024 s 234.41 ms 40.90 ms 158.26 ms
bunny radius_scale=1.0 1.06 ms 236.31 ms 63.27 ms 11.90 ms 34.65 ms
bunny radius_scale=0.5 1.83 ms 1.036 s 255.12 ms 40.73 ms 158.65 ms
dragon radius_scale=1.0 1.21 ms 304.39 ms 488.56 ms 12.08 ms 57.02 ms
dragon radius_scale=0.5 1.93 ms 1.223 s 752.23 ms 46.02 ms 195.56 ms
happy_buddha radius_scale=1.0 1.25 ms 303.82 ms 603.04 ms 12.01 ms 54.59 ms
happy_buddha radius_scale=0.5 1.95 ms 1.256 s 877.58 ms 42.97 ms 205.57 ms
lucy radius_scale=1.0 2.49 ms 1.381 s 16.035 s 12.18 ms 659.72 ms
lucy radius_scale=0.5 3.45 ms 2.310 s 16.329 s 44.82 ms 827.31 ms

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)
sample_fibonacci_sphere count=1048576 89.9 µs
sample_fibonacci_hemisphere count=1048576 81.4 µs
sample_fibonacci_cone count=1048576 89.7 µs
sample_surface_poisson_disk lucy 6.19 ms
sample_volume sphere_large count=100000 358.4 µs