“Dynamic deformables: implementation and production practicalities (now with code!)” Chaired by

  • ©Theodore Kim and David (Dave) Eberle



Entry Number: 07


    Dynamic deformables: implementation and production practicalities (now with code!)



    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 described 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.


    1. Alastrué, V., E. Peña, M. Martínez, and M. Doblaré (2008). Experimental study and constitutive modelling of the passive mechanical properties of the ovine infrarenal vena cava tissue. Journal of biomechanics 41(14), 3038–3045.
    2. Arruda, E. M. and M. C. Boyce (1993). A three-dimensional constitutive model for the large stretch behavior of rubber elastic materials. Journal of Mechanics Physics of Solids 41, 389–412.
    3. Ascher, U. M. and E. Boxerman (2003). On the modified conjugate gradient method in cloth simulation. The Visual Computer 19(7–8), 526–531.
    4. Autonne, L. (1902). Sur les groupes linéaires, réels et orthogonaux. Bulletin de la société mathématique de France 30, 121–134.
    5. Baraff, D. and A. Witkin (1998). Large steps in cloth simulation. In Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’98. ACM.
    6. Baraff, D. and A. Witkin (2003). Untangling cloth. In ACM SIGGRAPH 2003 Papers, SIGGRAPH ’03. ACM.
    7. Barbic, J. (2012). Exact corotational linear fem stiffness matrix. Technical report, University of Southern California. Department of Computer Science.
    8. Bargteil, A. and T. Shinar (2018). An introduction to physics-based animation. In ACM SIGGRAPH Courses, New York, NY, USA. ACM.
    9. Belytschko, T., W. K. Liu, B. Moran, and K. Elkhodary (2013). Nonlinear finite elements for continua and structures. John wiley & sons.
    10. Bergou, M., M. Wardetzky, D. Harmon, D. Zorin, and E. Grinspun (2002). A quadratic bending model for inextensible surfaces. In Eurographics Symposium on Geometry Processing, pp. 49–54.
    11. Blair, P. (2003). Animation 1: Learn to animate cartoons step by step. Walter Foster Publishing.
    12. Blemker, S. S., P. M. Pinsky, and S. L. Delp (2005). A 3d model of muscle reveals the causes of nonuniform strains in the biceps brachii. Journal of biomechanics 38(4), 657–665.
    13. Bonet, J. and R. D. Wood (2008). Nonlinear continuum mechanics for finite element analysis. Cambridge university press.
    14. Bower, A. F. (2009). Applied mechanics of solids. CRC press.
    15. Bridson, R., R. Fedkiw, and J. Anderson (2002). Robust treatment of collisions, contact and friction for cloth animation. In Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’02, pp. 594–603. ACM.
    16. Brochu, T., E. Edwards, and R. Bridson (2012). Efficient geometrically exact continuous collision detection. ACM Trans. Graph. 31(4).
    17. Bunch, J. R., C. P. Nielsen, and D. C. Sorensen (1978). Rank-one modification of the symmetric eigenproblem. Numerische Mathematik 31(1), 31–48.
    18. Chagnon, G., M. Rebouah, and D. Favier (2015). Hyperelastic energy densities for soft biological tissues: a review. Journal of Elasticity 120(2), 129–160.
    19. Chao, I., U. Pinkall, P. Sanan, and P. Schröder (2010, July). A simple geometric model for elastic deformations. ACM Trans. Graph. 29(4).
    20. Choi, K.-J. and H.-S. Ko (2002, 07). Stable but responsive cloth. Volume 21. ACM.
    21. Chow, E. and A. Patel (2015). Fine-grained parallel incomplete lu factorization. SIAM journal on Scientific Computing 37(2), C169–C193.
    22. Espinosa, H. D., P. D. Zavattieri, and G. L. Emore (1998). Adaptive fem computation of geometric and material nonlinearities with application to brittle failure. Mechanics of Materials 29(3–4), 275–305.
    23. Etzmuss, O., M. Keckeisen, and W. Strasser (2003, Oct). A fast finite element solution for cloth modelling. In Proceedings of Pacific Graphics, pp. 244–251.
    24. Fung, Y.-c. (2013). Biomechanics: mechanical properties of living tissues. Springer Science & Business Media.
    25. Gao, Z., T. Kim, D. L. James, and J. P. Desai (2009, Aug). Semi-automated soft-tissue acquisition and modeling for surgical simulation. In IEEE International Conference on Automation Science and Engineering, pp. 268–273.
    26. Garg, A., E. Grinspun, M. Wardetzky, and D. Zorin (2007). Cubic shells. In Symposium on Computer Animation.
    27. Golub, G. and W. Kahan (1965). Calculating the singular values and pseudo-inverse of a matrix. Journal of the Society for Industrial and Applied Mathematics, Series B: Numerical Analysis 2(2), 205–224.
    28. Golub, G. H. and C. F. Van Loan (2013). Matrix computations. The Johns Hopkins University Press.
    29. Greaves, G. N., A. Greer, R. S. Lakes, and T. Rouxel (2011). Poisson’s ratio and modern materials. Nature materials 10(11), 823–837.
    30. Gribbin, J. (2011). In search of Schrodinger’s cat: Quantum physics and reality. Bantam.
    31. Grinspun, E., A. Hirani, M. Desbrun, and P. Schröeder (2003). Discrete shells. In SCA ’03: Proceedings of the 2003 ACM SIGGRAPH/Eurographics Symposium on Computer Animation.
    32. Guennebaud, G., B. Jacob, et al. (2010). Eigen v3. http://eigen.tuxfamily.org.
    33. Han, H., M. Sun, S. Zhang, D. Liu, and T. Liu (2021). Gpu cloth simulation pipeline in lightchaser animation studio. In SIGGRAPH Asia Technical Communications.
    34. Harmon, D., E. Vouga, R. Tamstorf, and E. Grinspun (2008). Robust treatment of simultaneous collisions. Volume 27. ACM.
    35. Hauth, M. and O. Etzmuss (2001). A high performance solver for the animation of deformable objects using advanced numerical methods. Eurographics 20(3), 319–328.
    36. Higham, N. J. (1986). Computing the polar decomposition—with applications. SIAM Journal on Scientific and Statistical Computing 7(4), 1160–1174.
    37. Higham, N. J. (2008). Functions of matrices: theory and computation. SIAM.
    38. Holzapfel, G. (2005). Similarities between soft biological tissues and rubberlike materials. In Constitutive Models for Rubber IV, pp. 607–617.
    39. Hu, Y., T. Schneider, B. Wang, D. Zorin, and D. Panozzo (2020, July). Fast tetrahedral meshing in the wild. ACM Trans. Graph. 39(4).
    40. Irving, G., J. Teran, and R. Fedkiw (2004). Invertible finite elements for robust simulation of large deformation. In SIGGRAPH/Eurog. Symp. on Comp. Anim., pp. 131–140.
    41. Jenkins, M. A. and J. F. Traub (1970). A three-stage variable-shift iteration for polynomial zeros and its relation to generalized rayleigh iteration. Numerische Mathematik 14(3), 252–263.
    42. Johnston, O. and F. Thomas (1981). The illusion of life: Disney animation. Disney Editions New York.
    43. Kautzman, R., G. Cameron, and T. Kim (2018). Robust skin simulation in incredibles 2. In ACM SIGGRAPH Talks, pp. 1–2.
    44. Kim, T. (2020). A finite element formulation of baraff-witkin cloth. In SCA ’03: Proceedings of the 2020 ACM SIGGRAPH/Eurographics Symposium on Computer Animation.
    45. Kim, T., F. De Goes, and H. Iben (2019, July). Anisotropic elasticity for inversion-safety and element rehabilitation. ACM Trans. Graph. 38(4).
    46. Kim, T. and D. L. James (2012, Aug). Physics-based character skinning using multidomain subspace deformations. IEEE Transactions on Visualization and Computer Graphics 18(8), 1228–1240.
    47. Kolda, T. G. and B. W. Bader (2009). Tensor decompositions and applications. SIAM review 51(3), 455–500.
    48. Liu, T., S. Bouaziz, and L. Kavan (2017). Quasi-newton methods for real-time simulation of hyperelastic materials. ACM Trans. Graph. (TOG) 36(3), 1–16.
    49. Löschner, F., A. Longva, S. Jeske, T. Kugelstadt, and J. Bender (2020). Higher-order time integration for deformable solids. In Computer Graphics Forum, Volume 39, pp. 157–169. Wiley Online Library.
    50. Marschner, S. and P. Shirley (2016). Fundamentals of Computer Graphics (4th ed.). USA: CRC Presss.
    51. Marsden, J. E. and T. J. Hughes (1994). Mathematical foundations of elasticity. Dover Publications.
    52. McAdams, A., Y. Zhu, A. Selle, M. Empey, R. Tamstorf, J. Teran, and E. Sifakis (2011, 07). Efficient elasticity for character skinning with contact and collisions. ACM Trans. Graph. 30, 37.
    53. Möller, T., E. Haines, and N. Hoffman (2008). Real-Time Rendering (3 ed.). A.K Peters Ltd.
    54. Mooney, M. (1940). A theory of large elastic deformation. Journal of Applied Physics 11(9), 582–592.
    55. Moore, M. and J. Wilhelms (1988). Collision detection and response for computer animation. In ACM SIGGRAPH computer graphics, Volume 22. ACM.
    56. Müller, M., J. Dorsey, L. McMillan, R. Jagnow, and B. Cutler (2002). Stable real-time deformations. In ACM SIGGRAPH/Eurographics Symposium on Computer Animation, pp. 49–54.
    57. Nocedal, J. and S. Wright (2006). Numerical optimization. Springer Science & Business Media.
    58. Ogden, R. W. (1997). Non-linear elastic deformations. Dover Publications.
    59. Papadopoulo, T. and M. I. Lourakis (2000). Estimating the jacobian of the singular value decomposition: Theory and applications. In European Conference on Computer Vision, pp. 554–570. Springer.
    60. Pharr, M., W. Jakob, and G. Humphreys (2016). Physically based rendering: From theory to implementation. Morgan Kaufmann.
    61. Pritchard, D. (2002). Implementing baraff witkin’s cloth simulation.
    62. Provot, X. (1995). Collision and self-collision handling in cloth model dedicated to design garment. Graphics Interface.
    63. Provot, X. (1997). Collision and self-collision handling in cloth model dedicated to design garments. In Computer Animation and Simulation, pp. 177–189. Springer.
    64. Rankin, C. C. and F. A. Brogan (1986, 05). An Element Independent Corotational Procedure for the Treatment of Large Rotations. Journal of Pressure Vessel Technology 108(2), 165–174.
    65. Rhodes, G. (2001). Fast, robust intersection of 3d line segments. Game Programming Gems 2, 191–204.
    66. Rivlin, R. (1948). Large elastic deformations of isotropic materials iv. further developments of the general theory. Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences 241(835), 379–397.
    67. Rupp, K., P. Tillet, F. Rudolf, J. Weinbub, A. Morhammer, T. Grasser, A. Jüngel, and S. Selberherr (2016). Viennacl—linear algebra library for multi-and many-core architectures. SIAM Journal on Scientific Computing 38(5), S412–S439.
    68. Schneider, P. and D. Eberly (2003). Geometric Tools for Computer Graphics. Morgan Kaufmann Publishers.
    69. Shtengel, A., R. Poranne, O. Sorkine-Hornung, S. Z. Kovalsky, and Y. Lipman (2017). Geometric optimization via composite majorization. ACM Trans. Graph. 36(4).
    70. Sifakis, E. and J. Barbic (2012). Fem simulation of 3d deformable solids: A practitioner’s guide to theory, discretization and model reduction. In SIGGRAPH Courses, pp. 20:1–20:50.
    71. Simmonds, J. G. (2012). A brief on tensor analysis. Springer Science & Business Media.
    72. Smith, B., F. D. Goes, and T. Kim (2018, March). Stable neo-hookean flesh simulation. ACM Trans. Graph. 37(2).
    73. Smith, B., F. D. Goes, and T. Kim (2019, February). Analytic eigensystems for isotropic distortion energies. ACM Trans. Graph. 38(1).
    74. Smith, J. and S. Schaefer (2015a, July). Bijective parameterization with free boundaries. ACM Trans. Graph. 34(4).
    75. Smith, J. and S. Schaefer (2015b). Bijective parameterization with free boundaries. ACM Trans. Graph. 34(4).
    76. Smith, O. K. (1961). Eigenvalues of a symmetric 3X 3 matrix. Communications of the ACM 4(4), 168.
    77. Sorkine, O. and M. Alexa (2007). As-rigid-as-possible surface modeling. In Eurog. Symposium on Geometry processing, Volume 4.
    78. Sorkine-Hornung, O. and M. Rabinovich (2017). Least-squares rigid motion using svd. Technical report, ETH Zurich, Department of Computer Science.
    79. Tamstorf, R. and E. Grinspun (2013). Discrete bending forces and their jacobians. In Graphical Models Issue 75.
    80. Tamstorf, R., T. Jones, and S. McCormick (2015). Smoothed aggregation multigrid for cloth simulation. ACM Trans. Graph. 34(6).
    81. Tang, M., R. Tong, Z. Wang, and D. Manocha (2014). Fast and exact continuous collision detection with bernstein sign classification. Volume 33, pp. 186:1–186:8.
    82. Teran, J., E. Sifakis, S. S. Blemker, V. Ng-Thow-Hing, C. Lau, and R. Fedkiw (2005, May). Creating and simulating skeletal muscle from the visible human data set. IEEE Transactions on Visualization and Computer Graphics 11(3), 317–328.
    83. Twigg, C. D. and Z. Kačić-Alesić (2010). Point cloud glue: Constraining simulations using the procrustes transform. In ACM SIGGRAPH/Eurog. Symp. on Comp. Anim., pp. 45–54.
    84. Wang, H. (2014). Defending continuous collision detection against errors. ACM Trans. Graph. 33(4).
    85. Wang, H. and Y. Yang (2016). Descent methods for elastic body simulation on the gpu. ACM Trans. Graph. 35(6).
    86. Witkin, A. and D. Baraff (1997). Physically based modeling: Principles and practice. In SIGGRAPH Courses.
    87. Wong, A., D. Eberle, and T. Kim (2018). Clean cloth inputs: Removing character self-intersections with volume simulation. In ACM SIGGRAPH Talks, pp. 1–2.
    88. Ye, J. (2009). A reduced unconstrained system for he cloth dynamics solver. The Visual Computer. 25(10).

ACM Digital Library Publication:

Overview Page: