Soft-body dynamics is a field ofcomputer graphics that focuses on visually realistic physicalsimulations of the motion and properties ofdeformable objects (orsoft bodies).[1] The applications are mostly in video games and films. Unlike in simulation ofrigid bodies, the shape of soft bodies can change, meaning that the relative distance of two points on the object is not fixed. While the relative distances of points are not fixed, the body is expected to retain its shape to some degree (unlike afluid). The scope of soft body dynamics is quite broad, including simulation of soft organic materials such as muscle, fat, hair and vegetation, as well as other deformable materials such as clothing and fabric. Generally, these methods only provide visually plausible emulations rather than accurate scientific/engineering simulations, though there is some crossover with scientific methods, particularly in the case of finite element simulations. Severalphysics engines currently provide software for soft-body simulation.[2][3][4][5][6][7]
The simulation of volumetric solid soft bodies[8] can be realised by using a variety of approaches.

In this approach, the body is modeled as a set ofpoint masses (nodes) connected by ideal weightlesselasticsprings obeying some variant ofHooke's law. The nodes may either derive from the edges of a two-dimensionalpolygonal mesh representation of the surface of the object, or from a three-dimensional network of nodes and edges modeling the internal structure of the object (or even a one-dimensional system of links, if for example a rope or hair strand is being simulated). Additional springs between nodes can be added, or the force law of the springs modified, to achieve desired effects. ApplyingNewton's second law to the point masses including the forces applied by the springs and any external forces (due to contact, gravity, air resistance, wind, and so on) gives a system ofdifferential equations for the motion of the nodes, which is solved by standard numerical schemes for solvingODEs.[9] Rendering of a three-dimensional mass-spring lattice is often done usingfree-form deformation,[10] in which the rendered mesh is embedded in the lattice and distorted to conform to the shape of the lattice as it evolves. Assuming all point masses equal to zero one can obtain theStretched grid method aimed at several engineering problems solution relative to the elastic grid behavior. These are sometimes known asmass-spring-damper models. In pressurized soft bodies[11] spring-mass model is combined with a pressure force based on theideal gas law.
This is a more physically accurate approach, which uses the widely usedfinite element method to solve thepartial differential equations which govern the dynamics of anelastic material. The body is modeled as a three-dimensionalelastic continuum by breaking it into a large number of solid elements which fit together, and solving for thestresses andstrains in each element using a model of the material.[12] The elements are typically tetrahedral, the nodes being the vertices of the tetrahedra (relatively simple methods exist[13][14] totetrahedralize a three dimensional region bounded by a polygon mesh intotetrahedra, similarly to how a two-dimensionalpolygon may betriangulated into triangles). The strain (which measures the local deformation of the points of the material from their rest state) is quantified by thestrain tensor. Thestress (which measures the local forces per-unit area in all directions acting on the material) is quantified by theCauchy stress tensor. Given the current local strain, the local stress can be computed via the generalized form ofHooke's law:where is theelasticity tensor, which encodes the material properties (parametrized in linear elasticity for an isotropic material by thePoisson ratio andYoung's modulus).
The equation of motion of the element nodes is obtained by integrating the stress field over each element and relating this, viaNewton's second law, to the node accelerations.
Pixelux (developers of theDigital Molecular Matter system) use a finite-element-based approach for their soft bodies, using a tetrahedral mesh and converting the stress tensor directly into node forces.[15] Rendering is done via a form offree-form deformation.[10]
This approach is motivated byvariational principles and the physics of surfaces, which dictate that a constrained surface will assume the shape whichminimizes the total energy of deformation (analogous to asoap bubble). Expressing the energy of a surface in terms of its local deformation (the energy is due to a combination of stretching and bending), the local force on the surface is given by differentiating the energy with respect to position, yielding an equation of motion which can be solved in the standard ways.[16][17]
In this scheme, penalty forces or constraints are applied to the model to drive it towards its original shape[18] (i.e. the material behaves as if it hasshape memory). To conserve momentum the rotation of the body must be estimated properly, for example viapolar decomposition. To approximate finite element simulation, shape matching can be applied to three dimensional lattices and multiple shape matching constraints blended.[19]
Deformation can also be handled by a traditional rigid-bodyphysics engine, modeling the soft-body motion using a network of multiple rigid bodies connected by constraints, and using (for example)matrix-palette skinning to generate a surface mesh for rendering. This is the approach used for deformable objects inHavok Destruction.[20]
In the context of computer graphics,cloth simulation refers to the simulation of soft bodies in the form of two dimensional continuum elastic membranes, that is, for this purpose, the actual structure of realcloth on theyarn level can be ignored (though modeling cloth on the yarn level has been tried).[21] Viarendering effects, this can produce a visually plausible emulation oftextiles andclothing, used in a variety of contexts in video games, animation, and film. It can also be used to simulate two dimensional sheets of materials other than textiles, such as deformable metal panels or vegetation. In video games it is often used to enhance the realism of clothedanimated characters.
Cloth simulators are generally based onmass-spring models, but a distinction must be made between force-based and position-based solvers.
Themass-spring model (obtained from apolygonal mesh representation of the cloth) determines the internal spring forces acting on the nodes at each timestep (in combination with gravity and applied forces). Newton's second law gives equations of motion which can be solved via standardODE solvers. To create high resolution cloth with a realistic stiffness is not possible however with simpleexplicit solvers (such as forwardEuler integration), unless the timestep is made too small for interactive applications (since as is well known[citation needed],explicit integrators are numerically unstable for sufficientlystiff systems). Therefore,implicit solvers must be used,[22] requiring solution of a largesparse matrix system (via e.g. theconjugate gradient method), which itself may also be difficult to achieve at interactive frame rates. An alternative[23][24] is to use an explicit method with low stiffness, withad hoc methods to avoid instability and excessive stretching (e.g. strain limiting corrections).
To avoid needing to do an expensive implicit solution of a system ofODEs, many real-time cloth simulators (notablyPhysX,Havok Cloth, andMaya nCloth) useposition based dynamics (PBD),[25] an approach based on constraint relaxation. The mass-spring model is converted into a system of constraints, which demands that the distance between the connected nodes be equal to the initial distance. This system is solved sequentially and iteratively, by directly moving nodes to satisfy each constraint, until sufficiently stiff cloth is obtained. This is similar to aGauss-Seidel solution of the implicit matrix system for the mass-spring model. Care must be taken though to solve the constraints in the same sequence each timestep, to avoid spurious oscillations, and to make sure that the constraints do not violatelinear andangular momentum conservation. Additional position constraints can be applied, for example to keep the nodes within desired regions of space (sufficiently close to an animated model for example), or to maintain the body's overall shape via shape matching.
Realistic interaction of simulated soft objects with their environment may be important for obtaining visually realistic results. Cloth self-intersection is important in some applications for acceptably realistic simulated garments. This is challenging to achieve at interactive frame rates, particularly in the case of detecting and resolving self collisions and mutual collisions between two or more deformable objects.
Collision detection may bediscrete/a posteriori (meaning objects are advanced in time through a pre-determined interval, and then any penetrations detected and resolved), orcontinuous/a priori (objects are advanced only until a collision occurs, and the collision is handled before proceeding). The former is easier to implement and faster, but leads to failure to detect collisions (or detection of spurious collisions) if objects move fast enough. Real-time systems generally have to use discrete collision detection, with otherad hoc ways to avoid failing to detect collisions.
Detection of collisions between cloth and environmental objects with a well defined "inside" is straightforward since the system can detect unambiguously whether the cloth mesh vertices and faces are intersecting the body and resolve them accordingly. If a well defined "inside" does not exist (e.g. in the case of collision with a mesh which does not form a closed boundary), an "inside" may be constructed via extrusion. Mutual- or self-collisions of soft bodies defined by tetrahedra is straightforward, since it reduces to detection of collisions between solid tetrahedra.
However, detection of collisions between two polygonal cloths (or collision of a cloth with itself) via discrete collision detection is much more difficult, since there is no unambiguous way to locally detect after a timestep whether a cloth node which has penetrated is on the "wrong" side or not. Solutions involve either using the history of the cloth motion to determine if an intersection event has occurred, or doing a global analysis of the cloth state to detect and resolve self-intersections.Pixar has presented a method which uses a global topological analysis of mesh intersections in configuration space to detect and resolve self-interpenetration of cloth.[26] Currently, this is generally too computationally expensive for real-time cloth systems.
To do collision detection efficiently, primitives which are certainly not colliding must be identified as soon as possible and discarded from consideration to avoid wasting time.To do this, some form ofspatial subdivision scheme is essential, to avoid a brute force test of primitive collisions. Approaches used include:
Other effects which may be simulated via the methods of soft-body dynamics are:
Simulating fluids in the context of computer graphics would not normally be considered soft-body dynamics, which is usually restricted to mean simulation of materials which have a tendency to retain their shape and form. In contrast, afluid assumes the shape of whatever vessel contains it, as the particles are bound together by relatively weak forces.
| Game | Website | License | Description |
|---|---|---|---|
| BeamNG.drive | http://beamng.com | Non-free | Commercial sandbox-esque game based on soft-body vehicle physics. Simulates damage to Vehicles And their functions |
| Crash Effects Inc. | https://www.crasheffects.com/ | Non-free | Vehicle construction / first person crash test simulator. Soft-body physics are implemented for superstructures, some vehicle components use simple damage modeling. |
| Rigs of Rods | https://rigsofrods.github.io | GNU General Public License v3 | Free and open source vehicle simulator. |
| Wreckfest | http://nextcargame.com | Non-free | Derby racing game. Soft-body physics are implemented for superstructures, but parts and components (e.g. the engine) use simple damage modeling. |
{{cite web}}:Missing or empty|url= (help)CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}:Missing or empty|url= (help){{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link)