Pushkar Joshi

Research and development of advanced technology in graphics, user interfaces, geometric modeling, and visualization

Contact: pushkarj AT Siggraph Dot Org



Software Engineer, Google Inc.
(formerly at Motorola Mobility)

Simplifying graphic design and creating visually rich user experiences on the web

Developed the Pen tool (vector design) and Brush tool (raster design) for Ninja Authoring Tool: a graphic design web app. for creating HTML5 web content.



Research Scientist, Adobe Systems Inc.

Member of the Advanced Technology Lab

Research in curve-based 3D modeling, variational modeling, multitouch 3D manipulation, 6 D.o.F. devices

Developed core geometry engine for Repousse feature of Photoshop CS5 (renamed as '3D Extrusion' in Photoshop CS6)



Graduate Student, University of California, Berkeley

Ph.D. in Computer Science (topic: variational shape design)



Intern, Pixar Animation Studios

research and development for harmonic coordinates project 



Intern, Institute for Creative Technologies

research and development for facial animation and thin-shell simulation

Publications and Tutorials

3D artwork using CSS3 and Canvas, built by Ninja

Graphics Programming for the Web
Pushkar Joshi, Mikael-Bourges Sevenier, Kenneth Russell, Zhenyao Mo
Siggraph 2012 Course

Click here for course notes and slides

We introduce web programming and the dominant graphics technologies (CSS, HTML5 Canvas, WebGL, WebCL) that are supported by most modern browsers. With HTML5 and ever-improving browser performance, the web has emerged as an ideal platform for showcasing graphics applications. Several graphics applications that were once too slow to be written in anything but native code may now be fast enough to run as web apps.

For each topic, the course notes above contain a significant number of code examples that illustrate the relevant graphics capabilities. You are welcome to copy and paste our code snippets and execute them inside any modern webkit browser (e.g. Chrome or Safari).


Just DrawIt: a 3D sketching system
Cindy Grimm, Pushkar Joshi
Sketch-Based Interfaces and Modeling 2012

(click here for a video)

We present “JustDrawIt”, a sketch-based system for creating 3D curves suitable for surfacing. The user can sketch in a free-form manner from any view at any time, and the system infers how those sketch strokes should be added to the drawing. Specifically, existing curves are projected to 2D and analyzed to see if the stroke edits or extends an existing curve, or if the stroke should make a new curve. In the former case the 2D stroke is promoted to 3D using the position of the existing curve, and then joined to that curve. In the latter case, we use additional spatial information (e.g. temporary 3D surfaces) to create a new curve in 3D. All non-sketching interactions are based on unintrusive context-aware, in-screen pie menus designed for rapid pen-based input. We also provide novel rendering styles and aides for interpreting and working with 3D sketches. Finally, we support snapping together curve networks and specifying normals in order to create surface models.

teaser for multiscale preconditioner report Efficient Nonlinear Optimization via Multiscale Gradient Filtering
Tobias Martin, Pushkar Joshi, Miklos Bergou, Nathan Carr
Under review, filed as a University of Utah Tech. Report UUCS 12-001

We present a method for accelerating the convergence of gradient-based nonlinear optimization algorithms. We start with the theory of the Sobolev gradient, which we analyze from a signal processing viewpoint. By varying the order of the Laplacian used in defining the Sobolev gradient, we can effectively filter the gradient and retain only components at certain scales. We use this idea to adaptively change the scale of features being optimized in order to arrive at a solution that is optimal across multiple scales. This is in contrast to traditional descent-based methods, for which the rate of convergence often stalls early once the high frequency components have been optimized. Our method is conceptually similar to multigrid in that it can be used to smooth errors at multiple scales in a problem, but we do not require a hierarchy of representations during the optimization process. We demonstrate how to integrate our method into multiple nonlinear optimization algorithms, and we show a variety of optimization results in variational shape modeling, parameterization, and physical simulation.

curve based modeling tutorial
Curve-Based Modeling - A Tutorial
Pushkar Joshi
IEEE Computer Graphics and Applications
vol. 31, no. 6 (Nov.-Dec. 2011)

