Christopher Batty

Assistant Professor
Scientific Computation Group and Computer Graphics Lab
David R. Cheriton School of Computer Science
University of Waterloo

Office: 3605 Davis Centre (DC3605)

I am always looking for talented students (and potentially postdocs) to join my lab.

Recent news:
  • I was awarded a 2014 NSERC Discovery Grant to support our group's research into computational models and tools for fluid animation. (June 26, 2014)
  • I am serving on the Pacific Graphics 2014 program committee. (June 13, 2014)
  • I served on the SCA 2014 program committee. (May 19, 2014)
  • Our SIGGRAPH 2014 paper, Multimaterial Mesh-Based Surface Tracking is now posted here. (May 12, 2014)
  • I served on the SIGGRAPH 2014 Technical Papers Committee. (March 19, 2014)


viscous coiling with a Stokes solver colliding drops under surface tension drop splash on a Voronoi mesh embedded boundaries on tetrahedra accurate viscosity for coiling liquids sub-grid solid fluid coupling on grids run-length encoding for sparse fluid simulation

About me:
My research lies at the intersection of computer graphics and computational physics. My work has focused on various aspects of fluid animation, although I am broadly interested in applying physical simulation as a fundamental tool for generating and predicting motion of all kinds. In my work, I strive to design algorithms that are based on sound physical, mathematical, and geometric principles, while being amenable to efficient and robust implementation.

Among other projects, I have developed methods for...
  • interactions between dynamic objects and fluids
  • animating and representing thin splashes and droplets
  • viscous liquids that coil and fold when poured (honey, syrup, etc.)
  • surface tension-driven phenomena
  • evolving multimaterial flows and geometries
Personal experience in visual effects has motivated much of my research: I have worked with Frantic Films (now Prime Focus VFX), Weta Digital (makers of Avatar and Lord of the Rings), and Exocortex Technologies (makers of, the free online 3D editor). I am credited on the movie Superman Returns, and also worked on Scooby Doo 2: Monsters Unleashed and Wes Craven's Cursed. Aspects of my research have been incorporated into fluid animation tools by Side Effects Software, Exotic Matter (since purchased by AutoDesk), Exocortex Technologies, and DPIT.
I created and continue to manage the Physics-Based Animation blog, which catalogues papers, people, and software in this area.

I have collected links to a few pieces of advice for students that you may find useful.

Multimaterial Mesh-Based Surface Tracking
F. Da, C. Batty, & E. Grinspun. To appear in ACM SIGGRAPH 2014 (Transactions on Graphics, 33(4), 2014).
The first collision-safe triangle mesh-based surface tracking method for evolving multimaterial geometries, including strategies for multimaterial topological changes: merging, splitting, T1, and T2 processes.
[PDF - High] [PDF - Low] [Project] [Video] [Code - Coming soon!]
Discrete Viscous Sheets
C. Batty, A. Uribe, B. Audoly, & E. Grinspun. ACM SIGGRAPH 2012 (Transactions on Graphics, 31(4), 2012).
A method for animating thin sheets of highly viscous liquid, drawing on and extending techniques from the simulation of thin shells and cloth.
[PDF] [Project] [Video] [Journal]
A Simple Finite Volume Method for Adaptive Viscous Liquids
C. Batty & B. Houston. ACM SIGGRAPH/Eurographics Symposium on Computer Animation 2011.
An Eulerian approach to achieve higher detail animations of high viscosity liquid behaviour (buckling, coiling, etc.) on structured tetrahedral meshes.
[PDF] [Video]

A Simple Finite Difference Method for Time-Dependent, Variable Coefficient Stokes Flow on Irregular Domains
C. Batty & R. Bridson
[arXiv preprint]

Computational Physics in Film
R. Bridson & C. Batty. Science 330(6012): 1756-1757.
A perspective piece on the increasingly common use of physical simulation in visual effects for film, along with discussion of some major challenges that remain.
[PDF] [Journal]

Simulating Viscous Incompressible Fluids with Embedded Boundary Finite Difference Methods
C. Batty. PhD Thesis, University of British Columbia.
[PDF] [Thesis Repository]

