Christopher Batty

Banting Postdoctoral Fellow,
Columbia Computer Graphics Group, Columbia University

E-mail: christopherbatty@yahoo.com

Recent news:
Our paper on Discrete Viscous Sheets has been conditionally accepted to SIGGRAPH 2012. (March 28, 2012)
A recent New Scientist article discusses icicle formations, and mentions our ongoing work with U of T's Stephen Morris towards simulating them. (Dec 31, 2011)
I have been named a Banting Postdoctoral Fellow. (Sept 15, 2011)
Our paper on Eulerian tetrahedral viscous liquids was accepted to SCA 2011. (July 1, 2011)
I have posted source code for a bare bones 3D liquid simulator. (Jan 12, 2011)
Our Perspective article (Computational Physics in Film) appeared in Science today. (Dec 24, 2010)

About me:
I do research in computer graphics and computational physics. My primary focus is fluid animation, although I am more broadly interested in applying physics as a fundamental tool in generating 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 phenomena
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. 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 are now deployed in fluid animation tools by Side Effects Software, Exotic Matter, Exocortex Technologies, and DPIT.

I am currently a postdoc at Columbia University working with Eitan Grinspun. I also manage the Physics-Based Animation blog, which has catalogued papers, people, and software in this field since 2007.

Animations:

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


Publications:
Discrete Viscous Sheets
C. Batty, A. Uribe, B. Audoly, & E. Grinspun. Conditionally accepted to ACM SIGGRAPH 2012.
[PDF] [Project] [Video]
A Simple Finite Volume Method for Adaptive Viscous Liquids
C. Batty & B. Houston. ACM SIGGRAPH/Eurographics Symposium on Computer Animation 2011.
[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.
[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).
[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).
[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.
[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).
[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.
[PDF] [Project] [Journal]

Sketches:
Visual Simulation of Wispy Smoke
C. Batty & B. Houston. ACM SIGGRAPH Sketches, 2005.
[PDF] [Project] [Journal]

Gigantic Deformable Surfaces
B. Houston, M. Nielsen, C. Batty, O. Nilsson, & K. Museth. ACM SIGGRAPH Sketches, 2005.
[PDF] [Project] [Journal]

RLE Sparse Level Sets
B. Houston, M. Wiebe, & C. Batty. ACM SIGGRAPH Sketches, 2004.
[PDF] [Project] [Journal]



Teaching:

Notes on Fluids: An introduction to Eulerian fluid animation for computer graphics.
Part One PPTX PDF
Part Two PPTX PDF


Code and Data:

Miscellaneous sample code and data from some of my projects. I'd love to hear from you if you find any of this useful.

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.
[Github link]
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.
[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. In addition to his appearances in my fluid papers, he recently played a minor supporting role in Djeu et al '09. 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.


Background:
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, and defended my dissertation in fall of 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.
Before pursuing a PhD, I worked 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 group. 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.
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 owned by IBM) and Protegra, Inc.

Miscellaneous:
Course project: Implementing Energy Redistribution Path Tracing
Energy redistribution path tracing is a rendering method that hybridizes Monte Carlo path tracing with Metropolis Light Transport. I modified PBRT to support ERPT for a course project in 2005. A few people have contacted me with regards to this project, so I'm leaving the report online in case others find it useful.

Some thoughts about the problem of reconstructing tri-meshes from signed distances.
I wrote some quick code to tally SIGGRAPH papers by institution from 2005-2010, and posted the results here.