I’m currently working with XB PointStream, a WebGL tool which streams and renders 3D images in the browser. When Mickael Medel and I started working on this we were advised to keep the tool general since the problem of streaming mass amounts of points is present in several industries. By developing a generic solution for our client (Arius3D), we would be helping other industries as well.
We got started by setting up a Git hub repository, a Wiki page and a Lighthouse account. We worked in the open, filing issues on Lighthouse as we went. However, it was almost exclusively Mike and I commenting and managing the tickets.
We were surprised when someone posted a comment stating that our library was no longer rendering their data. This was great news for two reasons. Firstly because we had another person interested in the library (yay!). Secondly, the data Paul has isn’t the conventional point cloud data we are used to rendering. Instead of a small 3D image, he’s working with GIS data.
Arius3D did provide us with GIS data (pictured above) and it serves as a good demo, but it differs in terms of point count in relation to other systems. The scan above was probably done using a stationary LIDAR device. But what if the data was aerially scanned over a long distance and contained hundreds of millions of points? If a point cloud is never expected to fully download, our library would fail. This is the case with Paul’s data and his case introduces some new requirements.
To render potentially hundreds of millions of points in real-time, our library needs to not only stream large amounts of data, but also must discard or swap chunks of points when no longer needed.
Another interesting problem related to GIS data is how to color the points. Users may not just have colors for visible light, but may also have infrared data too. How can we add a feature which allows users to swap between color modes? We’ll need to work on fleshing out a use case and requirements for this.
Working with GIS data will give us new perspectives on rendering point clouds and will also give us the opportunity to add interesting features. Features which are useful yet will keep the library general.