Dynamic Deformables:
Implementation and Production Practicalities
(Now With Code!)

SIGGRAPH Courses, 2020 and 2022
We received a 2022 Scientific and Technical Academy Award for the system described in this course.

 

Theodore Kim
Yale University

David Eberle
Pixar Animation Studios

 
   

   
    Course Notes [PDF, 18.7 MB]
    Latest build: August 30, 2022

    Matlab Code From Notes [ZIP, 20 KB]

    HOBAK C++ Code Release
    [ZIP, 174 MB] [Smaller ZIP, 8 MB] [Github]
    Regression data has been removed from the smaller ZIP, so testing will fail.

    2020 Course Video [Vimeo]

   
Abstract

Simulating dynamic deformation has been an integral component of Pixar's storytelling since Boo's shirt in Monsters, Inc. (2001). Recently, several key transformations have been applied to Pixar's core simulator Fizt that improve its speed, robustness, and generality. Starting with Coco (2017), improved collision detection and response were incorporated into the cloth solver, then with Cars 3 (2017) 3D solids were introduced, and in Onward (2020) clothing is allowed to interact with a character's body with two-way coupling.

The 3D solids are based on a fast, compact, and powerful new formulation that we have published over the last few years at SIGGRAPH. Under this formulation, the construction and eigendecomposition of the force gradient, long considered the most onerous part of the implementation, becomes fast and simple. We provide a detailed, self-contained, and unified treatment here that is not available in the technical papers. We also provide, for the first time, open-source C++ implementations of many of the algorithms.

This new formulation is only a starting point for creating a simulator that is up challenges of a production environment. One challenge is performance: we discuss our current best practices for accelerating system assembly and solver performance. Another challenge that requires considerable attention is robust collision detection and response. Much has been written about collision detection approaches such as proximity-queries, continuous collisions and global intersection analysis. We discuss our strategies for using these techniques, which provides us with valuable information that is needed to handle challenging scenarios.