Benchmarks of ordito.repair 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.
Time relative to ordito (CUDA), geometric mean over the repair 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
23x
11
9
PyMeshFix
74x
1
1
Open3D
92x
4
4
trimesh
142x
5
5
libigl
160x
4
4
MeshLab
167x
7
7
PyVista
277x
2
2
make_solid
bunny (69 451 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
3.34 ms
1x
PyMeshFix
484.03 ms
145x
All inputs
Input
ordito (CUDA)
PyMeshFix
bunny_decimated
3.95 ms
147.32 ms
bunny
3.34 ms
484.03 ms
remove_small_components
sphere_med (81 920 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
219.5 µs
1x
MeshLab
39.27 ms
179x
Open3D
76.93 ms
350x
All inputs
Input
ordito (CUDA)
MeshLab
Open3D
sphere_med
219.5 µs
39.27 ms
76.93 ms
parts_64
162.6 µs
35.27 ms
75.24 ms
parts_1024
169.5 µs
35.13 ms
73.39 ms
remove_non_manifold_faces
sphere_med (81 920 faces) · extra=0 · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
119.2 µs
1x
MeshLab
34.30 ms
288x
All inputs
Input
ordito (CUDA)
MeshLab
sphere_med extra=0
119.2 µs
34.30 ms
sphere_med extra=1024
182.4 µs
40.37 ms
split_non_manifold_vertices
sphere_med (81 920 faces) · extra=0 · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
186.0 µs
1x
MeshLib
10.55 ms
57x
libigl
99.31 ms
534x
All inputs
Input
ordito (CUDA)
libigl
MeshLib
sphere_med extra=0
186.0 µs
99.31 ms
10.55 ms
sphere_med extra=1024
181.5 µs
138.60 ms
24.93 ms
remove_unreferenced_vertices
dragon (871 414 faces) · unreferenced=0 · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
69.9 µs
1x
Open3D
8.01 ms
115x
libigl
42.33 ms
605x
MeshLib
73.36 ms
1049x
All inputs
Input
ordito (CUDA)
libigl
MeshLib
Open3D
sphere_small unreferenced=0
65.7 µs
sphere_small unreferenced=1
93.2 µs
bunny_decimated unreferenced=0
58.0 µs
176.3 µs
8.23 ms
86.6 µs
bunny_decimated unreferenced=1
88.6 µs
192.3 µs
8.27 ms
106.1 µs
bunny unreferenced=0
64.9 µs
887.7 µs
10.94 ms
473.1 µs
bunny unreferenced=1
87.6 µs
920.4 µs
10.46 ms
597.3 µs
dragon unreferenced=0
69.9 µs
42.33 ms
73.36 ms
8.01 ms
dragon unreferenced=1
68.3 µs
36.00 ms
75.10 ms
13.98 ms
happy_buddha unreferenced=0
78.0 µs
47.88 ms
92.50 ms
10.83 ms
happy_buddha unreferenced=1
84.4 µs
53.58 ms
94.87 ms
31.00 ms
lucy unreferenced=0
1.79 ms
2.143 s
4.186 s
737.48 ms
lucy unreferenced=1
2.10 ms
2.370 s
4.203 s
1.132 s
remove_duplicated_vertices
sphere_med (81 920 faces) · epsilon=0.0 · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
218.1 µs
1x
Open3D
16.42 ms
75x
PyVista
25.66 ms
118x
MeshLib
31.33 ms
144x
MeshLab
221.69 ms
1017x
All inputs
Input
ordito (CUDA)
MeshLab
MeshLib
Open3D
PyVista
sphere_med epsilon=0.0
218.1 µs
221.69 ms
31.33 ms
16.42 ms
25.66 ms
sphere_med epsilon=1e-06
312.7 µs
288.20 ms
31.20 ms
16.44 ms
40.21 ms
reverse_winding
dragon (871 414 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
22.1 µs
1x
trimesh
40.49 ms
1831x
All inputs
Input
ordito (CUDA)
trimesh
sphere_small
16.4 µs
bunny_decimated
22.6 µs
562.8 µs
bunny
17.0 µs
2.50 ms
dragon
22.1 µs
40.49 ms
happy_buddha
27.7 µs
56.43 ms
lucy
464.2 µs
1.613 s
make_winding_consistent
sphere_med (81 920 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
148.6 µs
1x
MeshLib
6.91 ms
46x
trimesh
17.97 ms
121x
libigl
36.63 ms
247x
MeshLab
51.21 ms
345x
All inputs
Input
ordito (CUDA)
libigl
MeshLab
MeshLib
trimesh
ribbon_long
474.3 µs
12.09 ms
32.51 ms
1.24 ms
7.92 ms
sphere_med
148.6 µs
36.63 ms
51.21 ms
6.91 ms
17.97 ms
make_volume
dragon (871 414 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
186.0 µs
1x
trimesh
252.79 ms
1359x
PyVista
401.45 ms
2159x
All inputs
Input
ordito (CUDA)
PyVista
trimesh
sphere_small
120.4 µs
bunny_decimated
131.2 µs
6.90 ms
3.15 ms
bunny
140.2 µs
25.81 ms
14.35 ms
dragon
186.0 µs
401.45 ms
252.79 ms
happy_buddha
291.2 µs
557.20 ms
1.083 s
lucy
7.29 ms
17.280 s
10.434 s
flip_t_vertices
saddle (34 848 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
362.3 µs
1x
MeshLab
18.80 ms
52x
All inputs
Input
ordito (CUDA)
MeshLab
saddle
362.3 µs
18.80 ms
saddle_graded
532.1 µs
24.90 ms
remove_degenerate_faces
saddle (34 848 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
MeshLib
39.4 µs
0.37x
ordito (CUDA)
106.5 µs
1x
trimesh
2.24 ms
21x
MeshLab
5.98 ms
56x
All inputs
Input
ordito (CUDA)
MeshLab
MeshLib
trimesh
saddle
106.5 µs
5.98 ms
39.4 µs
2.24 ms
saddle_graded
90.4 µs
5.98 ms
37.5 µs
1.97 ms
fix_self_intersections
tangle_torus (163 840 faces) · method=local · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
32.59 ms
1x
MeshLib
192.47 ms
5.9x
All inputs
Input
ordito (CUDA)
MeshLib
tangle_torus_small method=local
16.20 ms
15.09 ms
tangle_torus_small method=voxel
1.43 ms
48.98 ms
tangle_torus method=local
32.59 ms
192.47 ms
tangle_torus method=voxel
3.43 ms
85.05 ms
collapse_small_triangles
saddle (34 848 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
150.8 µs
1x
MeshLib
48.90 ms
324x
All inputs
Input
ordito (CUDA)
MeshLib
saddle
150.8 µs
48.90 ms
saddle_graded
237.6 µs
47.31 ms
fix_degeneracies
saddle (34 848 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
69.5 µs
1x
MeshLib
3.64 ms
52x
All inputs
Input
ordito (CUDA)
MeshLib
saddle
69.5 µs
3.64 ms
saddle_graded
9.78 ms
12.50 ms
remove_degree3_vertices
dragon (871 414 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
MeshLib
307.5 µs
0.57x
ordito (CUDA)
541.4 µs
1x
All inputs
Input
ordito (CUDA)
MeshLib
sphere_small
267.3 µs
bunny_decimated
20.1 µs
bunny
336.0 µs
39.2 µs
dragon
541.4 µs
307.5 µs
happy_buddha
643.2 µs
382.3 µs
lucy
29.37 ms
straighten_boundary
dragon (871 414 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
460.0 µs
1x
MeshLib
57.53 ms
125x
All inputs
Input
ordito (CUDA)
MeshLib
sphere_small
272.4 µs
bunny_decimated
8.28 ms
bunny
308.8 µs
8.96 ms
dragon
460.0 µs
57.53 ms
happy_buddha
536.4 µs
67.58 ms
lucy
3.621 s
flatten_degree3_vertices
dragon (871 414 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
506.4 µs
1x
MeshLib
55.84 ms
110x
All inputs
Input
ordito (CUDA)
MeshLib
sphere_small
338.9 µs
bunny_decimated
7.95 ms
bunny
251.4 µs
8.52 ms
dragon
506.4 µs
55.84 ms
happy_buddha
663.1 µs
66.52 ms
lucy
3.562 s
resolve_duplicated_faces
sphere_med (81 920 faces) · fraction=0.0 · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
148.8 µs
1x
Open3D
8.70 ms
58x
libigl
17.37 ms
117x
MeshLab
22.65 ms
152x
All inputs
Input
ordito (CUDA)
libigl
MeshLab
Open3D
sphere_med fraction=0.0
148.8 µs
17.37 ms
22.65 ms
8.70 ms
sphere_med fraction=0.1
150.9 µs
19.86 ms
25.49 ms
10.67 ms
make_normals_outward
dragon (871 414 faces) · time relative to ordito, log scaleValues
Library
Median
Relative to ordito
ordito (CUDA)
330.9 µs
1x
trimesh
253.59 ms
766x
All inputs
Input
ordito (CUDA)
trimesh
sphere_small
139.6 µs
bunny_decimated
149.5 µs
3.38 ms
bunny
167.5 µs
14.79 ms
dragon
330.9 µs
253.59 ms
happy_buddha
408.2 µs
1.070 s
lucy
14.50 ms
> 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: