In GIS scenarios such as digital twins, urban modeling, and terrain mapping, point cloud data acquired by LiDAR is increasingly becoming a core asset. However, point cloud data is characterized by its large volume and diverse formats. To efficiently publish massive LAS and LAZ files to the web for loading by 3D engines like Cesium, a complex process of tiling, compression, and coordinate system transformation is often required. Although open-source point cloud tiling tools exist on the market, most still rely on the pnts format of 3D Tiles 1.0 and offer limited support for the LAZ compression format and very large datasets. We recently discovered an open-source tool: Point Tiler, which supports converting point cloud data into the v1.1 version of 3D Tiles.

Introduction to Point Tiler
Point Tiler is a command-line tool that converts point cloud data into the 3D Tiles v1.1 format. It supports various point cloud input formats such as LAS, LAZ, and CSV, and directly outputs GLB tiles that comply with the 3D Tiles 1.1 specification, enabling seamless integration with mainstream 3D engines like Cesium. Developed in Rust by MIERUNE Inc. in Japan, this tool leverages high-performance parallel processing and flexible large-scale data handling strategies to efficiently process point cloud datasets up to several gigabytes in size.
Official Website: https://github.com/MIERUNE/point-tiler
Core Features
First and foremost is Native 3D Tiles 1.1 Output. Point Tiler directly outputs tiles in GLB format, conforming to the 3D Tiles 1.1 specification. While most similar tools still rely on the pnts format of 3D Tiles 1.0 or offer only experimental 1.1 support, Point Tiler was designed from the ground up for the latest standard.
Secondly, it offers Multi-level Compression. It supports multiple compression methods including quantization, meshopt, and GZIP, which can significantly reduce the size of the output files. Quantization is based on the KHR_mesh_quantization extension, while meshopt is optimized for GPU transmission, making it suitable for streaming loading on the web.
Thirdly, it features Native LAZ Support. LAZ is the dominant compression format in the point cloud domain. Point Tiler has built-in LAZ parsing and parallel decoding capabilities, allowing it to process LAZ files directly without prior decompression, greatly simplifying the workflow.
Fourthly, it is capable of Large-scale Data Processing. Through an external sorting mechanism, it automatically switches between in-memory sorting and disk-based sorting strategies based on the configured memory limit. When data exceeds available memory, the tool automatically employs streaming processing without the need for manual file splitting, making it suitable for processing terabyte-level point clouds.
Finally, it ensures High-performance Conversion. Built with Rust and the Rayon parallel library, it fully utilizes multi-core CPUs. Official benchmarks show that on an Apple M1 Max machine with 64 GB of RAM, converting approximately 8 GB of data from 41 LAS files into 278 tiles takes only about 4 minutes.
Additionally, the tool incorporates the PROJ library, supporting coordinate system conversion for any EPSG code, with the output configurable to EPSG:4979 for compatibility with Cesium. It also provides voxel-based point decimation for efficient Level of Detail (LOD) structuring.
Usage Example
Installation is straightforward; simply execute the following command:
curl -sSf https://raw.githubusercontent.com/MIERUNE/point-tiler/main/install.sh | bashOnce installed, you can use the ptiler command. A typical conversion example:
ptiler --input /path/to/data/*.las \
--output /path/to/output \
--input-epsg 6677 \
--output-epsg 4979 \
--min 15 \
--max 18 \
--max-memory-mb 8192 \
--threads 8 \
--quantize \
--meshopt \
--gzip-compressIn this command:
--inputspecifies the input files. It supports las, laz, csv, txt formats and can accept multiple files at once.--outputspecifies the output directory, where atileset.jsonfile and several GLB tiles will be generated.--input-epsgand--output-epsgdefine the coordinate systems for input and output. Setting the output to EPSG:4979 makes it directly usable in Cesium.--minand--maxcontrol the tile levels, defaulting to 15 and 18.--max-memory-mbmanages memory usage; when exceeded, external sorting is enabled.--quantize,--meshopt, and--gzip-compresscan be combined to achieve smaller tile sizes.
If Rust and Cargo are already installed, you can also compile and run it from source. It currently primarily supports macOS and Linux; Windows users may need to rely on WSL or a Rust environment.
For CSV format, it requires columns named x, y, z and r, g, b or red, green, blue. Column names are case-insensitive, and other columns are ignored.
Additional Information
Point Tiler is open-sourced under the MIT license. Its implementation references the nusamai-gltf module from the PLATEAU GIS Converter. The author, Satoru Nishio, and the MIERUNE team are actively maintaining it, with the roadmap including plans for automatic coordinate system detection from input files, opening a public library API, and support for PLY format input.
Conclusion
In the field of web-based point cloud publishing, a complete pipeline from LAS/LAZ to 3D Tiles has long been a challenge. With its native support for 3D Tiles 1.1, direct LAZ reading, automatic large-scale data handling, and the high performance offered by Rust, Point Tiler provides GIS professionals with a concise and efficient path for point cloud publication. If you are working on digital twin projects, smart city initiatives, or terrain visualization projects, it's certainly worth trying out. If you have any better solutions, feel free to leave a comment for discussion.