Matthew Bolitho
Department of Computer Science
The Johns Hopkins University
Baltimore, MD, USA

Biography


Matthew is a 5th year Ph.D candidate in the Computer Graphics Lab in the Department of Computer Science at The Johns Hopkins University.
His research focuses on Surface Reconstruction -- the process of constructing computer-based representations of the surface of an object from scanned, real-world data. In particular, he is interested in the reconstruction of extremely large data (billions of data points) on parallel computing systems. His other research interests include applying the immense parallel computing capabilites of modern graphics processing units (GPU's) for intersting problems in Science and Engineering.
During the summer of 2007, Matthew was a visiting Engineer at the NASA Goddard Space Flight Center in Greenbelt, MD. During the summer of 2008, he was an Architect at NVIDIA Corporation in Santa Clara, CA. Prior to joining the Computer Graphics Lab at JHU, Matthew was a Software Engineer at Beca, Australasia's largest engineering consultancy firm. He recieved his undergraduate education at the The University of Auckland.

Matthew Bolitho
Department of Computer Science
The Johns Hopkins University
3400 North Charles Street
Balitmore, MD 21218

Office: New Engineering Building (NEB) Room 215

Research

Multilevel Streaming for Out-of-Core Surface Reconstruction

Matthew Bolitho, Michael Kazhdan, Randal Burns and Hugues Hoppe, Eurographics Symposium on Geometry Processing (2007)
Reconstruction of surfaces from huge collections of scanned points often requires out-of-core techniques, and most such techniques involve local computations that are not resilient to data errors. We show that a Poisson-based reconstruction scheme, which considers all points in a global analysis, can be performed efficiently in limited memory using a streaming framework. Specifically, we introduce a multilevel streaming representation, which enables efficient traversal of a sparse octree by concurrently advancing through multiple streams, one per octree level. Remarkably, for our reconstruction application, a sufficiently accurate solution to the global linear system is obtained using a single iteration of cascadic multigrid, which can be evaluated within a single multi-stream pass. We demonstrate scalable performance on several large datasets.
[More Information]   [PDF]   [Talk]   [Source Code]

Poisson Surface Reconstruction

Michael Kazhdan, Matthew Bolitho and Hugues Hoppe. Eurographics Symposium on Geometry Processing (2006)
We show that surface reconstruction from oriented points can be cast as a spatial Poisson problem. This Poisson formulation considers all the points at once, without resorting to heuristic spatial partitioning or blending, and is therefore highly resilient to data noise. Unlike radial basis function schemes, our Poisson approach allows a hierarchy of locally supported basis functions, and therefore the solution reduces to a well conditioned sparse linear system. We describe a spatially adaptive multiscale algorithm whose time and space complexities are proportional to the size of the reconstructed model. Experimenting with publicly available scan data, we demonstrate reconstruction of surfaces with greater detail than previously achievable.
[More Information]   [PDF]   [Talk]   [Source Code]

A Relational Debugging Engine for the Graphics Pipeline

Nathaniel Duca, Krzysztof Niski, Jonathan Bilodeau, Matthew Bolitho, Yuan Chen and Jonathan Cohen. ACM Transactions on Graphics (Proceedings of SIGGRAPH 2005)
We present a new, unifed approach to debugging graphics software. We propose a representation of all graphics state over the course of program execution as a relational database, and produce a query-based framework for extracting, manipulating, and visualizing data from all stages of the graphics pipeline. Using an SQL-based query language, the programmer can establish functional relationships among all the data, linking OpenGL state to primitives to vertices to fragments to pixels. Based on the Chromium library, our approach requires no modifcation to or recompilation of the program to be debugged, and forms a superset of many existing techniques for debugging graphics software.
[More Information]   [PDF]   [MOV]

Teaching

EN600.320/420 - Parallel Programming

Fall 2008. Co-taught with Prof. Randal Burns.
This course prepares the programmer to tackle the massive data sets and huge problem size of modern scientific and enterprise computing. The course will examine different forms of parallelism in four sections. These are: (1) massive data-parallel computations with Hadoop; (2) programming compute clusters with MPI; (3) thread-level parallelism in Java; and, (4) GPGPU parallel programming with NVIDIA's CUDA framework. [Class Website]

EN600.407 - General Purpose Computation on the GPU

Spring 2008.
Programmable graphics hardware not only provides a way to perform advanced real-time 3D rendering, but also a platform for highly parallel numerical computing. Over the past 5 years, the General Purpose Graphics Processor Unit (GPGPU) community has grown around performing non-graphics computations using the limited instruction set and framework of the graphics pipeline. This short course, which meets one hour per week for the Spring 2008 semester, will introduce students to GPGPU computing using NVIDIA's CUDA platform. [Class Website]

EN600.357/457 - Computer Graphics

Spring 2005, Spring 2006, Spring 2007. Teaching Assistant for Prof. Michael Kazhdan.
An introduction to computer graphics techniques and applications, including image processing, rendering, modeling and animation.

EN600.321/421 - Object Oriented Software Engineering

Fall 2004, Fall 2005, Fall 2006. Teaching Assistant for Prof. Scott Smith.
A practically oriented course introducing object-oriented software construction methodologies and their application. The Course topics covered include object-oriented analysis and design, UML, design patterns, refactoring, program testing, code repositories, team programming, and code reviews.