Matching Fluid Simulation Elements to Surface Geometry and Topology
T. Brochu, C. Batty, & R. Bridson. ACM SIGGRAPH 2010 (Transactions on Graphics, 29(4), 2010).
By adding simulation degrees of freedom exactly where they provide the most benefit, and using a triangle mesh-based surface representation, we show how to achieve much greater detail in liquid animations.
[PDF] [Project] [Journal]

Tetrahedral Embedded Boundary Methods for Accurate and Flexible Adaptive Fluids
C. Batty, S. Xenos, & B. Houston. Eurographics 2010 (Computer Graphics Forum, 29(2), 2010).
This paper demonstrates that combining embedded boundary methods with tetrahedra-based fluid simulation enables spatially adaptive liquid simulation with more accurate enforcement of air and solid boundary conditions.
[PDF] [Project] [Journal]

Accurate Viscous Free Surfaces for Buckling, Coiling and Rotating Liquids
C. Batty & R. Bridson. ACM SIGGRAPH/Eurographics Symposium on Computer Animation 2008.
A simple method to enforce physically correct forces at the surface of viscous liquids, such as honey or syrup, which in turn lets us reproduce previously very difficult effects like buckling, coiling, and rotational motion.
[PDF] [Project] [Journal]

A Fast Variational Framework for Accurate Solid-Fluid Coupling
C. Batty, F. Bertails, & R. Bridson. ACM SIGGRAPH 2007 (Transactions on Graphics, 26(3), 2007).
An optimization-based framework for accurately incorporating irregularly shaped rigid objects into standard grid-based fluid simulations, eliminating spurious "stairstep" artifacts and leakage that plagued previous methods.
[PDF] [Project] [Journal]

Hierarchical RLE Level Set: A Compact and Versatile Deformable Surface Representation
B. Houston, M. Nielsen, C. Batty, O. Nilsson, & K. Museth. ACM Transactions on Graphics, 25(1), 2006.
A compressed representation of level set implicit surfaces that avoids storing and processing irrelevant data far from the surface itself, allowing more efficient treatment of operations like morphing and liquid surface tracking.
[PDF] [Project] [Journal]

Short Papers & SIGGRAPH Talks/Sketches:
Regional Time Stepping for SPH
P. Goswami & C. Batty. Eurographics Short Papers, 2014.
A method to accelerate weakly compressible SPH simulations by exploiting spatially varying, asynchronous time integration.

Visual Simulation of Wispy Smoke
C. Batty & B. Houston. ACM SIGGRAPH Sketches, 2005.
A description of the smoke simulation techniques used on Wes Craven's werewolf movie Cursed.
[PDF] [Project] [Journal]

Gigantic Deformable Surfaces
B. Houston, M. Nielsen, C. Batty, O. Nilsson, & K. Museth. ACM SIGGRAPH Sketches, 2005.
A preview of the HRLE level set described more fully in the TOG paper above.
[PDF] [Project] [Journal]

RLE Sparse Level Sets
B. Houston, M. Wiebe, & C. Batty. ACM SIGGRAPH Sketches, 2004.
A compressed level set representation that was the precursor to the eventual HRLE level set above.
[PDF] [Project] [Journal]


CS888 Advanced Topics in Computer Graphics: Physics-Based Animation - Waterloo, Winter 2014

Notes on Fluids: An introduction to Eulerian fluid animation for computer graphics.

Code and Data:

Miscellaneous sample code and data from some of my projects; in other cases you'll find the code on the associated project page. I'd love to hear from you if you put it to use!

Non-manifold Simplicial Complex Mesh Library
This is my own implementation of a non-manifold simplicial complex-based mesh library, including arbitrary data associated to vertices, edges, triangles and tetrahedra. It's essentially my spin on the data structure outlined in "Building Your Own DEC at Home" with an API similar to "Design, Implementation, and Evaluation of the Surface_mesh Data Structure". The main goal is to allow non-manifold geometry and mixed dimensional components (tets, tris, segments), while being relatively simple to manipulate.
[GitHub link]
3D Liquid Simulator code
A minimal grid-based 3D liquid simulator and OpenGL viewer, using semi-Lagrangian advection, volumetric particles for the liquid, ghost fluid free surface conditions, and support for irregular solid boundaries using the variational/finite-volume approach from our SIG'07 paper. The only dependencies should be the GLUT library, so it's hopefully easy to set up and experiment with. Here's a sample clip. Update: I also added another version with our variational viscosity technique implemented in 3D.
[Inviscid code, on GitHub] [With viscosity, on GitHub]
2D Variational Viscosity code
Sample code illustrating how to use our variational viscosity discretization to support rotation and buckling and variable viscosity within the liquid solver below. (The link for the comparable 3D code is above.)
[Github link]
2D Variational Pressure Projection code
Sample codes illustrating how to use our variational pressure projection to support static irregular geometry within a very simple 2D "stable fluids" style fluid solver.
Air - Single phase fluid solver with static obstacles.
Liquid - Free surface liquid solver with static obstacles. This code combines our irregular solid boundary discretization with the 2nd order free surface pressure boundary condition of Enright et al. 2003.
SDFGen: Signed Distance Field Generator for triangle meshes
A simple command-line utility to construct a signed distance field from a triangle mesh, which is often useful for physics-based animation, such as in processing collisions for rigid objects.
[Github link]
Watertight Stanford bunny
I ran into some problems due to the holes in the bunny, and since I couldn't find a watertight version online, I made one myself (for non-commercial use, of course). It's also in OBJ format, rather than the original PLY. Thanks to the Stanford 3D Scanning Repository for the original model.
2D Polygon Moment of Inertia Tensor Code
I couldn't find any convenient code for computing 2D inertia tensors from the vertices and edges of a simple polygon, so I adapted/specialized Michael Kallay's excellent 3D code from the Journal of Graphics Tools article Computing the Moment of Inertia of a Solid Defined by a Triangle Mesh. The article mentions how to handle 2D bodies, but the accompanying code supports only 3D objects. My code provides the corresponding 2D implementation, while retaining the speed, brevity, and clarity of the original.

Higher Order Data Extrapolation in the Normal Direction
A sample Matlab implementation of quadratic extrapolation in the normal direction of a function from a region defined by a given signed distance function into a surrounding undefined region, essentially following Ng et al. 2009, Min & Gibou 2007, and Aslam 2003. This can be useful for extrapolating known velocities from a fluid region into a solid region, such as in the Ghost Fluid Method, for example. [Buyer beware: I haven't actually rigourously verified the order of convergence.]

For two years following my PhD (2011-2013) I was a postdoc in the Computer Science Department at the Columbia University in New York City, supported by an NSERC Banting Fellowship. My advisor was Dr. Eitan Grinspun.
My PhD is from the Computer Science Department at the University of British Columbia in Vancouver, BC. I worked under the supervision of Dr. Robert Bridson, beginning in 2005 and defending in 2010. During my degree I consulted for Ottawa-based Exocortex Technologies, and interned at Weta Digital in New Zealand, and Intel's Applications Research Lab in Santa Clara, California.
Prior to my academic career, I spent 2004-2005 working at Frantic Films VFX (since bought by Prime Focus VFX), a Winnipeg-based visual effects studio, where I was a Software Engineer in the Research and Development. My job was to develop physics tools for artists based on recent academic research, including smoke, water, and rigid and deformable bodies. These tools were used on various films, including Superman Returns, Scooby-Doo 2: Monsters Unleashed, and Cursed. (Much of the software division is now at Thinkbox Software.)
I'm a graduate of the Computer Science Honours Co-op program at the University of Manitoba, having completed my Bachelor of Computer Science degree in the fall of 2003. I also interned at OTI (original developers of Eclipse, now a subset of IBM) and Protegra, Inc.

Past and Current Collaborators:

  Basile Audoly, Fang Da, Florence Bertails-Descoubes, Robert Bridson, Tyson Brochu, Prashant Goswami, Eitan Grinspun, Ben Houston, Ken Museth, Michael Nielsen

  Some stray thoughts about the problem of reconstructing tri-meshes from signed distances.