Thursday, 29 January 2009

X.Provot - "Deformation Constraints in a Mass-spring Model to Describe Rigid Cloth Behaviour" (1995)

This paper looks at modelling cloth from a system of point masses connected by "springs".

The system is made of three types of springs:
  • Structural
  • Shear
  • Flexion (bending)



The diagram above shows how these springs are arranged. Structural springs hold the cloth together, shear springs resist shearing deformations (movement in the plane of the cloth), and flexion (bend) springs resist bending (movement outside the plane of the cloth).

Each point-mass and its connected springs contribute to the overall behaviour but each point-mass and spring can be treated completely independently.

The movement of each point mass is determined through numerical integration of newtons second law (F=ma).

The force acting on each point-mass is broken down into internal and external forces. The internal force is evaluated as the sum of the tensions coming from each spring associated with the mass. External forces can be added to interact with the cloth, those noted are a gravitational force, a damping force (to simulate the natural loss of energy in the system) and a viscous interaction from a fluid (used to inflict wind).

With the force on each point-mass calculated, the acceleration is computed simply using a=F/m.

Then the simple Euler numerical integration scheme is noted as their method to solving velocity and position.

The original results showed a square sheet of cloth hanging from two corners, where the deformation of the springs close to the corners was very high and the deformation elsewhere was relatively low.

This behaviour is suited to a sheet of elastic but such local deformations would not occur in woven fabrics. According to the paper, cloth under high loads is inclined to rip before any large deformations occur.

Fabrics are far from ideally elastic materials. You would clearly notice the difference in behaviour between a sheet of fabric and a sheet of rubber -- rubber behaving predominantly elastically and the fabric behaving somewhat more stiffly, depending on the type of fabric. The differences between the behaviour of these two materials are most obvious in intense deformation. However, since many scenarios do not cause intense deformation (such as a table cloth), cloth is often modelled ellastically.

It is also noted that the initial results showed unrealistically high amplitude oscillation because of the elastic modelling. This was countered by a large damping force, but lead to other shortcomings where the cloth looked like it was immersed in thick fluid.

The obvious way to increase the stiffness and reduce the elasticity of the model is increase the stiffness of the springs. This can be done but reducing the time-step is required to ensure the simulation remains stable. Decreasing the time-step means more computation, resulting in a more costly algorithm.

To avoid this loss in inefficiency, Provot increases the stiffness of the cloth by constraining the amount cloth can deform. He limits the amount each spring can stretch from it's rest length. The
stretch of each spring is compared with a threshold value; if it is larger, the ends of the spring are brought closer together so that the threshold is met. This gave more realistic cloth deformations, where it would propagate through the structure as the constraints were enforced -- as apposed to staying in a concentrated area. This gave much more realistic and less elastic looking cloth, whilst maintaining the efficiency of the algorithm. However there is the overhead of constraining. Provot estimates it to be 15% greater computation than the classic elastic model.

Note that the deformation constraints could be applied to the different types of springs. Provot constrained the structural and shear springs because this is where cloth resists deformation most. He did not constrain the flexion (bend) springs, because cloth is generally accepting of bending motion. It was found in the results that cloth would bend to find it's "rest state" as apposed to stretch or sheer -- this is what real cloth will do.

Provot also notices taking a two-pass approach, where each spring is constrained twice, yields even better results -- as if the procedure is converging to a more accurate result. So the algorithm could be adaptive in terms of accuracy and efficiency, where multiple passes give accurate results and less passes give fast efficient results.


The results Provot showed were a hanging sheet of cloth, a flag blowing in a strong wind,and boat sail with wind blowing through it. Simulation times are said to be in the order of minutes.

No comments: