On these pages you will find information about projects that I've worked on.

GPU Sparse Voxel Octree

Completed: July 2012
Libs/Frameworks: ExposureRender, CUDA

I followed this master course project uncredited at Delft University of Technology to explore my interests in GPU programming. I worked together with Korijn van Golen, with whom I also did my bachelor project. Our task here was to develop a spatial partitioning component for Exposure Render, which is a high performance volume rendering engine by Thomas Kroes. A volume in this case is a regular 3D grid of densities, for example the data measured in certain medical scans. A problem with this representation is that there are large regions that store redundant information, such as parts of the grid that only contain air.

We implemented a sparse voxel octree on the GPU for usage in Exposure Render. A sparse voxel octree is a spatial partitioning structure that compresses regions of low variance. We used a threshold of "just noticeable differences": regions are only compressed when the human eye will not see a difference between the renders of the uncompressed and the compressed volume. The octree reduces the memory required on the GPU for storing the volume. Additionally, the octree speeds up Exposure Render's ray traced rendering significantly for all practical data sets by detecting when a ray is in a compressed octree node and then letting the ray advance instantly to the octree node's boundary while correctly integrating the skipped distance.

All projects

Click any thumbnail to view project details.

Game addons

Short games




Design by Sylvia Strijk