### Summary In this paper, the authors introduce an algorithm for handling collisions, contact, and friction forces efficiently in cloth simulation. One interesting thing with their method is that their algorithms are independent of the underlying method used for cloth simulation. Thus, their work can be applied to any cloth simulation technique in order to add robust treatment of collisions, contact, and friction. First, they constrain the deformation of any spring by 10% in order to prevent the cloth simulation from falling apart. For collision detection, the authors use an axis-aligned bounding box tree to identify candidate triangles that may have collided. Each iteration these bounding boxes are sized such that they will cover the area where the particle will be at the end of the timestep. This allows the algorithm to determine if a collision will occur any time during the timestep. These triangles can then be tested individually and forces applied to prevent the collision. Repulsion forces are used to model collisions and the collisions are taken to be inelastic. These repulsion forces are intended to drastically reduce the number of collisions and thus make the algorithm efficient. Friction is modeled as microcollisions in which impulses are introduced to effect the velocity. Further, collisions of large areas are handled by treating several nodes as a rigid body and using rigid body physics. This greatly reduces the computational load as opposed to replaying the simulation and handling all collisions in the order they occur. Finally, the authors discuss using a collision-aware subdivision scheme to subdivide the mesh for rendering. Basically, the algorithm removes any collisions that may have been left in the mesh after the simulation timestep and then uses a modified Loop subdivision scheme. The result is a mesh that is still collision free, but provides a smooth, visually appealing approximation of the simulated mesh.