Skip to content

holes

Benchmarks of ordito.holes 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)1xOpen3D: 3.9x ordito's time, geometric mean over 1 functions; slower than ordito in 1Open3D3.9x (1)trimesh: 4.8x ordito's time, geometric mean over 1 functions; slower than ordito in 1trimesh4.8x (1)MeshLib: 18x ordito's time, geometric mean over 11 functions; slower than ordito in 11MeshLib18x (11)MeshLab: 25x ordito's time, geometric mean over 1 functions; slower than ordito in 1MeshLab25x (1)PyMeshFix: 1226x ordito's time, geometric mean over 1 functions; slower than ordito in 1PyMeshFix1226x (1)
Time relative to ordito (CUDA), geometric mean over the holes 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 3.9x 1 1
trimesh 4.8x 1 1
MeshLib 18x 11 11
MeshLab 25x 1 1
PyMeshFix 1226x 1 1

fill_cone

0.1x1x10xordito (CUDA): 11.85 ms, 1x ordito's timeordito (CUDA)1x · 11.85 msMeshLib: 81.37 ms, 6.9x ordito's timeMeshLib6.9x · 81.37 ms
rim_long (131 072 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 11.85 ms 1x
MeshLib 81.37 ms 6.9x
All inputs
Input ordito (CUDA) MeshLib
holes_many 390.7 µs 12.55 ms
sphere_med 194.9 µs 10.74 ms
rim_long 11.85 ms 81.37 ms

fill_min_weight

0.1x1x10x100xordito (CUDA): 738.8 µs, 1x ordito's timeordito (CUDA)1x · 738.8 µsMeshLib: 11.00 ms, 15x ordito's timeMeshLib15x · 11.00 msMeshLab: 38.10 ms, 52x ordito's timeMeshLab52x · 38.10 mstrimesh: 42.82 ms, 58x ordito's timetrimesh58x · 42.82 msOpen3D: 46.91 ms, 63x ordito's timeOpen3D63x · 46.91 ms
holes_many (81 408 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 738.8 µs 1x
MeshLib 11.00 ms 15x
MeshLab 38.10 ms 52x
trimesh 42.82 ms 58x
Open3D 46.91 ms 63x
All inputs
Input ordito (CUDA) MeshLab MeshLib Open3D trimesh
rim_short 4.88 ms 60.17 ms 74.10 ms 1.16 ms 1.94 ms
holes_many 738.8 µs 38.10 ms 11.00 ms 46.91 ms 42.82 ms

fill_smooth

0.1x1x10x100x1000x10000xordito (CUDA): 3.18 ms, 1x ordito's timeordito (CUDA)1x · 3.18 msMeshLib: 4.643 s, 1459x ordito's timeMeshLib1459x · 4.643 s
holes_many (81 408 faces) · triangulate_only=False · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 3.18 ms 1x
MeshLib 4.643 s 1459x
All inputs
Input ordito (CUDA) MeshLib
rim_short triangulate_only=False 16.85 ms 36.94 ms
rim_short triangulate_only=True 4.90 ms
holes_many triangulate_only=False 3.18 ms 4.643 s
holes_many triangulate_only=True 845.2 µs

refill_region

0.1x1x10xordito (CUDA): 20.94 ms, 1x ordito's timeordito (CUDA)1x · 20.94 msMeshLib: 97.83 ms, 4.7x ordito's timeMeshLib4.7x · 97.83 ms
dragon (871 414 faces) · triangulate_only=True · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 20.94 ms 1x
MeshLib 97.83 ms 4.7x
All inputs
Input ordito (CUDA) MeshLib
sphere_small triangulate_only=True 1.46 ms
sphere_small triangulate_only=False 13.02 ms
bunny_decimated triangulate_only=True 1.07 ms 11.77 ms
bunny_decimated triangulate_only=False 4.61 ms 18.83 ms
bunny triangulate_only=True 6.61 ms 17.69 ms
bunny triangulate_only=False 14.54 ms 30.39 ms
dragon triangulate_only=True 20.94 ms 97.83 ms
dragon triangulate_only=False 32.47 ms 161.98 ms
happy_buddha triangulate_only=True 47.21 ms 140.16 ms
happy_buddha triangulate_only=False 59.36 ms 186.66 ms
lucy triangulate_only=True 173.59 ms 3.755 s
lucy triangulate_only=False 435.52 ms 4.446 s

stitch_min_weight

0.1x1x10xordito (CUDA): 8.15 ms, 1x ordito's timeordito (CUDA)1x · 8.15 msMeshLib: 35.44 ms, 4.3x ordito's timeMeshLib4.3x · 35.44 ms
rim_short (1 024 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 8.15 ms 1x
MeshLib 35.44 ms 4.3x
All inputs
Input ordito (CUDA) MeshLib
rim_short 8.15 ms 35.44 ms

fillable_loop_mask

0.1x1x10xordito (CUDA): 335.2 µs, 1x ordito's timeordito (CUDA)1x · 335.2 µsMeshLib: 857.5 µs, 2.6x ordito's timeMeshLib2.6x · 857.5 µs
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 335.2 µs 1x
MeshLib 857.5 µs 2.6x
All inputs
Input ordito (CUDA) MeshLib
saddle_small 124.2 µs
bunny_decimated 125.5 µs 100.2 µs
bunny 133.3 µs 183.6 µs
dragon 335.2 µs 857.5 µs
happy_buddha 1.70 ms
lucy 43.66 ms

extend_hole

0.1x1x10x100x1000xordito (CUDA): 339.2 µs, 1x ordito's timeordito (CUDA)1x · 339.2 µsMeshLib: 55.93 ms, 165x ordito's timeMeshLib165x · 55.93 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 339.2 µs 1x
MeshLib 55.93 ms 165x
All inputs
Input ordito (CUDA) MeshLib
saddle_small 133.5 µs
bunny_decimated 146.4 µs 8.00 ms
bunny 125.6 µs 9.08 ms
dragon 339.2 µs 55.93 ms
happy_buddha 68.75 ms
lucy 3.664 s

build_bottom

0.1x1x10x100x1000xordito (CUDA): 375.4 µs, 1x ordito's timeordito (CUDA)1x · 375.4 µsMeshLib: 58.14 ms, 155x ordito's timeMeshLib155x · 58.14 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 375.4 µs 1x
MeshLib 58.14 ms 155x
All inputs
Input ordito (CUDA) MeshLib
saddle_small 146.6 µs
bunny_decimated 154.1 µs 8.45 ms
bunny 145.7 µs 9.09 ms
dragon 375.4 µs 58.14 ms
happy_buddha 66.24 ms
lucy 3.432 s

bridge_edges

0.1x1x10x100x1000xordito (CUDA): 150.3 µs, 1x ordito's timeordito (CUDA)1x · 150.3 µsMeshLib: 52.65 ms, 350x ordito's timeMeshLib350x · 52.65 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 150.3 µs 1x
MeshLib 52.65 ms 350x
All inputs
Input ordito (CUDA) MeshLib
saddle_small 132.4 µs
bunny_decimated 158.9 µs 7.81 ms
bunny 134.0 µs 8.35 ms
dragon 150.3 µs 52.65 ms
lucy 1.02 ms crashed (aborted)

bridge_edges_smooth

0.1x1x10x100x1000xordito (CUDA): 468.6 µs, 1x ordito's timeordito (CUDA)1x · 468.6 µsMeshLib: 48.72 ms, 104x ordito's timeMeshLib104x · 48.72 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 468.6 µs 1x
MeshLib 48.72 ms 104x
All inputs
Input ordito (CUDA) MeshLib
saddle_small 378.3 µs
bunny_decimated 360.3 µs 7.89 ms
bunny 340.8 µs 8.33 ms
dragon 468.6 µs 48.72 ms
lucy 1.52 ms crashed (segfault)

join_closest_components

0.1x1x10x100x1000xordito (CUDA): 482.1 µs, 1x ordito's timeordito (CUDA)1x · 482.1 µsPyMeshFix: 317.69 ms, 659x ordito's timePyMeshFix659x · 317.69 ms
open_parts_4 (81 916 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 482.1 µs 1x
PyMeshFix 317.69 ms 659x
All inputs
Input ordito (CUDA) PyMeshFix
open_parts_64 1.31 ms 2.592 s
open_parts_16 569.5 µs 802.76 ms
open_parts_4 482.1 µs 317.69 ms

stitch_smooth

0.1x1x10xordito (CUDA): 14.77 ms, 1x ordito's timeordito (CUDA)1x · 14.77 msMeshLib: 50.03 ms, 3.4x ordito's timeMeshLib3.4x · 50.03 ms
rim_short (1 024 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 14.77 ms 1x
MeshLib 50.03 ms 3.4x
All inputs
Input ordito (CUDA) MeshLib
rim_short 14.77 ms 50.03 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)
fill_fan rim_long 5.37 ms
fill_min_weight_chords holes_many resolve_multiple_edges=True 749.1 µs
fill_loops_min_weight holes_many 654.5 µs
fill_small holes_many 688.2 µs
fill_smooth_target_edge holes_many derive_target=False 2.96 ms
stitch rim_short 726.6 µs
stitch_loops rim_short 234.6 µs
stitch_loops_min_weight rim_short 7.62 ms