Skip to content

remesh

Benchmarks of ordito.remesh 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)1xPyTorch3D (CUDA): 5.9x ordito's time, geometric mean over 1 functions; slower than ordito in 1PyTorch3D (CUDA)5.9x (1)PyVista: 12x ordito's time, geometric mean over 1 functions; slower than ordito in 1PyVista12x (1)MeshLib: 14x ordito's time, geometric mean over 6 functions; slower than ordito in 6MeshLib14x (6)libigl: 75x ordito's time, geometric mean over 3 functions; slower than ordito in 3libigl75x (3)MeshLab: 101x ordito's time, geometric mean over 5 functions; slower than ordito in 5MeshLab101x (5)trimesh: 148x ordito's time, geometric mean over 2 functions; slower than ordito in 2trimesh148x (2)Open3D: 164x ordito's time, geometric mean over 4 functions; slower than ordito in 4Open3D164x (4)
Time relative to ordito (CUDA), geometric mean over the remesh 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
PyTorch3D (CUDA) 5.9x 1 1
PyVista 12x 1 1
MeshLib 14x 6 6
libigl 75x 3 3
MeshLab 101x 5 5
trimesh 148x 2 2
Open3D 164x 4 4

subdivide

0.1x1x10x100x1000xordito (CUDA): 520.8 µs, 1x ordito's timeordito (CUDA)1x · 520.8 µsPyTorch3D (CUDA): 2.84 ms, 5.5x ordito's timePyTorch3D (CUDA)5.5x · 2.84 msOpen3D: 370.11 ms, 711x ordito's timeOpen3D711x · 370.11 mstrimesh: 404.77 ms, 777x ordito's timetrimesh777x · 404.77 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 520.8 µs 1x
PyTorch3D (CUDA) 2.84 ms 5.5x
Open3D 370.11 ms 711x
trimesh 404.77 ms 777x
All inputs
Input ordito (CUDA) Open3D PyTorch3D (CUDA) trimesh
sphere_small 131.9 µs
bunny_decimated 151.0 µs 2.46 ms 946.4 µs 5.44 ms
bunny 162.7 µs 15.39 ms 990.9 µs 26.92 ms
dragon 520.8 µs 370.11 ms 2.84 ms 404.77 ms
happy_buddha 543.9 µs 593.60 ms 3.74 ms 538.25 ms
lucy 21.41 ms 25.002 s 103.58 ms 16.339 s

subdivide_loop

0.1x1x10x100x1000x10000x100000xordito (CUDA): 439.3 µs, 1x ordito's timeordito (CUDA)1x · 439.3 µslibigl: 315.64 ms, 718x ordito's timelibigl718x · 315.64 msOpen3D: 4.639 s, 10559x ordito's timeOpen3D10559x · 4.639 s
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 439.3 µs 1x
libigl 315.64 ms 718x
Open3D 4.639 s 10559x
All inputs
Input ordito (CUDA) libigl Open3D
sphere_small 241.8 µs 13.69 ms 19.64 ms
sphere_med 258.4 µs 70.23 ms 905.55 ms
sphere_large 439.3 µs 315.64 ms 4.639 s

subdivide_to_size

0.1x1x10x100x1000xordito (CUDA): 729.3 µs, 1x ordito's timeordito (CUDA)1x · 729.3 µstrimesh: 116.86 ms, 160x ordito's timetrimesh160x · 116.86 msMeshLib: 163.38 ms, 224x ordito's timeMeshLib224x · 163.38 msMeshLab: 236.74 ms, 325x ordito's timeMeshLab325x · 236.74 ms
sphere_med (81 920 faces) · split_fraction=0.7 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 729.3 µs 1x
trimesh 116.86 ms 160x
MeshLib 163.38 ms 224x
MeshLab 236.74 ms 325x
All inputs
Input ordito (CUDA) MeshLab MeshLib trimesh
sphere_small split_fraction=0.7 624.8 µs 11.29 ms 10.59 ms 6.31 ms
sphere_small split_fraction=0.35 881.6 µs 41.60 ms 40.22 ms 28.29 ms
sphere_med split_fraction=0.7 729.3 µs 236.74 ms 163.38 ms 116.86 ms
sphere_med split_fraction=0.35 1.49 ms 1.262 s 873.69 ms 620.69 ms
sphere_large split_fraction=0.7 1.35 ms 787.25 ms
sphere_large split_fraction=0.35 5.24 ms 4.117 s

subdivide_region_to_size

0.1x1x10x100x1000xordito (CUDA): 17.23 ms, 1x ordito's timeordito (CUDA)1x · 17.23 msMeshLib: 1.928 s, 112x ordito's timeMeshLib112x · 1.928 s
sphere_large (327 680 faces) · split_budget=None · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 17.23 ms 1x
MeshLib 1.928 s 112x
All inputs
Input ordito (CUDA) MeshLib
sphere_small split_budget=None 1.63 ms 20.83 ms
sphere_small split_budget=0.25 1.59 ms 3.00 ms
sphere_med split_budget=None 4.99 ms 404.45 ms
sphere_med split_budget=0.25 2.77 ms 35.13 ms
sphere_large split_budget=None 17.23 ms 1.928 s
sphere_large split_budget=0.25 7.87 ms 124.36 ms

flip_to_delaunay

