Christopher DeCoro
Résumé
 Ph.D in Computer Science, Princeton University (June 2009)
 Master's Degree in Computer Science, Princeton University (April 2005)
 ATI Research Fellow (20072008)
 Graduated 1st in class of 250, Summa Cum Laude, from the University of California, Irvine (March 2002)
 Maintained a 4.0 GPA
 Awarded by UC Irvine for Outstanding Contribution to Research
 Member, Phi Beta Kappa and Golden Key Honor Societies
 Research Intern at ATI Research (2006)
 Research Assistant at UC Irvine (20002002), New York University (20022003), Princeton (2003present)
 Software/Internet Developer at Cypress and Fullerton Colleges (19971999)
 10 PeerReferreed Publications (See below)
 Strong Knowledge of C/C++/C#, Java, Visual Basic, x86 Assembly, OpenGL, Unix, Windows
 Working Knowledge of MATLAB, Maya, VHDL/AHDL, Perl
Publications
I have published nine peerreviewed computer graphics papers and two book chapters, in addition to three papers in other fields

Rendering Filters for Controlling Detail and Creating Effects
 Ph.D Thesis (June 2009)

Scalar to Polygonal Extracting Isosurfaces Using Geometry Shaders
 Chapter in ShaderX7, published by Charles River Media (March 2009)

Advanced Interactive Medical Visualization on the GPU
 Journal of Parallel and Distributed Computing (October 2008)

Implementing Realtime Mesh Simplification Using the GPU
 Chapter in ShaderX6, published by Charles River Media (March 2008)

Bayesian Aggregation for Hierarchical Classification
 Princeton Computer Science Techincal Report TR78507

Subtractive Shadows: A Flexible Technique for Shadow LevelofDetail
 Journal of Graphics Tools, March 2008
Technical Report

Bayesian Aggregation for Hierarchical Genre Classification
 International Symposium on Music Information Retrieval 2007

Stylized Shadows
 Symposium on Nonphotorealistic Animation and Rendering 2007

Realtime Mesh Simplification Using the GPU
 Symposium on Interactive 3D Graphics 2007

Inverse Shade Trees for NonParametric Material Representation and
Editing
 SIGGRAPH 2006

Hierarchical Shape Classification Using Bayesian Aggregation
 Shape Modeling International 2006
Files: 4Page Tech Report,
Conference Presentation,
Princeton Shape Benchmark

Poseindependent Simplification of Skeletally
Articulated Meshes
 ACM Symposium on Interactive 3D Graphics and Games (April 2005)
Files: Conference Presentation, General Exam Presentation,
Demo Movie

Efficient Implementation of Realtime Viewdependent Multiresolution Meshing
 IEEE Transactions on Visualization and Computer Graphics
(MayJune 2004)

XFastMesh: Fast Viewdependant Mesh Simplifcation from External Memory
 IEEE Visualization 2002, October 2002
Files:
Conference Presentation,
XFastMesh Demo Movie

A Modular ClientServer Discrete Event Simulator for Networked Computers

Proceedings of the 35th Annual Simulation Symposium 2002, San Diego, USA, April
2002

A General Purpose Discrete Event Simulator

Symposium on Performance Evaluation of Computer and Telecommunication Systems, Orlando, USA , July 2001
Projects
 Imagedb  Image Debugging Library
 In my work I frequently have the need to visualize some buffer of data as an
image. This simple library that I wrote allows for easy, printfstyle debugging
of raw image data.
 Hierarchical Disk Usage Meter
 Example of Forms.NET that shows a directory's disk usage in a convenient tree view
COS333 Managed Projects
In Spring 2005, I was assigned to manage 4 groups of students as they designed
and implemented course projects for COS333. Over the course of the semester, we
had weekly meetings to review their progress. I'm quite proud of their results,
and I've included links to their project websites.
 What's My Image
 We've all seen hotornot.com (or should have), where given a picture of a person
people vote as to their physical attractiveness. But this is only a specific
instance of a more general question: what is a person's public image. This site
does a great job of generalizing the hotornot concept to include arbitrary
questions, and manages to be an incredibly fun and addicting timewaster.
 Princeton Room Draw Guide
 Every year, Princeton students select their rooms through a draw process,
where they select from a list of available rooms. These students thought that
it would be helpful to have more detailed information online about available
rooms
Computer Vision
In Spring 2004, I took Computer
Vision at Princeton University
 Edge Detector
 Using various techniques, we are able to produce an output image
where lines in the output indicate edges in the original.
 Image Quilting
 Given a source
texture, the image quilting algorithm allows us to create an
arbitrarily large image resembling the same texture.
 Eigenfaces
 By projecting the image of a face onto
a lower dimensional coordinate system defined from the SVD of a training set, we can
recognize faces

SpeedTrap
 Using traffic cameras, we can automatically track the speed of passing traffic.
