Projects & Publications



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 (colla
boration 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 articulation

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:

automatic face region extraction

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).

  1. constructing an exact linear system to extract the 11 camera parameters - this gives an exact and often erroneous solution
  2. 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
  3. 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.