oxvox neighbour search benchmark
Every backend oxvox ships, against scipy's cKDTree and Open3D's hybrid search, over five synthetic pointcloud families and two real laser scans. Build time and query time are measured separately (warm-up, then the median of three), each index is built and queried in its own worker process, and every exact implementation's answers are checked against scipy's.
Headline: the fastest exact method per dataset family
Each cell names the exact method that won the most grid points in that column, how many of them it won, and the median factor by which it beat scipy's cKDTree there.
| Dataset | k = 1 | k = 8 | k = 64 | count_neighbours |
|---|---|---|---|---|
| clusters | kdtree 21/40, 2.7x scipy | kdtree 18/40, 2.3x scipy | Open3D hybrid 14/40, 4.9x scipy | kdtree 27/40, 3.6x scipy |
| cylinder | kdtree 14/40, 2.7x scipy | kdtree 23/40, 2.4x scipy | kdtree 22/40, 2.0x scipy | kdtree 31/40, 3.5x scipy |
| real scan A | kiddo 11/18, 3.1x scipy | kdtree 17/18, 4.5x scipy | kdtree 13/18, 2.0x scipy | kdtree 10/18, 3.5x scipy |
| real scan B | kdtree 9/18, 2.2x scipy | kdtree 14/18, 1.8x scipy | kdtree 9/18, 1.5x scipy | kdtree 8/18, 5.1x scipy |
| scene | kiddo 20/40, 2.8x scipy | kdtree 18/40, 2.5x scipy | Open3D hybrid 14/40, 5.0x scipy | kdtree 21/40, 3.3x scipy |
| sheet | kiddo 17/40, 3.5x scipy | kdtree 24/40, 2.3x scipy | kdtree 18/40, 1.9x scipy | kdtree 33/40, 3.9x scipy |
| uniform | kiddo 21/40, 2.8x scipy | kiddo 22/40, 2.6x scipy | kiddo 14/40, 2.1x scipy | kiddo 12/40, 3.2x scipy |
Query time against cloud size
One panel per dataset, log-log. Pick the neighbour count, the density and the query batch; switch the metric to see the same measurements as a speed-up over scipy, where the dotted line at 1.0 is scipy itself. A missing point is a configuration the harness skipped as projected too slow — the skip table at the bottom says which.
Where the index build stops paying for itself
Build time plus query time against the number of queries answered, for one cloud. A method with a cheaper build wins the left of the chart however fast its queries are; the crossing point is the batch size above which the better query time takes over.
Counting neighbours
The count_neighbours workload: how many search points lie within the
radius of each query, with no k bound at all. Open3D is absent because it exposes no
count query. Log-log, one panel per dataset.
How much the approximate backend misses
Recall of the graph backend against scipy's answers, on the 2048-query
correctness subsample: the fraction of the true neighbours it returned. It never
returns a point outside the radius, so what recall measures is omission, not error.
Over 276 checks its kNN recall has a median of 1.0000, a minimum of 0.9853, and is at least 0.99 on 98% of them. Counting is the workload it cannot do: its exact-count agreement falls as low as 2.3% of query points on the dense clouds, because a flood that stops at the k-th best neighbour has no reason to visit every point in the radius.
Correctness
Every exact implementation has to reproduce scipy's distances. Index sets are only compared where the distances are all distinct, since a tie lets any implementation return either point.
The exact backends reproduce scipy's neighbour counts on every check but 25 of 552, and there they differ by one neighbour in 0.2% of query points, only on real scan A, real scan B, scene at 0.05 m, 0.2 m, 0.422419 m. That is the radius boundary, not a bug: scipy counts a point at exactly the radius, oxvox does not (d² < r²), and a real scan's quantised coordinates put points exactly there.
| Implementation | Claim | Checks | Worst recall | Worst index agreement | Largest distance error | Worst count agreement |
|---|---|---|---|---|---|---|
| oxvox kdtree | exact | 276 | 1.0000 | 1.0000 | 1.91e-06 m | 0.9980 |
| oxvox voxel | exact | 276 | 1.0000 | 1.0000 | 1.91e-06 m | 0.9980 |
| oxvox hybrid | exact | 276 | 1.0000 | 1.0000 | 1.91e-06 m | 0.9980 |
| oxvox voxel (c=2) | exact | 276 | 1.0000 | 1.0000 | 1.91e-06 m | 0.9980 |
| oxvox kiddo | exact | 276 | 1.0000 | 1.0000 | 1.91e-06 m | 0.9980 |
| oxvox graph | approximate | 276 | 0.9853 | 0.6387 | 1.00e-03 m | 0.0234 |
| Open3D hybrid | exact | 276 | 1.0000 | 1.0000 | 1.91e-06 m | - |
Fastest exact method at every grid point
| Dataset | N | Points per sphere | k | Queries | Fastest exact | Query time | Margin over 2nd | vs scipy |
|---|---|---|---|---|---|---|---|---|
| clusters | 10k | 1.01 | 1 | 1k | Open3D hybrid | 128 us | 4.17x | 9.53x |
| clusters | 10k | 1.01 | 1 | 10k | kdtree | 628 us | 1.32x | 2.73x |
| clusters | 10k | 1.01 | 8 | 1k | Open3D hybrid | 257 us | 2.00x | 5.16x |
| clusters | 10k | 1.01 | 8 | 10k | Open3D hybrid | 1.0 ms | 1.07x | 2.07x |
| clusters | 10k | 1.01 | 64 | 1k | Open3D hybrid | 403 us | 1.81x | 3.77x |
| clusters | 10k | 1.01 | 64 | 10k | Open3D hybrid | 2.2 ms | 1.33x | 2.76x |
| clusters | 10k | 9.43 | 1 | 1k | Open3D hybrid | 242 us | 2.27x | 7.55x |
| clusters | 10k | 9.43 | 1 | 10k | kdtree | 698 us | 1.22x | 3.16x |
| clusters | 10k | 9.43 | 8 | 1k | Open3D hybrid | 390 us | 1.77x | 4.27x |
| clusters | 10k | 9.43 | 8 | 10k | Open3D hybrid | 1.8 ms | 1.31x | 1.50x |
| clusters | 10k | 9.43 | 64 | 1k | Open3D hybrid | 373 us | 2.29x | 5.64x |
| clusters | 10k | 9.43 | 64 | 10k | kdtree | 3.1 ms | 1.04x | 2.32x |
| clusters | 10k | 88.3 | 1 | 1k | kdtree | 480 us | 1.34x | 2.60x |
| clusters | 10k | 88.3 | 1 | 10k | kdtree | 798 us | 1.32x | 2.60x |
| clusters | 10k | 88.3 | 8 | 1k | Open3D hybrid | 452 us | 1.65x | 3.11x |
| clusters | 10k | 88.3 | 8 | 10k | kiddo | 1.8 ms | 1.26x | 1.88x |
| clusters | 10k | 88.3 | 64 | 1k | Open3D hybrid | 755 us | 2.27x | 2.52x |
| clusters | 10k | 88.3 | 64 | 10k | Open3D hybrid | 5.1 ms | 1.35x | 2.04x |
| clusters | 10k | 1.19e+03 | 1 | 1k | kdtree | 554 us | 1.09x | 3.02x |
| clusters | 10k | 1.19e+03 | 1 | 10k | kdtree | 679 us | 1.28x | 3.06x |
| clusters | 10k | 1.19e+03 | 8 | 1k | kiddo | 752 us | 1.43x | 2.46x |
| clusters | 10k | 1.19e+03 | 8 | 10k | kdtree | 1.8 ms | 1.12x | 2.27x |
| clusters | 10k | 1.19e+03 | 64 | 1k | kiddo | 2.1 ms | 1.08x | 1.16x |
| clusters | 10k | 1.19e+03 | 64 | 10k | kdtree | 8.9 ms | 1.23x | 1.51x |
| clusters | 100k | 1.02 | 1 | 1k | Open3D hybrid | 109 us | 5.02x | 12.38x |
| clusters | 100k | 1.02 | 1 | 100k | kiddo | 2.2 ms | 1.86x | 3.22x |
| clusters | 100k | 1.02 | 8 | 1k | Open3D hybrid | 134 us | 3.97x | 12.28x |
| clusters | 100k | 1.02 | 8 | 100k | kiddo | 4.8 ms | 1.57x | 2.82x |
| clusters | 100k | 1.02 | 64 | 1k | Open3D hybrid | 284 us | 2.39x | 5.72x |
| clusters | 100k | 1.02 | 64 | 100k | kiddo | 17.6 ms | 1.03x | 1.94x |
| clusters | 100k | 10.5 | 1 | 1k | Open3D hybrid | 333 us | 1.66x | 3.87x |
| clusters | 100k | 10.5 | 1 | 100k | kdtree | 2.4 ms | 2.31x | 3.34x |
| clusters | 100k | 10.5 | 8 | 1k | Open3D hybrid | 205 us | 3.84x | 7.17x |
| clusters | 100k | 10.5 | 8 | 100k | kdtree | 9.0 ms | 1.13x | 2.48x |
| clusters | 100k | 10.5 | 64 | 1k | Open3D hybrid | 338 us | 2.67x | 6.43x |
| clusters | 100k | 10.5 | 64 | 100k | kiddo | 20.9 ms | 1.09x | 2.06x |
| clusters | 100k | 97.4 | 1 | 1k | kdtree | 512 us | 1.26x | 3.05x |
| clusters | 100k | 97.4 | 1 | 100k | kdtree | 2.5 ms | 1.22x | 2.73x |
| clusters | 100k | 97.4 | 8 | 1k | Open3D hybrid | 626 us | 1.36x | 2.24x |
| clusters | 100k | 97.4 | 8 | 100k | kiddo | 12.3 ms | 1.01x | 1.70x |
| clusters | 100k | 97.4 | 64 | 1k | Open3D hybrid | 722 us | 2.67x | 2.99x |
| clusters | 100k | 97.4 | 64 | 100k | kiddo | 49.2 ms | 1.01x | 1.61x |
| clusters | 100k | 1.21e+03 | 1 | 1k | kdtree | 556 us | 1.20x | 2.45x |
| clusters | 100k | 1.21e+03 | 1 | 100k | kiddo | 2.8 ms | 1.14x | 2.36x |
| clusters | 100k | 1.21e+03 | 8 | 1k | kdtree | 881 us | 1.03x | 1.67x |
| clusters | 100k | 1.21e+03 | 8 | 100k | kdtree | 11.6 ms | 1.02x | 1.87x |
| clusters | 100k | 1.21e+03 | 64 | 1k | kiddo | 2.7 ms | 1.04x | 1.04x |
| clusters | 100k | 1.21e+03 | 64 | 100k | kiddo | 72.7 ms | 1.02x | 1.48x |
| clusters | 1M | 1.07 | 1 | 1k | Open3D hybrid | 136 us | 3.72x | 10.24x |
| clusters | 1M | 1.07 | 1 | 100k | kdtree | 3.2 ms | 1.38x | 2.70x |
| clusters | 1M | 1.07 | 1 | 1M | kiddo | 26.8 ms | 1.08x | 3.02x |
| clusters | 1M | 1.07 | 8 | 1k | Open3D hybrid | 260 us | 2.84x | 7.40x |
| clusters | 1M | 1.07 | 8 | 100k | kiddo | 5.3 ms | 1.04x | 3.43x |
| clusters | 1M | 1.07 | 8 | 1M | kiddo | 56.2 ms | 1.11x | 3.53x |
| clusters | 1M | 1.07 | 64 | 1k | Open3D hybrid | 291 us | 3.24x | 6.17x |
| clusters | 1M | 1.07 | 64 | 100k | kdtree | 19.9 ms | 1.02x | 2.06x |
| clusters | 1M | 1.07 | 64 | 1M | kdtree | 174.5 ms | 1.01x | 2.30x |
| clusters | 1M | 10.7 | 1 | 1k | Open3D hybrid | 225 us | 2.59x | 6.91x |
| clusters | 1M | 10.7 | 1 | 100k | kiddo | 6.0 ms | 1.01x | 1.49x |
| clusters | 1M | 10.7 | 1 | 1M | kdtree | 31.9 ms | 1.12x | 2.65x |
| clusters | 1M | 10.7 | 8 | 1k | Open3D hybrid | 339 us | 3.05x | 7.34x |
| clusters | 1M | 10.7 | 8 | 100k | kdtree | 10.9 ms | 1.05x | 3.14x |
| clusters | 1M | 10.7 | 8 | 1M | kdtree | 108.2 ms | 1.00x | 2.52x |
| clusters | 1M | 10.7 | 64 | 1k | Open3D hybrid | 396 us | 3.64x | 6.27x |
| clusters | 1M | 10.7 | 64 | 100k | kdtree | 15.7 ms | 1.71x | 4.09x |
| clusters | 1M | 10.7 | 64 | 1M | kdtree | 247.2 ms | 1.02x | 2.33x |
| clusters | 1M | 106 | 1 | 1k | kdtree | 576 us | 1.63x | 2.48x |
| clusters | 1M | 106 | 1 | 100k | kdtree | 5.7 ms | 1.75x | 1.75x |
| clusters | 1M | 106 | 1 | 1M | kdtree | 33.3 ms | 2.96x | 2.96x |
| clusters | 1M | 106 | 8 | 1k | kdtree | 1.1 ms | 1.21x | 1.92x |
| clusters | 1M | 106 | 8 | 100k | kdtree | 14.8 ms | 1.66x | 2.11x |
| clusters | 1M | 106 | 8 | 1M | kdtree | 132.5 ms | 1.79x | 2.38x |
| clusters | 1M | 106 | 64 | 1k | Open3D hybrid | 1.0 ms | 2.43x | 2.76x |
| clusters | 1M | 106 | 64 | 100k | kdtree | 52.6 ms | 1.26x | 2.31x |
| clusters | 1M | 106 | 64 | 1M | kdtree | 563.7 ms | 1.13x | 1.83x |
| clusters | 1M | 933 | 1 | 1k | kiddo | 596 us | 1.15x | 2.32x |
| clusters | 1M | 933 | 1 | 100k | kiddo | 3.8 ms | 1.38x | 3.11x |
| clusters | 1M | 933 | 1 | 1M | kdtree | 32.5 ms | 1.08x | 3.25x |
| clusters | 1M | 933 | 8 | 1k | kdtree | 1.2 ms | 1.12x | 1.90x |
| clusters | 1M | 933 | 8 | 100k | kdtree | 14.9 ms | 1.12x | 2.16x |
| clusters | 1M | 933 | 8 | 1M | kdtree | 141.8 ms | 1.06x | 2.35x |
| clusters | 1M | 933 | 64 | 1k | scipy cKDTree | 3.2 ms | 1.04x | 1.00x |
| clusters | 1M | 933 | 64 | 100k | kiddo | 84.3 ms | 1.05x | 1.51x |
| clusters | 1M | 933 | 64 | 1M | kiddo | 764.2 ms | 1.02x | 1.64x |
| clusters | 4M | 1.08 | 1 | 1k | Open3D hybrid | 138 us | 4.15x | 9.93x |
| clusters | 4M | 1.08 | 1 | 100k | kiddo | 3.8 ms | 1.25x | 3.46x |
| clusters | 4M | 1.08 | 1 | 1M | kiddo | 32.4 ms | 1.33x | 3.29x |
| clusters | 4M | 1.08 | 8 | 1k | Open3D hybrid | 217 us | 3.81x | 8.47x |
| clusters | 4M | 1.08 | 8 | 100k | kiddo | 9.9 ms | 1.01x | 3.11x |
| clusters | 4M | 1.08 | 8 | 1M | kiddo | 79.4 ms | 1.09x | 3.50x |
| clusters | 4M | 1.08 | 64 | 1k | Open3D hybrid | 307 us | 3.55x | 5.15x |
| clusters | 4M | 1.08 | 64 | 100k | kiddo | 24.2 ms | 1.02x | 2.08x |
| clusters | 4M | 1.08 | 64 | 1M | kiddo | 200.4 ms | 1.01x | 2.42x |
| clusters | 4M | 10.5 | 1 | 1k | Open3D hybrid | 262 us | 2.12x | 5.35x |
| clusters | 4M | 10.5 | 1 | 100k | kiddo | 4.1 ms | 1.13x | 3.31x |
| clusters | 4M | 10.5 | 1 | 1M | kiddo | 40.0 ms | 1.08x | 2.63x |
| clusters | 4M | 10.5 | 8 | 1k | Open3D hybrid | 370 us | 3.04x | 5.19x |
| clusters | 4M | 10.5 | 8 | 100k | kdtree | 15.0 ms | 1.00x | 2.61x |
| clusters | 4M | 10.5 | 8 | 1M | kiddo | 134.5 ms | 1.12x | 3.01x |
| clusters | 4M | 10.5 | 64 | 1k | Open3D hybrid | 514 us | 2.54x | 4.87x |
| clusters | 4M | 10.5 | 64 | 100k | kdtree | 33.4 ms | 1.04x | 2.31x |
| clusters | 4M | 10.5 | 64 | 1M | kiddo | 274.4 ms | 1.02x | 2.72x |
| clusters | 4M | 106 | 1 | 1k | kiddo | 649 us | 1.08x | 2.16x |
| clusters | 4M | 106 | 1 | 100k | kdtree | 4.4 ms | 1.75x | 3.15x |
| clusters | 4M | 106 | 1 | 1M | kdtree | 44.9 ms | 1.08x | 2.67x |
| clusters | 4M | 106 | 8 | 1k | kiddo | 1.3 ms | 1.02x | 1.98x |
| clusters | 4M | 106 | 8 | 100k | kdtree | 17.9 ms | 1.03x | 2.35x |
| clusters | 4M | 106 | 8 | 1M | kdtree | 169.8 ms | 1.01x | 2.60x |
| clusters | 4M | 106 | 64 | 1k | Open3D hybrid | 1.5 ms | 2.01x | 2.50x |
| clusters | 4M | 106 | 64 | 100k | kiddo | 65.8 ms | 1.00x | 2.05x |
| clusters | 4M | 106 | 64 | 1M | kiddo | 624.2 ms | 1.01x | 2.17x |
| clusters | 4M | 1.04e+03 | 1 | 1k | kdtree | 604 us | 1.97x | 2.26x |
| clusters | 4M | 1.04e+03 | 1 | 100k | kdtree | 5.0 ms | 2.20x | 2.99x |
| clusters | 4M | 1.04e+03 | 1 | 1M | kdtree | 47.6 ms | 2.52x | 2.60x |
| clusters | 4M | 1.04e+03 | 8 | 1k | kdtree | 1.3 ms | 1.55x | 1.55x |
| clusters | 4M | 1.04e+03 | 8 | 100k | kdtree | 18.7 ms | 2.60x | 2.67x |
| clusters | 4M | 1.04e+03 | 8 | 1M | kdtree | 173.6 ms | 2.57x | 2.66x |
| clusters | 4M | 1.04e+03 | 64 | 1k | scipy cKDTree | 3.8 ms | 1.12x | 1.00x |
| clusters | 4M | 1.04e+03 | 64 | 100k | kdtree | 89.6 ms | 1.57x | 1.85x |
| clusters | 4M | 1.04e+03 | 64 | 1M | kiddo | 843.4 ms | 1.02x | 1.88x |
| cylinder | 10k | 0.927 | 1 | 1k | Open3D hybrid | 198 us | 2.72x | 6.63x |
| cylinder | 10k | 0.927 | 1 | 10k | Open3D hybrid | 593 us | 1.25x | 2.53x |
| cylinder | 10k | 0.927 | 8 | 1k | Open3D hybrid | 236 us | 2.53x | 5.76x |
| cylinder | 10k | 0.927 | 8 | 10k | Open3D hybrid | 888 us | 1.11x | 2.37x |
| cylinder | 10k | 0.927 | 64 | 1k | Open3D hybrid | 292 us | 2.16x | 5.18x |
| cylinder | 10k | 0.927 | 64 | 10k | Open3D hybrid | 1.2 ms | 1.94x | 4.12x |
| cylinder | 10k | 9.81 | 1 | 1k | Open3D hybrid | 376 us | 1.43x | 3.60x |
| cylinder | 10k | 9.81 | 1 | 10k | kdtree | 1.0 ms | 1.01x | 1.52x |
| cylinder | 10k | 9.81 | 8 | 1k | Open3D hybrid | 340 us | 1.73x | 3.90x |
| cylinder | 10k | 9.81 | 8 | 10k | Open3D hybrid | 1.3 ms | 1.36x | 1.82x |
| cylinder | 10k | 9.81 | 64 | 1k | Open3D hybrid | 276 us | 3.24x | 7.51x |
| cylinder | 10k | 9.81 | 64 | 10k | Open3D hybrid | 2.2 ms | 1.44x | 2.67x |
| cylinder | 10k | 98.7 | 1 | 1k | kdtree | 664 us | 1.02x | 2.27x |
| cylinder | 10k | 98.7 | 1 | 10k | kdtree | 861 us | 1.28x | 1.86x |
| cylinder | 10k | 98.7 | 8 | 1k | Open3D hybrid | 480 us | 1.36x | 3.24x |
| cylinder | 10k | 98.7 | 8 | 10k | kdtree | 1.6 ms | 1.40x | 1.96x |
| cylinder | 10k | 98.7 | 64 | 1k | Open3D hybrid | 609 us | 2.85x | 3.36x |
| cylinder | 10k | 98.7 | 64 | 10k | Open3D hybrid | 4.7 ms | 1.24x | 1.90x |
| cylinder | 10k | 918 | 1 | 1k | kdtree | 567 us | 1.12x | 2.80x |
| cylinder | 10k | 918 | 1 | 10k | kdtree | 730 us | 1.14x | 2.35x |
| cylinder | 10k | 918 | 8 | 1k | kdtree | 645 us | 1.27x | 2.16x |
| cylinder | 10k | 918 | 8 | 10k | kdtree | 2.0 ms | 1.07x | 1.18x |
| cylinder | 10k | 918 | 64 | 1k | kdtree | 2.2 ms | 1.10x | 1.10x |
| cylinder | 10k | 918 | 64 | 10k | kdtree | 9.6 ms | 1.01x | 1.01x |
| cylinder | 100k | 0.914 | 1 | 1k | Open3D hybrid | 105 us | 4.93x | 11.91x |
| cylinder | 100k | 0.914 | 1 | 100k | Open3D hybrid | 3.4 ms | 1.12x | 1.67x |
| cylinder | 100k | 0.914 | 8 | 1k | Open3D hybrid | 141 us | 4.96x | 9.31x |
| cylinder | 100k | 0.914 | 8 | 100k | kiddo | 5.0 ms | 1.12x | 3.08x |
| cylinder | 100k | 0.914 | 64 | 1k | Open3D hybrid | 242 us | 2.37x | 6.36x |
| cylinder | 100k | 0.914 | 64 | 100k | kdtree | 17.2 ms | 1.05x | 1.80x |
| cylinder | 100k | 9.63 | 1 | 1k | Open3D hybrid | 174 us | 3.52x | 7.51x |
| cylinder | 100k | 9.63 | 1 | 100k | kiddo | 2.7 ms | 1.76x | 3.36x |
| cylinder | 100k | 9.63 | 8 | 1k | Open3D hybrid | 202 us | 3.69x | 8.29x |
| cylinder | 100k | 9.63 | 8 | 100k | kdtree | 8.6 ms | 1.12x | 1.98x |
| cylinder | 100k | 9.63 | 64 | 1k | Open3D hybrid | 361 us | 2.05x | 5.71x |
| cylinder | 100k | 9.63 | 64 | 100k | kdtree | 20.7 ms | 1.13x | 1.86x |
| cylinder | 100k | 97.5 | 1 | 1k | Open3D hybrid | 550 us | 1.10x | 2.35x |
| cylinder | 100k | 97.5 | 1 | 100k | kiddo | 3.1 ms | 1.14x | 3.18x |
| cylinder | 100k | 97.5 | 8 | 1k | Open3D hybrid | 626 us | 1.23x | 2.31x |
| cylinder | 100k | 97.5 | 8 | 100k | kdtree | 10.1 ms | 1.30x | 1.78x |
| cylinder | 100k | 97.5 | 64 | 1k | Open3D hybrid | 794 us | 2.27x | 2.37x |
| cylinder | 100k | 97.5 | 64 | 100k | kdtree | 42.0 ms | 1.31x | 1.54x |
| cylinder | 100k | 982 | 1 | 1k | kiddo | 645 us | 1.15x | 2.55x |
| cylinder | 100k | 982 | 1 | 100k | kdtree | 6.3 ms | 1.12x | 1.30x |
| cylinder | 100k | 982 | 8 | 1k | kdtree | 796 us | 1.25x | 2.12x |
| cylinder | 100k | 982 | 8 | 100k | kdtree | 11.1 ms | 1.12x | 1.35x |
| cylinder | 100k | 982 | 64 | 1k | kdtree | 2.2 ms | 1.13x | 1.13x |
| cylinder | 100k | 982 | 64 | 100k | kdtree | 59.4 ms | 1.28x | 1.28x |
| cylinder | 1M | 0.861 | 1 | 1k | Open3D hybrid | 123 us | 4.73x | 11.83x |
| cylinder | 1M | 0.861 | 1 | 100k | kiddo | 2.7 ms | 1.67x | 3.49x |
| cylinder | 1M | 0.861 | 1 | 1M | kiddo | 24.6 ms | 1.22x | 3.43x |
| cylinder | 1M | 0.861 | 8 | 1k | Open3D hybrid | 163 us | 4.37x | 9.43x |
| cylinder | 1M | 0.861 | 8 | 100k | kdtree | 6.5 ms | 1.26x | 2.50x |
| cylinder | 1M | 0.861 | 8 | 1M | kdtree | 56.6 ms | 1.36x | 2.92x |
| cylinder | 1M | 0.861 | 64 | 1k | Open3D hybrid | 279 us | 2.86x | 9.65x |
| cylinder | 1M | 0.861 | 64 | 100k | kdtree | 21.4 ms | 1.07x | 1.88x |
| cylinder | 1M | 0.861 | 64 | 1M | kdtree | 175.5 ms | 1.06x | 2.12x |
| cylinder | 1M | 9.48 | 1 | 1k | Open3D hybrid | 170 us | 4.17x | 8.28x |
| cylinder | 1M | 9.48 | 1 | 100k | kiddo | 4.9 ms | 1.14x | 1.87x |
| cylinder | 1M | 9.48 | 1 | 1M | kdtree | 31.8 ms | 1.30x | 2.66x |
| cylinder | 1M | 9.48 | 8 | 1k | Open3D hybrid | 346 us | 2.62x | 6.85x |
| cylinder | 1M | 9.48 | 8 | 100k | kdtree | 9.5 ms | 1.80x | 2.35x |
| cylinder | 1M | 9.48 | 8 | 1M | kdtree | 83.8 ms | 1.96x | 2.87x |
| cylinder | 1M | 9.48 | 64 | 1k | Open3D hybrid | 412 us | 2.63x | 6.69x |
| cylinder | 1M | 9.48 | 64 | 100k | kdtree | 24.2 ms | 1.41x | 2.00x |
| cylinder | 1M | 9.48 | 64 | 1M | kdtree | 204.1 ms | 1.39x | 2.47x |
| cylinder | 1M | 101 | 1 | 1k | Open3D hybrid | 545 us | 1.06x | 4.16x |
| cylinder | 1M | 101 | 1 | 100k | kiddo | 4.3 ms | 1.54x | 4.64x |
| cylinder | 1M | 101 | 1 | 1M | kdtree | 30.3 ms | 1.18x | 10.50x |
| cylinder | 1M | 101 | 8 | 1k | Open3D hybrid | 924 us | 1.00x | 9.28x |
| cylinder | 1M | 101 | 8 | 100k | kdtree | 10.5 ms | 1.79x | 8.07x |
| cylinder | 1M | 101 | 8 | 1M | kdtree | 98.5 ms | 1.87x | 7.43x |
| cylinder | 1M | 101 | 64 | 1k | Open3D hybrid | 925 us | 2.69x | 8.36x |
| cylinder | 1M | 101 | 64 | 100k | kdtree | 48.7 ms | 1.17x | 5.30x |
| cylinder | 1M | 101 | 64 | 1M | kdtree | 466.9 ms | 1.15x | 4.64x |
| cylinder | 1M | 1.01e+03 | 1 | 1k | kdtree | 772 us | 1.41x | 1.74x |
| cylinder | 1M | 1.01e+03 | 1 | 100k | kdtree | 4.3 ms | 1.91x | 3.13x |
| cylinder | 1M | 1.01e+03 | 1 | 1M | kdtree | 29.9 ms | 3.13x | 3.38x |
| cylinder | 1M | 1.01e+03 | 8 | 1k | kdtree | 1.0 ms | 1.92x | 1.94x |
| cylinder | 1M | 1.01e+03 | 8 | 100k | kdtree | 10.8 ms | 2.43x | 2.43x |
| cylinder | 1M | 1.01e+03 | 8 | 1M | kdtree | 104.7 ms | 1.89x | 2.56x |
| cylinder | 1M | 1.01e+03 | 64 | 1k | kdtree | 2.7 ms | 1.23x | 1.23x |
| cylinder | 1M | 1.01e+03 | 64 | 100k | kdtree | 60.1 ms | 1.64x | 1.66x |
| cylinder | 1M | 1.01e+03 | 64 | 1M | kdtree | 577.7 ms | 1.61x | 1.70x |
| cylinder | 4M | 0.93 | 1 | 1k | Open3D hybrid | 137 us | 3.86x | 10.02x |
| cylinder | 4M | 0.93 | 1 | 100k | kiddo | 3.6 ms | 1.22x | 3.85x |
| cylinder | 4M | 0.93 | 1 | 1M | kiddo | 32.8 ms | 1.26x | 3.06x |
| cylinder | 4M | 0.93 | 8 | 1k | Open3D hybrid | 181 us | 6.02x | 9.96x |
| cylinder | 4M | 0.93 | 8 | 100k | kdtree | 8.7 ms | 1.60x | 2.51x |
| cylinder | 4M | 0.93 | 8 | 1M | kdtree | 70.6 ms | 1.84x | 2.97x |
| cylinder | 4M | 0.93 | 64 | 1k | Open3D hybrid | 290 us | 3.56x | 6.08x |
| cylinder | 4M | 0.93 | 64 | 100k | kdtree | 22.8 ms | 1.24x | 2.11x |
| cylinder | 4M | 0.93 | 64 | 1M | kdtree | 189.8 ms | 1.30x | 2.30x |
| cylinder | 4M | 8.69 | 1 | 1k | Open3D hybrid | 185 us | 2.95x | 7.56x |
| cylinder | 4M | 8.69 | 1 | 100k | kiddo | 3.5 ms | 1.45x | 3.45x |
| cylinder | 4M | 8.69 | 1 | 1M | kiddo | 35.1 ms | 1.24x | 3.21x |
| cylinder | 4M | 8.69 | 8 | 1k | Open3D hybrid | 233 us | 4.47x | 8.23x |
| cylinder | 4M | 8.69 | 8 | 100k | kdtree | 12.0 ms | 2.00x | 2.44x |
| cylinder | 4M | 8.69 | 8 | 1M | kdtree | 108.2 ms | 2.08x | 2.69x |
| cylinder | 4M | 8.69 | 64 | 1k | Open3D hybrid | 445 us | 2.87x | 5.05x |
| cylinder | 4M | 8.69 | 64 | 100k | kdtree | 28.1 ms | 1.39x | 2.15x |
| cylinder | 4M | 8.69 | 64 | 1M | kdtree | 227.8 ms | 1.55x | 2.53x |
| cylinder | 4M | 98.8 | 1 | 1k | kdtree | 688 us | 1.27x | 2.88x |
| cylinder | 4M | 98.8 | 1 | 100k | kdtree | 4.7 ms | 1.98x | 3.13x |
| cylinder | 4M | 98.8 | 1 | 1M | kdtree | 44.1 ms | 2.50x | 2.55x |
| cylinder | 4M | 98.8 | 8 | 1k | kdtree | 1.1 ms | 1.07x | 1.80x |
| cylinder | 4M | 98.8 | 8 | 100k | kdtree | 13.7 ms | 1.85x | 2.63x |
| cylinder | 4M | 98.8 | 8 | 1M | kdtree | 125.9 ms | 1.91x | 2.55x |
| cylinder | 4M | 98.8 | 64 | 1k | Open3D hybrid | 1.2 ms | 2.00x | 2.15x |
| cylinder | 4M | 98.8 | 64 | 100k | kdtree | 54.3 ms | 1.21x | 2.16x |
| cylinder | 4M | 98.8 | 64 | 1M | kdtree | 507.9 ms | 1.20x | 1.99x |
| cylinder | 4M | 1e+03 | 1 | 1k | kiddo | 612 us | 1.84x | 2.43x |
| cylinder | 4M | 1e+03 | 1 | 100k | kiddo | 4.5 ms | 2.48x | 3.03x |
| cylinder | 4M | 1e+03 | 1 | 1M | kiddo | 47.1 ms | 2.32x | 2.32x |
| cylinder | 4M | 1e+03 | 8 | 1k | scipy cKDTree | 1.6 ms | 1.40x | 1.00x |
| cylinder | 4M | 1e+03 | 8 | 100k | scipy cKDTree | 30.7 ms | 1.09x | 1.00x |
| cylinder | 4M | 1e+03 | 8 | 1M | scipy cKDTree | 317.9 ms | 1.04x | 1.00x |
| cylinder | 4M | 1e+03 | 64 | 1k | scipy cKDTree | 3.0 ms | 1.82x | 1.00x |
| cylinder | 4M | 1e+03 | 64 | 100k | hybrid | 122.2 ms | 1.10x | 1.10x |
| cylinder | 4M | 1e+03 | 64 | 1M | scipy cKDTree | 1.14 s | 1.03x | 1.00x |
| real scan A | 1M | 11.2 | 1 | 1k | Open3D hybrid | 159 us | 3.76x | 8.36x |
| real scan A | 1M | 11.2 | 1 | 100k | kdtree | 3.7 ms | 1.71x | 2.76x |
| real scan A | 1M | 11.2 | 1 | 1M | kdtree | 30.7 ms | 1.87x | 2.76x |
| real scan A | 1M | 11.2 | 8 | 1k | Open3D hybrid | 307 us | 2.92x | 5.66x |
| real scan A | 1M | 11.2 | 8 | 100k | kdtree | 10.0 ms | 1.05x | 2.02x |
| real scan A | 1M | 11.2 | 8 | 1M | kdtree | 82.6 ms | 1.44x | 2.44x |
| real scan A | 1M | 11.2 | 64 | 1k | Open3D hybrid | 403 us | 3.74x | 5.15x |
| real scan A | 1M | 11.2 | 64 | 100k | kdtree | 24.9 ms | 1.18x | 2.09x |
| real scan A | 1M | 11.2 | 64 | 1M | kdtree | 225.2 ms | 1.14x | 1.98x |
| real scan A | 1M | 240 | 1 | 1k | kdtree | 586 us | 1.04x | 4.32x |
| real scan A | 1M | 240 | 1 | 100k | kdtree | 3.8 ms | 1.78x | 3.65x |
| real scan A | 1M | 240 | 1 | 1M | kdtree | 31.9 ms | 1.17x | 9.42x |
| real scan A | 1M | 240 | 8 | 1k | kdtree | 1.1 ms | 1.23x | 6.34x |
| real scan A | 1M | 240 | 8 | 100k | kdtree | 9.4 ms | 1.81x | 7.62x |
| real scan A | 1M | 240 | 8 | 1M | kdtree | 102.5 ms | 1.58x | 6.65x |
| real scan A | 1M | 240 | 64 | 1k | Open3D hybrid | 1.4 ms | 1.83x | 4.74x |
| real scan A | 1M | 240 | 64 | 100k | kdtree | 47.8 ms | 1.29x | 4.10x |
| real scan A | 1M | 240 | 64 | 1M | kdtree | 440.7 ms | 1.21x | 4.07x |
| real scan A | 1M | 2.82e+03 | 1 | 1k | kiddo | 591 us | 1.08x | 2.38x |
| real scan A | 1M | 2.82e+03 | 1 | 100k | kiddo | 3.7 ms | 1.80x | 2.67x |
| real scan A | 1M | 2.82e+03 | 1 | 1M | kdtree | 31.3 ms | 1.17x | 3.07x |
| real scan A | 1M | 2.82e+03 | 8 | 1k | kdtree | 1.1 ms | 1.23x | 2.62x |
| real scan A | 1M | 2.82e+03 | 8 | 100k | kdtree | 11.8 ms | 1.46x | 2.30x |
| real scan A | 1M | 2.82e+03 | 8 | 1M | kdtree | 114.6 ms | 1.41x | 2.10x |
| real scan A | 1M | 2.82e+03 | 64 | 1k | scipy cKDTree | 3.4 ms | 1.05x | 1.00x |
| real scan A | 1M | 2.82e+03 | 64 | 100k | kdtree | 63.6 ms | 1.23x | 1.68x |
| real scan A | 1M | 2.82e+03 | 64 | 1M | kdtree | 591.3 ms | 1.22x | 1.55x |
| real scan A | 16.3082M | 156 | 1 | 1k | kiddo | 614 us | 1.03x | 3.26x |
| real scan A | 16.3082M | 156 | 1 | 100k | kiddo | 5.0 ms | 1.19x | 3.89x |
| real scan A | 16.3082M | 156 | 1 | 1M | kiddo | 48.1 ms | 1.28x | 7.22x |
| real scan A | 16.3082M | 156 | 8 | 1k | kdtree | 1.1 ms | 1.12x | 6.61x |
| real scan A | 16.3082M | 156 | 8 | 100k | kdtree | 15.4 ms | 1.43x | 5.33x |
| real scan A | 16.3082M | 156 | 8 | 1M | kdtree | 143.1 ms | 1.56x | 5.80x |
| real scan A | 16.3082M | 156 | 64 | 1k | Open3D hybrid | 1.2 ms | 2.15x | 5.14x |
| real scan A | 16.3082M | 156 | 64 | 100k | kdtree | 44.8 ms | 1.54x | 5.14x |
| real scan A | 16.3082M | 156 | 64 | 1M | kdtree | 484.6 ms | 1.34x | 4.28x |
| real scan A | 16.3082M | 3.39e+03 | 1 | 1k | kiddo | 618 us | 1.01x | 2.40x |
| real scan A | 16.3082M | 3.39e+03 | 1 | 100k | kiddo | 5.0 ms | 1.20x | 2.41x |
| real scan A | 16.3082M | 3.39e+03 | 1 | 1M | kiddo | 56.3 ms | 1.03x | 2.17x |
| real scan A | 16.3082M | 3.39e+03 | 8 | 1k | kdtree | 1.3 ms | 1.25x | 1.25x |
| real scan A | 16.3082M | 3.39e+03 | 8 | 100k | kdtree | 17.0 ms | 1.55x | 1.60x |
| real scan A | 16.3082M | 3.39e+03 | 8 | 1M | kdtree | 159.3 ms | 1.72x | 2.27x |
| real scan A | 16.3082M | 3.39e+03 | 64 | 1k | kdtree | 3.0 ms | 1.19x | 1.19x |
| real scan A | 16.3082M | 3.39e+03 | 64 | 100k | kdtree | 72.6 ms | 1.54x | 1.71x |
| real scan A | 16.3082M | 3.39e+03 | 64 | 1M | kdtree | 658.8 ms | 1.85x | 4.22x |
| real scan A | 16.3082M | 4.05e+04 | 1 | 1k | kiddo | 584 us | 1.10x | 3.09x |
| real scan A | 16.3082M | 4.05e+04 | 1 | 100k | kiddo | 4.9 ms | 1.23x | 3.99x |
| real scan A | 16.3082M | 4.05e+04 | 1 | 1M | kiddo | 45.8 ms | 1.32x | 6.84x |
| real scan A | 16.3082M | 4.05e+04 | 8 | 1k | kdtree | 1.2 ms | 1.33x | 5.89x |
| real scan A | 16.3082M | 4.05e+04 | 8 | 100k | kdtree | 15.2 ms | 1.56x | 5.62x |
| real scan A | 16.3082M | 4.05e+04 | 8 | 1M | kdtree | 159.6 ms | 1.42x | 4.52x |
| real scan A | 16.3082M | 4.05e+04 | 64 | 1k | scipy cKDTree | 3.4 ms | 1.09x | 1.00x |
| real scan A | 16.3082M | 4.05e+04 | 64 | 100k | kdtree | 77.9 ms | 1.29x | 1.32x |
| real scan A | 16.3082M | 4.05e+04 | 64 | 1M | kdtree | 701.8 ms | 1.45x | 1.45x |
| real scan B | 1M | 12.7 | 1 | 1k | Open3D hybrid | 155 us | 4.20x | 9.92x |
| real scan B | 1M | 12.7 | 1 | 100k | kdtree | 5.0 ms | 1.08x | 1.55x |
| real scan B | 1M | 12.7 | 1 | 1M | kdtree | 29.4 ms | 1.06x | 2.60x |
| real scan B | 1M | 12.7 | 8 | 1k | Open3D hybrid | 286 us | 3.51x | 6.45x |
| real scan B | 1M | 12.7 | 8 | 100k | kdtree | 8.3 ms | 1.39x | 2.61x |
| real scan B | 1M | 12.7 | 8 | 1M | kdtree | 77.5 ms | 1.39x | 2.64x |
| real scan B | 1M | 12.7 | 64 | 1k | Open3D hybrid | 400 us | 2.79x | 4.82x |
| real scan B | 1M | 12.7 | 64 | 100k | voxel | 17.8 ms | 1.55x | 2.87x |
| real scan B | 1M | 12.7 | 64 | 1M | kdtree | 217.4 ms | 1.17x | 2.17x |
| real scan B | 1M | 242 | 1 | 1k | kiddo | 652 us | 1.29x | 2.17x |
| real scan B | 1M | 242 | 1 | 100k | kdtree | 4.6 ms | 1.49x | 2.42x |
| real scan B | 1M | 242 | 1 | 1M | kdtree | 32.0 ms | 1.08x | 3.13x |
| real scan B | 1M | 242 | 8 | 1k | kdtree | 1.0 ms | 1.23x | 2.36x |
| real scan B | 1M | 242 | 8 | 100k | kdtree | 11.0 ms | 1.28x | 2.32x |
| real scan B | 1M | 242 | 8 | 1M | kdtree | 108.5 ms | 1.34x | 2.23x |
| real scan B | 1M | 242 | 64 | 1k | Open3D hybrid | 1.4 ms | 1.61x | 1.95x |
| real scan B | 1M | 242 | 64 | 100k | kdtree | 45.1 ms | 1.27x | 2.03x |
| real scan B | 1M | 242 | 64 | 1M | kdtree | 433.1 ms | 1.22x | 2.16x |
| real scan B | 1M | 2.29e+03 | 1 | 1k | kiddo | 819 us | 1.66x | 1.66x |
| real scan B | 1M | 2.29e+03 | 1 | 100k | kiddo | 7.4 ms | 1.20x | 1.43x |
| real scan B | 1M | 2.29e+03 | 1 | 1M | kiddo | 36.3 ms | 2.24x | 2.24x |
| real scan B | 1M | 2.29e+03 | 8 | 1k | kiddo | 1.6 ms | 1.47x | 1.52x |
| real scan B | 1M | 2.29e+03 | 8 | 100k | kiddo | 17.4 ms | 1.81x | 1.81x |
| real scan B | 1M | 2.29e+03 | 8 | 1M | kiddo | 155.5 ms | 1.59x | 1.59x |
| real scan B | 1M | 2.29e+03 | 64 | 1k | scipy cKDTree | 2.7 ms | 1.28x | 1.00x |
| real scan B | 1M | 2.29e+03 | 64 | 100k | kiddo | 77.7 ms | 1.13x | 1.13x |
| real scan B | 1M | 2.29e+03 | 64 | 1M | kiddo | 693.3 ms | 1.25x | 1.25x |
| real scan B | 16.2742M | 240 | 1 | 1k | kdtree | 605 us | 1.07x | 2.23x |
| real scan B | 16.2742M | 240 | 1 | 100k | kiddo | 4.7 ms | 1.22x | 2.59x |
| real scan B | 16.2742M | 240 | 1 | 1M | kiddo | 49.3 ms | 1.18x | 2.03x |
| real scan B | 16.2742M | 240 | 8 | 1k | kdtree | 1.1 ms | 1.26x | 1.28x |
| real scan B | 16.2742M | 240 | 8 | 100k | kdtree | 15.9 ms | 1.43x | 1.76x |
| real scan B | 16.2742M | 240 | 8 | 1M | kdtree | 137.8 ms | 1.48x | 1.77x |
| real scan B | 16.2742M | 240 | 64 | 1k | Open3D hybrid | 2.1 ms | 1.17x | 1.17x |
| real scan B | 16.2742M | 240 | 64 | 100k | kdtree | 48.0 ms | 1.36x | 1.72x |
| real scan B | 16.2742M | 240 | 64 | 1M | kdtree | 465.3 ms | 1.32x | 1.53x |
| real scan B | 16.2742M | 4.54e+03 | 1 | 1k | kdtree | 679 us | 1.68x | 2.03x |
| real scan B | 16.2742M | 4.54e+03 | 1 | 100k | kdtree | 5.8 ms | 1.59x | 2.05x |
| real scan B | 16.2742M | 4.54e+03 | 1 | 1M | kdtree | 57.0 ms | 2.02x | 2.02x |
| real scan B | 16.2742M | 4.54e+03 | 8 | 1k | kdtree | 1.5 ms | 1.52x | 1.52x |
| real scan B | 16.2742M | 4.54e+03 | 8 | 100k | kdtree | 16.6 ms | 1.80x | 1.80x |
| real scan B | 16.2742M | 4.54e+03 | 8 | 1M | kdtree | 151.1 ms | 1.73x | 1.73x |
| real scan B | 16.2742M | 4.54e+03 | 64 | 1k | scipy cKDTree | 2.7 ms | 1.11x | 1.00x |
| real scan B | 16.2742M | 4.54e+03 | 64 | 100k | kdtree | 66.8 ms | 1.53x | 1.53x |
| real scan B | 16.2742M | 4.54e+03 | 64 | 1M | kdtree | 634.1 ms | 1.40x | 1.44x |
| real scan B | 16.2742M | 4.08e+04 | 1 | 1k | kdtree | 582 us | 1.02x | 2.46x |
| real scan B | 16.2742M | 4.08e+04 | 1 | 100k | kiddo | 4.9 ms | 1.26x | 2.73x |
| real scan B | 16.2742M | 4.08e+04 | 1 | 1M | kiddo | 46.3 ms | 1.28x | 2.38x |
| real scan B | 16.2742M | 4.08e+04 | 8 | 1k | kdtree | 1.4 ms | 1.06x | 1.37x |
| real scan B | 16.2742M | 4.08e+04 | 8 | 100k | kdtree | 16.7 ms | 1.42x | 1.82x |
| real scan B | 16.2742M | 4.08e+04 | 8 | 1M | kdtree | 161.1 ms | 1.49x | 1.64x |
| real scan B | 16.2742M | 4.08e+04 | 64 | 1k | scipy cKDTree | 2.3 ms | 1.50x | 1.00x |
| real scan B | 16.2742M | 4.08e+04 | 64 | 100k | kdtree | 70.5 ms | 1.38x | 1.48x |
| real scan B | 16.2742M | 4.08e+04 | 64 | 1M | kdtree | 700.2 ms | 1.41x | 1.41x |
| scene | 10k | 0.987 | 1 | 1k | Open3D hybrid | 160 us | 3.40x | 9.62x |
| scene | 10k | 0.987 | 1 | 10k | Open3D hybrid | 381 us | 1.89x | 5.43x |
| scene | 10k | 0.987 | 8 | 1k | Open3D hybrid | 99 us | 4.98x | 17.33x |
| scene | 10k | 0.987 | 8 | 10k | Open3D hybrid | 770 us | 1.13x | 3.27x |
| scene | 10k | 0.987 | 64 | 1k | Open3D hybrid | 195 us | 2.88x | 8.25x |
| scene | 10k | 0.987 | 64 | 10k | Open3D hybrid | 1.7 ms | 1.54x | 2.52x |
| scene | 10k | 8.28 | 1 | 1k | Open3D hybrid | 266 us | 1.90x | 4.73x |
| scene | 10k | 8.28 | 1 | 10k | kdtree | 797 us | 1.05x | 2.68x |
| scene | 10k | 8.28 | 8 | 1k | Open3D hybrid | 137 us | 4.32x | 10.02x |
| scene | 10k | 8.28 | 8 | 10k | Open3D hybrid | 1.2 ms | 1.11x | 2.17x |
| scene | 10k | 8.28 | 64 | 1k | Open3D hybrid | 286 us | 3.06x | 7.26x |
| scene | 10k | 8.28 | 64 | 10k | Open3D hybrid | 2.1 ms | 1.44x | 2.55x |
| scene | 10k | 117 | 1 | 1k | kdtree | 665 us | 1.06x | 2.63x |
| scene | 10k | 117 | 1 | 10k | kdtree | 649 us | 1.06x | 3.02x |
| scene | 10k | 117 | 8 | 1k | Open3D hybrid | 595 us | 1.02x | 3.16x |
| scene | 10k | 117 | 8 | 10k | kiddo | 1.3 ms | 1.39x | 2.21x |
| scene | 10k | 117 | 64 | 1k | Open3D hybrid | 716 us | 1.90x | 2.41x |
| scene | 10k | 117 | 64 | 10k | kiddo | 5.9 ms | 1.03x | 1.33x |
| scene | 10k | 1.14e+03 | 1 | 1k | kdtree | 588 us | 1.31x | 2.24x |
| scene | 10k | 1.14e+03 | 1 | 10k | kdtree | 595 us | 1.53x | 2.61x |
| scene | 10k | 1.14e+03 | 8 | 1k | kdtree | 804 us | 1.08x | 1.84x |
| scene | 10k | 1.14e+03 | 8 | 10k | kiddo | 1.8 ms | 1.43x | 1.71x |
| scene | 10k | 1.14e+03 | 64 | 1k | kiddo | 2.4 ms | 1.04x | 1.07x |
| scene | 10k | 1.14e+03 | 64 | 10k | kiddo | 9.4 ms | 1.02x | 1.14x |
| scene | 100k | 1.1 | 1 | 1k | Open3D hybrid | 93 us | 5.58x | 14.49x |
| scene | 100k | 1.1 | 1 | 100k | Open3D hybrid | 3.5 ms | 1.17x | 2.43x |
| scene | 100k | 1.1 | 8 | 1k | Open3D hybrid | 127 us | 4.56x | 10.78x |
| scene | 100k | 1.1 | 8 | 100k | Open3D hybrid | 5.6 ms | 1.44x | 2.41x |
| scene | 100k | 1.1 | 64 | 1k | Open3D hybrid | 320 us | 1.86x | 4.95x |
| scene | 100k | 1.1 | 64 | 100k | kiddo | 17.7 ms | 1.10x | 1.79x |
| scene | 100k | 10.3 | 1 | 1k | Open3D hybrid | 192 us | 2.76x | 6.86x |
| scene | 100k | 10.3 | 1 | 100k | kiddo | 4.3 ms | 1.08x | 2.18x |
| scene | 100k | 10.3 | 8 | 1k | Open3D hybrid | 207 us | 3.33x | 7.10x |
| scene | 100k | 10.3 | 8 | 100k | kdtree | 7.5 ms | 1.28x | 1.70x |
| scene | 100k | 10.3 | 64 | 1k | Open3D hybrid | 358 us | 2.59x | 5.11x |
| scene | 100k | 10.3 | 64 | 100k | kdtree | 21.2 ms | 1.07x | 1.95x |
| scene | 100k | 90 | 1 | 1k | kdtree | 656 us | 1.06x | 2.07x |
| scene | 100k | 90 | 1 | 100k | kdtree | 4.2 ms | 1.20x | 1.49x |
| scene | 100k | 90 | 8 | 1k | Open3D hybrid | 762 us | 1.01x | 2.00x |
| scene | 100k | 90 | 8 | 100k | kiddo | 9.0 ms | 1.41x | 1.95x |
| scene | 100k | 90 | 64 | 1k | Open3D hybrid | 968 us | 1.54x | 1.90x |
| scene | 100k | 90 | 64 | 100k | kdtree | 29.5 ms | 1.09x | 1.86x |
| scene | 100k | 1.26e+03 | 1 | 1k | kdtree | 600 us | 1.11x | 2.73x |
| scene | 100k | 1.26e+03 | 1 | 100k | kiddo | 4.5 ms | 1.00x | 1.38x |
| scene | 100k | 1.26e+03 | 8 | 1k | kiddo | 868 us | 1.01x | 2.14x |
| scene | 100k | 1.26e+03 | 8 | 100k | kiddo | 10.9 ms | 1.00x | 1.88x |
| scene | 100k | 1.26e+03 | 64 | 1k | kiddo | 1.6 ms | 1.06x | 1.33x |
| scene | 100k | 1.26e+03 | 64 | 100k | kiddo | 38.6 ms | 1.13x | 1.61x |
| scene | 1M | 0.95 | 1 | 1k | Open3D hybrid | 111 us | 4.82x | 12.73x |
| scene | 1M | 0.95 | 1 | 100k | kiddo | 2.8 ms | 2.12x | 2.80x |
| scene | 1M | 0.95 | 1 | 1M | kiddo | 23.9 ms | 1.12x | 3.50x |
| scene | 1M | 0.95 | 8 | 1k | Open3D hybrid | 155 us | 4.56x | 12.53x |
| scene | 1M | 0.95 | 8 | 100k | kiddo | 7.1 ms | 1.08x | 2.48x |
| scene | 1M | 0.95 | 8 | 1M | kdtree | 60.0 ms | 1.13x | 2.50x |
| scene | 1M | 0.95 | 64 | 1k | Open3D hybrid | 271 us | 2.79x | 7.62x |
| scene | 1M | 0.95 | 64 | 100k | kiddo | 19.4 ms | 1.20x | 1.94x |
| scene | 1M | 0.95 | 64 | 1M | kdtree | 171.8 ms | 1.02x | 2.14x |
| scene | 1M | 9.49 | 1 | 1k | Open3D hybrid | 166 us | 3.40x | 8.80x |
| scene | 1M | 9.49 | 1 | 100k | kiddo | 3.2 ms | 1.71x | 3.80x |
| scene | 1M | 9.49 | 1 | 1M | kiddo | 26.8 ms | 2.22x | 3.19x |
| scene | 1M | 9.49 | 8 | 1k | Open3D hybrid | 323 us | 2.90x | 6.69x |
| scene | 1M | 9.49 | 8 | 100k | kiddo | 9.8 ms | 1.23x | 1.96x |
| scene | 1M | 9.49 | 8 | 1M | kiddo | 83.7 ms | 1.55x | 2.49x |
| scene | 1M | 9.49 | 64 | 1k | Open3D hybrid | 402 us | 3.17x | 7.08x |
| scene | 1M | 9.49 | 64 | 100k | kiddo | 28.1 ms | 1.15x | 1.88x |
| scene | 1M | 9.49 | 64 | 1M | kiddo | 234.7 ms | 1.14x | 1.95x |
| scene | 1M | 92.3 | 1 | 1k | kiddo | 584 us | 1.02x | 2.47x |
| scene | 1M | 92.3 | 1 | 100k | kiddo | 3.3 ms | 1.29x | 2.63x |
| scene | 1M | 92.3 | 1 | 1M | kiddo | 27.6 ms | 1.10x | 3.07x |
| scene | 1M | 92.3 | 8 | 1k | kdtree | 962 us | 1.15x | 2.28x |
| scene | 1M | 92.3 | 8 | 100k | kdtree | 9.8 ms | 1.24x | 2.49x |
| scene | 1M | 92.3 | 8 | 1M | kdtree | 90.1 ms | 1.31x | 2.63x |
| scene | 1M | 92.3 | 64 | 1k | Open3D hybrid | 831 us | 1.95x | 2.57x |
| scene | 1M | 92.3 | 64 | 100k | kdtree | 39.2 ms | 1.02x | 1.58x |
| scene | 1M | 92.3 | 64 | 1M | kdtree | 340.5 ms | 1.05x | 1.76x |
| scene | 1M | 799 | 1 | 1k | kiddo | 609 us | 1.02x | 2.50x |
| scene | 1M | 799 | 1 | 100k | kdtree | 5.7 ms | 1.03x | 1.89x |
| scene | 1M | 799 | 1 | 1M | kdtree | 29.7 ms | 1.01x | 2.92x |
| scene | 1M | 799 | 8 | 1k | kdtree | 1.0 ms | 1.14x | 2.37x |
| scene | 1M | 799 | 8 | 100k | kdtree | 9.7 ms | 1.62x | 3.25x |
| scene | 1M | 799 | 8 | 1M | kdtree | 104.5 ms | 1.45x | 2.65x |
| scene | 1M | 799 | 64 | 1k | scipy cKDTree | 2.3 ms | 1.06x | 1.00x |
| scene | 1M | 799 | 64 | 100k | kdtree | 42.2 ms | 1.16x | 1.92x |
| scene | 1M | 799 | 64 | 1M | kdtree | 388.5 ms | 1.15x | 1.81x |
| scene | 4M | 0.979 | 1 | 1k | Open3D hybrid | 132 us | 4.42x | 17.28x |
| scene | 4M | 0.979 | 1 | 100k | kiddo | 3.4 ms | 1.32x | 5.78x |
| scene | 4M | 0.979 | 1 | 1M | kiddo | 30.3 ms | 1.41x | 9.90x |
| scene | 4M | 0.979 | 8 | 1k | Open3D hybrid | 151 us | 5.40x | 42.88x |
| scene | 4M | 0.979 | 8 | 100k | kdtree | 7.5 ms | 1.28x | 7.62x |
| scene | 4M | 0.979 | 8 | 1M | kiddo | 77.4 ms | 1.09x | 7.46x |
| scene | 4M | 0.979 | 64 | 1k | Open3D hybrid | 285 us | 3.87x | 19.46x |
| scene | 4M | 0.979 | 64 | 100k | kdtree | 21.9 ms | 1.27x | 4.57x |
| scene | 4M | 0.979 | 64 | 1M | kdtree | 185.8 ms | 1.03x | 4.75x |
| scene | 4M | 9.65 | 1 | 1k | Open3D hybrid | 246 us | 2.26x | 5.73x |
| scene | 4M | 9.65 | 1 | 100k | kiddo | 3.9 ms | 1.37x | 3.18x |
| scene | 4M | 9.65 | 1 | 1M | kiddo | 35.9 ms | 1.22x | 2.78x |
| scene | 4M | 9.65 | 8 | 1k | Open3D hybrid | 283 us | 3.03x | 6.43x |
| scene | 4M | 9.65 | 8 | 100k | kdtree | 10.6 ms | 1.15x | 2.52x |
| scene | 4M | 9.65 | 8 | 1M | kdtree | 98.3 ms | 1.10x | 2.83x |
| scene | 4M | 9.65 | 64 | 1k | Open3D hybrid | 438 us | 3.14x | 4.54x |
| scene | 4M | 9.65 | 64 | 100k | kdtree | 29.7 ms | 1.10x | 2.05x |
| scene | 4M | 9.65 | 64 | 1M | kdtree | 243.1 ms | 1.10x | 2.44x |
| scene | 4M | 95.1 | 1 | 1k | kiddo | 539 us | 1.31x | 2.71x |
| scene | 4M | 95.1 | 1 | 100k | kiddo | 4.2 ms | 1.18x | 3.17x |
| scene | 4M | 95.1 | 1 | 1M | kiddo | 37.3 ms | 1.26x | 2.77x |
| scene | 4M | 95.1 | 8 | 1k | kdtree | 1.1 ms | 1.09x | 1.72x |
| scene | 4M | 95.1 | 8 | 100k | kdtree | 14.9 ms | 1.14x | 2.47x |
| scene | 4M | 95.1 | 8 | 1M | kdtree | 131.8 ms | 1.21x | 2.40x |
| scene | 4M | 95.1 | 64 | 1k | Open3D hybrid | 1.3 ms | 1.70x | 2.18x |
| scene | 4M | 95.1 | 64 | 100k | kiddo | 44.8 ms | 1.02x | 1.75x |
| scene | 4M | 95.1 | 64 | 1M | kiddo | 420.1 ms | 1.13x | 4.59x |
| scene | 4M | 901 | 1 | 1k | kiddo | 569 us | 1.06x | 2.58x |
| scene | 4M | 901 | 1 | 100k | kiddo | 4.5 ms | 1.04x | 2.50x |
| scene | 4M | 901 | 1 | 1M | kiddo | 43.2 ms | 1.02x | 2.44x |
| scene | 4M | 901 | 8 | 1k | kdtree | 1.1 ms | 1.51x | 1.86x |
| scene | 4M | 901 | 8 | 100k | kdtree | 15.2 ms | 1.56x | 2.64x |
| scene | 4M | 901 | 8 | 1M | kdtree | 143.3 ms | 1.59x | 2.69x |
| scene | 4M | 901 | 64 | 1k | kdtree | 2.6 ms | 1.06x | 1.06x |
| scene | 4M | 901 | 64 | 100k | kdtree | 47.5 ms | 1.28x | 2.04x |
| scene | 4M | 901 | 64 | 1M | kdtree | 447.4 ms | 1.32x | 2.12x |
| sheet | 10k | 0.958 | 1 | 1k | Open3D hybrid | 94 us | 5.73x | 21.47x |
| sheet | 10k | 0.958 | 1 | 10k | Open3D hybrid | 295 us | 2.61x | 6.41x |
| sheet | 10k | 0.958 | 8 | 1k | Open3D hybrid | 123 us | 4.36x | 12.82x |
| sheet | 10k | 0.958 | 8 | 10k | Open3D hybrid | 517 us | 2.16x | 4.29x |
| sheet | 10k | 0.958 | 64 | 1k | Open3D hybrid | 241 us | 2.86x | 6.89x |
| sheet | 10k | 0.958 | 64 | 10k | Open3D hybrid | 1.3 ms | 1.84x | 3.91x |
| sheet | 10k | 11.7 | 1 | 1k | Open3D hybrid | 136 us | 4.29x | 11.35x |
| sheet | 10k | 11.7 | 1 | 10k | Open3D hybrid | 687 us | 1.03x | 2.38x |
| sheet | 10k | 11.7 | 8 | 1k | Open3D hybrid | 185 us | 3.85x | 8.24x |
| sheet | 10k | 11.7 | 8 | 10k | Open3D hybrid | 896 us | 2.09x | 3.42x |
| sheet | 10k | 11.7 | 64 | 1k | Open3D hybrid | 299 us | 2.97x | 5.35x |
| sheet | 10k | 11.7 | 64 | 10k | Open3D hybrid | 1.9 ms | 2.00x | 2.36x |
| sheet | 10k | 101 | 1 | 1k | kiddo | 586 us | 1.10x | 2.22x |
| sheet | 10k | 101 | 1 | 10k | kiddo | 712 us | 1.55x | 2.13x |
| sheet | 10k | 101 | 8 | 1k | Open3D hybrid | 400 us | 1.78x | 3.38x |
| sheet | 10k | 101 | 8 | 10k | kdtree | 1.7 ms | 1.44x | 1.44x |
| sheet | 10k | 101 | 64 | 1k | Open3D hybrid | 580 us | 3.21x | 3.60x |
| sheet | 10k | 101 | 64 | 10k | Open3D hybrid | 4.5 ms | 1.60x | 2.01x |
| sheet | 10k | 986 | 1 | 1k | kiddo | 532 us | 1.02x | 3.08x |
| sheet | 10k | 986 | 1 | 10k | kdtree | 684 us | 1.32x | 2.41x |
| sheet | 10k | 986 | 8 | 1k | kdtree | 772 us | 1.11x | 1.72x |
| sheet | 10k | 986 | 8 | 10k | kdtree | 1.6 ms | 1.71x | 2.06x |
| sheet | 10k | 986 | 64 | 1k | scipy cKDTree | 1.7 ms | 1.28x | 1.00x |
| sheet | 10k | 986 | 64 | 10k | scipy cKDTree | 8.7 ms | 1.08x | 1.00x |
| sheet | 100k | 0.95 | 1 | 1k | Open3D hybrid | 290 us | 1.84x | 6.15x |
| sheet | 100k | 0.95 | 1 | 100k | kiddo | 3.2 ms | 1.17x | 2.55x |
| sheet | 100k | 0.95 | 8 | 1k | Open3D hybrid | 183 us | 3.08x | 7.34x |
| sheet | 100k | 0.95 | 8 | 100k | Open3D hybrid | 5.5 ms | 1.02x | 2.63x |
| sheet | 100k | 0.95 | 64 | 1k | Open3D hybrid | 269 us | 2.52x | 6.29x |
| sheet | 100k | 0.95 | 64 | 100k | hybrid | 18.9 ms | 1.01x | 1.78x |
| sheet | 100k | 9.9 | 1 | 1k | Open3D hybrid | 154 us | 3.91x | 8.94x |
| sheet | 100k | 9.9 | 1 | 100k | kdtree | 4.1 ms | 1.31x | 2.03x |
| sheet | 100k | 9.9 | 8 | 1k | Open3D hybrid | 213 us | 3.53x | 6.69x |
| sheet | 100k | 9.9 | 8 | 100k | Open3D hybrid | 9.6 ms | 1.05x | 1.70x |
| sheet | 100k | 9.9 | 64 | 1k | Open3D hybrid | 329 us | 2.73x | 4.86x |
| sheet | 100k | 9.9 | 64 | 100k | kdtree | 10.5 ms | 1.95x | 3.85x |
| sheet | 100k | 118 | 1 | 1k | Open3D hybrid | 592 us | 1.23x | 2.20x |
| sheet | 100k | 118 | 1 | 100k | kdtree | 4.0 ms | 1.81x | 1.81x |
| sheet | 100k | 118 | 8 | 1k | Open3D hybrid | 674 us | 1.53x | 2.09x |
| sheet | 100k | 118 | 8 | 100k | kdtree | 12.1 ms | 1.27x | 1.27x |
| sheet | 100k | 118 | 64 | 1k | Open3D hybrid | 955 us | 1.81x | 1.81x |
| sheet | 100k | 118 | 64 | 100k | voxel | 56.4 ms | 1.05x | 1.26x |
| sheet | 100k | 807 | 1 | 1k | kiddo | 769 us | 1.87x | 6.37x |
| sheet | 100k | 807 | 1 | 100k | kiddo | 3.3 ms | 2.08x | 5.56x |
| sheet | 100k | 807 | 8 | 1k | kiddo | 1.2 ms | 1.73x | 4.29x |
| sheet | 100k | 807 | 8 | 100k | kiddo | 14.7 ms | 1.40x | 2.97x |
| sheet | 100k | 807 | 64 | 1k | kiddo | 3.3 ms | 1.62x | 2.03x |
| sheet | 100k | 807 | 64 | 100k | kiddo | 79.7 ms | 1.62x | 2.78x |
| sheet | 1M | 0.914 | 1 | 1k | Open3D hybrid | 118 us | 4.79x | 11.59x |
| sheet | 1M | 0.914 | 1 | 100k | kiddo | 2.7 ms | 1.85x | 3.76x |
| sheet | 1M | 0.914 | 1 | 1M | kiddo | 24.2 ms | 1.17x | 3.61x |
| sheet | 1M | 0.914 | 8 | 1k | Open3D hybrid | 189 us | 4.14x | 9.54x |
| sheet | 1M | 0.914 | 8 | 100k | kdtree | 4.8 ms | 1.69x | 3.51x |
| sheet | 1M | 0.914 | 8 | 1M | kdtree | 56.3 ms | 1.32x | 2.80x |
| sheet | 1M | 0.914 | 64 | 1k | Open3D hybrid | 313 us | 3.00x | 6.31x |
| sheet | 1M | 0.914 | 64 | 100k | kdtree | 20.5 ms | 1.13x | 1.81x |
| sheet | 1M | 0.914 | 64 | 1M | kdtree | 162.2 ms | 1.15x | 2.28x |
| sheet | 1M | 9.72 | 1 | 1k | Open3D hybrid | 180 us | 3.09x | 7.92x |
| sheet | 1M | 9.72 | 1 | 100k | kiddo | 4.0 ms | 1.28x | 2.48x |
| sheet | 1M | 9.72 | 1 | 1M | kiddo | 27.9 ms | 1.13x | 3.88x |
| sheet | 1M | 9.72 | 8 | 1k | Open3D hybrid | 256 us | 3.77x | 9.74x |
| sheet | 1M | 9.72 | 8 | 100k | kdtree | 9.9 ms | 1.38x | 2.23x |
| sheet | 1M | 9.72 | 8 | 1M | kdtree | 87.0 ms | 1.59x | 2.65x |
| sheet | 1M | 9.72 | 64 | 1k | Open3D hybrid | 504 us | 2.81x | 4.83x |
| sheet | 1M | 9.72 | 64 | 100k | kdtree | 24.2 ms | 1.26x | 1.93x |
| sheet | 1M | 9.72 | 64 | 1M | kdtree | 196.5 ms | 1.33x | 2.30x |
| sheet | 1M | 98.9 | 1 | 1k | Open3D hybrid | 607 us | 1.06x | 2.52x |
| sheet | 1M | 98.9 | 1 | 100k | kdtree | 5.3 ms | 1.37x | 2.25x |
| sheet | 1M | 98.9 | 1 | 1M | kdtree | 29.7 ms | 2.62x | 3.01x |
| sheet | 1M | 98.9 | 8 | 1k | kdtree | 894 us | 1.11x | 2.20x |
| sheet | 1M | 98.9 | 8 | 100k | kdtree | 10.0 ms | 1.80x | 2.32x |
| sheet | 1M | 98.9 | 8 | 1M | kdtree | 94.2 ms | 2.00x | 2.69x |
| sheet | 1M | 98.9 | 64 | 1k | Open3D hybrid | 811 us | 3.50x | 3.96x |
| sheet | 1M | 98.9 | 64 | 100k | kdtree | 53.2 ms | 1.09x | 1.72x |
| sheet | 1M | 98.9 | 64 | 1M | kdtree | 488.4 ms | 1.09x | 1.84x |
| sheet | 1M | 1.18e+03 | 1 | 1k | kiddo | 603 us | 1.10x | 3.50x |
| sheet | 1M | 1.18e+03 | 1 | 100k | kdtree | 4.4 ms | 1.19x | 3.80x |
| sheet | 1M | 1.18e+03 | 1 | 1M | kiddo | 31.0 ms | 1.16x | 7.86x |
| sheet | 1M | 1.18e+03 | 8 | 1k | kdtree | 1.1 ms | 1.38x | 2.21x |
| sheet | 1M | 1.18e+03 | 8 | 100k | kdtree | 12.0 ms | 1.77x | 2.34x |
| sheet | 1M | 1.18e+03 | 8 | 1M | kdtree | 105.5 ms | 1.85x | 2.33x |
| sheet | 1M | 1.18e+03 | 64 | 1k | kdtree | 3.2 ms | 1.01x | 1.01x |
| sheet | 1M | 1.18e+03 | 64 | 100k | kdtree | 61.1 ms | 1.50x | 1.71x |
| sheet | 1M | 1.18e+03 | 64 | 1M | kdtree | 626.0 ms | 1.43x | 1.47x |
| sheet | 4M | 0.941 | 1 | 1k | Open3D hybrid | 130 us | 4.28x | 10.78x |
| sheet | 4M | 0.941 | 1 | 100k | kiddo | 3.5 ms | 1.27x | 3.83x |
| sheet | 4M | 0.941 | 1 | 1M | kiddo | 31.8 ms | 1.31x | 3.49x |
| sheet | 4M | 0.941 | 8 | 1k | Open3D hybrid | 176 us | 4.47x | 10.42x |
| sheet | 4M | 0.941 | 8 | 100k | kdtree | 9.2 ms | 1.31x | 2.37x |
| sheet | 4M | 0.941 | 8 | 1M | kdtree | 76.3 ms | 1.31x | 2.49x |
| sheet | 4M | 0.941 | 64 | 1k | Open3D hybrid | 322 us | 3.05x | 5.28x |
| sheet | 4M | 0.941 | 64 | 100k | kdtree | 21.8 ms | 1.16x | 2.13x |
| sheet | 4M | 0.941 | 64 | 1M | kdtree | 190.8 ms | 1.15x | 2.27x |
| sheet | 4M | 9.41 | 1 | 1k | Open3D hybrid | 253 us | 2.32x | 5.63x |
| sheet | 4M | 9.41 | 1 | 100k | kiddo | 4.7 ms | 1.12x | 2.44x |
| sheet | 4M | 9.41 | 1 | 1M | kiddo | 36.8 ms | 1.24x | 3.25x |
| sheet | 4M | 9.41 | 8 | 1k | Open3D hybrid | 1.2 ms | 1.03x | 1.31x |
| sheet | 4M | 9.41 | 8 | 100k | kdtree | 11.6 ms | 1.64x | 2.50x |
| sheet | 4M | 9.41 | 8 | 1M | kdtree | 106.8 ms | 1.66x | 2.34x |
| sheet | 4M | 9.41 | 64 | 1k | Open3D hybrid | 1.2 ms | 1.21x | 1.56x |
| sheet | 4M | 9.41 | 64 | 100k | kdtree | 28.6 ms | 1.18x | 2.06x |
| sheet | 4M | 9.41 | 64 | 1M | kdtree | 219.2 ms | 1.39x | 2.46x |
| sheet | 4M | 99 | 1 | 1k | kiddo | 591 us | 1.08x | 2.79x |
| sheet | 4M | 99 | 1 | 100k | kdtree | 5.0 ms | 1.03x | 2.97x |
| sheet | 4M | 99 | 1 | 1M | kdtree | 44.0 ms | 1.07x | 2.66x |
| sheet | 4M | 99 | 8 | 1k | kdtree | 1.0 ms | 1.62x | 1.82x |
| sheet | 4M | 99 | 8 | 100k | kdtree | 11.3 ms | 2.06x | 2.87x |
| sheet | 4M | 99 | 8 | 1M | kdtree | 116.9 ms | 1.88x | 2.49x |
| sheet | 4M | 99 | 64 | 1k | Open3D hybrid | 1.2 ms | 2.51x | 2.57x |
| sheet | 4M | 99 | 64 | 100k | kdtree | 57.1 ms | 1.08x | 2.11x |
| sheet | 4M | 99 | 64 | 1M | kdtree | 533.4 ms | 1.09x | 1.95x |
| sheet | 4M | 999 | 1 | 1k | kdtree | 642 us | 1.71x | 2.33x |
| sheet | 4M | 999 | 1 | 100k | kdtree | 5.1 ms | 2.11x | 2.36x |
| sheet | 4M | 999 | 1 | 1M | kdtree | 46.8 ms | 2.46x | 2.46x |
| sheet | 4M | 999 | 8 | 1k | kdtree | 1.0 ms | 1.90x | 1.90x |
| sheet | 4M | 999 | 8 | 100k | kdtree | 12.7 ms | 2.24x | 2.24x |
| sheet | 4M | 999 | 8 | 1M | kdtree | 118.5 ms | 2.37x | 2.37x |
| sheet | 4M | 999 | 64 | 1k | scipy cKDTree | 2.9 ms | 1.00x | 1.00x |
| sheet | 4M | 999 | 64 | 100k | kdtree | 64.8 ms | 1.65x | 1.65x |
| sheet | 4M | 999 | 64 | 1M | kdtree | 602.3 ms | 1.76x | 1.76x |
| uniform | 10k | 1.01 | 1 | 1k | Open3D hybrid | 215 us | 2.52x | 5.72x |
| uniform | 10k | 1.01 | 1 | 10k | kdtree | 861 us | 1.25x | 1.92x |
| uniform | 10k | 1.01 | 8 | 1k | Open3D hybrid | 109 us | 5.09x | 12.50x |
| uniform | 10k | 1.01 | 8 | 10k | Open3D hybrid | 756 us | 1.81x | 3.35x |
| uniform | 10k | 1.01 | 64 | 1k | Open3D hybrid | 232 us | 2.78x | 6.29x |
| uniform | 10k | 1.01 | 64 | 10k | kiddo | 2.3 ms | 1.12x | 2.57x |
| uniform | 10k | 9.24 | 1 | 1k | Open3D hybrid | 141 us | 4.40x | 9.54x |
| uniform | 10k | 9.24 | 1 | 10k | kdtree | 789 us | 1.32x | 2.06x |
| uniform | 10k | 9.24 | 8 | 1k | Open3D hybrid | 339 us | 2.11x | 4.06x |
| uniform | 10k | 9.24 | 8 | 10k | kdtree | 1.5 ms | 1.23x | 1.96x |
| uniform | 10k | 9.24 | 64 | 1k | Open3D hybrid | 435 us | 1.95x | 3.45x |
| uniform | 10k | 9.24 | 64 | 10k | kdtree | 3.0 ms | 1.16x | 2.21x |
| uniform | 10k | 84.8 | 1 | 1k | kiddo | 574 us | 1.05x | 2.14x |
| uniform | 10k | 84.8 | 1 | 10k | kdtree | 850 us | 1.12x | 1.85x |
| uniform | 10k | 84.8 | 8 | 1k | Open3D hybrid | 468 us | 1.64x | 3.18x |
| uniform | 10k | 84.8 | 8 | 10k | kiddo | 2.2 ms | 1.18x | 1.27x |
| uniform | 10k | 84.8 | 64 | 1k | Open3D hybrid | 512 us | 3.74x | 4.30x |
| uniform | 10k | 84.8 | 64 | 10k | Open3D hybrid | 5.2 ms | 1.48x | 2.79x |
| uniform | 10k | 699 | 1 | 1k | kiddo | 571 us | 1.02x | 2.32x |
| uniform | 10k | 699 | 1 | 10k | kiddo | 676 us | 1.44x | 2.57x |
| uniform | 10k | 699 | 8 | 1k | kiddo | 763 us | 1.32x | 2.00x |
| uniform | 10k | 699 | 8 | 10k | kiddo | 1.4 ms | 1.97x | 2.59x |
| uniform | 10k | 699 | 64 | 1k | scipy cKDTree | 2.3 ms | 1.11x | 1.00x |
| uniform | 10k | 699 | 64 | 10k | kdtree | 9.7 ms | 1.14x | 1.57x |
| uniform | 100k | 0.99 | 1 | 1k | Open3D hybrid | 142 us | 3.83x | 11.67x |
| uniform | 100k | 0.99 | 1 | 100k | kiddo | 2.1 ms | 2.03x | 3.44x |
| uniform | 100k | 0.99 | 8 | 1k | Open3D hybrid | 152 us | 3.92x | 8.72x |
| uniform | 100k | 0.99 | 8 | 100k | kiddo | 5.6 ms | 1.34x | 2.60x |
| uniform | 100k | 0.99 | 64 | 1k | Open3D hybrid | 257 us | 2.58x | 6.26x |
| uniform | 100k | 0.99 | 64 | 100k | kdtree | 9.3 ms | 2.02x | 3.80x |
| uniform | 100k | 9.72 | 1 | 1k | Open3D hybrid | 183 us | 3.28x | 7.16x |
| uniform | 100k | 9.72 | 1 | 100k | kiddo | 2.8 ms | 1.60x | 3.77x |
| uniform | 100k | 9.72 | 8 | 1k | Open3D hybrid | 224 us | 3.37x | 6.77x |
| uniform | 100k | 9.72 | 8 | 100k | kiddo | 10.4 ms | 1.20x | 1.82x |
| uniform | 100k | 9.72 | 64 | 1k | Open3D hybrid | 315 us | 3.34x | 5.46x |
| uniform | 100k | 9.72 | 64 | 100k | kiddo | 20.6 ms | 1.03x | 2.01x |
| uniform | 100k | 92.8 | 1 | 1k | kdtree | 506 us | 1.27x | 2.80x |
| uniform | 100k | 92.8 | 1 | 100k | kdtree | 4.4 ms | 1.27x | 1.98x |
| uniform | 100k | 92.8 | 8 | 1k | Open3D hybrid | 623 us | 1.40x | 2.53x |
| uniform | 100k | 92.8 | 8 | 100k | kiddo | 10.0 ms | 1.17x | 2.32x |
| uniform | 100k | 92.8 | 64 | 1k | Open3D hybrid | 757 us | 2.70x | 3.35x |
| uniform | 100k | 92.8 | 64 | 100k | kiddo | 52.4 ms | 1.02x | 1.83x |
| uniform | 100k | 849 | 1 | 1k | kdtree | 493 us | 1.29x | 2.74x |
| uniform | 100k | 849 | 1 | 100k | kiddo | 2.8 ms | 1.75x | 2.49x |
| uniform | 100k | 849 | 8 | 1k | kiddo | 906 us | 1.20x | 1.74x |
| uniform | 100k | 849 | 8 | 100k | kdtree | 11.6 ms | 1.01x | 2.03x |
| uniform | 100k | 849 | 64 | 1k | kiddo | 2.7 ms | 1.03x | 1.03x |
| uniform | 100k | 849 | 64 | 100k | kiddo | 71.0 ms | 1.09x | 1.29x |
| uniform | 1M | 1.01 | 1 | 1k | Open3D hybrid | 118 us | 4.24x | 12.17x |
| uniform | 1M | 1.01 | 1 | 100k | kiddo | 2.9 ms | 1.27x | 3.00x |
| uniform | 1M | 1.01 | 1 | 1M | kiddo | 27.0 ms | 1.10x | 3.44x |
| uniform | 1M | 1.01 | 8 | 1k | Open3D hybrid | 241 us | 3.34x | 10.22x |
| uniform | 1M | 1.01 | 8 | 100k | kiddo | 5.1 ms | 1.49x | 3.60x |
| uniform | 1M | 1.01 | 8 | 1M | kiddo | 64.0 ms | 1.00x | 2.84x |
| uniform | 1M | 1.01 | 64 | 1k | Open3D hybrid | 296 us | 3.85x | 6.38x |
| uniform | 1M | 1.01 | 64 | 100k | kiddo | 20.3 ms | 1.08x | 2.10x |
| uniform | 1M | 1.01 | 64 | 1M | kdtree | 177.9 ms | 1.02x | 2.41x |
| uniform | 1M | 9.81 | 1 | 1k | Open3D hybrid | 202 us | 2.59x | 9.43x |
| uniform | 1M | 9.81 | 1 | 100k | kdtree | 3.8 ms | 1.43x | 2.54x |
| uniform | 1M | 9.81 | 1 | 1M | kdtree | 33.9 ms | 1.14x | 2.60x |
| uniform | 1M | 9.81 | 8 | 1k | Open3D hybrid | 302 us | 3.71x | 6.82x |
| uniform | 1M | 9.81 | 8 | 100k | kiddo | 10.0 ms | 1.31x | 2.86x |
| uniform | 1M | 9.81 | 8 | 1M | kiddo | 113.4 ms | 1.08x | 2.60x |
| uniform | 1M | 9.81 | 64 | 1k | Open3D hybrid | 418 us | 2.71x | 6.24x |
| uniform | 1M | 9.81 | 64 | 100k | kdtree | 26.8 ms | 1.02x | 2.37x |
| uniform | 1M | 9.81 | 64 | 1M | kiddo | 238.3 ms | 1.06x | 2.52x |
| uniform | 1M | 96.4 | 1 | 1k | Open3D hybrid | 704 us | 1.00x | 2.29x |
| uniform | 1M | 96.4 | 1 | 100k | kdtree | 8.1 ms | 1.00x | 1.21x |
| uniform | 1M | 96.4 | 1 | 1M | kiddo | 35.3 ms | 2.24x | 2.67x |
| uniform | 1M | 96.4 | 8 | 1k | Open3D hybrid | 1.2 ms | 1.04x | 1.71x |
| uniform | 1M | 96.4 | 8 | 100k | kiddo | 14.7 ms | 1.69x | 2.55x |
| uniform | 1M | 96.4 | 8 | 1M | kiddo | 142.0 ms | 1.64x | 2.28x |
| uniform | 1M | 96.4 | 64 | 1k | Open3D hybrid | 817 us | 3.12x | 4.14x |
| uniform | 1M | 96.4 | 64 | 100k | kiddo | 68.1 ms | 1.03x | 1.77x |
| uniform | 1M | 96.4 | 64 | 1M | hybrid | 618.9 ms | 1.03x | 1.97x |
| uniform | 1M | 927 | 1 | 1k | kiddo | 899 us | 1.40x | 1.82x |
| uniform | 1M | 927 | 1 | 100k | kiddo | 6.9 ms | 1.29x | 1.51x |
| uniform | 1M | 927 | 1 | 1M | kiddo | 32.8 ms | 2.44x | 3.20x |
| uniform | 1M | 927 | 8 | 1k | kiddo | 1.2 ms | 2.20x | 2.24x |
| uniform | 1M | 927 | 8 | 100k | kiddo | 14.7 ms | 2.49x | 2.78x |
| uniform | 1M | 927 | 8 | 1M | kiddo | 138.8 ms | 2.47x | 2.47x |
| uniform | 1M | 927 | 64 | 1k | scipy cKDTree | 3.2 ms | 1.90x | 1.00x |
| uniform | 1M | 927 | 64 | 100k | kiddo | 81.7 ms | 1.72x | 1.72x |
| uniform | 1M | 927 | 64 | 1M | kiddo | 776.6 ms | 1.05x | 1.65x |
| uniform | 4M | 0.985 | 1 | 1k | Open3D hybrid | 135 us | 4.39x | 11.44x |
| uniform | 4M | 0.985 | 1 | 100k | kiddo | 3.6 ms | 1.85x | 3.55x |
| uniform | 4M | 0.985 | 1 | 4M | kiddo | 137.1 ms | 1.30x | 3.25x |
| uniform | 4M | 0.985 | 8 | 1k | Open3D hybrid | 373 us | 2.39x | 5.67x |
| uniform | 4M | 0.985 | 8 | 100k | kiddo | 9.5 ms | 1.19x | 2.78x |
| uniform | 4M | 0.985 | 8 | 4M | kiddo | 309.6 ms | 1.20x | 3.33x |
| uniform | 4M | 0.985 | 64 | 1k | Open3D hybrid | 329 us | 3.23x | 5.57x |
| uniform | 4M | 0.985 | 64 | 100k | kiddo | 17.4 ms | 1.40x | 3.07x |
| uniform | 4M | 0.985 | 64 | 4M | kdtree | 773.3 ms | 1.02x | 3.30x |
| uniform | 4M | 9.87 | 1 | 1k | Open3D hybrid | 476 us | 1.17x | 2.94x |
| uniform | 4M | 9.87 | 1 | 100k | kiddo | 4.2 ms | 1.16x | 3.47x |
| uniform | 4M | 9.87 | 1 | 4M | kiddo | 164.4 ms | 1.12x | 2.66x |
| uniform | 4M | 9.87 | 8 | 1k | Open3D hybrid | 468 us | 2.45x | 4.15x |
| uniform | 4M | 9.87 | 8 | 100k | kiddo | 15.0 ms | 1.16x | 3.28x |
| uniform | 4M | 9.87 | 8 | 4M | kiddo | 545.3 ms | 1.44x | 3.02x |
| uniform | 4M | 9.87 | 64 | 1k | Open3D hybrid | 513 us | 2.92x | 3.94x |
| uniform | 4M | 9.87 | 64 | 100k | kiddo | 28.7 ms | 1.01x | 2.90x |
| uniform | 4M | 9.87 | 64 | 4M | kiddo | 1.03 s | 1.46x | 2.82x |
| uniform | 4M | 98.7 | 1 | 1k | kiddo | 600 us | 1.07x | 2.41x |
| uniform | 4M | 98.7 | 1 | 100k | kiddo | 5.3 ms | 1.09x | 2.90x |
| uniform | 4M | 98.7 | 1 | 4M | kdtree | 201.5 ms | 1.01x | 2.31x |
| uniform | 4M | 98.7 | 8 | 1k | kdtree | 1.3 ms | 1.05x | 1.79x |
| uniform | 4M | 98.7 | 8 | 100k | kiddo | 18.3 ms | 1.06x | 2.58x |
| uniform | 4M | 98.7 | 8 | 4M | kiddo | 667.2 ms | 1.11x | 2.65x |
| uniform | 4M | 98.7 | 64 | 1k | Open3D hybrid | 1.4 ms | 2.24x | 2.35x |
| uniform | 4M | 98.7 | 64 | 100k | voxel | 70.8 ms | 1.08x | 2.24x |
| uniform | 4M | 98.7 | 64 | 4M | kiddo | 2.78 s | 1.03x | 2.20x |
| uniform | 4M | 958 | 1 | 1k | kiddo | 606 us | 1.01x | 2.44x |
| uniform | 4M | 958 | 1 | 100k | kiddo | 4.2 ms | 1.13x | 2.96x |
| uniform | 4M | 958 | 1 | 4M | kiddo | 168.2 ms | 1.08x | 2.81x |
| uniform | 4M | 958 | 8 | 1k | kdtree | 1.3 ms | 1.29x | 1.29x |
| uniform | 4M | 958 | 8 | 100k | kdtree | 17.8 ms | 1.77x | 2.72x |
| uniform | 4M | 958 | 8 | 4M | kdtree | 689.8 ms | 2.70x | 2.70x |
| uniform | 4M | 958 | 64 | 1k | scipy cKDTree | 4.1 ms | 1.09x | 1.00x |
| uniform | 4M | 958 | 64 | 100k | kdtree | 89.9 ms | 1.95x | 1.99x |
| uniform | 4M | 958 | 64 | 4M | kdtree | 3.48 s | 1.81x | 5.21x |
What was not measured
35 configurations were skipped, each because the harness projected it past a time or memory limit (see the run's options in the results JSON).
| Dataset | N | Radius column | Implementation | Workload | k | Queries | Status | Reason |
|---|---|---|---|---|---|---|---|---|
| clusters | 4M | ~1000 per sphere | open3d | find | 64 | 1M | skipped | projected 25 s from the smaller batch |
| clusters | 4M | ~1000 per sphere | oxvox-graph | count | - | 1M | skipped | projected 28 s from the smaller batch |
| real scan A | 1M | r = 0.2 m | open3d | find | 8 | 1M | skipped | projected 37 s from the smaller batch |
| real scan A | 1M | r = 0.2 m | open3d | find | 64 | 1M | skipped | projected 38 s from the smaller batch |
| real scan A | 16.3082M | r = 0.05 m | oxvox-graph | count | - | 1M | skipped | projected 37 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | scipy | count | - | 1M | skipped | projected 34 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | open3d | find | 1 | 100k | skipped | projected 24 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | open3d | find | 1 | 1M | skipped | projected 241 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | open3d | find | 8 | 100k | skipped | projected 25 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | open3d | find | 8 | 1M | skipped | projected 247 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | open3d | find | 64 | 100k | skipped | projected 26 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | open3d | find | 64 | 1M | skipped | projected 255 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | oxvox-graph | count | - | 100k | skipped | projected 76 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | oxvox-graph | count | - | 1M | skipped | projected 760 s from the smaller batch |
| real scan A | 16.3082M | r = 0.2 m | oxvox-kiddo | count | - | 1M | skipped | projected 31 s from the smaller batch |
| real scan B | 16.2742M | r = 0.05 m | open3d | find | 1 | 1M | skipped | projected 20 s from the smaller batch |
| real scan B | 16.2742M | r = 0.05 m | open3d | find | 8 | 1M | skipped | projected 22 s from the smaller batch |
| real scan B | 16.2742M | r = 0.05 m | open3d | find | 64 | 1M | skipped | projected 22 s from the smaller batch |
| real scan B | 16.2742M | r = 0.05 m | oxvox-graph | count | - | 1M | skipped | projected 105 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | scipy | count | - | 1M | skipped | projected 32 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | open3d | find | 1 | 100k | skipped | projected 24 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | open3d | find | 1 | 1M | skipped | projected 240 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | open3d | find | 8 | 100k | skipped | projected 25 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | open3d | find | 8 | 1M | skipped | projected 245 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | open3d | find | 64 | 100k | skipped | projected 25 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | open3d | find | 64 | 1M | skipped | projected 251 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | oxvox-voxel | find | 64 | 1M | skipped | projected 24 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | oxvox-voxel-c2 | count | - | 1M | skipped | projected 20 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | oxvox-hybrid | count | - | 1M | skipped | projected 20 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | oxvox-graph | count | - | 100k | skipped | projected 70 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | oxvox-graph | count | - | 1M | skipped | projected 704 s from the smaller batch |
| real scan B | 16.2742M | r = 0.2 m | oxvox-kiddo | count | - | 1M | skipped | projected 27 s from the smaller batch |
| sheet | 4M | ~1000 per sphere | oxvox-graph | count | - | 1M | skipped | projected 22 s from the smaller batch |
| uniform | 4M | ~1000 per sphere | scipy | count | - | 4M | skipped | projected 71 s from the smaller batch |
| uniform | 4M | ~1000 per sphere | open3d | find | 1 | 4M | skipped | projected 84 s from the smaller batch |