Vivace: a practical gauss-seidel method for stable soft body dynamics

The solution of large sparse systems of linear constraints is at the base of most interactive solvers for physically-based animation of soft body dynamics. We focus on applications with hard and tight per-frame resource budgets, such as video games, where the solution of soft body dynamics needs to be computed in a few milliseconds. Linear iterative methods are preferred in these cases since they provide approximate solutions within a given error tolerance and in a short amount of time. We present a parallel randomized Gauss-Seidel method which can be effectively employed to enable the animation of 3D soft objects discretized as large and irregular triangular or tetrahedral meshes. At the beginning of each frame, we partition the set of equations governing the system using a randomized graph coloring algorithm. The unknowns in the equations belonging to the same partition are independent of each other. Then, all the equations belonging to the same partition are solved at the same time in parallel. Our algorithm runs completely on the GPU and can support changes in the constraints topology. We tested our method as a solver for soft body dynamics within the Projective Dynamics and Position Based Dynamics frameworks. We show how the algorithmic simplicity of this iterative strategy enables great numerical stability and fast convergence speed, which are essential features for physically based animations with fixed and small hard time budgets. Compared to the state of the art, we found our method to be faster and scale better while providing stabler solutions for very small time budgets.

[1]  Daniel Brélaz,et al.  New methods to color the vertices of a graph , 1979, CACM.

[2]  Gene H. Golub,et al.  Matrix computations (3rd ed.) , 1996 .

[3]  Stephen F. McCormick,et al.  Smoothed aggregation multigrid for cloth simulation , 2015, ACM Trans. Graph..

[4]  Alessandro Panconesi,et al.  Fast distributed algorithms for Brooks-Vizing colourings , 2000, SODA '98.

[5]  J. J. Moré,et al.  Estimation of sparse jacobian matrices and graph coloring problems , 1983 .

[6]  Jacques M. Bahi,et al.  Parallel GMRES implementation for solving sparse linear systems on GPU clusters , 2011, SpringSim.

[7]  Mark Pauly,et al.  Projective dynamics , 2014, ACM Trans. Graph..

[8]  Huamin Wang,et al.  A chebyshev semi-iterative approach for accelerating projective and position-based dynamics , 2015, ACM Trans. Graph..

[9]  Mark Pauly,et al.  Shape‐Up: Shaping Discrete Geometry with Projections , 2012, Comput. Graph. Forum.

[10]  Matthias Müller,et al.  Position based dynamics , 2007, J. Vis. Commun. Image Represent..

[11]  Miguel A. Otaduy,et al.  A Survey on Position‐Based Simulation Methods in Computer Graphics , 2014, Comput. Graph. Forum.

[12]  Jan Bender,et al.  Efficient GPU Data Structures and Methods to Solve Sparse Linear Systems in Dynamics Applications , 2013, Comput. Graph. Forum.

[13]  Wolfgang Straßer,et al.  Continuum‐based Strain Limiting , 2009, Comput. Graph. Forum.

[14]  Yousef Saad,et al.  Iterative methods for sparse linear systems , 2003 .

[15]  F. Faure,et al.  Volume contact constraints at arbitrary resolution , 2010, ACM Trans. Graph..

[16]  Jos Stam,et al.  Nucleus: Towards a unified dynamics solver for computer graphics , 2009, 2009 11th IEEE International Conference on Computer-Aided Design and Computer Graphics.

[17]  Leland L. Beck,et al.  Smallest-last ordering and clustering and graph coloring algorithms , 1983, JACM.

[18]  Jonathan M. Cohen,et al.  Parallel Graph Coloring with Applications to the Incomplete-LU Factorization on the GPU , 2015 .

[19]  Marco Fratarcangeli,et al.  Scalable Partitioning for Parallel Position Based Dynamics , 2015, Comput. Graph. Forum.

[20]  Richard Tonge,et al.  Mass splitting for jitter-free parallel rigid body simulation , 2012, ACM Trans. Graph..

[21]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[22]  Eitan Grinspun,et al.  A quadratic bending model for inextensible surfaces , 2006, SGP '06.

[23]  Miles Macklin,et al.  Position based fluids , 2013, ACM Trans. Graph..

[24]  Tae-Yong Kim,et al.  Unified particle physics for real-time applications , 2014, ACM Trans. Graph..

[25]  Sarah Niebe,et al.  Numerical methods for linear complementarity problems in physics-based animation , 2015, SIGGRAPH '13.

[26]  Ronald Fedkiw,et al.  Robust treatment of collisions, contact and friction for cloth animation , 2002, SIGGRAPH Courses.

[27]  D. J. A. Welsh,et al.  An upper bound for the chromatic number of a graph and its application to timetabling problems , 1967, Comput. J..

[28]  James F. O'Brien,et al.  Fast simulation of mass-spring systems , 2013, ACM Trans. Graph..

[29]  Michael Luby,et al.  A simple parallel algorithm for the maximal independent set problem , 1985, STOC '85.

[30]  Mark T. Jones,et al.  A Parallel Graph Coloring Heuristic , 1993, SIAM J. Sci. Comput..

[31]  Robert H. Halstead,et al.  Matrix Computations , 2011, Encyclopedia of Parallel Computing.

[32]  Ming C. Lin,et al.  Interactive collision detection between deformable models using chromatic decomposition , 2005, ACM Trans. Graph..

[33]  Kenny Erleben Numerical methods for linear complementarity problems in physics-based animation , 2013, SIGGRAPH '13.