|
UPDATE!
I recently filed my Ph.D. thesis. You can
find the entire document here:
http://www.eecs.berkeley.edu/Pubs/TechRpts/2008/EECS-2008-129.html
While I'm interested in most aspects of
graphics, my work is primarily in the area of geometry manipulation and
surface
modeling. I like to dabble with subdivision surfaces,
discrete differential geometry operators, aesthetic shape design
functionals, shape analysis, thin-shell simulations and character
animation.
Thesis Research
-
Surface Optimization for Aesthetic Design
We would like to optimize the shape of an input surface
into the local minimum of an aesthetic energy functional. We want to do
this independent of
any surface
parameterization, tesselation or any
other 'non-shape' characteristics. The ultimate goal is to
construct a surface design tool that will produce several different optimal shapes
(with respect to different aesthetic functions) subject to the input
constraints (if any).
Different
Aesthetic Functionals
Most surface optimization methods optimize the bending energy
functional, which essentially measures total curvature. Using the same
system, we are also investigating the
aesthetic properties of different curvature based energy functionals -
specifically those minimizing the variation
of curvature. The aesthetic benefits of these different functionals
are apparent for surfaces of high genus.
This table shows a symmetric genus-2 input surface, along with the
minimizers for various functionals.
|
 |
 |
 |
| Input |
Willmore
|
MVS |
MVScross |
Current Work
We have built a subdivision-based robust
system that allows us to obtain results like the above. Despite the
fact that
we're taking no shortcuts while
computing the surface energy, our system is pretty fast (order of
seconds for simple shapes). But it is not fast enough to be
interactive, and making this
optimization interactive is the focus of our current
research. We are planning to use discrete differential geometry
operators (collaboration
with Prof.
Eitan Grinspun at Columbia University) for our variational design
system.
You can read about some of the work at:
Energy Minimizers for
Curvature-Based Surface Functionals (with Carlo Sequin)
In Computer-Aided Design
and Applications (CAD&A) 2007 (Best Student Paper).
We
compare aesthetic surface energy functionals by comparing their
minimizers for a number of canonical starting surfaces. We give a
high-level description of the shape characteristics favored by three
functionals.
Intuitive Exposition
of Third Order Surface Behavior (with Carlo Sequin)
Pre-print draft, June 2008
Recently,
we have been interested in developing an intuitive understanding of
third order shape behavior. We describe how all third order surface
properties (i.e. curvature derivatives) can be described by computing
four parameterization-independent, intuitive parameters. You can read
about our progress in this
draft (suggestions welcome!)
|
Other (Non-Thesis) Active Projects
Browsing
Shape Collections (poster)
As the
final project for Prof. Maneesh Agrawala's Visualization class, I built
an interactive shape browser to give a quick hierarchical overview of a
collection of shapes. The current system uses polygon meshes to
represent shapes; I used the Princeton Shape Benchmark as a sample
shape collection. A spherical harmonics transform of the shape
representation gives a multi-dimensional shape 'signature' (i.e. a list
of numbers), which are then reduced down to two dimensions for viewing
purposes.
I'm continuing this project, with guidance from Maneesh and Carlo.
|
Past Projects
The following is some
information on past
graphics projects. I will always be interested in any comments
about this work.
|

