
Robert Bridson
Adjunct professor in the Imager and
SCL labs, UBC
Computer Science
Ph.D. Stanford '03, MMATH Waterloo '99, BMATH Waterloo '98
email  rbridson @ cs.ubc.ca 
phone  6048221993 
office  ICICS/CS X663 
mail  Dept. Computer Science, UBC
2012366 Main Mall
Vancouver, V6T 1Z4, Canada 

Current Position
As of August 2013 I am no longer a fulltime professor at UBC, but retain adjunct status.
I am now a Senior Principal Research Scientist for Visual Effects at Autodesk.
Symposium on Computer Animation
I helped organize SCA 2011, August 57 in Vancouver, just before
SIGGRAPH: www.siggraph.org/sca2011
Past Industry Work
I cofounded Exotic Matter,
a graphics company which made physical simulation software for the film
industry. Our Naiad software, acquired by Autodesk in 2012,
has featured in some of the most impressive
liquid effects to date, including films such as Avatar,
Narnia: Voyage of the Dawntreader,
XMen First Class,
Harry Potter and The Deathly Hallows Part 2,
Pirates of the Caribbean 4,
Rise of the Planet of the Apes,
and many others. It is currently used at studios around the world.
My official screen credits are for The Hobbit: An Unexpected Journey,
The Adventures of Tintin,
The Rise of the Planet of the Apes, and Inkheart,
but I have helped write inhouse software at studios used in
many other films. Most recently I spent ten months as part of R&D at
Weta Digital in New Zealand following earlier
visits. Before that I cowrote the Squirt fluid simulator for
Double Negative Visual Effects,
seen in many films for smoke, water, fire, clouds, inkinwater, etc. including
Harry Potter and the HalfBlood Prince,
2012,
The Boat that Rocked/Pirate Radio,
Inkheart,
Quantum of Solace,
The Dark Knight,
and Hell Boy II: The Golden Army. Even further back I helped out with
cloth simulation code used for Star Wars Episode II: Attack of the Clones
at Industrial Light and Magic, as one of the
original contributors to the PhysBAM project,
under my Ph.D. supervisor Ron Fedkiw.
Animations and Images
Books
Publications
I've supplied preprints in most cases, which may be missing figures or
include typos etc. Please see the publishers' websites for the official
versions.
 Resolving fluid boundary layers with particle strength exchange and weak adaptivity,
X. Zhang, M. Li, and R. Bridson, Proc. SIGGRAPH 2016.
 The DiscretelyDiscontinuous Galerkin coarse grid for domain decomposition,
E. Edwards and R. Bridson, arXiv:1504.00907, 2015 April 3.
 Simulating rigid body fracture with surface meshes,
Y. Zhu, R. Bridson, and C. Greif, Proc. SIGGRAPH 2015. (project)
 Restoring the missing vorticity in advectionprojection fluid solvers,
X. Zhang, R. Bridson, and C. Greif, Proc. SIGGRAPH 2015. (project)
 A PPPM fast summation method for fluids and beyond, X. Zhang and R. Bridson, Proc. SIGGRAPH Asia 2014.
 Ocean waves animation using boundary integral equations and explicit mesh tracking, T. Keeler and R. Bridson,
ACM SIGGRAPH/Eurographics Symposium on Computer Animation (Best Technical Paper award!)
and ACM SIGGRAPH 2014 Posters Program, 2014.
 Detailed water with coarse grids: combining surface meshes and adaptive discontinuous Galerkin, E. Edwards and R. Bridson,
Proc. SIGGRAPH 2014.
 Isosurface stuffing improved: accute lattices and feature matching, C. Doran, A. Chang, and R. Bridson,
ACM SIGGRAPH 2013 Sketches Program, 2013.
 Synthesizing waves from animated height fields, M. B. Nielsen,
A. Soderstrom, and R. Bridson, ACM Transactions on Graphics, 2013.
 Lineartime smoke
animation with vortex sheet meshes, T. Brochu, T. Keeler, and
R. Bridson, ACM SIGGRAPH/Eurographics Symposium on
Computer Animation 2012. (movie)
 Multiphase flow of
immiscible fluids on unstructured moving meshes, M. K. Misztal,
K. Erleben, A. Bargteil, J. Fursund, B. Bunch Christensen,
J. A. BĂ¦rentzen, and R. Bridson,ACM
SIGGRAPH/Eurographics Symposium on Computer Animation 2012.
(best paper award)
 Ghost SPH for animating
water, H. Schechter and R. Bridson, Proc. SIGGRAPH 2012.
(movie)
 Efficient Geometrically
Exact Continuous Collision Detection, T. Brochu, E. Edwards, and
R. Bridson, Proc. SIGGRAPH 2012. (opensource code,
project)
 Steady state Stokes flow
interpolation for fluid control, H. Bhatacharya, M. Nielsen, and
R. Bridson, to appear in Eurographics 2012, short papers.
 MultiFLIP for Energetic TwoPhase
