Greyhound is an HTTP data streaming server
JavaScript C++ Python Shell Other


Build Status

A point cloud streaming framework for dynamic web services and native applications.

See it in action with the dynamic client at and the Potree client at

Getting started

Obtaining Greyhound

Using Docker

docker run -it -p 8080:8080 connormanning/greyhound


Prior to installing natively, you must first install PDAL and its dependencies, and then install Entwine. Then you can install Greyhound via NPM.

npm install -g greyhound-server

Indexing some data

Greyhound uses data indexed by Entwine. See the instructions for how to use Entwine. If you are eager to get started, we have some publicly hosted data you can index and serve locally:

docker run -it -v $HOME:$HOME connormanning/entwine build \
    -i \
    -o ~/greyhound/red-rocks

Viewing the data

You've just indexed a LAZ file from the internet (data credit to DroneMapper) and created a local Entwine dataset. It's sitting at ~/greyhound/red-rocks. Now let's start Greyhound and take a look at the data. We'll map our top-level output directory into one of the default search paths for the Greyhound container.

docker run -it -p 8080:8080 -v ~/greyhound:/greyhound connormanning/greyhound

Now that Greyhound is awake, you should be able to browse your data with Plasio or Potree.

Further reading

See the client documentation if you are interested in developing an application that streams data from Greyhound. For instructions regarding configuring and deploying Greyhound, see the administrator documentation.