We use a standard mass and spring particle system to simulate cloths. The particles are arranged in a grid, and three types of damped spring forces connect the particles to account for structural, bending, shearing effects. The structural and shearing forces are horizontal, vertical, and diagonal forces between adjacent particles. The bending forces connect every other particle in rows and columns to restrict the cloth from bending over on itself.
Jello SimulationWe extrapolated from the two-dimensional case to form a flexible volume. Particles are arranged in a three-dimensional grid, and connected with spring forces in various ways. In addition to structural and shearing forces, we added repulsion forces to restrict the volume from turning over on itself.
User InteractionFor both the cloth and the jello, the particle systems begin with some mild forces as a result of creating the springs, and applying gravity. We add force to the system either by user-controlled sliders, or mouse clicks on the object itself as it is being simulated. A mouse click creates an invisible spring from the selected point on the object to the mouse, and force can then be applied by dragging.
Numerical MethodsNumerical stability is always a problem for large particle systems, and it was a stumbling block for us. After researching implicit methods and deciding implementation was not feasible within the time frame, we were left to make the most of our simple Euler step, and a few advancements into the MidPoint Method, and the Runge-Kutta Method.
Numerical instability was the worst for the jello volume. We were not able to stiffen the springs enough to get the desired behavior without facing blow-up. This prevented us from seriously pursuing breaking simulation in three dimensions. The cloth model was relatively stable under reasonable user-applied forces.
Cloth Tearing SimulationEvery force in our cloth has a breaking strength and by assigning these strengths in an irregular pattern, we can induce tearing of the forces along rough lines through the cloth. We experimented with various heuristics whereby a force breakage effects other forces by weakening nearby springs, or by repelling nearby particles. We found the tearing to occur in a natural way, that could easily be enhanced by a finer mesh. There are challenges in rendering the surface in the interim teared states. We experimented with applying Bezier and NURBS surfaces to our mesh, but were not happy with the results, so we opted for rendering the cloth with lit triangles.
Next Steps and ImprovementsWe believe that further work could not be continued without solving the numerical instability issues. After that, our next steps would be to adaptively model the cloth around the torn edges by adding particles and forces of finer granularity to increase the realism of the tears.