Skip to content

smoothing

Benchmarks of ordito.smoothing 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: 27x ordito's time, geometric mean over 9 functions; slower than ordito in 9MeshLib27x (9)PyVista: 142x ordito's time, geometric mean over 2 functions; slower than ordito in 2PyVista142x (2)Open3D: 222x ordito's time, geometric mean over 4 functions; slower than ordito in 4Open3D222x (4)trimesh: 322x ordito's time, geometric mean over 3 functions; slower than ordito in 3trimesh322x (3)MeshLab: 347x ordito's time, geometric mean over 8 functions; slower than ordito in 8MeshLab347x (8)
Time relative to ordito (CUDA), geometric mean over the smoothing 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 27x 9 9
PyVista 142x 2 2
Open3D 222x 4 4
trimesh 322x 3 3
MeshLab 347x 8 8

filter_mut_dif_laplacian

0.1x1x10x100x1000x10000xordito (CUDA): 971.2 µs, 1x ordito's timeordito (CUDA)1x · 971.2 µsOpen3D: 140.54 ms, 145x ordito's timeOpen3D145x · 140.54 msMeshLab: 882.23 ms, 908x ordito's timeMeshLab908x · 882.23 mstrimesh: 1.527 s, 1572x ordito's timetrimesh1572x · 1.527 s
dragon (871 414 faces) · volume_constraint=False · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 971.2 µs 1x
Open3D 140.54 ms 145x
MeshLab 882.23 ms 908x
trimesh 1.527 s 1572x
All inputs
Input ordito (CUDA) MeshLab Open3D trimesh
sphere_small volume_constraint=False 252.7 µs
sphere_small volume_constraint=True 536.5 µs
bunny_decimated volume_constraint=False 285.4 µs 10.47 ms 2.88 ms 14.64 ms
bunny_decimated volume_constraint=True 621.0 µs 94.94 ms
bunny volume_constraint=False 269.0 µs 47.59 ms 11.58 ms 65.86 ms
bunny volume_constraint=True 575.0 µs 418.83 ms
dragon volume_constraint=False 971.2 µs 882.23 ms 140.54 ms 1.527 s
dragon volume_constraint=True 1.68 ms 8.496 s
happy_buddha volume_constraint=False 1.19 ms 1.104 s 397.56 ms 1.857 s
happy_buddha volume_constraint=True 1.98 ms 10.477 s
lucy volume_constraint=False 29.77 ms 36.927 s 12.056 s 43.836 s
lucy volume_constraint=True 51.03 ms 287.374 s

filter_laplacian_integration

0.1x1x10x100x1000xordito (CUDA): 84.4 µs, 1x ordito's timeordito (CUDA)1x · 84.4 µsMeshLib: 4.78 ms, 57x ordito's timeMeshLib57x · 4.78 msPyVista: 10.31 ms, 122x ordito's timePyVista122x · 10.31 msMeshLab: 18.17 ms, 215x ordito's timeMeshLab215x · 18.17 ms
saddle (34 848 faces) · implicit=False · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 84.4 µs 1x
MeshLib 4.78 ms 57x
PyVista 10.31 ms 122x
MeshLab 18.17 ms 215x
All inputs
Input ordito (CUDA) MeshLab MeshLib PyVista
saddle implicit=False 84.4 µs 18.17 ms 4.78 ms 10.31 ms
saddle_graded implicit=False 78.2 µs 18.59 ms 4.63 ms 9.97 ms
saddle implicit=True 1.46 ms
saddle_graded implicit=True 1.48 ms

filter_taubin

0.1x1x10x100x1000x10000xordito (CUDA): 476.5 µs, 1x ordito's timeordito (CUDA)1x · 476.5 µsPyVista: 153.29 ms, 322x ordito's timePyVista322x · 153.29 mstrimesh: 198.54 ms, 417x ordito's timetrimesh417x · 198.54 msOpen3D: 306.02 ms, 642x ordito's timeOpen3D642x · 306.02 msMeshLab: 867.52 ms, 1821x ordito's timeMeshLab1821x · 867.52 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 476.5 µs 1x
PyVista 153.29 ms 322x
trimesh 198.54 ms 417x
Open3D 306.02 ms 642x
MeshLab 867.52 ms 1821x
All inputs
Input ordito (CUDA) MeshLab Open3D PyVista trimesh
sphere_small 129.7 µs
bunny_decimated 125.7 µs 10.29 ms 2.87 ms 3.05 ms 3.32 ms
bunny 107.4 µs 46.42 ms 11.62 ms 12.18 ms 14.19 ms
dragon 476.5 µs 867.52 ms 306.02 ms 153.29 ms 198.54 ms
happy_buddha 573.3 µs 1.093 s 392.43 ms 197.28 ms 256.77 ms
lucy 13.36 ms 36.409 s 11.933 s 4.869 s 8.334 s