This tutorial provides a starting point for curve-based modeling. It introduces three rough categories of curve-based-modeling methods: extruding 2D shapes, inflating 2D shapes, and drawing 3D curves. This tutorial introduces representative methods that yield positive results while also exposing several issues related to curve-based modeling.

teaser for surface patch extraction
Surface Patches from Unorganized Space Curves
Fatemeh Abbasinejad, Pushkar Joshi, Nina Amenta
Eurographics Symposium on Geometry Processing 2011

Recent 3D sketch tools produce networks of three-space curves that suggest the contours of shapes. The shapes may be non-manifold, closed three-dimensional, open two-dimensional, or mixed. We describe a system that automatically generates intuitively appealing piecewise-smooth surfaces from such a curve network, and an intelligent user interface for modifying the automatically chosen surface patches. Both the automatic and the semi-automatic parts of the system use a linear algebra representation of the set of surface patches to track the topology. On complicated inputs from ILoveSketch, our system allows the user to build the desired surface with just a few mouse-clicks.

Click here for more information.

teaser image for sweep extraction
Interactive Extraction and Re-Design of Sweep Geometries
James Andrews, Pushkar Joshi, Carlo Sequin

We introduce two interactive extraction modules that can fit the parameters of generalized sweeps to large, unstructured meshes for immediate, high-level, detail-preserving modification. These modules represent two extremes in a spectrum of parameterized shapes: rotational sweeps defined by a few global parameters, and progressive sweeps forming generalized cylinders with many slowly varying local parameters. Both modules are initialized and controlled by the user drawing a few strokes onto the displayed original model. We demonstrate the system on various shapes, ranging from clean, mechanical geometries to organic forms with intricate surface details

linear variational curve modeler teaser
image Adobe Systems Inc.
A Linear Variational System for Modeling From Curves
James Andrews, Pushkar Joshi, Nathan Carr
Computer Graphics Forum, Eurographics Association, 2011

We present a linear system for modelling 3D surfaces from curves. Our system offers better performance, stability and precision in control than previous non-linear systems. By exploring the direct relationship between a standard higher-order Laplacian editing framework and Hermite spline curves, we introduce a new form of Cauchy constraint that makes our system easy to both implement and control. We introduce novel workflows that simplify the construction of 3D models from sketches. We show how to convert existing 3D meshes into our curve-based representation for subsequent editing and modelling, allowing our technique to be applied to a wide range of existing 3D content.

teaser image for third-order surface params
An intuitive explanation of third-order surface behavior
Pushkar Joshi, Carlo Sequin
Computer-Aided Geometric Design 27(2):150--161, February 2010

We present a novel parameterization-independent exposition of the third-order geometric behavior of a surface point. Unlike existing algebraic expositions, our work produces an intuitive explanation of third-order shape, analogous to the principal curvatures and directions that describe second-order shape. We extract four parameters that provide a quick and concise understanding of the third-order surface behavior at any given point. Our shape parameters are useful for easily characterizing different third-order surface shapes without having to use tensor algebra. Our approach generalizes to higher orders, allowing us to extract similarly intuitive parameters that fully describe fourth- and higher-order surface behavior.

teaser image for viz. high order shape
Visualizing High-Order Surface Geometry
Pushkar Joshi, Carlo Sequin
Computer-Aided Design and Applications, 6(2):263--268, June 2009.

We have derived parameters that describe the higher-order geometric behavior of smooth surfaces. Our parameters are similar in spirit to the principal directions and principal curvatures that succinctly capture second-order shape behavior. We derive our parameters from a cylindrical Fourier decomposition around the surface normal. We present a visualization program for studying the influence of the various terms of different degrees on the shape of the local neighborhood of a surface point. We display a small surface patch that is controlled by two sets of parameters: One set is a simple polynomial description of the surface geometry in Cartesian coordinates. The other one is a set of Fourier components grouped by angular frequency and by their phase shifts. Manipulating the values in one parameter set changes the geometry of the patch and also updates the parameter values of the other set.

