Iowa State University
Electrical, Computer, & Software Engineering Senior Design
May 2013


Adaptive Point Cloud Rendering

Client: Michael Carter, Siemens PLM Software
Team: Christopher Jeffers, Eric Jensen, Joel Rausch
Adviser: Simanta Mitra
Wikipedia Point Cloud Torus Author:Kieff


Siemens PLM Software creates software that allows companies to import models of various components and locations to analyze various details such as collision and dimensions of an assembled object. Most models used in these programs have the data that allow them to be rendered as polygons. Some hardware used in the industry, however, creates models that are created of entirely points. Siemens PLM does not currently have software that allows them to render entire models made entirely of hundreds of millions of points, models also known as point clouds. While they have the capability to render points if they are part of a model, if a model consists of more than a few thousand points the rendering program will not perform at desired levels.

The purpose of our project is to create a medium-scale (100s of millions - billions of points) point cloud rendering kernel that will render a displayed section of the point cloud efficiently. This project is about feasibility as much as it is functionality. We are not sure if we will be able to complete the project to the desired requirements, and much research must be done to figure out the most efficient methods to complete our task. Testing will also be a large part of this project, to confirm that our methods work correctly and efficiently. The two main components of this program will be the data structure we choose to represent the point cloud data and the algorithm we choose to decide which points are rendered.

Problem Statement

Rendering very large point clouds comes with the challenges of handling memory and making sure we maintain a frame rate high enough to allow the user to interact with the model. We need a solution that will not use a huge amount of system RAM and can quickly decide which points need to be rendered.


Our research lead us to a point cloud rendering system created at Stanford University in the year 2000, called QSplat. This system creates a very efficient and compressed tree structure for our point data that allows us to keep system memory usage low. Traversing this tree structure allows us to easily find where a point should be rendered. We are able to improve upon their methods because of improved hardware they did not have while creating QSplat. This allowed us to reach our goal of rendering a point cloud with a billion points.

Project Documents

  • Project Plan (docx) (pdf)
  • Design Document (docx) (pdf)
  • Presentation (pptx) (pdf)
  • Poster (pptx) (pdf)
  • Binaries (zip) *64-bit Windows and OpenGL 3.3 or higher required
  • Appendices
    • (Jensen 12) Point Cloud Filtering using Ray Casting (docx) (pdf)
    • (Rusinkiewicz 00) QSplat (pdf)
    • (Kobbelt 02) Efficient High Quality Rendering of Point Samples Geometry (pdf)

Weekly Reports

Photo of Joel Rausch
Joel Rausch, CprE
Team Leader
Photo of Eric Jensen
Eric Jensen, SE/ME
Photo of Christopher Jeffers
Christopher Jeffers, CprE