filter_humphrey

0.1x1x10x100x1000xordito (CUDA): 1.07 ms, 1x ordito's timeordito (CUDA)1x · 1.07 mstrimesh: 315.21 ms, 296x ordito's timetrimesh296x · 315.21 msMeshLab: 614.65 ms, 577x ordito's timeMeshLab577x · 614.65 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 1.07 ms 1x
trimesh 315.21 ms 296x
MeshLab 614.65 ms 577x
All inputs
Input ordito (CUDA) MeshLab trimesh
sphere_small 152.9 µs
bunny_decimated 162.9 µs 7.82 ms 5.11 ms
bunny 229.7 µs 35.79 ms 21.43 ms
dragon 1.07 ms 614.65 ms 315.21 ms
happy_buddha 1.24 ms 790.17 ms 406.41 ms
lucy 28.55 ms 27.413 s 11.964 s

filter_scalar_laplacian

0.1x1x10x100x1000x10000xordito (CUDA): 112.9 µs, 1x ordito's timeordito (CUDA)1x · 112.9 µsMeshLab: 507.20 ms, 4491x ordito's timeMeshLab4491x · 507.20 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 112.9 µs 1x
MeshLab 507.20 ms 4491x
All inputs
Input ordito (CUDA) MeshLab
sphere_small 80.6 µs
bunny_decimated 84.9 µs 6.50 ms
bunny 101.4 µs 29.24 ms
dragon 112.9 µs 507.20 ms
happy_buddha 151.9 µs 642.41 ms
lucy 5.31 ms 22.436 s

filter_normals

0.1x1x10x100x1000xordito (CUDA): 189.0 µs, 1x ordito's timeordito (CUDA)1x · 189.0 µsMeshLab: 11.92 ms, 63x ordito's timeMeshLab63x · 11.92 msMeshLib: 26.93 ms, 142x ordito's timeMeshLib142x · 26.93 ms
saddle (34 848 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 189.0 µs 1x
MeshLab 11.92 ms 63x
MeshLib 26.93 ms 142x
All inputs
Input ordito (CUDA) MeshLab MeshLib
saddle 189.0 µs 11.92 ms 26.93 ms
saddle_graded 280.8 µs 11.72 ms 27.21 ms

filter_two_step

0.1x1x10x100x1000xordito (CUDA): 847.8 µs, 1x ordito's timeordito (CUDA)1x · 847.8 µsMeshLab: 121.36 ms, 143x ordito's timeMeshLab143x · 121.36 ms
saddle (34 848 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 847.8 µs 1x
MeshLab 121.36 ms 143x
All inputs
Input ordito (CUDA) MeshLab
saddle 847.8 µs 121.36 ms
saddle_graded 982.1 µs 121.88 ms

filter_sharpen

0.1x1x10x100x1000x10000xordito (CUDA): 325.5 µs, 1x ordito's timeordito (CUDA)1x · 325.5 µsOpen3D: 458.65 ms, 1409x ordito's timeOpen3D1409x · 458.65 msMeshLab: 891.58 ms, 2739x ordito's timeMeshLab2739x · 891.58 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 325.5 µs 1x
Open3D 458.65 ms 1409x
MeshLab 891.58 ms 2739x
All inputs
Input ordito (CUDA) MeshLab Open3D
sphere_small 61.0 µs
bunny_decimated 70.0 µs 11.91 ms 3.55 ms
bunny 84.7 µs 53.00 ms 15.84 ms
dragon 325.5 µs 891.58 ms 458.65 ms
happy_buddha 384.5 µs 1.146 s 574.37 ms
lucy 8.15 ms 39.053 s 16.905 s

smooth_region_fixed_rim

0.1x1x10xordito (CUDA): 58.53 ms, 1x ordito's timeordito (CUDA)1x · 58.53 msMeshLib: 162.23 ms, 2.8x ordito's timeMeshLib2.8x · 162.23 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 58.53 ms 1x
MeshLib 162.23 ms 2.8x
All inputs
Input ordito (CUDA) MeshLib
sphere_small 881.6 µs
bunny_decimated 3.36 ms 9.82 ms
bunny 6.24 ms 15.27 ms
dragon 58.53 ms 162.23 ms
happy_buddha 62.52 ms 245.41 ms
lucy 11.183 s 66.059 s

filter_spikes

0.1x1x10x100xordito (CUDA): 1.07 ms, 1x ordito's timeordito (CUDA)1x · 1.07 msMeshLib: 55.89 ms, 52x ordito's timeMeshLib52x · 55.89 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 1.07 ms 1x
MeshLib 55.89 ms 52x
All inputs
Input ordito (CUDA) MeshLib
sphere_small 96.7 µs
bunny_decimated 505.4 µs 8.09 ms
bunny 414.2 µs 9.19 ms
dragon 1.07 ms 55.89 ms
happy_buddha 1.04 ms 114.12 ms
lucy 3.30 ms 3.711 s

equalize_triangle_areas

0.1x1x10x100xordito (CUDA): 944.5 µs, 1x ordito's timeordito (CUDA)1x · 944.5 µsMeshLib: 65.00 ms, 69x ordito's timeMeshLib69x · 65.00 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 944.5 µs 1x
MeshLib 65.00 ms 69x
All inputs
Input ordito (CUDA) MeshLib
sphere_small 300.4 µs
bunny_decimated 316.1 µs 8.43 ms
bunny 282.0 µs 10.39 ms
dragon 944.5 µs 65.00 ms
happy_buddha 1.15 ms 88.09 ms
lucy 26.75 ms 3.995 s

relax_keep_volume

0.1x1x10x100xordito (CUDA): 1.71 ms, 1x ordito's timeordito (CUDA)1x · 1.71 msMeshLib: 68.72 ms, 40x ordito's timeMeshLib40x · 68.72 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 1.71 ms 1x
MeshLib 68.72 ms 40x
All inputs
Input ordito (CUDA) MeshLib
sphere_small 408.5 µs
bunny_decimated 381.3 µs 8.56 ms
bunny 370.4 µs 10.43 ms
dragon 1.71 ms 68.72 ms
happy_buddha 1.94 ms 92.59 ms
lucy 53.76 ms 4.382 s

smooth_region_boundary

0.1x1x10x100xordito (CUDA): 8.36 ms, 1x ordito's timeordito (CUDA)1x · 8.36 msMeshLib: 110.78 ms, 13x ordito's timeMeshLib13x · 110.78 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 8.36 ms 1x
MeshLib 110.78 ms 13x
All inputs
Input ordito (CUDA) MeshLib
sphere_small 780.0 µs
bunny_decimated 1.21 ms 11.00 ms
bunny 1.17 ms 15.63 ms
dragon 8.36 ms 110.78 ms
happy_buddha 15.84 ms 123.38 ms
lucy 19.80 ms 4.752 s

filter_neighborhood_average

0.1x1x10x100x1000xordito (CUDA): 1.54 ms, 1x ordito's timeordito (CUDA)1x · 1.54 msOpen3D: 681.76 ms, 442x ordito's timeOpen3D442x · 681.76 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 1.54 ms 1x
Open3D 681.76 ms 442x
All inputs
Input ordito (CUDA) Open3D
sphere_small 256.7 µs
bunny_decimated 232.9 µs 6.54 ms
bunny 315.1 µs 31.36 ms
dragon 1.54 ms 681.76 ms
happy_buddha 1.85 ms 879.92 ms
lucy 47.92 ms 20.387 s

smooth_region

0.1x1x10xordito (CUDA): 183.88 ms, 1x ordito's timeordito (CUDA)1x · 183.88 msMeshLib: 814.42 ms, 4.4x ordito's timeMeshLib4.4x · 814.42 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 183.88 ms 1x
MeshLib 814.42 ms 4.4x
All inputs
Input ordito (CUDA) MeshLib
sphere_small 2.01 ms
bunny_decimated 5.84 ms 14.57 ms
bunny 11.02 ms 52.32 ms
dragon 183.88 ms 814.42 ms
happy_buddha 198.57 ms 1.102 s
lucy 42.028 s > 10 min

relax_approx

0.1x1x10x100xordito (CUDA): 86.44 ms, 1x ordito's timeordito (CUDA)1x · 86.44 msMeshLib: 3.175 s, 37x ordito's timeMeshLib37x · 3.175 s
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 86.44 ms 1x
MeshLib 3.175 s 37x
All inputs
Input ordito (CUDA) MeshLib
sphere_small 244.9 µs
bunny_decimated 601.3 µs 9.40 ms
bunny 2.48 ms 30.58 ms
dragon 86.44 ms 3.175 s
happy_buddha 107.45 ms 5.123 s
lucy 2.611 s > 10 min

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)
filter_implicit_fairing saddle_graded 33.67 ms
refine_and_smooth_region hemisphere 12.26 ms
inflate lucy 52.96 ms
equalize_triangle_areas_no_shrinkage lucy 45.14 ms