modern-icp

Crates.iomodern-icp
lib.rsmodern-icp
version0.6.1
created_at2025-06-21 22:43:22.530984+00
updated_at2025-08-07 06:56:47.430608+00
descriptionA modern modular pure Rust implementation of the Iterative Closest Point algorithm.
homepage
repositoryhttps://github.com/Synphonyte/modern-icp
max_upload_size
id1721150
size323,743
Marc-Stefan Cassola (maccesch)

documentation

README

Modern ICP

Crates.io Docs MIT/Apache 2.0 Build Status

A modern modular pure Rust implementation of the Iterative Closest Point algorithm.

Example

let (alignee_transform, error_sum) = estimate_transform(
    alignee_cloud,
    &target_cloud,
    20, // max iterations
    BidirectionalDistance::new(&target_cloud),
    accept_all,
    reject_n_sigma_dist(3.0),
    point_to_plane_lls::estimate_isometry,
    same_squared_distance_error(1.0),
);

Integrations

An integrations with the modelz crate is provided so you can use Model3D with the estimate_transform function.

use modelz::Model3D;

if let (Ok(alignee), Ok(target)) = (Model3D::load("alignee.gltf"), Model3D::load("target.stl")) {
    let (transform, error_sum) = estimate_transform(
        alignee,
        &target,
        20, // max iterations
        BidirectionalDistance::new(&target),
        accept_all,
        reject_n_sigma_dist(3.0),
        point_to_plane_lls::estimate_isometry,
        same_squared_distance_error(1.0),
    );
}
Commit count: 0

cargo fmt