Per-solve time of solve(native=True) (shipped _ssik_native C++ backend)
vs solve(native=False) (annotated-Cython Python path), same reachable poses
per arm (200 timed + 10 warm-up), bootstrap mean +/- 95% CI,
respect_limits=False. Regenerate with uv run python scripts/bench_native.py.
- Machine: macOS-26.6.2-arm64-arm-64bit-Mach-O / Python 3.13.3
- Arms: 72 native | median speedup: 16.5x | range: 1.5x - 108.2x
- Timing is machine-dependent; FK residuals are not. Solution sets are
gated by
tests/test_native_dispatch.py, not here.
| Arm | Python (ms) | Native (ms) | Speedup | Native FK | Sols |
|---|---|---|---|---|---|
| ur3e_ik | 2.00 ± 0.12 | 0.019 ± 0.000 | 108.2x | 1.2e-08 | 4 |
| ur7e_ik | 1.76 ± 0.12 | 0.018 ± 0.000 | 97.7x | 1.2e-08 | 4 |
| ur18_ik | 1.58 ± 0.11 | 0.017 ± 0.000 | 95.5x | 1.2e-08 | 4 |
| ur5_ik | 1.69 ± 0.13 | 0.018 ± 0.000 | 95.4x | 1.2e-08 | 4 |
| ur5e_ik | 1.72 ± 0.12 | 0.018 ± 0.001 | 94.6x | 1.2e-08 | 4 |
| ur10e_ik | 1.50 ± 0.11 | 0.016 ± 0.000 | 91.9x | 1.2e-08 | 4 |
| ur15_ik | 1.50 ± 0.11 | 0.017 ± 0.000 | 89.9x | 7.6e-11 | 4 |
| ur16e_ik | 1.58 ± 0.11 | 0.018 ± 0.001 | 88.3x | 1.2e-08 | 4 |
| ur12e_ik | 1.53 ± 0.11 | 0.017 ± 0.000 | 87.9x | 1.2e-08 | 4 |
| ur30_ik | 1.45 ± 0.11 | 0.018 ± 0.001 | 82.3x | 1.2e-08 | 4 |
| ur20_ik | 1.40 ± 0.11 | 0.017 ± 0.001 | 82.2x | 1.2e-08 | 4 |
| z1_ik | 1.32 ± 0.12 | 0.016 ± 0.000 | 81.7x | 5.1e-15 | 4 |
| cr5_ik | 0.71 ± 0.05 | 0.012 ± 0.000 | 58.6x | 3.2e-11 | 4 |
| standardbots_core_ik | 0.67 ± 0.06 | 0.012 ± 0.000 | 57.4x | 1.0e-08 | 4 |
| nova5_ik | 0.69 ± 0.05 | 0.012 ± 0.000 | 57.4x | 6.7e-08 | 4 |
| standardbots_spark_ik | 0.68 ± 0.06 | 0.012 ± 0.000 | 55.7x | 8.3e-08 | 4 |
| standardbots_thor_ik | 0.62 ± 0.05 | 0.012 ± 0.000 | 51.6x | 8.3e-09 | 4 |
| j2s6s300_ik | 0.36 ± 0.00 | 0.013 ± 0.000 | 28.4x | 5.6e-08 | 8 |
| fr3_ik | 2.95 ± 0.08 | 0.117 ± 0.004 | 25.1x | 6.0e-12 | 84 |
| franka_panda_ik | 2.94 ± 0.08 | 0.120 ± 0.004 | 24.4x | 6.0e-12 | 84 |
| openarm_right_ik | 4.54 ± 0.02 | 0.194 ± 0.001 | 23.5x | 3.3e-15 | 128 |
| r1pro_right_ik | 4.55 ± 0.02 | 0.195 ± 0.001 | 23.4x | 3.7e-15 | 128 |
| iiwa7_ik | 4.69 ± 0.02 | 0.201 ± 0.001 | 23.4x | 2.4e-13 | 128 |
| openarm_left_ik | 4.53 ± 0.02 | 0.195 ± 0.002 | 23.2x | 2.6e-14 | 128 |
| r1pro_left_ik | 4.53 ± 0.02 | 0.198 ± 0.001 | 22.9x | 3.6e-15 | 128 |
| xmatepro7_ik | 4.93 ± 0.02 | 0.220 ± 0.003 | 22.5x | 1.0e-12 | 128 |
| iiwa14_ik | 4.80 ± 0.02 | 0.214 ± 0.001 | 22.4x | 3.7e-14 | 128 |
| xarm7_ik | 7.26 ± 0.13 | 0.342 ± 0.003 | 21.2x | 1.0e-10 | 96 |
| kr210_r2700_ik | 0.33 ± 0.00 | 0.017 ± 0.000 | 19.6x | 4.0e-09 | 4 |
| hh020_ik | 0.26 ± 0.00 | 0.014 ± 0.000 | 18.3x | 9.2e-08 | 8 |
| rs007n_ik | 0.22 ± 0.00 | 0.013 ± 0.000 | 17.5x | 2.6e-09 | 8 |
| puma560_ik | 0.22 ± 0.00 | 0.013 ± 0.000 | 17.0x | 8.9e-09 | 8 |
| widowx250s_ik | 0.22 ± 0.00 | 0.013 ± 0.000 | 16.9x | 9.0e-09 | 8 |
| fanuc_m710ic_ik | 0.22 ± 0.00 | 0.013 ± 0.000 | 16.7x | 8.9e-09 | 8 |
| vs060_ik | 0.21 ± 0.00 | 0.013 ± 0.000 | 16.6x | 2.5e-09 | 8 |
| lrmate200id_ik | 0.22 ± 0.00 | 0.013 ± 0.000 | 16.6x | 2.5e-09 | 8 |
| irb120_ik | 0.21 ± 0.00 | 0.013 ± 0.000 | 16.4x | 8.9e-09 | 8 |
| gp8_ik | 0.21 ± 0.00 | 0.013 ± 0.000 | 16.2x | 8.9e-09 | 8 |
| viperx300s_ik | 0.21 ± 0.00 | 0.013 ± 0.000 | 16.0x | 2.6e-09 | 8 |
| rv4fr_ik | 0.21 ± 0.00 | 0.013 ± 0.001 | 15.6x | 8.9e-09 | 8 |
| rm75_ik | 8.56 ± 0.12 | 0.557 ± 0.003 | 15.4x | 1.0e-12 | 128 |
| irb1600_ik | 0.21 ± 0.00 | 0.014 ± 0.000 | 15.2x | 2.5e-09 | 8 |
| r2000ic210l_ik | 0.21 ± 0.00 | 0.014 ± 0.000 | 15.1x | 2.5e-09 | 8 |
| irb6700_ik | 0.21 ± 0.00 | 0.015 ± 0.001 | 14.0x | 2.5e-09 | 8 |
| gen72_ik | 4.00 ± 0.02 | 0.292 ± 0.003 | 13.7x | 1.0e-10 | 60 |
| rx160_ik | 0.21 ± 0.00 | 0.016 ± 0.001 | 13.3x | 8.9e-09 | 4 |
| rizon4_ik | 15.69 ± 0.21 | 1.254 ± 0.018 | 12.5x | 2.5e-10 | 42 |
| kr6_r900_ik | 0.20 ± 0.00 | 0.016 ± 0.000 | 12.4x | 8.9e-09 | 4 |
| rizon10_ik | 16.04 ± 0.17 | 1.305 ± 0.017 | 12.3x | 2.4e-09 | 40 |
| gen3_ik | 13.00 ± 0.11 | 1.493 ± 0.047 | 8.7x | 1.0e-12 | 54 |
| yumi_left_ik | 15.44 ± 0.08 | 2.366 ± 0.027 | 6.5x | 1.0e-12 | 67 |
| yumi_right_ik | 15.65 ± 0.38 | 2.405 ± 0.027 | 6.5x | 1.0e-12 | 67 |
| j2s7s300_ik | 15.50 ± 0.21 | 2.425 ± 0.038 | 6.4x | 9.9e-13 | 46 |
| piper_ik | 2.15 ± 1.28 | 0.407 ± 0.010 | 5.3x | 5.0e-06 | 8 |
| fanuc_crx10ia_ik | 1.12 ± 0.14 | 0.389 ± 0.004 | 2.9x | 2.3e-09 | 8 |
| m0609_ik | 1.15 ± 0.07 | 0.414 ± 0.007 | 2.8x | 9.5e-06 | 8 |
| fanuc_crx10ialp_ik | 0.99 ± 0.02 | 0.376 ± 0.004 | 2.6x | 1.1e-09 | 8 |
| xmatecr7_ik | 1.03 ± 0.11 | 0.393 ± 0.010 | 2.6x | 7.9e-09 | 8 |
| m1013_ik | 1.06 ± 0.05 | 0.408 ± 0.005 | 2.6x | 7.6e-06 | 8 |
| fanuc_crx10ial_ik | 0.99 ± 0.04 | 0.386 ± 0.004 | 2.6x | 3.5e-09 | 8 |
| jaco2_ik | 0.90 ± 0.03 | 0.349 ± 0.011 | 2.6x | 2.9e-09 | 7 |
| yam_ik | 1.03 ± 0.01 | 0.403 ± 0.004 | 2.6x | 8.4e-07 | 8 |
| xarm6_ik | 1.14 ± 0.11 | 0.447 ± 0.007 | 2.6x | 4.3e-09 | 8 |
| fanuc_crx20ial_ik | 0.93 ± 0.01 | 0.368 ± 0.003 | 2.5x | 1.1e-09 | 8 |
| big_yam_ik | 1.04 ± 0.01 | 0.409 ± 0.003 | 2.5x | 1.8e-08 | 8 |
| gen3_lite_ik | 0.92 ± 0.03 | 0.363 ± 0.010 | 2.5x | 6.9e-09 | 6 |
| fanuc_crx3ia_ik | 0.99 ± 0.03 | 0.394 ± 0.004 | 2.5x | 2.0e-09 | 8 |
| fanuc_crx30ia_ik | 0.94 ± 0.02 | 0.376 ± 0.004 | 2.5x | 4.2e-07 | 8 |
| fanuc_crx5ia_ik | 0.97 ± 0.01 | 0.393 ± 0.004 | 2.5x | 3.5e-08 | 8 |
| xmatesr3_ik | 0.79 ± 0.03 | 0.325 ± 0.011 | 2.4x | 2.2e-09 | 6 |
| hc10_ik | 0.94 ± 0.02 | 0.403 ± 0.010 | 2.3x | 2.3e-08 | 8 |
| kassow_kr810_ik | 17.18 ± 0.18 | 11.291 ± 1.154 | 1.5x | 9.9e-08 | 31 |