pcloud-cat
Point cloud processing built on comp-cat-rs: ICP registration, surface normal estimation, and anomaly detection as composable, lazy effects.
Crates
| Crate | Description |
|---|---|
pcloud-cat-core |
Core library: algebra, point cloud types, ICP, normals, anomaly detection, file I/O |
pcloud-cat-viewer |
WASM-based 3D point cloud viewer using WebGL2 |
Quick Start
use ;
// Build an ICP pipeline (nothing executes yet)
let config = new;
let align_io = icp_align;
// Execute at the boundary
let transform: = align_io.run;
Architecture
All algorithms are expressed as comp-cat-rs effects:
- ICP iteration is a
Stream::unfold, where each pull computes one iteration step. - ICP alignment folds the stream into a single
Io<Error, RigidTransform>. - Normal estimation and anomaly detection are
Io::suspendcomputations. - File I/O uses
Resourcefor bracket-based handle management.
Nothing executes until .run() is called at the outermost boundary.
Core Features
- Point-to-point and point-to-plane ICP with configurable convergence thresholds
- PCA-based surface normal estimation with k-nearest neighbor support
- Statistical outlier removal based on mean neighbor distances
- Surface deviation detection against a reference cloud
- PLY file parsing via
Resource-managed I/O - Zero external dependencies beyond comp-cat-rs (hand-rolled 3x3 SVD, eigendecomposition)
Building
# Build the core library
# Build the WASM viewer
# Run tests
# Run clippy
RUSTFLAGS="-D warnings"
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.