BUILD_POTREE
Generates a Potree-compatible point cloud tileset from a LAS/LAZ dataset. The step first normalizes the input dataset using PDAL to ensure a valid bounding box and consistent LAS structure. The corrected dataset is then processed using PotreeConverter, producing a hierarchical octree tileset optimized for interactive visualization in Potree-based viewers.
Typical use: publishing LiDAR datasets for browser-based visualization using Potree or Potree-derived web viewers.
Contract
| Type | BUILD_POTREE |
| Accepts | input_las: las |
| Produces | output_potree: potree |
| Params | none |
Inputs
| Slot | Type | Description |
|---|---|---|
input_las | las | Source point cloud dataset |
Outputs
| Slot | Type | Description |
|---|---|---|
output_potree | potree | Potree tileset directory |
The Potree output is a directory containing metadata.json, octree.bin, hierarchy.bin, and related files.
What it does internally
1. Normalize the input dataset
Before running PotreeConverter, the workflow runs:
pdal translate input.las fixed.lasThis normalizes the LAS structure, repairs bounding box issues, and prevents PotreeConverter crashes on malformed files. This preprocessing step is important — PotreeConverter can fail on certain raw LAS files that PDAL handles gracefully.
2. Run PotreeConverter
PotreeConverter fixed.las -o tilesetProduces a hierarchical octree tileset with all necessary metadata and binary octree structures required by Potree clients.
3. Upload and return
The entire tileset directory is uploaded to MinIO and returned as the output_potree artifact.
Recipe usage
json
{
"id": "build_potree",
"type": "BUILD_POTREE",
"inputs": { "input_las": "job:input_las" },
"outputs": { "output_potree": "step:build_potree.output_potree" }
}Artifact storage path
artifacts/job_{id}/build_potree/Related executors
BUILD_COPC— COPC format, better for streaming/analyticsBUILD_EPT— EPT format, better for Cesium / large datasets