<H1>5 Results</H1>
        We describe several experiments comparing various stretchenforcement methods. All timings are with reference to a single process on a 2.66GHz Intel Core 2 Duo. One-dimensional chain Our first experiment compares the performance of fast projection against an implicit treatment of stiff springs. We observe the scaling of computational cost as a function of (a) permissible strain and (b) mesh resolution. The physical setup consists of a chain pinned at the top node and released to free fall under gravity. The simple 1D chain resists stretching, but not bending. In this didactic example, timings refer to MATLAB’s (sparse) direct solver. Our method shows asymptotically better performance as permissible strain vanishes (see Figure 4a ). Likewise, our algorithm exhibits favorable performance as mesh resolution increases (see Figure 4b ). Using 80 vertices and 1% strain, the fast projection method achieves a 25× speedup. Note that there exists considerable difficulty in setting spring coefficients a priori to satisfy a given strain limit. For settings more pragmatic than a simple chain, such as the following draping experiment, we are unable (despite considerable effort) to set spring coefficients that achieve a prescribed small strain. This explains why spring methods are often treated with strain-limiting procedures. Draping cloth The next experiment compares fast projection, ICD, SHAKE, and the strain limiting approach. We evaluate how the spatial discretization and permissible strain affect performance of these four algorithms. The setup consists of draping a cloth over a polygonal model of a sphere. We measure strain before the collision reaction pass. For the strain limiting algorithms (both Jacobi and Gauss-Siedel), we iterate until strain is in the permissible range. With GaussSiedel, we apply a random permutation to reduce bias resulting from the particular edge ordering. For SHAKE, we use the acceleration suggested in 
[Barth et al. 1994] to rebuild the matrix once per step or when it fails to converge. As a consequence, the algorithm requires extremely small timesteps to converge, but each timestep is relatively inexpensive, as matrix re-assembly and re-factoring is infrequent. ICD is able to use larger timesteps than SHAKE and still converge, however, since each timestep is substantially more expensive than a SHAKE step, the overall time is higher. Figure 5a shows a timing comparison of these methods, and Figure 5b compares performance as the stiffness is increased for a cloth mesh with approximately 5000 vertices. All CLM methods scale equally well, asymptotically better than the strain limiting approach, with the fast projection being the fastest. As we refine the resolution, and allow strain of 1% ( Figure 5b ), the fast projection method outperforms the other methods. Figure 6 shows the same frame from simulations that use the fast projection and ICD methods, with qualitatively similar results. Figures 7 and 8 show still frames from more complex simulations demonstrating that fast projection is capable of producing complex, realistic simulations of cloth.
        
          
          Figure 7: Inextensibility and dynamics. Inextensibility ensures that the tight-fitting pants do not drop past the dancer’s narrow waist. Using fast projection, an implicit treatment of shear and bending, and a mesh with 10600 vertices, the average simulation time per (30Hz) frame was 9 seconds.
        
      
      
        