A Rust library and CLI tool for processing 3D Tiles data.
Early stage of development. Developed at the TUM Chair of Geoinformatics. Contributions welcome.
Features:
- Converts point clouds to 3D Tiles 1.1 using octree spatial indexing
- Supports LAS, LAZ, E57, XYZ, and XYZ+Zstandard input formats
- Reprojects from any EPSG coordinate system to ECEF (EPSG:4978) using PROJ
- Encodes RGB colors from input point clouds into GLB tiles
- Outputs implicit tiling subtrees for efficient streaming
A command-line tool for converting point clouds to 3D Tiles.
Download pre-built executables for your platform from the release page.
On macOS, you need to remove the quarantine attribute after downloading:
xattr -d com.apple.quarantine ./etiles-cliDocker:
docker pull ghcr.io/tum-gis/etiles-cliFrom source:
cargo install [email protected] # replace with the latest versionetiles-cli convert-point-cloud \
--input-path /path/to/pointcloud.las \
--output-path /path/to/output.tar \
--source-crs 25832For a full list of options:
etiles-cli convert-point-cloud --helpConvert an entire directory of point cloud files:
etiles-cli convert-point-cloud \
--input-path /path/to/point_clouds/ \
--output-path /path/to/output.tar \
--source-crs 25832Docker:
docker run --rm \
-v /path/to/data:/data \
ghcr.io/tum-gis/etiles-cli \
convert-point-cloud \
--input-path /data/pointcloud.las \
--output-path /data/output.tar \
--source-crs 25832| Option | Default | Description |
|---|---|---|
--input-path |
— | Path to a point cloud file or directory |
--output-path |
— | Output .tar archive path |
--source-crs |
— | EPSG code of the input coordinate system |
--maximum-points-per-octant |
100000 |
Maximum points per octree node |
--no-shuffle |
— | Disable random shuffling of points before conversion |
--seed |
1 |
Seed for reproducible shuffling |
| Format | Extension |
|---|---|
| LAS | .las |
| LAZ | .laz |
| E57 | .e57 |
| XYZ | .xyz |
| XYZ + Zstandard | .xyz.zst |
Both the CLI and library produce a TAR archive containing:
tileset.json— root 3D Tiles 1.1 document with implicit tiling metadatacontent/content_{level}_{x}_{y}_{z}.glb— binary glTF tiles with point positions and colorssubtrees/{level}.{x}.{y}.{z}.subtree— implicit tiling subtree availability metadata
The single-file archive simplifies transfer and can be extracted on the target machine.
A Rust library for integrating 3D Tiles generation into your own application.
[dependencies]
etiles = "0.0.2-alpha.1" # replace with the latest versionLicensed under either of MIT or Apache-2.0 at your option.