Skip to content

levelset

Benchmarks of ordito.levelset 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)1xOpen3D: 7.2x ordito's time, geometric mean over 1 functions; slower than ordito in 1Open3D7.2x (1)PyTorch3D (CUDA): 20x ordito's time, geometric mean over 1 functions; slower than ordito in 1PyTorch3D (CUDA)20x (1)PyVista: 57x ordito's time, geometric mean over 1 functions; slower than ordito in 1PyVista57x (1)MeshLib: 68x ordito's time, geometric mean over 3 functions; slower than ordito in 3MeshLib68x (3)libigl: 91x ordito's time, geometric mean over 1 functions; slower than ordito in 1libigl91x (1)MeshLab: 262x ordito's time, geometric mean over 1 functions; slower than ordito in 1MeshLab262x (1)
Time relative to ordito (CUDA), geometric mean over the levelset 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
Open3D 7.2x 1 1
PyTorch3D (CUDA) 20x 1 1
PyVista 57x 1 1
MeshLib 68x 3 3
libigl 91x 1 1
MeshLab 262x 1 1

offset_mesh

0.1x1x10x100x1000xordito (CUDA): 4.97 ms, 1x ordito's timeordito (CUDA)1x · 4.97 msMeshLib: 136.63 ms, 27x ordito's timeMeshLib27x · 136.63 msMeshLab: 1.374 s, 276x ordito's timeMeshLab276x · 1.374 s
dragon (871 414 faces) · divisor=64 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 4.97 ms 1x
MeshLib 136.63 ms 27x
MeshLab 1.374 s 276x
All inputs
Input ordito (CUDA) MeshLab MeshLib
sphere_small divisor=64 739.2 µs
sphere_small divisor=128 865.1 µs
sphere_small divisor=256 1.81 ms
bunny_decimated divisor=64 1.39 ms 212.57 ms 34.20 ms
bunny_decimated divisor=128 3.26 ms 355.95 ms 59.43 ms
bunny_decimated divisor=256 5.49 ms
bunny divisor=64 2.07 ms 378.52 ms 44.13 ms
bunny divisor=128 4.37 ms 591.94 ms 73.96 ms
bunny divisor=256 9.67 ms
dragon divisor=64 4.97 ms 1.374 s 136.63 ms
dragon divisor=128 5.44 ms 1.886 s 172.39 ms
dragon divisor=256 11.37 ms
happy_buddha divisor=64 4.81 ms 1.827 s 166.64 ms
happy_buddha divisor=128 5.14 ms 2.650 s 198.24 ms
happy_buddha divisor=256 7.49 ms
lucy divisor=64 80.53 ms 34.391 s 2.475 s
lucy divisor=128 77.36 ms 35.419 s 2.550 s
lucy divisor=256 89.99 ms

thicken_mesh

0.1x1x10x100x1000x10000xordito (CUDA): 160.6 µs, 1x ordito's timeordito (CUDA)1x · 160.6 µsMeshLib: 254.54 ms, 1585x ordito's timeMeshLib1585x · 254.54 ms
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 160.6 µs 1x
MeshLib 254.54 ms 1585x
All inputs
Input ordito (CUDA) MeshLib
sphere_small 132.0 µs 8.08 ms
sphere_med 160.6 µs 254.54 ms
sphere_large 227.1 µs

signed_distance_grid

0.1x1x10xordito (CUDA): 6.39 ms, 1x ordito's timeordito (CUDA)1x · 6.39 msOpen3D: 41.14 ms, 6.4x ordito's timeOpen3D6.4x · 41.14 ms
dragon (871 414 faces) · divisor=64 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 6.39 ms 1x
Open3D 41.14 ms 6.4x
All inputs
Input ordito (CUDA) Open3D
sphere_small divisor=64 4.17 ms
sphere_small divisor=128 8.42 ms
bunny_decimated divisor=64 2.36 ms 12.00 ms
bunny_decimated divisor=128 4.57 ms 64.79 ms
bunny divisor=64 3.96 ms 22.62 ms
bunny divisor=128 8.09 ms 118.15 ms
dragon divisor=64 6.39 ms 41.14 ms
dragon divisor=128 14.39 ms 185.87 ms
happy_buddha divisor=64 7.03 ms 30.07 ms
happy_buddha divisor=128 14.05 ms 130.96 ms
lucy divisor=64 114.93 ms 299.17 ms
lucy divisor=128 160.95 ms 1.152 s

marching_cubes

0.1x1x10x100xordito (CUDA): 91.3 µs, 1x ordito's timeordito (CUDA)1x · 91.3 µsPyTorch3D (CUDA): 1.12 ms, 12x ordito's timePyTorch3D (CUDA)12x · 1.12 msPyVista: 2.47 ms, 27x ordito's timePyVista27x · 2.47 msMeshLib: 2.66 ms, 29x ordito's timeMeshLib29x · 2.66 mslibigl: 3.81 ms, 42x ordito's timelibigl42x · 3.81 ms
resolution=64 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 91.3 µs 1x
PyTorch3D (CUDA) 1.12 ms 12x
PyVista 2.47 ms 27x
MeshLib 2.66 ms 29x
libigl 3.81 ms 42x
All inputs
Input ordito (CUDA) libigl MeshLib PyTorch3D (CUDA) PyVista
resolution=64 91.3 µs 3.81 ms 2.66 ms 1.12 ms 2.47 ms
resolution=128 130.6 µs 26.13 ms 6.52 ms 4.26 ms 15.67 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)
signed_distance_level_set lucy divisor=128 75.96 ms