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 (2007-2008)
- 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 (2000-2002), New York University (2002-2003), Princeton (2003-present)
- Software/Internet Developer at Cypress and Fullerton Colleges (1997-1999)
- 10 Peer-Referreed 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 peer-reviewed 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 Real-time 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 TR-785-07
-
Subtractive Shadows: A Flexible Technique for Shadow Level-of-Detail
- 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 Non-photorealistic Animation and Rendering 2007
-
Real-time Mesh Simplification Using the GPU
- Symposium on Interactive 3D Graphics 2007
-
Inverse Shade Trees for Non-Parametric Material Representation and
Editing
- SIGGRAPH 2006
-
Hierarchical Shape Classification Using Bayesian Aggregation
- Shape Modeling International 2006
Files: 4-Page Tech Report,
Conference Presentation,
Princeton Shape Benchmark
-
Pose-independent 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 Real-time View-dependent Multiresolution Meshing
- IEEE Transactions on Visualization and Computer Graphics
(May-June 2004)
-
XFastMesh: Fast View-dependant Mesh Simplifcation from External Memory
- IEEE Visualization 2002, October 2002
Files:
Conference Presentation,
XFastMesh Demo Movie
-
A Modular Client-Server 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, printf-style 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.
Real-time Graphics Solutions
In Spring 2003, I was the TA for a class entitled Real-Time 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 well-known Lucas-Kanade 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 user-configurable bump-mapping 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 z-buffered 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 non-robust 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