|
Repoussé: Automatic Inflation of
2D Artwork
Pushkar Joshi, Nathan Carr
Eurographics
Workshop on Sketch-Based Modeling, 2008
We describe a new
system for the interactive enhancement of 2D art with 3D geometry.
Repoussé creates a 3D
shape by inflating the surface that interpolates the input curves. By
using the mean curvature stored at boundary
vertices as a degree of
freedom, we are able to control the inflated surface intuitively and
efficiently using a single
linear system.
Repoussé handles both smooth and sharp position constraints.
Position constraint vertices can also
have curvature
constraints for controlling the inflation of the local surface. We show
the applications of our system
in font design, stroke
design, photo enhancement and freeform 3D shape design.
|
|
Harmonic
Coordinates for Character Articulation
Pushkar Joshi, Mark Meyer, Tony DeRose, Brian Green, Tom Sanocki
Proceedings of the ACM SIGGRAPH 2007
I was an intern at Pixar for a year (May 2006 to May 2007),
and worked on a new part for a character articulation system.
See the project described in detail here:
|
|
Learning Controls for Blend
Shape Based Realistic Facial Animation (bibtex)
Pushkar Joshi, Wen C. Tien, Mathieu Desbrun, and Frédéric
Pighin
Proceedings of the ACM SIGGRAPH Symposium on
Computer Animation (SCA) 2003 and also
ACM SIGGRAPH Technical Sketches 2003
Results with Motion Capture Data: 3MB
--shows results obtained in real-time by mapping face motion i.e. point
cloud motion onto a blendshape face model
Keyframe Creation Tool: 25MB
--shows our keyframe creation tool being used to create a new face mesh
(both videos are coded with MPEG-1 and contain audio)
|
 |
Real-time Lagrangian Particle System
Based on Smoothed Particle Hydrodynamics
As the final project in my graduate
graphics class at Berkeley (Prof. O'Brien - Fall 2003), I created a
Lagrangian particle system that one could interact with in real-time.
The rendering is pretty basic and the results are not as good as I
would have liked them to be, but it is real-time and a lot of fun to
play around with.
The formal report is here.
|
|
Footskate cleanup - Implementing Lucas
Kovar's SCA 2002 Paper:
"Footskate
cleanup for motion capture editing" Kovar et al, Proceedings of
the 2002 ACM SIGGRAPH/Eurographics symposium on Computer animation
The Footskate Problem
Footskate appears when we apply motion capture data with constraints to
a virtual character. The character's feet seem to slide on the ground
when they should be firmly planted. It appears as if the character is
walking on a frictionless surface, and is detrimental to the realism of
the animation.
As the final project in my animation
class at USC (Prof. Desbrun - Spring 2003), Chris Mattmann and I
implemented all aspects of the Kovar 2002 paper. This required
understanding basic principles of human motion, especially the
kinematics of the lower half of the body during ground contact.
|
(click to enlarge)
|
Camera Calibration And 3-D Scene
Reconstruction
This was one of the projects for the
introductory computer vision class at USC (Prof. Medioni - Fall 2002).
By using a calibration cube, I calibrated the camera used to take
pictures of blocks. Using a calibrated camera and mouse-click input
from the user, the 3D scene was then reconstructed from an image.
For a 3D camera model (4x3 matrix), there
are 11 degrees of freedom - these are the camera parameters. I used
three methods to separately compute these parameters (thereby
calibrating the camera).
- constructing an exact linear system to
extract the 11 camera parameters - this gives an exact and often
erroneous solution
- over-determined system for compute a
least-squares solution (similar to above, except the linear system is
over-determined) - this gives solutions that are useful
- using OpenCV ® to calibrate the
camera - as expected, this gave the best solution
After calibration, the camera parameters
were used to obtain 3D positions of corners of blocks by recording
mouse-clicks. Note that this was highly ad-hoc and done with
assumptions of symmetry and box-like shape of the blocks. VRML files
were produced as output.
|
(click to enlarge)
|
Real-time Rendering of Fur
During my Senior year at USC (Prof. Desbrun - Fall 2001), I (with Tri
Desa) implemented Jed Lengyel's paper on real-time fur rendering (Real-Time
Fur, Jerome E. Lengyel, Eurographics Rendering Workshop 2000 ©
Springer-Verlag).
The gist of the rendering technique is to use volume texture
for a coarse level of detail, and rendering hair filaments as one zooms
onto the surface for a higher level of detail, using alpha blending to
interpolate between the two. To create the volume texture, we
calculated the intersection points of the hair filaments with the
imaginary transparent layers on top of the surface. The volume texture
generation is a pre-processing technique, and once this step is done,
the rest of the rendering is super-fast, i.e. in real-time. Since we
didn't use any hardware acceleration, we weren't able to get the hair
rendering perfectly in real-time, but got close.
The program was aptly named R.O.G.A.I.N.E. - we somehow made up an
acronym that worked...it was too far-fetched for me to remember it.
|
|