I am a Principal Scientist at Adobe, where I conduct research and develop software for
processing digital photographs. My primary interests include image
processing, real-time rendering algorithms, and graphics
architectures. I currently work on Camera
Before joining Adobe, I was a Visiting Scientist at Mitsubishi Electric Research
Laboratories, where I worked with Ron Perry on
Type System. Saffron has been licensed to Adobe and is shipping in
several Flash-based products, including the Flash Player. If you've
ever visited a web site that uses Flash, chances are you've seen
Saffron in action!
In Spring 2007, I co-taught CSCI E-234
Introduction to Computer Graphics and GPU Programming with Hanspeter
Pfister at the Harvard Extension School. I also helped teach this
course in Fall 2005. It's part of the Extension School's Distance
Education program; we had students from all over North America
taking the class.
In the summer of 2005, I worked in the hardware verification group at
ATI Research (now AMD), where I designed and implemented a randomized
testing infrastructure for the R600 desktop chip (Radeon X2xxx
Frédo Durand and I
developed a method for rendering fake soft
shadows and a hybrid
algorithm that combines shadow maps and shadow volumes.
In August 2004 I taught in a
SIGGRAPH course on real-time shadowing techniques. My
presentation slides (on shadow
silhouette maps and on the
smoothie algorithm) are online.
Frédo and I also wrote a book chapter for GPU
Gems 2; this chapter describes a technique for rendering
prefiltered lines efficiently on graphics hardware. An earlier
version of this article is available
Before coming to MIT, I worked in the Stanford Computer Graphics Lab
under the supervision of Pat Hanrahan and Bill Mark. We extended
Shading Language and wrote compiler back ends for the ATI R300 and
NVIDIA NV30 architectures. We also developed a pass-decomposition algorithm to virtualize
graphics hardware resources.
Links: S.M. thesis,
online articles, and
SIGGRAPH course talks
Crater Lake National Park, Oregon
I enjoy nature photography and making prints.
Here is a collection of recent
images, updated every few weeks.
Early in 2007, I retired my aging Epson Stylus Photo 2200 and moved up
to the Epson Stylus Pro 3800, which is fantastic. Several years later it's
running as well as ever. I have put together some notes and a FAQ for
this printer (and its successor, the Epson Stylus Pro 3880):
Here are some additional notes on Epson printer calibration and some
general notes on profile making:
I have written a Mac software utility to fix defective pixels
(including columns/rows) in raw images captured with CCD sensors:
Raw color image processing notes for Adobe Camera Raw (ACR) versions
4.5 and later (also applies to Lightroom 2.0 and later):
Raw color image processing notes for Adobe Camera Raw (ACR) prior to
For static subjects, stitching two or more images is a good way to
gain additional resolution.
Here are some tables that show how various stitching arrangements
relate to print sizes: