Mesh Benchmarks

March 23, 2026 · View on GitHub

3D point-cloud alignment benchmarks comparing NumKong RMSD and Kabsch against scalar and nalgebra implementations.

Rust

LibraryPrecisionMP/s
RMSD
numkong::MeshAlignment::rmsdf16 → f162864.47
numkong::MeshAlignment::rmsdbf16 → bf162861.70
numkong::MeshAlignment::rmsdf64 → f641859.32
numkong::MeshAlignment::rmsdf32 → f321626.67
nalgebra-based RMSDf32 → f32634.04
Kabsch
numkong::MeshAlignment::kabschf16 → f16696.00
numkong::MeshAlignment::kabschbf16 → bf16691.01
numkong::MeshAlignment::kabschf32 → f32396.52
numkong::MeshAlignment::kabschf64 → f64331.70
nalgebra-based Kabschf32 → f64283.16
Umeyama
numkong::MeshAlignment::umeyamabf16 → bf16673.50
numkong::MeshAlignment::umeyamaf16 → f16614.06
numkong::MeshAlignment::umeyamaf32 → f32376.48
numkong::MeshAlignment::umeyamaf64 → f64325.16
nalgebra-based Umeyamaf32 → f64255.14

Python

LibraryPrecisionMP/s
numkong.rmsdf64 → f641311.77
numkong.rmsdf32 → f641228.00
numkong.kabschf32 → f64360.08
numkong.umeyamaf32 → f64327.01
numkong.umeyamaf64 → f64296.67
numkong.kabschf64 → f64285.81
numpy-based RMSDf32 → f64124.48
numpy-based RMSDf64 → f64117.30
biopython SVDSuperimposer (Kabsch)f32 → f642.88
biopython SVDSuperimposer (Kabsch)f64 → f642.92
# Default 2048-point clouds
python mesh/bench.py

# Smaller 256-point clouds
python mesh/bench.py --count 256

# Focus on one operation
python mesh/bench.py -k "kabsch"

Run It (Rust)

# Default 2048-point clouds
cargo bench --bench bench_mesh --features bench_mesh

# Smaller 256-point clouds
NUMWARS_DIMS=256 cargo bench --bench bench_mesh --features bench_mesh

# Focus on one operation
NUMWARS_FILTER="mesh/rmsd/f32" \
cargo bench --bench bench_mesh --features bench_mesh