Fluid Simulation, L. Boyd and R. Bridson, ACM Trans. Graph.
(movie)
 A highorder accurate
particleincell method, E. Edwards and R. Bridson, to appear in
Intl. J. Num. Meth. Engr.
 Guide shapes for high
resolution naturalistic liquid simulation, M. Nielsen and R. Bridson,
Proc. ACM SIGGRAPH 2011.
 Computational physics in film, R. Bridson and C. Batty, Science 24 December 2010: Vol. 330 no. 6012 pp. 17561757.
 A simple finite difference method for timedependent, variable coefficient Stokes flow on irregular domains, C. Batty and R. Bridson, 2010, arXiv preprint.
 Optimizationbased fluid simulation on unstructured meshes,
M. K. Misztal, R. Bridson, K. Erleben, A. Baerentzen, and F. Anton,
in Proceedings of Virtual Reality Interaction and Physical Simulation (VRIPHYS), 2010.
 Matching fluid simulation
elements to surface geometry and topology, T. Brochu, C. Batty, and
R. Bridson, Proc. ACM SIGGRAPH 2010, 9 pages. (project)
 SpikeNav: using stylus tilt in threedimensional
navigation, R. Bridson, ACM UIST 2009, poster session.
 Animating smoke as a surface,
T. Brochu and R. Bridson, Symposium on Computer Animation 2009, poster
session. (movie)
 Robust topological operations
for dynamic explicit surfaces, T. Brochu and R. Bridson,
accepted in SIAM Journal on Scientific Computing 2009. (for related software, see the
El Topo
project page.)
 Evolving subgrid turbulence for smoke animation,
H. Schechter and R. Bridson, Symposium on Computer Animation 2008. (full movie)
 Accurate viscous free surfaces for buckling, coiling, and rotating liquids,
C. Batty and R. Bridson, Symposium on Computer Animation 2008. (movie,
project page)
 Animating developable surfaces using nonconforming elements,
E. English and R. Bridson, Proc. ACM SIGGRAPH 2008. (movie)
 Fast Poisson disk sampling in arbitrary dimensions,
R. Bridson, ACM SIGGRAPH 2007 Sketches Program. (download the curlnoise
example code for a publicdomain implementation).
 A fast variational framework for accurate solidfluid coupling,
C. Batty, F. Bertails, and R. Bridson, Proc. ACM SIGGRAPH 2007. (movie,
project page)
 Curl noise for procedural fluid flow,
R. Bridson, J. Hourihan, and M. Nordenstam, Proc. ACM SIGGRAPH 2007. (movie
and public domain example code available.) See also Ivan DeWolf's technical report
Divergencefree noise for a slightly
different approach.
 Fluid animation with explicit surface meshes,
T. Brochu and R. Bridson, Symposium on Computer Animation 2006, poster session.
 Cloth animation through unbiased strain limiting
and physicsaware subdivision, D. Tsiknis and R. Bridson, Symposium on Computer
Animation 2006, poster session.
 A multipreconditioned conjugate gradient algorithm, R. Bridson
and Chen Greif, SIAM Journal on Matrix Analysis and Applications, 2005, vol. 27, no. 4, pp. 10561068.
 Animating sand as a fluid,
Y. Zhu and R. Bridson, ACM SIGGRAPH 2005. (see below
for code)
 Adaptive physics based tetrahedral mesh generation using level sets,
R. Bridson, J. Teran, N. Molino
and R. Fedkiw,
Engineering with Computers 2005.
 Nonconvex rigid bodies with stacking,
E. Guendelman, R. Bridson, and
R. Fedkiw,
ACM Transaction on Graphics, vol. 22, no. 3, Proc. ACM SIGGRAPH 2003, pp. 871878.
 Simulation of clothing with folds and wrinkles,
R. Bridson, S. Marino, and
R. Fedkiw, Proc.
ACM/Eurographics Symposium on Computer Animation 2003, pp. 2836.
 A crystalline, red green strategy for meshing
highly deformable objects with tetrahedra, N. Molino, R. Bridson,
J. Teran, and
R. Fedkiw,
Proc. International Meshing Roundtable 2003.
 Robust
treatment of collisions, contact and friction for cloth animation,
R. Bridson, R. Fedkiw
and J. Anderson, ACM Transactions on Graphics, vol. 21, no. 3, Proc.
ACM SIGGRAPH 2002, pp. 594603.
 Multiresolution
approximate inverse preconditioners, R. Bridson and W.P. Tang,
SIAM Journal on Scientific Computing, vol. 23, no. 2, pp. 463479.
 A
structural diagnosis of some IC orderings, R. Bridson and W.P. Tang,
SIAM Journal on Scientific Computing, vol. 22, no. 5, pp. 15271532
 Refining
an approximate inverse, R. Bridson and W.P. Tang,
Journal on Computational and Applied Math, 123 (2000), Numerical
Analysis 2000 vol. III: Linear Algebra, pp. 293306.
 Ordering,