0.1x1x10xordito (CUDA): 1.08 ms, 1x ordito's timeordito (CUDA)1x · 1.08 msMeshLib: 5.55 ms, 5.1x ordito's timeMeshLib5.1x · 5.55 ms
saddle (34 848 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 1.08 ms 1x
MeshLib 5.55 ms 5.1x
All inputs
Input ordito (CUDA) MeshLib
saddle 1.08 ms 5.55 ms
saddle_graded 1.05 ms 5.46 ms

isotropic_remesh

0.1x1x10x100xordito (CUDA): 9.50 ms, 1x ordito's timeordito (CUDA)1x · 9.50 msMeshLib: 87.82 ms, 9.2x ordito's timeMeshLib9.2x · 87.82 msMeshLab: 327.34 ms, 34x ordito's timeMeshLab34x · 327.34 ms
saddle (34 848 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 9.50 ms 1x
MeshLib 87.82 ms 9.2x
MeshLab 327.34 ms 34x
All inputs
Input ordito (CUDA) MeshLab MeshLib
saddle 9.50 ms 327.34 ms 87.82 ms
saddle_graded 10.80 ms 1.076 s 69.23 ms

intrinsic_delaunay

0.1x1x10x100x1000xordito (CUDA): 436.3 µs, 1x ordito's timeordito (CUDA)1x · 436.3 µslibigl: 233.65 ms, 535x ordito's timelibigl535x · 233.65 ms
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 436.3 µs 1x
libigl 233.65 ms 535x
All inputs
Input ordito (CUDA) libigl
sphere_small 236.2 µs 7.41 ms
sphere_med 331.7 µs 57.43 ms
sphere_large 436.3 µs 233.65 ms

cluster_decimate

0.1x1x10x100x1000x10000xordito (CUDA): 408.9 µs, 1x ordito's timeordito (CUDA)1x · 408.9 µsMeshLib: 28.37 ms, 69x ordito's timeMeshLib69x · 28.37 msOpen3D: 224.12 ms, 548x ordito's timeOpen3D548x · 224.12 msMeshLab: 1.009 s, 2467x ordito's timeMeshLab2467x · 1.009 s
dragon (871 414 faces) · cell_factor=2.0 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 408.9 µs 1x
MeshLib 28.37 ms 69x
Open3D 224.12 ms 548x
MeshLab 1.009 s 2467x
All inputs
Input ordito (CUDA) MeshLab MeshLib Open3D
sphere_small cell_factor=2.0 338.8 µs
sphere_small cell_factor=6.0 255.3 µs
bunny_decimated cell_factor=2.0 273.9 µs 7.93 ms 223.2 µs 2.28 ms
bunny_decimated cell_factor=6.0 297.8 µs 5.59 ms 142.8 µs 2.14 ms
bunny cell_factor=2.0 293.4 µs 46.83 ms 1.02 ms 11.23 ms
bunny cell_factor=6.0 274.8 µs 28.20 ms 575.9 µs 8.04 ms
dragon cell_factor=2.0 408.9 µs 1.009 s 28.37 ms 224.12 ms
dragon cell_factor=6.0 355.2 µs 463.06 ms 6.74 ms 101.35 ms
happy_buddha cell_factor=2.0 516.7 µs 1.238 s 20.70 ms 302.95 ms
happy_buddha cell_factor=6.0 474.8 µs 611.88 ms 8.27 ms 141.40 ms
lucy cell_factor=2.0 10.53 ms 163.353 s 3.760 s 18.449 s
lucy cell_factor=6.0 5.89 ms 40.996 s 395.82 ms 6.445 s

flip_by_objective

0.1x1x10x100xordito (CUDA): 668.8 µs, 1x ordito's timeordito (CUDA)1x · 668.8 µsMeshLab: 28.02 ms, 42x ordito's timeMeshLab42x · 28.02 ms
saddle (34 848 faces) · objective=planarity · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 668.8 µs 1x
MeshLab 28.02 ms 42x
All inputs
Input ordito (CUDA) MeshLab
saddle objective=planarity 668.8 µs 28.02 ms
saddle_graded objective=planarity 649.4 µs 27.79 ms
saddle objective=curvature 1.06 ms
saddle_graded objective=curvature 834.8 µs

quadric_decimate

0.1x1x10x100xordito (CUDA): 2.99 ms, 1x ordito's timeordito (CUDA)1x · 2.99 msMeshLib: 19.08 ms, 6.4x ordito's timeMeshLib6.4x · 19.08 msOpen3D: 45.93 ms, 15x ordito's timeOpen3D15x · 45.93 msPyVista: 46.34 ms, 15x ordito's timePyVista15x · 46.34 mslibigl: 51.05 ms, 17x ordito's timelibigl17x · 51.05 msMeshLab: 177.33 ms, 59x ordito's timeMeshLab59x · 177.33 ms
saddle (34 848 faces) · target_ratio=0.5 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 2.99 ms 1x
MeshLib 19.08 ms 6.4x
Open3D 45.93 ms 15x
PyVista 46.34 ms 15x
libigl 51.05 ms 17x
MeshLab 177.33 ms 59x
All inputs
Input ordito (CUDA) libigl MeshLab MeshLib Open3D PyVista
saddle target_ratio=0.5 2.99 ms 51.05 ms 177.33 ms 19.08 ms 45.93 ms 46.34 ms
saddle target_ratio=0.1 5.55 ms 81.00 ms 293.81 ms 32.44 ms 78.46 ms 68.72 ms
saddle_graded target_ratio=0.5 3.97 ms 49.56 ms 223.16 ms 17.40 ms 52.55 ms 50.69 ms
saddle_graded target_ratio=0.1 7.86 ms 77.04 ms 358.17 ms 31.71 ms 79.23 ms 76.63 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)
split_edges sphere_large split_fraction=1.0 186.1 µs
refine_region_to_density saddle_graded 173.7 µs