threecrate-algorithms

Crates.iothreecrate-algorithms
lib.rsthreecrate-algorithms
version0.5.0
created_at2025-07-09 10:54:23.346016+00
updated_at2025-09-27 10:22:08.297107+00
descriptionAlgorithms for 3D point cloud and mesh processing
homepagehttps://github.com/rajgandhi1/threecrate.git
repositoryhttps://github.com/rajgandhi1/threecrate.git
max_upload_size
id1744745
size159,746
Raj Gandhi (rajgandhi1)

documentation

https://docs.rs/threecrate-core

README

ThreeCrate Algorithms

Crates.io Documentation License

High-performance algorithms for 3D point cloud and mesh processing.

Features

  • Point Cloud Processing: Filtering, downsampling, and outlier removal
  • Registration: ICP (Iterative Closest Point) algorithm for point cloud alignment
  • Segmentation: RANSAC plane segmentation and clustering algorithms
  • Spatial Queries: K-nearest neighbor search and spatial indexing
  • Normal Estimation: Surface normal computation for point clouds
  • Parallel Processing: Multi-threaded algorithms using Rayon

Usage

Add this to your Cargo.toml:

[dependencies]
threecrate-algorithms = "0.1.0"
threecrate-core = "0.1.0"

Example

use threecrate_core::{PointCloud, Point3f};
use threecrate_algorithms::{icp_registration, estimate_normals, plane_segmentation_ransac};

// Load or create point clouds
let source = PointCloud::from_points(vec![/* points */]);
let target = PointCloud::from_points(vec![/* points */]);

// ICP registration
let result = icp_registration(&source, &target, 50, 0.001, 1.0)?;
println!("Registration converged: {}", result.converged);

// Estimate normals
let normals = estimate_normals(&source, 10)?;

// RANSAC plane segmentation
let plane_result = plane_segmentation_ransac(&source, 1000, 0.01)?;
println!("Found {} inliers", plane_result.inliers.len());

Algorithms

  • ICP Registration: Point cloud alignment using iterative closest point
  • RANSAC Segmentation: Robust plane fitting and outlier detection
  • Normal Estimation: Surface normal computation using local neighborhoods
  • Filtering: Statistical outlier removal and radius filtering
  • Spatial Indexing: KD-tree and R-tree based spatial queries

License

This project is licensed under either of

at your option.

Commit count: 0

cargo fmt