anisotropy and factored approximate inverses, R. Bridson and W.P. Tang,
SIAM Journal on Scientific Computing, vol. 21, no. 3, pp. 867882.
 The
asymptotic regimes of tilted Bianchi II cosmologies, C. G. Hewitt, R. Bridson, and J.
Wainwright, General Relativity and Gravitation, vol. 33, no. 1, pp. 6594.
Other Publications
 Fluid Simulation, SIGGRAPH 2006 and 2007 courses.
 Cloth collisions, SIGGRAPH 2005 course slides (w/o movies).
 Computational aspects of dynamic surfaces,
my PhD thesis, supervised by
Ron Fedkiw, Stanford University,
2003.
 Multiresolution approximate inverses,
my Masters thesis, supervised by WeiPai Tang. University of Waterloo, 1999.
 Ordering for Factored Approximate Inverse Preconditioners,
with WeiPai Tang. This is an extended abstract for the
1998 Copper Mountain Conference on Iterative Methods.
My Group
Current:
 Todd Keeler (PhD)
 Xinxin Zhang (PhD)
 Yufeng Zhu (PhD)
Past:
Downloads
All files in this section are in the public domain unless otherwise indicated.
Many of my or my group's projects use a variety of files from a "common" directory: not
exactly a proper library, but a collection of occasionally very useful files for C++ hacking.
Some of the more stable members are available in the public domain here:
Here are some more specific projects, organized by topic:
 Linear Algebra and Optimization
 maxmin1.tar.gz, a very simple program for solving tiny linear maxmin problems (a variant of simplex for LP).
 Quern, a sparse QR library for direct and iterative solvers.
 KKTDirect, a direct solver package for saddlepoint matrices.
 MPCG, MATLAB source for the multipreconditioned conjugate gradient algorithm.
 ainvInC.tar.bz2, a C implementation of "matrixfree" SAINV, a factored approximate inverse preconditioner which doesn't require a matrix, only a linear operator.
 sainvmex.tar.bz2, a CMEX version of SAINV, callable from MATLAB (but with the speed of admittedly unoptimized C)
 etree_balance.m, a MATLAB mfile for postordering a symmetricstructure sparse matrix to give a balanced (minimum height) elimination tree.
 etree_unbalance.m, a MATLAB mfile for postordering a symmetricstructure sparse matrix to give an unbalanced elimination tree.
 imatrix.m, a MATLAB mfile for converting a matrix into an Imatrix (all entries bounded by 1 in magnitude and with unit diagonal).
 metismex.c, a MATLAB CMEX interface to the Metis graph partitioning and matrix ordering library. (Note: somewhat out of date  see David Gleich's update for a version that works with Metis v5.0)
 Geometry
 Exact CCD, standalone library for exact continuous collision detection.
 Tunicate, a library of robust computational geometry predicates in floating point.
 El Topo, a robust surface tracking library that maintains an untangled high quality triangle mesh even in the face of topological changes.
 mesh_query, example code for robustly checking inside/outside and segment intersection with a mesh.
 Graphics
 SpikeNav example 3D navigation user interface.
 curlnoise example code (also includes fast Poisson disk sampling in arbitrary dimensions).
 simple_flip2d.tar.gz, old code for a simple PIC/FLIP 2d water simulation.
 gridimplicit.cpp, a shape plugin for the pbrt raytracer, providing implicit surfaces sampled on a grid.
 sculpt.tar.bz2, a C++ simple sculpting program based on level sets, multiresolution point splatting, etc. See my PhD thesis for a writeup on it.
 Miscellaneous
 DumpPDFAnnotations.zip: a commandline application for Mac OS X to dump the annotations contained in a PDF file.
 infix.c: a really simple example of parsing infix expressions (no parentheses or functions, just basic calculator functionality)
Teaching
Current/Upcoming courses:
 CPSC 426, Computer Animation, SeptemberDecember 2011
 CPSC 314, Computer Graphics, JanuaryMay 2012
I have taught in the past:
 CPSC 314, Computer Graphics, SeptemberDecember 2009
 CPSC 542G, Scientific Computing (Graduate Breadth), SeptemberDecember 2009
 CPSC 548, Directed Studies (physicsbased animation)
 CPSC 314, Computer Graphics, SeptemberDecember 2008
 CPSC 542G, Scientific Computing (Graduate Breadth), SeptemberDecember 2008
 CPSC 426, Computer Animation, JanuaryMay 2008
 CPSC 542G, Scientific Computing (Graduate Breadth), SeptemberDecember 2007
 CPSC 542G Scientific Computing (Graduate Breadth), SeptemberDecember 2006
 CPSC 533D Animation Physics, SeptemberDecemeber 2005
 CPSC 426 Computer Animation, SeptemberDecember 2005
 CPSC 533D Animation Physics, JanuaryApril 2005
 CPSC 426 Computer Animation, SeptemberDecember 2004
 CPSC 533B Animation Physics, JanuaryApril 2004