| Crates.io | threecrate |
| lib.rs | threecrate |
| version | 0.5.0 |
| created_at | 2025-07-10 11:30:06.566636+00 |
| updated_at | 2025-09-27 10:54:01.750692+00 |
| description | A comprehensive 3D point cloud processing library for Rust - umbrella crate |
| homepage | https://github.com/rajgandhi1/3DCrate.git |
| repository | https://github.com/rajgandhi1/3DCrate.git |
| max_upload_size | |
| id | 1746181 |
| size | 139,705 |
A comprehensive 3D point cloud processing library for Rust.
threecrate is a modular, high-performance library for 3D point cloud and mesh processing. This umbrella crate provides convenient access to all threecrate functionality in one place.
Add this to your Cargo.toml:
[dependencies]
threecrate = "0.1.0"
Basic usage:
use threecrate::prelude::*;
// Create a point cloud
let points = vec![
Point3f::new(0.0, 0.0, 0.0),
Point3f::new(1.0, 0.0, 0.0),
Point3f::new(0.0, 1.0, 0.0),
];
let cloud = PointCloud::from_points(points);
// Apply algorithms (many still in development)
println!("Point cloud with {} points", cloud.len());
[dependencies]
threecrate = "0.1.0"
[dependencies]
threecrate-core = "0.1.0" # Core data structures
threecrate-algorithms = "0.1.0" # Processing algorithms
threecrate-gpu = "0.1.0" # GPU acceleration
threecrate-io = "0.1.0" # File I/O
threecrate-simplification = "0.1.0" # Simplification
threecrate-reconstruction = "0.1.0" # Surface reconstruction
threecrate-visualization = "0.1.0" # Visualization
The umbrella crate supports granular feature control:
[dependencies]
threecrate = { version = "0.1.0", features = ["all"] }
Available features:
default: core, algorithms, io, simplificationcore: Core data structures (always enabled)algorithms: Point cloud processing algorithmsgpu: GPU-accelerated processingio: File format supportsimplification: Mesh and point cloud simplificationreconstruction: Surface reconstructionvisualization: Interactive visualizationall: All featuresthreecrate-coreCore data structures and traits for 3D processing.
Key types:
Point3f: 3D point with floating-point coordinatesPointCloud: Collection of 3D points with spatial operationsTriangleMesh: 3D mesh with vertices, faces, and normalsTransform3D: 3D transformations (rotation, translation, scaling)threecrate-algorithmsAlgorithms for point cloud and mesh processing.
Features:
threecrate-gpuGPU-accelerated processing using wgpu.
Features:
threecrate-ioFile format support for point clouds and meshes.
Supported formats:
threecrate-simplificationMesh and point cloud simplification algorithms.
Features:
threecrate-reconstructionSurface reconstruction from point clouds.
Features:
threecrate-visualizationInteractive 3D visualization tools.
Features:
use threecrate::prelude::*;
// Create a point cloud
let points = vec![
Point3f::new(0.0, 0.0, 0.0),
Point3f::new(1.0, 0.0, 0.0),
Point3f::new(0.0, 1.0, 0.0),
];
let cloud = PointCloud::from_points(points);
// Save processed cloud
// cloud.save("output.ply")?; // I/O functionality
use threecrate::prelude::*;
// Create a mesh
let vertices = vec![
Point3f::new(0.0, 0.0, 0.0),
Point3f::new(1.0, 0.0, 0.0),
Point3f::new(0.0, 1.0, 0.0),
];
let faces = vec![[0, 1, 2]];
let mesh = TriangleMesh::from_vertices_and_faces(vertices, faces);
// Simplify mesh (algorithms in development)
println!("Mesh with {} vertices", mesh.vertices.len());
use threecrate::prelude::*;
// Initialize GPU context
let gpu_context = GpuContext::new().await?;
// GPU-accelerated processing (in development)
println!("GPU context initialized");
threecrate is designed for high performance:
rayon for CPU parallelismLicensed under either of
at your option.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.