Advanced Computer Graphics
In Fall 2003, I took Advanced
Computer Graphics at Princeton University
 Monte Carlo Path Tracer
 To simulate the wide range of lighting conditions that are seen in nature, we implement a system
that simulates light transport by tracing paths through the scene. Rather than consider all possible paths
of light, we use the Monte Carlo technique to randomly sample important paths, and use the results of sampling
these paths as an approximation.
 Lightfield Viewer
 Rather than represent a scene by modeling object geometry, we can instead sample the lightfield, a function
that measures the transport of light for various views of a scene independent of the underlying scene geometry, and
interpolate to reconstruct arbitrary views. Sample data for the program can be found
here
 Volume Viewer

In many scientific fields, especially medical imagery, volume datasets are very common. In this project, a friend
and I implemented a simple, interactive volume rendering system.
Realtime Graphics Solutions
In Spring 2003, I was the TA for a class entitled RealTime Interactive Computer Graphics. Essentially, it was a video game
class where the students worked on some simple 2d games. I wrote several assignments for the class, which were quite detailed,
and which I have here.
Motion Capture Assignments
Here are the writeups for some simple assignments in a Motion Capture class that I took in Spring 2003. I hope to have the source code
available soon
 Color Tracking
 Given an image of a person, we would like to know which pixels correspond to the person's skin, and which are background or clothes. This can be useful in tracking the position of a person's head or hands. We select a training sample of skin, to which we fit a gaussian distribution, and use this distribution to predict if other pixels correspond to skin.
 Optical Flow
 In another tracking problem, we would like to determine (or at least approximate) the movement of
some feature across the image, represented as the horizontal and vertical translation of some point. We
use the wellknown LucasKanade optical flow algorithm, which represents the problem as a minimization
of a quadratic error function. We use the linear first derivative to approximate the minima, and use
repeated searches until the error converges. This can be thought of as a form of Newton's method.
Fall 2002 Graphics Assignments
These are applets that I worked on for a Graphics class in the Fall of 2002. Some of them seem to have a problem
unless you have the official Java Runtime Environment from Sun, which you can get at
java.sun.com
 QuikDraw
 A simple drawing applet that demonstrates the basics of 2d graphics
in Java.
 Transforms
 Now that we can draw, we can also apply 2d linear transforms to a
simple object.
 Transform3D
 Implements an OpenGL like interface to display a 3d model,
demonstrates loading and parsing a geometry file, controlling the scene
with a virtual trackball, and performing the basic 3d rendering
pipeline from transforms to lighting to rasterization.
 Marble Mouse
 A basic raytracer that uses Perlin Noise to acheive interesting
texturing and lighting effects on sphere surfaces, and allows for
interactive experimentation with aspects of the lighting equations and
texturing.
 Rocky Rodent
 Extends Marble Mouse to
include userconfigurable bumpmapping based on the noise function, as
well as multiple configurable lights and simple shadowing.
 The Running Man
 Demonstrates skeletal animation with forward kinematics by loading
geometry and animation files
 The Running Man 2  Halloween Edition
 Extends the previous example with rasterizing, smooth shading,
lighting, texturing and zbuffered hidden surface removal.
 Splines
 Interactive Bezier splines
 Surfaces
 We generalize the previous assignment, which implemented smooth curves,
to the second parametric dimension, thus implementing smooth surfaces.
 Particles
 For our last act, we model various dynamically changing systems with
a particle system simulator.
Miscellaneous
 Invertible Elements
Presentation
 A presentation on a technique I developed to find certain patterns
in DNA sequences
 Subdivision Lecture Notes
 Notes that I wrote up for a class in Geometric Modeling, on the topic of
subdivision curves and surfaces
 Subdivision Surfaces Presentation
 A presentation of the paper "Subdivision Surfaces for Character Animation"
 Object Tracking Presentation
 A presentation of the paper "Visual Tracking of High DOF Articulated Structures"
 Deformable Object Registration Presentaion
 A presentation of several papers dealing with registration of deformable objects
 Distributed Cooperative Buffering Presentation
 A presentation of an idea for accelerating networked file access by transparently using a network as a stage in the memory heirarchy
 Maya Skeleton Exporter
 Simple and very nonrobust script to export skeletons from Maya. Select a node and run sklExport(). Email me if you have more questions.
 Robust Mesh Completion Video
 My colleague Joshua Podolak wrote a paper on hole filling / mesh completion, and I rendered, narrated, and edited this video for the submission
 Face Synthesis Completion Video
 My colleague Alex Golovinsky wrote a paper on statistical facial synthesis, and I narrated and produced this video for the submission
 Nice Things about C#
 Some features that I like about Microsoft's C#, especially as compared to Java
 Some Hopeful Words
 Computing My Erdos Number
 How to trace me to Paul Erdos in Four easy steps
Copyright © 2009 Christopher DeCoro