{"id":48772009,"url":"https://github.com/rajgandhi1/threecrate","last_synced_at":"2026-04-13T11:02:59.289Z","repository":{"id":299993542,"uuid":"1004817032","full_name":"rajgandhi1/threecrate","owner":"rajgandhi1","description":"3D point cloud and mesh processing library built in RUST","archived":false,"fork":false,"pushed_at":"2026-04-13T10:25:31.000Z","size":3028,"stargazers_count":23,"open_issues_count":8,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-13T10:29:35.702Z","etag":null,"topics":["3d","3d-performance","3d-visualization","computer-graphics","computer-vision","gpu","mesh","mesh-processing","point-cloud","reconstruction","registration","rust","visualization"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajgandhi1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-19T08:18:58.000Z","updated_at":"2026-04-13T10:28:27.000Z","dependencies_parsed_at":"2025-06-19T10:38:46.245Z","dependency_job_id":"2c9d71be-7d19-4e21-8d3f-eb24d3f82552","html_url":"https://github.com/rajgandhi1/threecrate","commit_stats":null,"previous_names":["rajgandhi1/3dcrate","rajgandhi1/threecrate"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/rajgandhi1/threecrate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajgandhi1%2Fthreecrate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajgandhi1%2Fthreecrate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajgandhi1%2Fthreecrate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajgandhi1%2Fthreecrate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajgandhi1","download_url":"https://codeload.github.com/rajgandhi1/threecrate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajgandhi1%2Fthreecrate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31749767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","3d-performance","3d-visualization","computer-graphics","computer-vision","gpu","mesh","mesh-processing","point-cloud","reconstruction","registration","rust","visualization"],"created_at":"2026-04-13T11:02:56.796Z","updated_at":"2026-04-13T11:02:59.284Z","avatar_url":"https://github.com/rajgandhi1.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# threecrate\n\nA high-performance 3D point cloud and mesh processing library for Rust, with Python bindings.\n\n![logo_3crate Small](https://github.com/user-attachments/assets/8bd23278-0638-4fb6-a187-5a8d20beebd1)\n\n[![Crates.io](https://img.shields.io/crates/v/threecrate.svg)](https://crates.io/crates/threecrate)\n[![PyPI](https://img.shields.io/pypi/v/threecrate.svg)](https://pypi.org/project/threecrate/)\n[![Documentation](https://docs.rs/threecrate/badge.svg)](https://docs.rs/threecrate)\n[![CI](https://github.com/rajgandhi1/threecrate/actions/workflows/rust.yml/badge.svg)](https://github.com/rajgandhi1/threecrate/actions)\n[![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](https://github.com/rajgandhi1/threecrate)\n[![Contributing](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](CONTRIBUTING.md)\n\n## What's inside\n\n| Crate | What it does |\n|---|---|\n| `threecrate-core` | Point, PointCloud, TriangleMesh, Transform3D |\n| `threecrate-algorithms` | Filtering, ICP, NDT, global registration, segmentation, normals, FPFH/SHOT, mesh boolean, smoothing |\n| `threecrate-gpu` | GPU filtering, ICP, normals, nearest-neighbor, TSDF, real-time rendering (wgpu) |\n| `threecrate-io` | PLY, OBJ, PCD, XYZ/CSV, LAS/LAZ\\*, E57\\* — streaming and memory-mapped |\n| `threecrate-reconstruction` | Poisson, BPA, alpha shapes, Delaunay, Marching Cubes, MLS, auto-select |\n| `threecrate-simplification` | Quadric error, edge collapse, clustering, progressive mesh |\n| `threecrate-visualization` | Interactive viewer — orbit/pan/zoom, GPU-accelerated |\n\n\\* opt-in feature flags\n\n## Viewer\n\n![ThreeCrate Mesh Viewer](assets/mesh_viewer.png)\n\n## Quick start\n\n**Rust**\n\n```toml\n[dependencies]\nthreecrate = \"0.7.1\"\n```\n\n```rust\nuse threecrate::prelude::*;\n\nlet cloud = read_point_cloud(\"scan.ply\")?;\nlet cloud = voxel_grid_filter(\u0026cloud, 0.05)?;\nlet normals = estimate_normals(\u0026cloud, 10)?;\nlet mesh = auto_reconstruct(\u0026normals)?;\nwrite_mesh(\"output.obj\", \u0026mesh)?;\n```\n\n**Python**\n\n```bash\npip install threecrate\n```\n\n```python\nimport threecrate as tc\n\ncloud = tc.read_point_cloud(\"scan.ply\")\ncloud = tc.voxel_downsample(cloud, voxel_size=0.05)\nnormal_cloud = tc.estimate_normals(cloud)\nmesh = tc.poisson_reconstruct(normal_cloud)\ntc.write_mesh(mesh, \"output.ply\")\n```\n\n## Comparison\n\n| Feature | threecrate | Open3D | PCL |\n|---|---|---|---|\n| Language | Rust + Python | Python (C++ core) | C++ |\n| `pip install` | ✅ | ✅ | ❌ |\n| Memory safety | ✅ Rust | ❌ | ❌ |\n| GPU compute | ✅ wgpu | ✅ CUDA | Partial |\n| Global registration | ✅ FPFH+RANSAC | ✅ | ✅ |\n| Surface reconstruction | ✅ 6 algorithms | ✅ | ✅ |\n| Streaming I/O | ✅ PLY/OBJ/XYZ | ❌ | ❌ |\n| E57 support | ✅ opt-in | ❌ | ❌ |\n| WebAssembly | Roadmap | ❌ | ❌ |\n\n## Docs\n\n- [Installation \u0026 feature flags](docs/installation.md)\n- [Crate reference](docs/crates.md)\n- [Examples](docs/examples.md)\n- [Python API reference](threecrate-python/README.md)\n- [API docs on docs.rs](https://docs.rs/threecrate)\n\n## Contributing\n\nContributions are welcome — algorithms, Python bindings, new formats, docs.\n\n- [CONTRIBUTING.md](CONTRIBUTING.md) — setup and guidelines\n- [Open issues](https://github.com/rajgandhi1/threecrate/issues) — look for `good first issue`\n- [GitHub Discussions](https://github.com/rajgandhi1/threecrate/discussions) — questions and ideas\n\n## License\n\nDual-licensed under MIT or Apache-2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajgandhi1%2Fthreecrate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajgandhi1%2Fthreecrate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajgandhi1%2Fthreecrate/lists"}