etiles

May 21, 2026 · View on GitHub

A Rust library and CLI tool for processing 3D Tiles data.

alt text

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

Early stage of development. Developed at the TUM Chair of Geoinformatics. Contributions welcome.


etiles-cli

A command-line tool for converting point clouds to 3D Tiles.

Installation

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-cli

Docker:

docker pull ghcr.io/tum-gis/etiles-cli

From source:

cargo install etiles-cli@0.0.2-alpha.1 # replace with the latest version

Usage

etiles-cli convert-point-cloud \
  --input-path /path/to/pointcloud.las \
  --output-path /path/to/output.tar \
  --source-crs 25832

For a full list of options:

etiles-cli convert-point-cloud --help

Convert 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 25832

Docker:

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

Options

OptionDefaultDescription
--input-pathPath to a point cloud file or directory
--output-pathOutput .tar archive path
--source-crsEPSG code of the input coordinate system
--maximum-points-per-octant100000Maximum points per octree node
--no-shuffleDisable random shuffling of points before conversion
--seed1Seed for reproducible shuffling

Supported input formats

FormatExtension
LAS.las
LAZ.laz
E57.e57
XYZ.xyz
XYZ + Zstandard.xyz.zst

Output format

Both the CLI and library produce a TAR archive containing:

  • tileset.json — root 3D Tiles 1.1 document with implicit tiling metadata
  • content/content_{level}_{x}_{y}_{z}.glb — binary glTF tiles with point positions and colors
  • subtrees/{level}.{x}.{y}.{z}.subtree — implicit tiling subtree availability metadata

The single-file archive simplifies transfer and can be extracted on the target machine.


etiles (library)

A Rust library for integrating 3D Tiles generation into your own application.

Installation

[dependencies]
etiles = "0.0.2-alpha.1" # replace with the latest version

License

Licensed under either of MIT or Apache-2.0 at your option.