Skip to content
View billions of points in your browser.
Rust TypeScript JavaScript HTML Shell GLSL
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
ci Use to install protoc (#310) Jul 31, 2019
octree_web_viewer Clarify variable names, fix clippy nightly. (#378) Oct 24, 2019
point_cloud_client Remove global_from_query transform from query. (#387) Nov 13, 2019
point_viewer_grpc Remove global_from_query transform from query. (#387) Nov 13, 2019
point_viewer_grpc_proto_rust Fix oriented beam query. (#381) Oct 31, 2019
quadtree Restructuring and dependency updates. (#289) Jul 2, 2019
xray Remove global_from_query transform from query. (#387) Nov 13, 2019
xray_proto_rust Fix protoc generation and dependencies. (#312) Aug 2, 2019
.travis.yml Remove ninja from build deps. (#311) Aug 1, 2019
Makefile Various minor beautifications. (#345) Sep 24, 2019
yarn.lock Update... (#372) Oct 18, 2019

Point viewer

build status License

This is a standalone project to make viewing massive point clouds easy and convenient. It was build to serve the needs of the Cartographer project, but is useful in its own right.


The project consist of a root crate that can build and read octrees on disk and viewer binaries to visualize the data. For Mac OS X, we assume below that you've installed Homebrew.

  • Install Rust: curl -sSf | sh. See for details.
  • Install the rust gRPC protobuf plugin: cargo install grpcio-compiler and make sure it is in your $PATH. This has more dependencies, it requires cmake and go. On mac: brew install cmake go.
  • Initialize all submodules: git submodule update --init --recursive.

Creating Octrees

In the root of the repo, run cargo build --release. Then use target/release/build_octree to generate an octree out of a PLY file.

SDL client

This is a native client using SDL2.

  1. Install SDL2. For example, on Mac brew install sdl2.
  2. Change to the sdl viewer's directory: cd sdl_viewer/.
  3. Build with cargo build --release.
  4. Run with ../target/release/sdl_viewer <octree directory>.

In the point cloud viewer, navigate with the keyboard or with the mouse or touchpad. Dragging while pressing the left mouse button rotates, dragging while pressing the right mouse button pans the view. The following keys are bound:

Key Action
W Move forward
A Move left
S Move backwards
D Move right
Q Move up
Z Move down
Up Turn up
Left Turn left
Down Turn down
Right Move right
0 Increase points size
9 Decrease points size
8 Brighten scene
7 Darken scene
O Show octree nodes
Shift + Ctrl + 0-9 Save current camera position.
Ctrl + 0-9 Load saved camera position.

Saved camera positions are persisted in the octree directory and will therefore live through restarts of the program.

Web Viewer

The octree_web_viewer consists of TypeScript code running in the browser and a web server binary.

To build and run the octree_web_viewer please look into the octree_web_viewer README file

Prior art

This work was inspired by the following projects.

You can’t perform that action at this time.