teaser for PhD thesis
Minimizing Curvature Variation for Aesthetic Surface Design
Pushkar Joshi, Advisor: Carlo Sequin
Ph.D. Thesis
EECS Department, University of California, Berkeley
Technical Report No. UCB/EECS-2008-129, October 7, 2008

We investigate the usability of functional surface optimization for the design of free-form shapes. The optimal shape is subject to only a few constraints and is influenced largely by the choice of the energy functional. Among the many possible functionals that could be minimized, we focus on third-order functionals that measure curvature variation over the surface.

We provide a simple explanation of the third-order surface behavior and decompose the curvature-variation function into its Fourier components. We extract four geometrically intuitive, parameterization-independent parameters that completely define the third order shape at a surface point. We formulate third-order energy functionals as functions of these third-order shape parameters.

By computing the energy minimizers for a number of canonical input shapes, we provide a catalog of diverse functionals that span a reasonable domain of aesthetic styles. The functionals can be linearly combined to obtain new functionals with intermediate aesthetic styles. Our side-by-side tabular comparison of functionals helps to develop an intuition for the preferred aesthetic styles of the functionals and to predict the aesthetic styles preferred by a new combination of the functionals.

To compare the shapes preferred by the functionals, we built a robust surface optimization system. We represent shapes using Catmull--Clark subdivision surfaces, with the control mesh vertices acting as degrees of freedom for the optimization. The energy is minimized by an off-the-shelf implementation of a quasi-Newton method. We discuss some future work for further improving the optimization system and end with some conclusions on the use of optimization for aesthetic design.

repousse teaser image
image Adobe Systems Inc.
Repousse: 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. Repousse 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. Repousse 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

teaser for harmonic coord
image Pixar Animation Studios
Harmonic Coordinates for Character Articulation
Pushkar Joshi, Mark Meyer, Tony DeRose, Brian Green and Tom Sanocki
Proceedings of ACM SIGGRAPH 2007

In this paper we consider the problem of creating and controlling volume deformations used to articulate characters for use in high-end applications such as computer generated feature films. We introduce a method we call harmonic coordinates that significantly improves upon existing volume deformation techniques. Our deformations are controlled using a topologically flexible structure, called a cage, that consists of a closed three dimensional mesh. The cage can optionally be augmented with additional interior vertices, edges, and faces to more precisely control the interior behavior of the deformation. We show that harmonic coordinates are generalized barycentric coordinates that can be extended to any dimension. Moreover, they are the first system of generalized barycentric coordinates that are non-negative even in strongly concave situations, and their magnitude falls off with distance as measured within the cage.

teaser for energy minimizers
Energy Minimizers for Curvature-Based Surface Functionals
Pushkar Joshi, Carlo Sequin
Computer-Aided Design & Applications, Vol. 4, No. 5, 2007, pp 607-617
Best Student Paper award

We compare curvature-based surface functionals by comparing the aesthetic properties of their minimizers. We introduce an enhancement to the original inline curvature variation functional. This new functional also considers the mixed cross terms of the normal curvature derivative and is a more complete formulation of a curvature variation functional. To give designers an intuitive feel for the preferred shapes attained by these different functionals, we present a catalog of the minimum energy shapes for various symmetrical, unconstrained input surfaces of different genera.

teaser for learning controls for blendshape facial anim.
Learning Controls for Blend Shape Based Realistic Facial Animation
Pushkar Joshi, Wen Tien, Mathieu Desbrun, Frederic Pighin
Eurographics/SIGGRAPH Symposium on Computer Animation (2003)

Blend shape animation is the method of choice for keyframe facial animation: a set of blend shapes (key facial expressions) are used to define a linear space of facial expressions. However, in order to capture a significant range of complexity of human expressions, blend shapes need to be segmented into smaller regions where key idiosyncracies of the face being animated are present. Performing this segmentation by hand requires skill and a lot of time. In this paper, we propose an automatic, physically-motivated segmentation that learns the controls and parameters directly from the set of blend shapes. We show the usefulness and efficiency of this technique for both, motion-capture animation and keyframing. We also provide a rendering algorithm to enhance the visual realism of a blend shape model.