PCL Developers blog

Pantelis Kalogiros

project:WebGL plugins - streaming pointcloud data to the browser
mentor:Gabriel Popa

About me

I am an undergraduate student at the Technological Educational Institute of Lamia, Greece. My areas of interest include Computer Graphics whilst spare time (and professional) endeavours making the web a nicer place.

Project Description

This project aims to develop a way to stream realtime pointcloud data to the browser over the internet.


  • Research streaming of pointcloud/depth data.
  • Assess browser limitations, memmory issues of using images, video, test websocket streaming etc
  • Build a lightweight enough WebGL pointcloud viewer
  • Space-time tradeoff, find a way to compress the data enough while keeping framerate to acceptable levels
  • Extend the WebGL PCD viewer

Recent status updates

PCL Datasets
Wednesday, May 30, 2012

I finally convinced myself I had something to share and say. During the first week of the coding period I decided to tackle issue #682,. The current datasets when accessed online are a list (xml) generated directly though the svn. While it works and is very fast it is a bit simplistic and improvements can be made, for example utilizing the WebGL PCD viewer, auto-loading the readme files etc.

Long story short,


A lot of features have been added so far, including, binary compressed PCD support for the WebGL Viewer, search/filtering results, mirroring controls between pointclouds, loading the readme file instantly, drag n drop PCD files from your desktop etc - among others. This mini project will hopefully be online soon, and a detailed post with instructions and included features will be made then. You can preview it if you go to issue #682 and feedback would be greatly appreciated.

Apart from this, I have installed PCL, ran a couple of examples, and tested image encoding (jpeg/png) of depth/rgb data. Lossy image compression algorithms (jpeg) are optimized for images and not depth so unfortunately while the compression rate is phenomenal a lot of unwanted noise is added. Entropy encoding does not suffer from this of course. The advantage of using images and videos lies in the browser, see browsers support images and video natively (the internet would be very ascii-art-like if they didn’t) so no overhead is added in the Javascript for decoding, plus it is quite trivial to import images in the GLSL shaders for very fast analysis. I am still performing tests to find an optimal solution.

Fine reads,

Julius Kammerl “Development and Evaluation of Point Cloud Compression for the Point Cloud Library” Institute for Media Technology, TUM, Germany - May 2011,

Fabrizio Pece, Jan Kautz, Tim Weyrich “Adapting Standard Video Codecs for Depth Streaming” Department of Computer Science, University College London, UK, Joint Virtual Reality Conference of EuroVR - EGVE (2011)