Skip to content

edges

Benchmarks of ordito.edges 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)1xPyTorch3D (CUDA): 7x ordito's time, geometric mean over 3 functions; slower than ordito in 3PyTorch3D (CUDA)7x (3)MeshLib: 100x ordito's time, geometric mean over 2 functions; slower than ordito in 2MeshLib100x (2)potpourri3d: 136x ordito's time, geometric mean over 1 functions; slower than ordito in 1potpourri3d136x (1)PyVista: 213x ordito's time, geometric mean over 2 functions; slower than ordito in 2PyVista213x (2)libigl: 215x ordito's time, geometric mean over 9 functions; slower than ordito in 9libigl215x (9)trimesh: 295x ordito's time, geometric mean over 11 functions; slower than ordito in 11trimesh295x (11)NumPy: 769x ordito's time, geometric mean over 1 functions; slower than ordito in 1NumPy769x (1)MeshLab: 1054x ordito's time, geometric mean over 1 functions; slower than ordito in 1MeshLab1054x (1)
Time relative to ordito (CUDA), geometric mean over the edges 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) 7x 3 3
MeshLib 100x 2 2
potpourri3d 136x 1 1
PyVista 213x 2 2
libigl 215x 9 9
trimesh 295x 11 11
NumPy 769x 1 1
MeshLab 1054x 1 1

faces_to_edges

0.1x1x10x100x1000x10000xordito (CUDA): 27.9 µs, 1x ordito's timeordito (CUDA)1x · 27.9 µstrimesh: 18.96 ms, 679x ordito's timetrimesh679x · 18.96 mslibigl: 36.30 ms, 1300x ordito's timelibigl1300x · 36.30 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 27.9 µs 1x
trimesh 18.96 ms 679x
libigl 36.30 ms 1300x
All inputs
Input ordito (CUDA) libigl trimesh
sphere_small 21.7 µs
bunny_decimated 20.6 µs 76.6 µs 93.1 µs
bunny 17.2 µs 577.2 µs 539.3 µs
dragon 27.9 µs 36.30 ms 18.96 ms
happy_buddha 41.8 µs 47.72 ms 25.55 ms
lucy 727.8 µs 1.456 s 677.33 ms

faces_to_edges_sorted

0.1x1x10x100x1000x10000xordito (CUDA): 34.2 µs, 1x ordito's timeordito (CUDA)1x · 34.2 µstrimesh: 69.23 ms, 2023x ordito's timetrimesh2023x · 69.23 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 34.2 µs 1x
trimesh 69.23 ms 2023x
All inputs
Input ordito (CUDA) trimesh
sphere_small 21.5 µs
bunny_decimated 15.5 µs 911.9 µs
bunny 20.1 µs 4.12 ms
dragon 34.2 µs 69.23 ms
happy_buddha 57.8 µs 87.09 ms
lucy 723.4 µs 2.286 s

edges_face

0.1x1x10x100xordito (CUDA): 24.4 µs, 1x ordito's timeordito (CUDA)1x · 24.4 µstrimesh: 2.20 ms, 90x ordito's timetrimesh90x · 2.20 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 24.4 µs 1x
trimesh 2.20 ms 90x
All inputs
Input ordito (CUDA) trimesh
sphere_small 19.2 µs
bunny_decimated 17.0 µs 47.6 µs
bunny 19.6 µs 200.0 µs
dragon 24.4 µs 2.20 ms
happy_buddha 30.3 µs 2.55 ms
lucy 223.4 µs 153.32 ms

edges_unique

0.1x1x10x100x1000xordito (CUDA): 472.6 µs, 1x ordito's timeordito (CUDA)1x · 472.6 µsPyTorch3D (CUDA): 3.52 ms, 7.5x ordito's timePyTorch3D (CUDA)7.5x · 3.52 mstrimesh: 243.05 ms, 514x ordito's timetrimesh514x · 243.05 msPyVista: 268.58 ms, 568x ordito's timePyVista568x · 268.58 mslibigl: 330.25 ms, 699x ordito's timelibigl699x · 330.25 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 472.6 µs 1x
PyTorch3D (CUDA) 3.52 ms 7.5x
trimesh 243.05 ms 514x
PyVista 268.58 ms 568x
libigl 330.25 ms 699x
All inputs
Input ordito (CUDA) libigl PyTorch3D (CUDA) PyVista trimesh
sphere_small 110.8 µs
bunny_decimated 126.9 µs 7.50 ms 1.23 ms 3.61 ms 3.63 ms
bunny 129.4 µs 30.72 ms 1.10 ms 15.16 ms 16.59 ms
dragon 472.6 µs 330.25 ms 3.52 ms 268.58 ms 243.05 ms
happy_buddha 530.7 µs 397.05 ms 4.30 ms 323.25 ms 269.86 ms
lucy 19.59 ms 14.083 s 116.93 ms 10.581 s 9.298 s

edges_unique_auto_nv

0.1x1x10x100x1000xordito (CUDA): 466.6 µs, 1x ordito's timeordito (CUDA)1x · 466.6 µsPyTorch3D (CUDA): 3.52 ms, 7.5x ordito's timePyTorch3D (CUDA)7.5x · 3.52 mstrimesh: 242.62 ms, 520x ordito's timetrimesh520x · 242.62 msPyVista: 269.54 ms, 578x ordito's timePyVista578x · 269.54 mslibigl: 325.99 ms, 699x ordito's timelibigl699x · 325.99 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 466.6 µs 1x
PyTorch3D (CUDA) 3.52 ms 7.5x
trimesh 242.62 ms 520x
PyVista 269.54 ms 578x
libigl 325.99 ms 699x
All inputs
Input ordito (CUDA) libigl PyTorch3D (CUDA) PyVista trimesh
sphere_small 164.4 µs
bunny_decimated 162.9 µs 7.57 ms 1.03 ms 3.58 ms 3.51 ms
bunny 204.6 µs 30.75 ms 1.11 ms 15.43 ms 16.24 ms
dragon 466.6 µs 325.99 ms 3.52 ms 269.54 ms 242.62 ms
happy_buddha 539.9 µs 434.96 ms 4.29 ms 325.55 ms 267.83 ms
lucy 19.56 ms 13.843 s 117.96 ms 10.618 s 9.352 s

edges_unique_manifold

0.1x1x10x100x1000xordito (CUDA): 205.5 µs, 1x ordito's timeordito (CUDA)1x · 205.5 µslibigl: 120.71 ms, 587x ordito's timelibigl587x · 120.71 mspotpourri3d: 156.31 ms, 761x ordito's timepotpourri3d761x · 156.31 ms
sphere_large (327 680 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 205.5 µs 1x
libigl 120.71 ms 587x
potpourri3d 156.31 ms 761x
All inputs
Input ordito (CUDA) libigl potpourri3d
sphere_small 102.7 µs 6.04 ms 1.51 ms
sphere_med 130.2 µs 30.60 ms 29.39 ms
sphere_large 205.5 µs 120.71 ms 156.31 ms

edges_unique_inverse

0.1x1x10x100x1000xordito (CUDA): 524.8 µs, 1x ordito's timeordito (CUDA)1x · 524.8 µsPyTorch3D (CUDA): 3.53 ms, 6.7x ordito's timePyTorch3D (CUDA)6.7x · 3.53 mstrimesh: 207.59 ms, 396x ordito's timetrimesh396x · 207.59 mslibigl: 300.99 ms, 574x ordito's timelibigl574x · 300.99 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 524.8 µs 1x
PyTorch3D (CUDA) 3.53 ms 6.7x
trimesh 207.59 ms 396x
libigl 300.99 ms 574x
All inputs
Input ordito (CUDA) libigl PyTorch3D (CUDA) trimesh
sphere_small 126.6 µs
bunny_decimated 147.9 µs 7.62 ms 999.6 µs 3.45 ms
bunny 158.6 µs 30.75 ms 1.12 ms 15.34 ms
dragon 524.8 µs 300.99 ms 3.53 ms 207.59 ms
happy_buddha 661.1 µs 374.92 ms 4.31 ms 246.51 ms
lucy 20.17 ms 13.962 s 117.89 ms 8.579 s

edges_unique_length

0.1x1x10x100x1000xordito (CUDA): 429.4 µs, 1x ordito's timeordito (CUDA)1x · 429.4 µsMeshLib: 52.90 ms, 123x ordito's timeMeshLib123x · 52.90 mstrimesh: 280.47 ms, 653x ordito's timetrimesh653x · 280.47 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 429.4 µs 1x
MeshLib 52.90 ms 123x
trimesh 280.47 ms 653x
All inputs
Input ordito (CUDA) MeshLib trimesh
sphere_small 106.1 µs
bunny_decimated 107.9 µs 7.87 ms 4.37 ms
bunny 140.9 µs 9.35 ms 19.71 ms
dragon 429.4 µs 52.90 ms 280.47 ms
happy_buddha 500.6 µs 64.92 ms 329.56 ms
lucy 18.70 ms 3.370 s 11.033 s

edges_length

0.1x1x10x100x1000x10000xordito (CUDA): 27.7 µs, 1x ordito's timeordito (CUDA)1x · 27.7 µslibigl: 8.94 ms, 323x ordito's timelibigl323x · 8.94 mstrimesh: 126.55 ms, 4573x ordito's timetrimesh4573x · 126.55 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 27.7 µs 1x
libigl 8.94 ms 323x
trimesh 126.55 ms 4573x
All inputs
Input ordito (CUDA) libigl trimesh
sphere_small 29.6 µs
bunny_decimated 50.1 µs 1.43 ms 1.54 ms
bunny 19.9 µs 1.94 ms 6.94 ms
dragon 27.7 µs 8.94 ms 126.55 ms
happy_buddha 36.4 µs 10.18 ms 157.88 ms
lucy 603.4 µs 736.88 ms 4.508 s

mean_edge_length

0.1x1x10x100x1000x10000xordito (CUDA): 55.4 µs, 1x ordito's timeordito (CUDA)1x · 55.4 µslibigl: 9.37 ms, 169x ordito's timelibigl169x · 9.37 mstrimesh: 126.75 ms, 2286x ordito's timetrimesh2286x · 126.75 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 55.4 µs 1x
libigl 9.37 ms 169x
trimesh 126.75 ms 2286x
All inputs
Input ordito (CUDA) libigl trimesh
sphere_small 71.2 µs
bunny_decimated 52.5 µs 1.47 ms 1.88 ms
bunny 64.3 µs 2.01 ms 6.40 ms
dragon 55.4 µs 9.37 ms 126.75 ms
happy_buddha 77.2 µs 24.93 ms 159.29 ms
lucy 553.3 µs 841.32 ms 4.261 s

mean_unique_edge_length

0.1x1x10x100x1000x10000xordito (CUDA): 464.0 µs, 1x ordito's timeordito (CUDA)1x · 464.0 µsMeshLib: 52.18 ms, 112x ordito's timeMeshLib112x · 52.18 mslibigl: 163.27 ms, 352x ordito's timelibigl352x · 163.27 msMeshLab: 1.204 s, 2594x ordito's timeMeshLab2594x · 1.204 strimesh: 1.413 s, 3045x ordito's timetrimesh3045x · 1.413 s
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 464.0 µs 1x
MeshLib 52.18 ms 112x
libigl 163.27 ms 352x
MeshLab 1.204 s 2594x
trimesh 1.413 s 3045x
All inputs
Input ordito (CUDA) libigl MeshLab MeshLib trimesh
sphere_small 124.7 µs
bunny_decimated 132.5 µs 1.68 ms 17.69 ms 7.79 ms 22.24 ms
bunny 153.4 µs 6.96 ms 79.72 ms 8.65 ms 102.47 ms
dragon 464.0 µs 163.27 ms 1.204 s 52.18 ms 1.413 s
happy_buddha 611.1 µs 203.15 ms 1.583 s 64.27 ms 1.777 s
lucy 16.88 ms 5.244 s 47.068 s 3.146 s 55.059 s

face_edge_lengths

0.1x1x10x100x1000xordito (CUDA): 29.9 µs, 1x ordito's timeordito (CUDA)1x · 29.9 µslibigl: 8.88 ms, 297x ordito's timelibigl297x · 8.88 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 29.9 µs 1x
libigl 8.88 ms 297x
All inputs
Input ordito (CUDA) libigl
sphere_small 30.2 µs
bunny_decimated 26.5 µs 1.42 ms
bunny 19.0 µs 1.93 ms
dragon 29.9 µs 8.88 ms
happy_buddha 40.5 µs 10.41 ms
lucy 575.8 µs 708.98 ms

unique_edge_count

0.1x1x10x100x1000xordito (CUDA): 518.1 µs, 1x ordito's timeordito (CUDA)1x · 518.1 µstrimesh: 235.16 ms, 454x ordito's timetrimesh454x · 235.16 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 518.1 µs 1x
trimesh 235.16 ms 454x
All inputs
Input ordito (CUDA) trimesh
sphere_small 107.2 µs
bunny_decimated 101.3 µs 3.70 ms
bunny 132.2 µs 16.66 ms
dragon 518.1 µs 235.16 ms
happy_buddha 610.4 µs 295.22 ms
lucy 17.29 ms 9.042 s

edge_length_sum

0.1x1x10x100x1000x10000xordito (CUDA): 51.9 µs, 1x ordito's timeordito (CUDA)1x · 51.9 µsNumPy: 134.64 ms, 2593x ordito's timeNumPy2593x · 134.64 ms
dragon (871 414 faces) · time relative to ordito, log scale
Values
Library Median Relative to ordito
ordito (CUDA) 51.9 µs 1x
NumPy 134.64 ms 2593x
All inputs
Input ordito (CUDA) NumPy
sphere_small 61.2 µs
bunny_decimated 50.2 µs 1.60 ms
bunny 45.4 µs 6.99 ms
dragon 51.9 µs 134.64 ms
happy_buddha 64.6 µs 159.76 ms
lucy 530.4 µs 4.534 s