PotreePoint CloudLASWebGLExplainer

What is Potree? The Open-Source Point Cloud Viewer Explained

Potree is the open-source WebGL viewer that powers browser-based point cloud visualization. Here's how it works, what it can display, and how to use it for client delivery.

Alex Tolson

Alex Tolson

February 10, 2025

If you’ve ever viewed a point cloud in a browser — a LiDAR scan, a dense photogrammetry cloud, an aerial survey — there’s a reasonable chance you were looking at Potree. It’s the open-source engine that made massive point cloud visualization in browsers possible, and it’s become the standard for this use case.

Here’s what it is, how it works, and what you need to know as someone who creates and delivers point cloud data.

What is Potree?

Potree is an open-source WebGL-based renderer for large point cloud datasets. It was developed by Markus Schütz as part of his PhD research at the Vienna University of Technology (TU Wien) and has been under active development since around 2015.

The project is available on GitHub (potree/potree) under a custom licence that allows free use for non-commercial purposes. Commercial use requires a licence agreement with TU Wien.

Potree is notable because it solved a problem that seemed intractable in 2015: how do you display a billion-point dataset in a browser, in real time, without downloading the entire dataset?

How Potree works

The key innovation in Potree is its streaming octree approach:

  1. PotreeConverter preprocesses your LAS/LAZ file into a hierarchical octree structure — a tree where each node contains a spatial subset of the point cloud at a given resolution
  2. The octree is stored as a set of files in the Potree format (.hrc, .bin, and metadata JSON)
  3. When the browser loads the viewer, it requests only the metadata and the lowest-resolution root node
  4. As you zoom in or navigate, the viewer determines which octree nodes are visible at the current camera position
  5. It requests those nodes from the server, loading higher-resolution detail progressively as you zoom in
  6. Nodes outside the viewport are unloaded to free GPU memory

The result: you can navigate a billion-point dataset on a standard laptop with a consumer GPU, in a browser, with no downloads. The data streams on demand — exactly what’s visible at the current resolution is what gets loaded.

What Potree can display

FeatureSupport
LAS/LAZ conversion (via PotreeConverter)Yes
Point colour (RGB)Yes
Point intensityYes
Point classification (ground, vegetation, buildings)Yes
Multiple point cloudsYes
Annotations and labelsYes
Measurements (distance, area, volume)Yes
Cross-section / profile viewYes
Time-slicing (for time-series point clouds)Limited
VR modeExperimental

Potree is primarily designed for point clouds — not meshes or rasters. For 3D mesh models, CesiumJS (which uses the 3D Tiles standard) is typically more appropriate.

PotreeConverter: the preprocessing step

To display a LAS/LAZ file in Potree, you first need to convert it to Potree’s octree format using PotreeConverter (a separate command-line tool).

Basic usage:

PotreeConverter input.las -o output_folder/ --output-format LAZ

PotreeConverter options:

  • --output-format: LAZ (compressed) or LAS (uncompressed). Use LAZ to reduce storage.
  • --generate-page: Generates a ready-to-serve HTML viewer page
  • --title: Sets the viewer page title
  • -p: Specifies a profile preset (bundle, classsify, etc.)

For large files (>1 GB), PotreeConverter can take significant processing time and RAM. For very large datasets (>10 GB), processing on a server with adequate RAM and parallel processing tools (PDAL, Entwine) is more reliable.

Setting up Potree for client delivery

A basic Potree deployment requires:

  1. Run PotreeConverter on your LAS/LAZ file to produce the Potree format files
  2. Host the files on a web server (must be HTTPS; CORS configuration required if serving from a different domain than your viewer)
  3. Serve the Potree viewer — either the auto-generated HTML page, or a custom HTML page embedding Potree
  4. Share the URL with your client

Minimum hosting requirements:

  • Static file hosting (AWS S3, Cloudflare R2, Google Cloud Storage all work well)
  • CORS configured to allow browser requests from your viewer’s domain
  • HTTPS (required for WebGL in modern browsers)

For a single project, this is doable in an afternoon. For an ongoing delivery workflow with many clients and projects, it becomes significant infrastructure to manage.

Potree vs. Cesium: which one?

PotreeCesiumJS (3D Tiles)
Best forRaw point cloudsMeshes, buildings, textured models
Point cloud rendering qualityExcellentGood
Mesh/terrain supportLimitedExcellent
Streaming approachCustom octree3D Tiles OGC standard
LicensingNon-commercial freeApache 2.0 (free)
Setup complexityModerateHigher

For LiDAR and dense photogrammetry point clouds, Potree typically produces better-quality rendering — the EDL (Eye Dome Lighting) shading makes the point cloud much more readable for non-technical viewers.

For photogrammetry meshes, 3D model outputs, and environments where you’re mixing point clouds with other 3D content, CesiumJS is more appropriate.

Many platforms (including Swyvl) use Potree for point clouds and CesiumJS for everything else — automatically selecting the right viewer based on the file type.

Commercial use and licencing

Potree is licensed under a custom licence that restricts commercial use. If you’re using Potree to deliver point cloud data to paying clients — which as a surveyor is exactly what you’re doing — you are technically using it commercially.

Licencing for commercial use is available from TU Wien. The cost is reasonable relative to the value of having a world-class point cloud viewer.

Alternatively, platforms like Swyvl handle the licencing on their end — the commercial licence is built into the platform subscription.


Potree is extraordinary technology. A billion-point LiDAR dataset streamed to a browser, navigable in real time — that was genuinely impressive in 2015 and is still impressive now. For surveyors, the practical implication is that there’s no longer any reason to deliver point clouds to clients as zip files of raw LAS data. Browser-based delivery is the professional standard.

Alex Tolson

Alex Tolson

Co-founder of Swyvl. Eight years capturing the world in 3D — underground mines, the Great Barrier Reef, and everything in between. Previously co-founded Lateral Vision, a 3D visualization company and Google Street View contractor.

Share spatial data the right way.

Swyvl lets you upload your LAS, GeoTIFF, drone video, and 3D models and share them with clients via a branded portal — no software required on their end.

Get started free

Not ready to sign up? See Swyvl live in 30 minutes.

Related articles

Back to all posts