<H1>2 Related Work</H1>
      
      For brevity, we review work on stretch resistance; for broad surveys on cloth simulation see 
[House and Breen 2000; Choi and Ko 2005]. The most general approach is to treat cloth as an elastic material [Terzopoulos et al. 1987; Breen et al. 1994; Eberhardt et al. 1996; Baraff and Witkin 1998; Choi and Ko 2002]. To reduce visible stretching, elastic models typically adopt large elastic moduli or stiff springs, degrading numerical stability 
[Hauth et al. 2003]. To address the stiffness of the resulting differential equations, Baraff and Witkin [1998]
 proposed implicit integration, allowing for large, stable timesteps; adaptive timestepping was required to prevent over-stretching. Eberhardt [2000] and Boxerman et al. [2003] adopted implicit-explicit (IMEX) formulations, which treat only a subset of forces implicitly. Our method is closely related to the IMEX approach, in the sense that stretching forces are singled out for special treatment. These works, and many of their sequels, improved performance by allowing some perceptible stretch of the fabric. 
In the quasiinextensible regime, however, implicit methods encounter numerical limitations 
[Volino and Magnenat-Thalmann 2001; Boxerman 2003; Hauth et al. 2003]: the condition number of the implicit system grows with the elastic material stiffness, forcing iterative solvers to perform many iterations; additionally, timestepping algorithms such as Backward Euler and BDF2 introduce undesirable numerical damping when the system is stiff 
[Boxerman 2003]. Given a stiff differential equation, an alternative to implicit integration is to reduce the stiff component and reformulate it as a constraint [Hairer et al. 2002]. In the smooth setting, the penalty-force and constraint-based approaches are equivalent in the limit of an infinitely stiff penalty term 
[Bercovier and Pat 1984]. In the discrete setting, the constraint-based approach may be implemented with various iterative or global algorithms, as surveyed below: 
Iterative enforcement Provot [1995] corrected edge lengths by iteratively displacing the incident vertices on stretched springs. While simple to implement, this approach suffers from poor convergence since each displacement may stretch other incident springs. Therefore, Provot’s method is used in cases where tight tolerances are not required, e.g., 
[Desbrun et al. 1999; Meyer et al. 2001; Fuhrmann et al. 2003]. Bridson et al. [2002; 2003] used Provot’s approach in conjunction with strain rate limiting, bounding the rate of change of spring length per timestep to 10% of the current length. Müller et al. [2006] used a non-linear Gauss-Seidel approach to enforce inextensibility on each constraint separately. Bridson et al. observed that iterative strain limiting algorithms behave essentially as Jacobi or Gauss-Seidel solvers. In this light, it is not surprising that for finely-discretized quasi-inextensible fabrics, iterative constraint enforcement requires a prohibitive number of iterations (see §5). Global enforcement In contrast to iterative constraint enforcement, 
House et al. [1996] used Lagrange multipliers with CLM to treat stretching, and presented a hierarchical treatment of the constraint forces. The Lagrange multiplier approach alleviates the difficulties associated with poor numerical conditioning and artificial damping. House et al. later encountered difficulties in handling collision response within the proposed framework [2000]. By building on the velocity-filter paradigm, our method handles both inextensibility and complex collisions. House et al. formulated constraints as in [Witkin et al. 1990], which is subject to numerical drift that may be exacerbated by the discontinuities introduced during collision response. Drift may be attenuated using constraint-restoring springs, but the authors reported difficulty in adjusting the spring coefficients. We postulate that one reason for their difficulties with drift was consequent to the linearization of the constraint equation, which permitted higher order errors to accumulate over time. Our method does not linearize the constraint equations, and therefore it is not subject to drift. Recently, Tsiknis [2006]
 proposed triangle-based strain limiting together with a global stitching step for stable constraint enforcement. Hong et al. [2005]
 used a linearized implicit formulation in order to improve stability of constrained dynamics. This allowed for larger timesteps and reduced the need for springs to maintain the cloth on the constraint manifold. Both of these approaches enforce inextensibility only for strain exceeding 10%. In summary, when the tolerance for stretching is very small, modeling stretch response with spring-based or strain-limiting approaches is costly and even intractable; constraint-based methods present a promising alternative. The remainder of this paper discusses algorithms that excel at simulating quasi-inextensible cloth.
      
        