Skip to content

selection

Benchmarks of ordito.selection 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.1x1x10x100xordito (CUDA): the reference, 1xordito (CUDA)1xMeshLib: 3x ordito's time, geometric mean over 5 functions; slower than ordito in 2MeshLib3x (5)Open3D: 24x ordito's time, geometric mean over 1 functions; slower than ordito in 1Open3D24x (1)PyVista: 70x ordito's time, geometric mean over 2 functions; slower than ordito in 2PyVista70x (2)MeshLab: 74x ordito's time, geometric mean over 2 functions; slower than ordito in 2MeshLab74x (2)trimesh: 99x ordito's time, geometric mean over 3 functions; slower than ordito in 3trimesh99x (3)
Time relative to ordito (CUDA), geometric mean over the selection 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 3x 5 2
Open3D 24x 1 1
PyVista 70x 2 2
MeshLab 74x 2 2
trimesh 99x 3 3

expand_vertex_mask

0.1x1x10x100xordito (CUDA): 28.2 µs, 1x ordito's timeordito (CUDA)1x · 28.2 µsMeshLib: 536.0 µs, 19x ordito's timeMeshLib19x · 536.0 µsMeshLab: 1.09 ms, 39x ordito's timeMeshLab39x · 1.09 ms
sphere_med (81 920 faces) · hops=1 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 28.2 µs 1x
MeshLib 536.0 µs 19x
MeshLab 1.09 ms 39x
All inputs
Input ordito (CUDA) MeshLab MeshLib
sphere_med hops=1 28.2 µs 1.09 ms 536.0 µs
sphere_med hops=8 57.9 µs 7.61 ms 4.94 ms

shrink_vertex_mask

0.1x1x10x100xordito (CUDA): 27.7 µs, 1x ordito's timeordito (CUDA)1x · 27.7 µsMeshLib: 939.3 µs, 34x ordito's timeMeshLib34x · 939.3 µsMeshLab: 1.25 ms, 45x ordito's timeMeshLab45x · 1.25 ms
sphere_med (81 920 faces) · hops=1 · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 27.7 µs 1x
MeshLib 939.3 µs 34x
MeshLab 1.25 ms 45x
All inputs
Input ordito (CUDA) MeshLab MeshLib
sphere_med hops=1 27.7 µs 1.25 ms 939.3 µs
sphere_med hops=8 77.1 µs 9.91 ms 3.57 ms

submesh_from_face_indices

0.1x1x10x100x1000xordito (CUDA): 54.0 µs, 1x ordito's timeordito (CUDA)1x · 54.0 µsOpen3D: 1.27 ms, 24x ordito's timeOpen3D24x · 1.27 msPyVista: 4.39 ms, 81x ordito's timePyVista81x · 4.39 mstrimesh: 6.36 ms, 118x ordito's timetrimesh118x · 6.36 ms
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 54.0 µs 1x
Open3D 1.27 ms 24x
PyVista 4.39 ms 81x
trimesh 6.36 ms 118x
All inputs
Input ordito (CUDA) Open3D PyVista trimesh
sphere_med 54.0 µs 1.27 ms 4.39 ms 6.36 ms

delete_region_keep_boundary

0.01x0.1x1xMeshLib: 389.0 µs, 0.91x ordito's timeMeshLib0.91x · 389.0 µsordito (CUDA): 426.8 µs, 1x ordito's timeordito (CUDA)1x · 426.8 µs
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
MeshLib 389.0 µs 0.91x
ordito (CUDA) 426.8 µs 1x
All inputs
Input ordito (CUDA) MeshLib
sphere_med 426.8 µs 389.0 µs

region_boundary_edges

0.01x0.1x1x10x100xMeshLib: 34.4 µs, 0.26x ordito's timeMeshLib0.26x · 34.4 µsordito (CUDA): 133.2 µs, 1x ordito's timeordito (CUDA)1x · 133.2 µsPyVista: 7.97 ms, 60x ordito's timePyVista60x · 7.97 ms
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
MeshLib 34.4 µs 0.26x
ordito (CUDA) 133.2 µs 1x
PyVista 7.97 ms 60x
All inputs
Input ordito (CUDA) MeshLib PyVista
sphere_med 133.2 µs 34.4 µs 7.97 ms

faces_left_of_contour

0.01x0.1x1xMeshLib: 115.2 µs, 0.61x ordito's timeMeshLib0.61x · 115.2 µsordito (CUDA): 190.1 µs, 1x ordito's timeordito (CUDA)1x · 190.1 µs
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
MeshLib 115.2 µs 0.61x
ordito (CUDA) 190.1 µs 1x
All inputs
Input ordito (CUDA) MeshLib
sphere_med 190.1 µs 115.2 µs

submesh_from_face_mask

0.1x1x10x100xordito (CUDA): 80.9 µs, 1x ordito's timeordito (CUDA)1x · 80.9 µstrimesh: 6.91 ms, 85x ordito's timetrimesh85x · 6.91 ms
sphere_med (81 920 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 80.9 µs 1x
trimesh 6.91 ms 85x
All inputs
Input ordito (CUDA) trimesh
sphere_med 80.9 µs 6.91 ms

submesh_from_vertex_indices

0.1x1x10x100xordito (CUDA): 89.1 µs, 1x ordito's timeordito (CUDA)1x · 89.1 µstrimesh: 8.12 ms, 91x ordito's timetrimesh91x · 8.12 ms
sphere_med (81 920 faces) · face_mode=all · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 89.1 µs 1x
trimesh 8.12 ms 91x
All inputs
Input ordito (CUDA) trimesh
sphere_med face_mode=all 89.1 µs 8.12 ms
sphere_med face_mode=any 79.5 µs 8.22 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)
submeshes_from_face_groups sphere_med 204.7 µs
submesh_from_vertex_mask sphere_med face_mode=any 72.9 µs
face_indices_from_vertex_indices sphere_med face_mode=any 69.2 µs
delete_region_keep_boundary_with_offsets sphere_med 471.1 µs
exclude_fully_selected_components parts_1024 55.9 µs