Point Cloud visualization on the Web with LidarView and VTK.js
A few words on LiDAR technology
In short, a LiDAR ( acronym for Light Detection And Ranging ) is a type of 3D sensor that utilizes close to visible light and measures the time of flight of the emitted light to determine distances.
There are many types of technologies, including mechanical LiDARs that rotate around their main axis with a brush or lasers resulting in a pattern forming lines (we usually call the amount of lasers and therefore resulting lines, channels), or solid-state LiDARs that have a narrower field of view but can achieve usually better densities within that Field of View.
They are used in many domains such as autonomous driving/advanced driver assistance systems, robotics, surveying, 3D metrology, topology measurements…
Integrating LidarView as a ParaView Web Application
In this video, we showcase how LiDAR data can be visualized with a web browser connected to a server which runs LidarView.
The reading, processing and rendering of the data is done entirely on the server, only the resulting images are sent through the network to the web browser for display purposes.
The final application is fully customizable. Existing or custom filters can be added and the application rebranded via cosmetic changes like logos and styles.
For this proof of concept (POC) we got started with an existing ParaView Web application: ParaView Lite that we extended with LidarView features such as the PCAP reader and the LiDAR SLAM algorithm, by slightly changing the way the backend application runs.
More details on the technical side in the next sections.
About LidarView and ParaView Web
LidarView is a versatile open source, highly-customizable tool for streaming, acquiring, replaying and post-processing LiDAR data.You may find more information about its capabilities in this dedicated blogpost.
As a ParaView-based application, LidarView inherits from several ParaView capabilities, including the ParaView Web infrastructure.
What is ParaView Web?
The ParaView Web infrastructure allows you to control a ParaView instance through an HTTP server providing a WebSocket interface, which you can connect to using a VTK.js powered application.
The figure below shows how a regular ParaView Web application works.
By leveraging the existing infrastructure in ParaView, it is possible to drive a LidarView instance while having all ParaView features available.
LidarView point cloud rendering will be delivered to the web browser with built-in ParaView remote rendering capability.
In figure 1, the “pvpython app” (in red) is typically run with the ParaView Python interpreter, i.e. pvpython.
In the LidarView Web POC, we replaced pvpython
with the LidarView Python interpreter, i.e. lvpython.
By doing so, the whole web application gains access to all features available in your regular LidarView Desktop application,such as live streaming of LiDAR data, PCAP replaying or the LiDAR SLAM algorithm…
It is to be noted that ParaViewLite is not the only way to expose LidarView to the web. trame (which internally uses ParaView Web) can also do it. This has the double advantage to come with a large panel of other nifty visualization tools while doing all the development in Python.
What are the use cases for LidarView on the web?
This approach enables quick sharing of LiDAR datasets, since all your data fully remains on a remote infrastructure. It will allow you to store all your LiDAR datasets in a single server and make it available for display across multiple users.
You may also visualize live data remotely from a distant location.
For instance, if you have a LiDAR sensor mounted on a mobile robot broadcasting the data over the network, you can use LidarView streaming built-in feature, and the LidarView Web layer will manage the flow of the images to the clients, all in real-time.
Users only need to access a URL from a web browser in order to get started exploring your datasets and live streams!
Please feel free to contact Kitware if you’re interested in LidarView Web or our other web technologies such as trame, Kitware Glance or Volview.