https://github.com/rajgandhi1/threecrate
3D point cloud and mesh processing library built in RUST
https://github.com/rajgandhi1/threecrate
3d 3d-performance 3d-visualization computer-graphics computer-vision gpu mesh mesh-processing point-cloud reconstruction registration rust visualization
Last synced: about 1 month ago
JSON representation
3D point cloud and mesh processing library built in RUST
- Host: GitHub
- URL: https://github.com/rajgandhi1/threecrate
- Owner: rajgandhi1
- License: mit
- Created: 2025-06-19T08:18:58.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2026-04-13T10:25:31.000Z (about 1 month ago)
- Last Synced: 2026-04-13T10:29:35.702Z (about 1 month ago)
- Topics: 3d, 3d-performance, 3d-visualization, computer-graphics, computer-vision, gpu, mesh, mesh-processing, point-cloud, reconstruction, registration, rust, visualization
- Language: Rust
- Homepage:
- Size: 2.89 MB
- Stars: 23
- Watchers: 0
- Forks: 4
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# threecrate
A high-performance 3D point cloud and mesh processing library for Rust, with Python bindings.

[](https://crates.io/crates/threecrate)
[](https://pypi.org/project/threecrate/)
[](https://docs.rs/threecrate)
[](https://github.com/rajgandhi1/threecrate/actions)
[](https://github.com/rajgandhi1/threecrate)
[](CONTRIBUTING.md)
## What's inside
| Crate | What it does |
|---|---|
| `threecrate-core` | Point, PointCloud, TriangleMesh, Transform3D |
| `threecrate-algorithms` | Filtering, ICP, NDT, global registration, segmentation, normals, FPFH/SHOT, mesh boolean, smoothing |
| `threecrate-gpu` | GPU filtering, ICP, normals, nearest-neighbor, TSDF, real-time rendering (wgpu) |
| `threecrate-io` | PLY, OBJ, PCD, XYZ/CSV, LAS/LAZ\*, E57\* — streaming and memory-mapped |
| `threecrate-reconstruction` | Poisson, BPA, alpha shapes, Delaunay, Marching Cubes, MLS, auto-select |
| `threecrate-simplification` | Quadric error, edge collapse, clustering, progressive mesh |
| `threecrate-visualization` | Interactive viewer — orbit/pan/zoom, GPU-accelerated |
\* opt-in feature flags
## Viewer

## Quick start
**Rust**
```toml
[dependencies]
threecrate = "0.7.1"
```
```rust
use threecrate::prelude::*;
let cloud = read_point_cloud("scan.ply")?;
let cloud = voxel_grid_filter(&cloud, 0.05)?;
let normals = estimate_normals(&cloud, 10)?;
let mesh = auto_reconstruct(&normals)?;
write_mesh("output.obj", &mesh)?;
```
**Python**
```bash
pip install threecrate
```
```python
import threecrate as tc
cloud = tc.read_point_cloud("scan.ply")
cloud = tc.voxel_downsample(cloud, voxel_size=0.05)
normal_cloud = tc.estimate_normals(cloud)
mesh = tc.poisson_reconstruct(normal_cloud)
tc.write_mesh(mesh, "output.ply")
```
## Comparison
| Feature | threecrate | Open3D | PCL |
|---|---|---|---|
| Language | Rust + Python | Python (C++ core) | C++ |
| `pip install` | ✅ | ✅ | ❌ |
| Memory safety | ✅ Rust | ❌ | ❌ |
| GPU compute | ✅ wgpu | ✅ CUDA | Partial |
| Global registration | ✅ FPFH+RANSAC | ✅ | ✅ |
| Surface reconstruction | ✅ 6 algorithms | ✅ | ✅ |
| Streaming I/O | ✅ PLY/OBJ/XYZ | ❌ | ❌ |
| E57 support | ✅ opt-in | ❌ | ❌ |
| WebAssembly | Roadmap | ❌ | ❌ |
## Docs
- [Installation & feature flags](docs/installation.md)
- [Crate reference](docs/crates.md)
- [Examples](docs/examples.md)
- [Python API reference](threecrate-python/README.md)
- [API docs on docs.rs](https://docs.rs/threecrate)
## Contributing
Contributions are welcome — algorithms, Python bindings, new formats, docs.
- [CONTRIBUTING.md](CONTRIBUTING.md) — setup and guidelines
- [Open issues](https://github.com/rajgandhi1/threecrate/issues) — look for `good first issue`
- [GitHub Discussions](https://github.com/rajgandhi1/threecrate/discussions) — questions and ideas
## License
Dual-licensed under MIT or Apache-2.0.