/greyhound

Greyhound is an HTTP data streaming server

Primary LanguageC++

GREYHOUND

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

See it in action with the dynamic Plas.io client at speck.ly and the Potree client at potree.entwine.io.

Getting started

Obtaining Greyhound

Using Docker

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

Natively

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
greyhound

Indexing some data

Greyhound uses data indexed by Entwine. See the instructions for how to use Entwine. By default, Greyhound will look for indexed data in ~/greyhound (natively) and /opt/data (dockerized). If you are eager to get started, we have some publicly hosted data you can index and serve locally:

docker pull connormanning/entwine
mkdir ~/greyhound
docker run -it -v ~/greyhound:/opt/data connormanning/entwine \
    entwine build \
    -i https://entwine.io/sample-data/red-rocks.laz \
    -o /opt/data/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 be mapping that output directory into Greyhound's default search path at /opt/data within the container:

docker run -it -p 8080:8080 -v ~/greyhound:/opt/data 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.