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.