12.07.2015 Views

Implicit Contact Handling for Deformable Objects

Implicit Contact Handling for Deformable Objects

Implicit Contact Handling for Deformable Objects

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

EUROGRAPHICS 2009 / P. Dutré and M. Stamminger(Guest Editors)Volume 28 (2009), Number 2<strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>Miguel A. Otaduy 1 , Rasmus Tamstorf 2 , Denis Steinemann 3 , and Markus Gross 31 URJC Madrid, Spain2 Walt Disney Animation Studios, USA3 ETH Zurich, SwitzerlandAbstractWe present an algorithm <strong>for</strong> robust and efficient contact handling of de<strong>for</strong>mable objects. By being aware of the internaldynamics of the colliding objects, our algorithm provides smooth rolling and sliding, stable stacking, robustimpact handling, and seamless coupling of heterogeneous objects, all in a unified manner. We achieve dynamicsawarenessthrough a constrained dynamics <strong>for</strong>mulation with implicit complementarity constraints, and we presenttwo major contributions that enable an efficient solution of the constrained dynamics problem: a time steppingalgorithm that robustly ensures non-penetration and progressively refines the <strong>for</strong>mulation of constrained dynamics,and a new solver <strong>for</strong> large mixed linear complementarity problems, based on iterative constraint anticipation.We show the application of our algorithm in challenging scenarios such as multi-layered cloth moving at highvelocities, or colliding de<strong>for</strong>mable solids simulated with large time steps.Categories and Subject Descriptors (according to ACM CCS): Computer Graphics [I.3.7]: Animation—1. Introduction<strong>Contact</strong> is a ubiquitous phenomenon around us, and itsimportance to computer graphics is testified by a largeamount of previous work on the design of efficient algorithms[Bar94, VMT97, BW98, BFA02, GBF03, KEP05,HVTG08]. When handled robustly, contact can lead to vivideffects that dramatically enhance the richness of animations.We propose a method <strong>for</strong> contact handling that robustlysupports non-penetration, dynamic and static friction, andstacking, even under large time steps. Our method is generaland applicable to a large family of objects, rangingfrom cloth-like thin shells, to rigid bodies or volumetric de<strong>for</strong>mablebodies. We found our method on an implicit collisionresponse <strong>for</strong>mulation based on complementarity constraintsand Lagrange multipliers. This implicit <strong>for</strong>mulation,described in Section 3, enjoys great robustness and has beensuccessfully applied to rigid bodies [Bar96, Erl07], but suffersa complexity explosion when extended to de<strong>for</strong>mableobjects with many degrees of freedom and many contacts,such as the ones shown in our examples.We achieve efficient implicit contact handling <strong>for</strong> de<strong>for</strong>mableobjects through two major contributions. In Section4, we introduce a time-stepping algorithm <strong>for</strong> geometricallyand physically robust handling of non-penetration constraints,based on progressive constraint manifold refinement(CMR). And in Section 5, we propose a solver <strong>for</strong> mixed linearcomplementarity problems that features a novel conceptof iterative constraint anticipation (ICA).In Section 6 we discuss the effect of our contributions onexamples such as multi-layered cloth moving at high velocities(see Fig. 1), solid de<strong>for</strong>mable objects simulated withlarge time steps yet robust contact (see Fig. 7), or the combinedhandling of diverse de<strong>for</strong>mation models (see Fig. 4).For typical de<strong>for</strong>mation models, our solver has linear costper iteration and converges in few iterations. It is particularlywell suited <strong>for</strong> large constrained problems, and we demonstratethat it efficiently handles thousands of degrees of freedomand contacts. In our examples, we have combined CMRand ICA, but the two contributions are orthogonal, and theycan also be combined with other time-stepping or collisionresponse algorithms. We continue now with a discussion ofrelated work be<strong>for</strong>e describing our contributions in detail.2. Related WorkThe simulation of contact among de<strong>for</strong>mable objects coversde<strong>for</strong>mation modeling, collision detection, and contact hanc○2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.Published by Blackwell Publishing, 9600 Garsington Road, Ox<strong>for</strong>d OX4 2DQ, UK and350 Main Street, Malden, MA 02148, USA.


M. A. Otaduy, R. Tamstorf, D. Steinemann & M. Gross / <strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>Figure 1: A flamenco dancer per<strong>for</strong>ms a few steps and a 360 turn (in less than 1sec). Her 6-layered dress (16800 vertices)undergoes challenging contact, but is robustly resolved by our dynamics-aware contact handling.dling. We refer readers to recent surveys on collision detection<strong>for</strong> de<strong>for</strong>mable objects [TKH ∗ 05], general de<strong>for</strong>mationmodeling [NMK ∗ 05], or modeling of cloth [HB00, CK05],<strong>for</strong> more details on those topics. Our work deals with contacthandling or collision response, which has been addressedthrough many different approaches. They can be classifiedbased on the nature of the response (i.e., <strong>for</strong>ces, impulses,or geometric projection), their local or global effect, or thesequential or simultaneous processing of contacts.One approach <strong>for</strong> collision response is the use of elasticrepulsive <strong>for</strong>ces (or penalty method) [MW88]. The majorproblem of the penalty method is that non-penetrationrobustness and physical robustness require different parameterchoices. To robustly avoid non-penetration, repulsive<strong>for</strong>ces must be very stiff or even nonlinear. To robustly avoidnon-physical jitter effects, <strong>for</strong>ces must be continuous. However,to the best of our knowledge, there is no method thatguarantees continuous repulsive <strong>for</strong>ces in the general case,hence high stiffness can lead to disturbing jitter artifacts. Thepenalty method is, nevertheless, often the method of choicewhen very high per<strong>for</strong>mance is a major goal [BJ07].<strong>Contact</strong> handling is particularly challenging in cloth simulation,as the non-orientability of the surface calls <strong>for</strong>strict en<strong>for</strong>cement of non-penetration. Volino and Magnenat-Thalmann have long proposed techniques <strong>for</strong> efficient simulationof cloth and garments. Their work on collision responseincludes a geometric projection method <strong>for</strong> resolvingpositions, velocities, and/or accelerations [VMT97], whichthey later refined to deal with competing constraints and withan efficient solver [VMT00]. Baraff and Witkin [BW98] enabledthe use of large time steps in cloth simulation throughimplicit methods, and handled cloth-cloth collisions throughrepulsive <strong>for</strong>ces. Provot introduced methods <strong>for</strong> dealing withcompeting constraints through rigid impact zones [Pro95],or through iterative application of impulses [Pro97]. Bridsonet al. [BFA02] introduced a bullet-proof technique <strong>for</strong> ensuringnon-penetration in cloth (or other de<strong>for</strong>mation models)by combining repulsive response, geometric response,and rigid impact zones if needed. Very recently, Harmonet al. [HVTG08] have eliminated excessive sticking effectsproduced by rigid impact zones. Also very recently, Sifakiset al. [SMT08] have introduced a contact handling techniquebased on intra-contact volume preservation.Our work is related to methods that model collision responseas a constrained optimization. The approach hasgained popularity <strong>for</strong> rigid body simulation over the lastdecade [Bar94, RKC02, KEP05, Erl07], as it provides accuratehandling of friction and stacking. It has also seen applicationto de<strong>for</strong>mable objects since the work of Baraff andWitkin [BW92]. The simulation of contact de<strong>for</strong>mations hasreceived large attention in the field of computational mechanics,and we refer to the book of Wriggers [Wri02] <strong>for</strong> acomprehensive treatment. Similar to many others be<strong>for</strong>e, our<strong>for</strong>mulation of contact de<strong>for</strong>mations can be classified in thefamily of linear complementarity problems (LCP) [CPS92].The <strong>for</strong>mulation of the LCP using an implicit time-steppingmethod robustly guarantees the en<strong>for</strong>cement of the constraintsat the end of the time step [ST96].There are two major differences between iterative constrainthandling methods [BFA02, GBF03, MHHR06], andimplicit LCP <strong>for</strong>mulations. One difference is the sequentialvs. simultaneous <strong>for</strong>mulation of all constraints. A simultaneous<strong>for</strong>mulation guarantees that the solution to one constraintwill not violate others. Another difference is the localvs. global effect of the response. For de<strong>for</strong>mable objects,iterative constraint handling methods typically apply a responselocally on the colliding nodes [BFA02, MHHR06,SBT07], while implicit methods act globally. Local responseworks well with small time steps, but, as highlighted inFig. 2, it may produce spurious energy growth due to excessivelocal de<strong>for</strong>mation. Bridson et al. [BFA02] alleviated thiseffect by adding cloth relaxation steps to collision response.Recently, Shinar et al. [SSF08] have combined iterative constainthandling methods <strong>for</strong> de<strong>for</strong>mable and rigid bodies.The <strong>for</strong>mulation of a contact LCP requires the computationof all pair-wise contact <strong>for</strong>ce effects, a process rec○2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.


M. A. Otaduy, R. Tamstorf, D. Steinemann & M. Gross / <strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>A) B)abncFigure 2: Local vs. Global Response. A flexible structurewith linear springs (a,b) and (b,c), and a torsional springat b, collides against a wall. Elastic energy varies with theposition of c (‘blue’ is low energy, and ‘red’ is high). Left(A): local geometric projection moves c in the direction ofn keeping b and a fixed, and clearly adds excessive energy.Right (B): a global response method also moves b to an optimallocation, producing a remarkably lower elastic energy.ferred to as constraint anticipation [Bar96] or computationof the Delassus operator [DDKA06]. With rigid bodies,constraint anticipation is a popular approach becauseit requires the solution of small linear systems. But withde<strong>for</strong>mable bodies with many degrees of freedom and implicitconstraints it becomes excessively expensive. Somehave used linear [PPG04] or global co-rotational de<strong>for</strong>mationmodels [DDKA06] to leverage precomputations. Saupinet al. [SDCG08] approximate and accelerate the <strong>for</strong>mulationof the Delassus operator using compliance warping. Raghupathiand Faure [RF06] maintain an active constraint set andexploit linear system solvers, but this approach may lead toexcessive sticking, in particular with large time steps. Veryrecently, Kaufman et al. [KSJP08] have introduced an approach<strong>for</strong> rigid bodies and reduced de<strong>for</strong>mation models that<strong>for</strong>mulates and solves non-penetration and frictional LCPs ina staggered manner. In Section 5 we propose a novel efficientsolver <strong>for</strong> large constrained de<strong>for</strong>mation problems.3. Constrained Dynamics FormulationWe now describe the frictional constrained dynamics <strong>for</strong>mulationon which our contact handling algorithm operates.3.1. Dynamics and Numerical IntegrationFor the presentation of our algorithm, we comprise all degreesof freedom of the simulation in one state vector q. Wealso comprise all velocities in one vector v. In this paper wedo not propose any new method <strong>for</strong> modeling de<strong>for</strong>mations,but we assume that dynamic de<strong>for</strong>mations can be discretizedwith ODEs of the <strong>for</strong>m:M˙v = F,abn˙q = Gv, (1)cwhere M denotes the mass matrix, F is the (generally nonlinear)<strong>for</strong>ce vector, and G relates the velocity vector tothe derivative of the state vector. Eq. (1) is very general,and it applies to, e.g., rigid bodies, mass-spring models,discrete shells, or FE elastic models. In our examples, wehave used a mass-spring model similar to the one used byProvot [Pro95] or Bridson et al. [BFA02] <strong>for</strong> cloth, and thelinear co-rotational FE model of Müller and Gross [MG04]<strong>for</strong> volumetric de<strong>for</strong>mable objects.We consider time discretization methods that, given astate (q 0 ,v 0 ) at the beginning of a time step, yield a linearvelocity update rule:Av = b. (2)This assumption is applicable to each Newton iteration ofimplicit solvers such as backward Euler or Newmark, and toeach step of Runge-Kutta solvers. For the examples in thispaper, and as done by [BW98], we have used a backwardEuler scheme with linear approximation of <strong>for</strong>ces (equivalentto doing one Newton iteration of the nonlinear solve),and assuming a constant mass matrix per time step. Then,the linear velocity update is defined by:A = M − ∆t ∂F∂v − ∆t2 G ∂F∂q ,b = ∆tF(q 0 ,v 0 ) +3.2. Non-Penetration Constraints(M − ∆t ∂F∂v)v 0 . (3)The set of object configurations q free of contact can belimited by a constraint manifold Γ in the high-dimensionalconfiguration space. Collision detection locally samples thisconstraint manifold. More specifically, grouping all contactpoints in one vector p, the free space defined by the constraintmanifold Γ can be approximated by a set of algebraicinequalities g(p) ≥ 0. Given a pair of colliding points p aand p b , and contact normal n, an individual non-penetrationconstraint can be written as n T (p a − p b ) ≥ 0. We identifyvertex-face and edge-edge contact pairs in two ways: (i)those pairs closer than a distance tolerance δ at the beginningof a time step, and (ii) those that cross each other betweentwo possible simulation states. We have implementedthe continuous collision detection test of Provot [Pro97], afterpruning distant pairs using axis-aligned bounding boxesand spatial hashing [THM ∗ 03]. In practice, we en<strong>for</strong>ce contactsto be separated by a safety distance δ.In order to en<strong>for</strong>ce non-penetration at the end of the timestep, we <strong>for</strong>mulate the constraints implicitly. Specifically, wepropose a semi-implicit <strong>for</strong>mulation of contact constraintslinearized as:g(p) = g 0 + ∂g∂p (p − p 0) ≥ 0, (4)with the rows of the Jacobian ∂g <strong>for</strong>med by the contact normalsn at the time of impact, and g 0 = g(p 0∂p).c○ 2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.


M. A. Otaduy, R. Tamstorf, D. Steinemann & M. Gross / <strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>Accounting <strong>for</strong> the numerical integration method (implicitEuler in our case), we can trans<strong>for</strong>m the implicit positionconstraints into velocity constraints. To do this, we first expressthe position update of contact points in terms of theirvelocities, p = p 0 +∆tṗ. The velocities of contact points canin turn be expressed in terms of the state velocity vector, asṗ = ∂ṗ∂ṗv. In our examples, the rows of the Jacobian ∂v ∂v constitutetriangle barycentric weights (<strong>for</strong> cloth) or tetrahedronbarycentric weights (<strong>for</strong> volumetric FEM). To summarize,the semi-implicit position constraints from Eq. (4) are trans<strong>for</strong>medinto velocity constraints of the <strong>for</strong>m:Jv ≥ − 1 ∆t g 0, (5)with J = ∂g ∂ṗthe generalized constraint normal.∂p ∂v3.3. Mixed Linear Complementarity ProblemWe model collision response with the method of Lagrangemultipliers, and express contact <strong>for</strong>ces as J T λ. Additionally,we employ Signorini’s contact model [DDKA06], which imposesnon-sticking constraints λ ≥ 0 on the contact <strong>for</strong>ces,and the complementarity condition 0 ≤ λ ⊥ g(p) ≥ 0. Complementarityhere means that contact points cannot push(λ > 0) and be distant (g(p) > 0) at the same time.The resulting system of equations is a mixed linear complementarityproblem (MLCP, called ‘mixed’ as it combineslinear equalities and inequalities). Given unconstrained velocitiesv ∗ , the MLCP that defines the constrained velocitiesv can be expressed as:A∆v = J T λ, ∆v = v − v ∗ ,0 ≤ λ ⊥ J∆v ≥ − 1 ∆t g 0 − Jv ∗ . (6)The MLCP is equivalent to a quadratic program [CPS92]where the objective function to be minimized is 1 2 ∆vT A∆v,subject to the contact constraints from Eq. (5). The inclusionof A in the distance metric of the objective function ensuresthat our algorithm is aware of the discretization method andthe internal dynamics of the de<strong>for</strong>ming objects.3.4. FrictionWe model friction with a pyramid approximation ofCoulomb’s friction cone, which allows us to naturally incorporateit into the constrained optimization <strong>for</strong>mulationdescribed above. We have opted <strong>for</strong> a 4-sided pyramid, butmore complex approximations are possible if higher accuracyis needed. Given a contact with constraint n T (p a −p b ) ≥ 0, we first compute the tangent unconstrained relativevelocity v ∗ t = (I − nn T )(v ∗ a − v ∗ b ). We then align the4-sided friction pyramid with this velocity, which amountsto computing unit tangent vectors t 1 = v ∗ t /‖v ∗ t ‖ and t 2 =n × t 1 . And we add friction <strong>for</strong>ces to the dynamics equationin Eq. (6) using Lagrange multipliers, which yields <strong>for</strong>cesγ 1 t 1 and γ 2 t 2 <strong>for</strong> each contact. In vector <strong>for</strong>m, these friction<strong>for</strong>ces can be expressed as H T γ. The 4-sided pyramidaligned with the unconstrained velocity has served as a goodapproximation in our examples.We handle friction in the constrained dynamics problemby augmenting the MLCP from Eq. (6) in the followingway. Given a friction coefficient µ, we express the followingcomplementary constraints <strong>for</strong> each contact: a linearizedCoulomb cone constraint ‖γ 1 ‖ ≤ µλ, and a velocity constraintv t1 ≥ 0 that prevents friction from reversing motion(and similarly <strong>for</strong> γ 2 ). Altogether, the problem from Eq. (6)turns into the following nonlinear complementarity problem:A∆v = J T λ + H T γ,0 ≤ λ ⊥ J∆v ≥ − 1 ∆t g 0 − Jv ∗ ,‖γ‖ ≤ µλ ⊥ H∆v ≥ −Hv ∗ . (7)In Section 5.4 we will describe our solution to frictional constraineddynamics, which is based on a decoupling of thenon-penetration and frictional problems.4. Constraint Manifold RefinementThe solution to our constrained dynamics problem alonedoes not guarantee a penetration-free state at the end of atime step. There are two possible reasons: the linearizationof the contact constraints, and the fact that the collision responseinduced by some constraints g may in turn violateother constraints that were not accounted <strong>for</strong>. In this section,we describe the first of our major technical contributions, atime-stepping algorithm based on constraint manifold refinementthat will guarantee a collision-free state. We also givean overview of how other different novel aspects of our workfit into the overall algorithm.We assume that a time step starts with a collision-freestate, (q 0 ,v 0 ). Then, the dynamics described by the linearizeddiscrete system A from Eq. (2) would yield an unconstrainedstate (q ∗ ,v ∗ ). However, we aim <strong>for</strong> a state (q,v)that satifies the constraint manifold Γ, and minimizes the‘distance’ to the unconstrained state subject to the metric A.The constraint manifold Γ that determines valid dynamicssolutions is nonlinear and highly dimensional. As an alternative,we propose the creation of a local conservative boundof Γ, through a process of progressive constraint manifoldrefinement (CMR). CMR intertwines steps of collision responsecomputation and continuous collision detection <strong>for</strong>reaching a collision-free state at the end of the time step. Anexample application of the CMR algorithm is schematicallydepicted in Fig. 3. Along with the initial and unconstrainedstates, CMR maintains a set of linear constraints g (describedin Section 3.2) that locally approximate Γ.At each iteration of CMR, we per<strong>for</strong>m a frictional constraineddynamics update as described in Section 3.4. Thisresults in a tentative simulation state (q,v) that satisfies thec○ 2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.


M. A. Otaduy, R. Tamstorf, D. Steinemann & M. Gross / <strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>Section 6). We also found that, after 5 iterations, halving thetime step and making a new attempt with CMR turns out tobe more efficient. Hence, in our examples, we allowed thetime step to be halved at most twice, and all collisions wereresolved. If necessary, one could add a bullet-proof step asrigid impact zones [Pro95, BFA02] or the improved methodof Harmon et al. [HVTG08].Figure 3: CMR Time Stepping. A point at q 0 would move inan unconstrained setting to q ∗ . CMR finds a location q 3 , asclose as possible to q ∗ , subject to constraints g, which <strong>for</strong>m alocal piecewise linear approximation of the constraint manifoldΓ. In each iteration of CMR, the point moves to a tentativegoal position using the current approximation g, andcollision detection is executed <strong>for</strong> refining g if necessary.constraints g. Un<strong>for</strong>tunately, this state is not guaranteed tobe collision-free, due to the local approximation of Γ. Thesecond step in CMR is to per<strong>for</strong>m continuous collision detectionthat checks <strong>for</strong> contacts in the linear motion betweenq 0 and q. If no contacts appear, the tentative state is validand we can start a new time step. If contacts appear, we refinethe approximation of the constraint manifold Γ by augmentingthe set of constraints g, and per<strong>for</strong>m a new iterationof CMR. For each new contact, we add an implicit linearizedconstraint, whose <strong>for</strong>mulation is detailed in Section 3.2. Ourconstrained dynamics <strong>for</strong>mulation naturally handles multipleconstraints per degree of freedom of the system.Given initial state (q 0 ,v 0 ), and using one Newton iterationof implicit Euler <strong>for</strong> the numerical integration, the fullalgorithm per time step proceeds as follows:1. Linearize and discretize the dynamics, i.e., compute(A,G,b), at (q 0 ,v 0 ), as described in Section 3.1.2. Solve <strong>for</strong> unconstrained velocities in Av ∗ = b.3. Execute tolerance-based collision detection at q 0 as describedin Section 3.2, and initialize the constraint set gwith newly-found constraints g ∗ .4. Loop CMR while g ∗ ≠ ∅, at most 5 times:4.1. Compute collision response ∆v based on (q 0 ,v ∗ ,g),as described in Section 5.4.2. Compute tentative v = v ∗ + ∆v and q = q 0 + ∆tGv.4.3. Execute continuous collision detection between q 0and q as described in Section 3.2.4.4. Augment the constraint set g with newly found constraintsg ∗ .The convergence of CMR depends on the quality of thelinear approximation of the constraint manifold Γ, which dependsin turn on the velocity of the motion, the curvature ofΓ, and the size of the time step. However, we found that, <strong>for</strong>reasonable time steps, CMR finds a safe constrained stateafter 2 or 3 iterations in 90% of the cases (as reported inFor better per<strong>for</strong>mance, we initialize the constraint set gby doing a collision detection test that returns all primitivepairs closer than the tolerance. This is particularly usefulwhen the scene contains stacked objects, such as the multilayereddress or the stacked letters from Fig. 7, as it dramaticallyreduces the number of contacts returned otherwise bythe first continuous collision detection step.Intertwining steps of collision detection and response isa common strategy in contact handling [BFA02, HVTG08],but CMR exhibits notable differences that provide higherrobustness at large time steps. Recall from Section 3.2that our derivation starts with a position-level constrained<strong>for</strong>mulation, and we turn this nonlinear constrained probleminto a velocity-level LCP <strong>for</strong>mulation by incorporatingthe time integration method. This is different from othervelocity-level LCP <strong>for</strong>mulations that directly <strong>for</strong>mulate nonapproachingvelocity constraints. With our <strong>for</strong>mulation, thestate at the end of each iteration of CMR satisfies the locallinear approximation of the constraint manifold Γ. Withother velocity-level <strong>for</strong>mulations, one still needs to evolvepositions, which, under large time steps, may lead to artifactssuch as visible gaps between objects. In practice, wehave also experienced a decrease in the number of collisiondetection iterations when using position constraints.5. Nested Relaxation Solver <strong>for</strong> MLCPsWe present in this section our solver <strong>for</strong> constrained dynamicsproblems. It is founded on a novel technique of iterativeconstraint anticipation (ICA), and employs two nested relaxationloops. First, we discuss how MLCPs are typicallysolved with the technique of constraint anticipation. We thendescribe the concept of ICA and <strong>for</strong>mulate the two relaxationloops <strong>for</strong> the frictionless case. Next, we include the frictionsolve, which is based on decoupling the <strong>for</strong>mulation of normaland tangential response. We conclude with an outline ofthe complete algorithm and its discussion.5.1. Constraint AnticipationThe MLCP from Eq. (6) can be converted into a regular LCPby Schur-complement computation:0 ≤ λ ⊥ Bλ ≥ c, (8)with B = JA −1 J T the Schur complement of A,and c = − 1 ∆t g 0 − Jv ∗ .c○ 2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.


M. A. Otaduy, R. Tamstorf, D. Steinemann & M. Gross / <strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>Figure 4: Unified <strong>Contact</strong> Solver. Our constrained dynamics approach naturally supports diverse de<strong>for</strong>mation models in aunified solver. In the figure, rigid bodies are yellow, linear co-rotational FEM models are orange, and mass-spring cloth is red.The left and middle images show the robust handling of cloth compressed between rigid and de<strong>for</strong>mable solids.Baraff [Bar96] named this conversion to an LCP constraintanticipation, since the computation of A −1 J is equivalentto solving <strong>for</strong> the independent collision response producedby a unit <strong>for</strong>ce applied on each constraint. Constraintanticipation is efficient <strong>for</strong> rigid bodies [Bar96, Erl07], as Ais block-diagonal and can be easily inverted. However, it isvery inefficient <strong>for</strong> general de<strong>for</strong>mable bodies with implicitconstraints, as it requires the solution of one large linear systemper constraint. Moreover, with rigid bodies B is sparse,while with de<strong>for</strong>mable bodies and implicit constraints it isdense and large, thereby making the solution of the LCP veryexpensive as well.5.2. Iterative Constraint AnticipationIn the constraint anticipation method discussed above, thecomputation of Lagrange multipliers λ and collision response∆v are decoupled into two separate steps. We proposeinstead an algorithm where both λ and ∆v are solved intandem. Our algorithm exploits as well the concept of constraintanticipation, but instead of fully anticipating at oncethe effect of the constraints as in Eq. (8), it progressively anticipatestheir effect in an iterative manner. In essence, giventhe collision response ∆v(i − 1) from a certain iteration, ittrans<strong>for</strong>ms the MLCP into an LCP through constraint anticipation,computes Lagrange multipliers λ(i) <strong>for</strong> a new iteration,and then refines the collision response ∆v(i).Let us assume that the Lagrange multipliers λ(i) areknown at the current iteration, and we aim to compute thecollision response. One approach <strong>for</strong> doing this is to solve<strong>for</strong> ∆v in A∆v = J T λ through iterative relaxation (in ourcase, block-Jacobi relaxation):D A ∆v(i) = (L A + U A )∆v(i − 1) + J T λ(i), (9)where D A is block diagonal, L A strictly lower triangular,U A strictly upper triangular, and A = D A − L A − U A . In ourcloth and volumetric FEM examples we decompose A into3 × 3 blocks.The <strong>for</strong>mulation above allows us to anticipate the effect ofcontact constraints in an iterative manner. Specifically, ICAallows us to substitute ∆v(i) into the constraint equation inMLCP (6), and obtain the following LCP, which can then beused <strong>for</strong> computing λ(i):0 ≤ λ(i) ⊥ Bλ(i) ≥ c(i), (10)with B = JD −1A JT ,and c(i) = − 1 ∆t g 0 − Jv ∗ − JD −1A (L A + U A )∆v(i − 1).ICA presents two major advantages over the full constraintanticipation discussed in Section 5.1: (i) The matrixof the LCP, B, requires the simple inversion of the block diagonalmatrix D A , as opposed to solving a large linear systemper constraint; and (ii) B is very sparse, not dense anymore, since off-diagonal terms are non-zero only if two constraintsaffect the same simulation node. Moreover, note thatICA re<strong>for</strong>mulates at each iteration only the right-hand sidec(i), and the matrix B needs to be computed only once perconstrained dynamics update.ICA yields two nested problems: as outer problem, theiterative relaxation of ∆v and, as inner problem, the sparseLCP <strong>for</strong> computing λ. We next describe the two relaxationsolvers used in these nested problems.5.3. Nested Relaxation LoopsWe solve the inner problem in ICA, i.e., the LCP in Eq. (10),using projected Gauss-Seidel (G-S) relaxation [CPS92].Then, the j th iteration is <strong>for</strong>mulated as:0 ≤ λ(i, j) ⊥ (D B −L B )λ(i, j) ≥ c(i)+U B λ(i, j −1), (11)where D B is diagonal, L B strictly lower triangular, U Bstrictly upper triangular, and B = D B − L B − U B . We foundthat the inner problem typically converges in few iterations(less than 10 in 90% of the cases) with a warm start from theprevious iteration of the outer problem.c○ 2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.


M. A. Otaduy, R. Tamstorf, D. Steinemann & M. Gross / <strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>Figure 5: Falling Cloth. A piece of cloth is dropped and it produces many stacking folds on the ground. Our contact handlingensures the lack of inter-penetrations and a response that does not add energy to the cloth.Once the Lagrange multipliers λ are computed, the outerproblem in ICA must be resolved (i.e., the refinement of ∆v).We obtained good convergence in practice by doing simplyone block-G-S iteration as described by:(D A − L A )∆v(i) = U A ∆v(i − 1) + J T λ(i). (12)Note that we propose block-G-S <strong>for</strong> refining collision responsedue to better convergence, while we propose block-Jacobi in Eq. (9) <strong>for</strong> iteratively anticipating the constraints.The effect of this mismatch is that the Lagrange multipliersλ(i) at the i th iteration do not necessarily guarantee that constraintsare resolved <strong>for</strong> ∆v(i). However, this is not a problem,as constraints are resolved once the nested relaxationconverges. One could think of using block-G-S <strong>for</strong> iterativelyanticipating the constraints, but that would result ina dense matrix B and worse per<strong>for</strong>mance.5.4. FrictionOur approach <strong>for</strong> solving the frictional constrained dynamicsproblem is to interlace the solution of normal and tangentialconstraints, similar to [DDKA06]. For the rest of thissection, we drop the subindex i from λ and γ <strong>for</strong> better readability.In the inner loop of ICA we first assume the frictionalresponse γ to be known, which results in an LCP that definesthe normal response λ:0 ≤ λ ⊥ B λ λ ≥ c λ (i) − B λγ γ, (13)with B λ = JD −1A JT ,B λγ = JD −1A HT ,and c λ (i) = − 1 ∆t g 0 − Jv ∗ − JD −1A (L A + U A )∆v(i − 1).We then assume the normal response to be known, which,given the linearized Coulomb friction model from Section3.4, results in an LCP that defines the frictional response:‖γ‖ ≤ µλ ⊥ B γγ ≥ c γ(i) − B T λγλ, (14)with B γ = HD −1A HT ,and c γ(i) = −Hv ∗ − HD −1A (L A + U A )∆v(i − 1).5.5. Complete ICA AlgorithmAs discussed in Section 5.3, we resolve the inner loop in ICAthrough projected-G-S relaxation. In the frictional case, weapply this relaxation to both normal and friction LCPs <strong>for</strong>mulatedabove. In our implementation, we interlace normaland friction relaxation at the level of each contact. In otherwords, we refine the normal response of one contact, thenthe friction response of the same contact, and we move tothe next contact. The complete ICA algorithm can be summarizedas follows:1. Initialize ∆v(0),λ(0),γ(0) with values from the previousconstrained dynamics solve. If a constraint was justadded, set λ(0) = γ(0) = 0.2. Formulate the sparse matrices B λ ,B γ,B λγ .3. (Outer loop) Do ICA until convergence:3.1. Formulate c λ (i),c γ(i).3.2. (Inner loop) Iterate LCPs with proj. G-S:3.2.1. For each contact j, iterate 3 times:3.2.1.1. Compute λ j in B λ λ + B λγ γ − c λ (i) = 0.3.2.1.2. Project λ j ≥ 0.3.2.1.3. Compute γ 1, j in B T λγλ + Bγγ − cγ(i) = 0.3.2.1.4. Project ‖γ 1, j ‖ ≤ µλ j .3.2.1.5. Compute γ 2, j in B T λγλ + Bγγ − cγ(i) = 0.3.2.1.6. Project ‖γ 2, j ‖ ≤ µλ j .3.3. Refine ∆v(i) with one iteration of block-G-S:(D A − L A )∆v(i) = U A ∆v(i − 1) + J T λ(i) + H T γ(i).In practice, we terminate the inner loop of ICA when theresiduals of the complementarity conditions in both nonpenetrationand frictional LCPs change less than 5% betweentwo iterations, and the distance along the constraintnormal is larger than half the collision detection toleranceat all contacts. We terminate the outer loop when the previousconditions hold and, in addition, the residual of collisionresponse A∆v(i) − J T λ(i) − H T γ(i) changes less than 5%between two iterations. Note that the residuals of the LCPsneed to be re-evaluated after applying collision response.c○ 2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.


M. A. Otaduy, R. Tamstorf, D. Steinemann & M. Gross / <strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>5.6. DiscussionLet us assume a de<strong>for</strong>mable object with n degrees of freedom,m contact constraints, and semiregular meshing. Thecost of the traditional solver <strong>for</strong> MLCPs based on constraintanticipation (as discussed in Section 5.1), can be decomposedas follows: the cost of computing the LCP matrixJA −1 J T is at best O(n · m + m 2 ), while each iteration of theLCP solver takes O(m 2 ), due to the dense matrix. On theother hand, the cost per iteration of our next relaxation solverin ICA is only O(n + m). As shown by the per<strong>for</strong>mance datareported in Section 6, our ICA algorithm clearly outper<strong>for</strong>msfull constraint anticipation in practice, and the per<strong>for</strong>mancegain grows with the size of the problem.The existence of a solution <strong>for</strong> the frictionless constraineddynamics problem is guaranteed if the time step starts with acollision-free configuration, since a collision response ∆v =−v ∗ trivially satisfies all constraints. Note however that ascene with scripted moving objects could suffer from nonphysicalsituations like cloth pinched between an arm andthe body, but such situations require global untangling approachesas addressed by Baraff et al. [BWK03]. Beyond existenceof a solution, we have observed that the convergenceof the solver depends on the convergence of the block-G-Srelaxation of the dynamics. Convergence is guaranteed if Ais diagonally dominant [GV96], but less restrictive situationswork well in practice. In our implementation, we monitor theresidual to check whether G-S converges. If it does not, wehalve the time step and restart a loop of CMR.6. ResultsAll our experiments were executed on a 3.2GHz processorPC with 2.0GB of memory. The dress in the flamenco examplefrom Fig. 1 and the falling cloth from Fig. 5 weresimulated as mass-spring systems. The dress contains 6 layersand 16800 vertices, and the falling cloth contains 2500vertices. The scene in Fig. 7 consists of 164 letters, with23000 tetrahedra in total, simulated with co-rotational FEM.The scene in Fig. 4 combines cloth pieces, FEM de<strong>for</strong>mablebodies, and rigid bodies.The falling cloth in Fig. 5 shows the robust geometric handlingof non-penetration and stacking folds of cloth. The accompanyingvideo clearly demonstrates the smooth behaviorunder both small and large friction coeficients. For renderingpurposes, we added one step of constrained Loop subdivisionas a post-process. The simulation took approximately8 minutes with a time step of 4 ms <strong>for</strong> a total of 4 secondsof simulation, with 69% of the time devoted to constraineddynamics solve and 31% to collision detection.The flamenco dance simulation from Fig. 1 imposes extremelychallenging conditions <strong>for</strong> contact handling, as theoverlaid dress pieces are pulled and/or compressed at highspeed by the motion of the body. There are some particularlycomplex situations, e.g., when the dancer kicks the dress, orFigure 6: Per<strong>for</strong>mance Evaluation. Time needed to computea full time step (30 ms) in the letters demo (see Fig. 7),plotted vs. the number of contacts. Timings are computedby averaging results over windows of 600 ms in the simulation.Left: comparison between the full constraint anticipationapproach (CA) vs. our ICA. Right: comparison <strong>for</strong>different FEM mesh resolutions (all with ICA).per<strong>for</strong>ms a 360 turn in less than one second. In all these situations,our algorithm produces physically robust collisionresponse, which results in inelastic impacts and smooth sliding.Note that, in this example, the shirt of the dancer wasnot simulated. It was added as a post-process <strong>for</strong> cosmeticreasons, and intersections with the rest of the model werenot checked. The simulation of the flamenco dance took approximately15 hours to compute with a time step of 2 ms <strong>for</strong>a sequence of about 10 seconds. The bottleneck in this exampleturned out to be continuous collision detection, withan average of 1.5 seconds per query. The computation ofone constrained dynamics solve took 1.2 second on average,although at sparse times (about 0.1%) the relaxation solverrequired up to 10 times longer. The number of contacts grewup to 6000 in this example.The stacking letters in Fig. 7 were modeled as trianglemeshes embedded in tetrahedral meshes. The scenestarts with layers of letters being dropped on each other,the pile comes to rest, and then the walls push in andcompress the pile. The simulation exhibits very vivid motioneffects, thanks to the accurate geometric handling ofsharp features, and the physically robust handling of friction<strong>for</strong>ces. The complete simulation needed just over 90 minutes<strong>for</strong> the computation of about 40 seconds of animation,with a time step of 30 ms. Fig. 6 evaluates the per<strong>for</strong>manceof our solver as a function of the number ofcontacts and the resolution of the tetrahedral meshes, aswell as in comparison with full constraint anticipation. Inthe right plot we can see that our ICA algorithm has inpractice quasi-linear complexity w.r.t. the number of contacts.Per<strong>for</strong>mance is practically independent of mesh resolutionwhen the letters have less than 140 tetrahedra onaverage, which, as expected, implies that the inner loop ofICA (i.e., the refinement of Lagrange multipliers) dominatesthe cost at low mesh resolutions. In the left plot wecan see, instead, that the full constraint anticipation suffers,c○ 2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.


M. A. Otaduy, R. Tamstorf, D. Steinemann & M. Gross / <strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>Figure 7: Stacking De<strong>for</strong>mable Letters. This animation shows accurate geometric handling of sharp features, as well asphysically robust impacts, sliding, and stick-slip effects, at large time steps (30 ms).as expected, quadratic complexity (at best). This differenceclearly shows the benefits of our contact handling method<strong>for</strong> large contact problems. Moreover, the data <strong>for</strong> the leftplot was obtained in a frictionless simulation, as the fullconstraint anticipation method suffered severe convergenceproblems with many less contacts in the frictional case.We have also evaluated theper<strong>for</strong>mance of CMR. Theplot to the right shows a histogramof the number of iterationsneeded by CMR <strong>for</strong>finding a valid state that satisfiesthe constraint manifold.CMR found a valid solutionin 3 iterations or less in more than 90% of the cases.The statistics were very similar <strong>for</strong> the rest of the examples.Fig. 4 shows a scene where we have combined varioustypes of objects. Specifically, rigid bodies, FEM corotationalde<strong>for</strong>mable bodies, and mass-spring cloth pieces.The objects are dropped on top of each other, and ourcontact handling algorithm robustly handles the stack ina unified manner. The algorithm is perhaps suboptimal ifonly rigid bodies are used (in comparison to approacheslike [GBF03, KEP05, Erl07]), but its main feature is that nospecial care is needed <strong>for</strong> dealing with contact between clothand solid bodies or FEM de<strong>for</strong>mable models and rigid bodies.The example exhibits complex situations where the clothpieces are trapped between bodies that are falling, but bothnon-penetration and friction are dealt with robustly.7. Summary and Future WorkWe have presented an efficient algorithm <strong>for</strong> geometricallyand physically robust contact handling among de<strong>for</strong>mableobjects. Our algorithm features dynamics-awareness by <strong>for</strong>mulatingan implicit constrained dynamics problem. Twomajor contributions, a time stepping algorithm based on constraintmanifold refinement, and an MLCP solver based oniterative constraint anticipation, allow us to efficiently androbustly solve constrained de<strong>for</strong>mation dynamics.In most of the cases, our constrained dynamics solver per<strong>for</strong>medalmost as fast as the unconstrained solve, and showingclose to linear cost. But there are sparse situations whenconvergence may be slow. Fortunately, there is room <strong>for</strong> improvementin our solver’s relaxation loops, by incorporatingmultigrid algorithms. However, the extension of multigridsolvers to constrained problems that change dynamically isnot trivial. As shown in the examples, our algorithm seamlesslyhandles the combination of de<strong>for</strong>mable and rigid bodies,but its per<strong>for</strong>mance is not optimal in that case, becausethe LCP matrices partially lose their sparsity. The recent approachof Shinar et al. [SSF08] could perhaps help in thissituation. Integration of shock propagation [GBF03, Erl07]would also be interesting <strong>for</strong> handling more efficiently thestacking of rigid bodies.Our algorithm does not handle pinched or tangled situations,although one could think of ways to incorporate existinguntangling algorithms as part of the time integration.However, our algorithm dealt robustly with large simulationtime steps. This is in part thanks to the position-level constraint<strong>for</strong>mulation in the CMR algorithm, and we believethat other collision response approaches could benefit fromit. In our examples we always relied on the constrained <strong>for</strong>mulation,but there are situations where repulsion <strong>for</strong>ces maybe more efficient <strong>for</strong> contact pruning, and it would be interestingto test them in combination with our approach. Veryrecently, Kaufman et al. [KSJP08] have presented a contacthandling algorithm that, similar to ours, interlaces the solveof normal and frictional response. However, they execute afull iteration on normal response be<strong>for</strong>e moving on to frictionalresponse, which provides them with certain convergenceguarantees. We plan to explore the application of suchideas to our ICA algorithm.Last, we plan to complement our efficient and robust collisionresponse algorithm with more elaborate de<strong>for</strong>mationmodels, both <strong>for</strong> cloth and <strong>for</strong> de<strong>for</strong>mable solids.c○ 2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.


M. A. Otaduy, R. Tamstorf, D. Steinemann & M. Gross / <strong>Implicit</strong> <strong>Contact</strong> <strong>Handling</strong> <strong>for</strong> De<strong>for</strong>mable <strong>Objects</strong>AcknowledgementsThis project was partially funded by Spanish Science andInnovation Dept. (proj. TIN2007-67188), Comunidad deMadrid (proj. S-0505/DPI/0235; GATARVISA), and theNCCR Co-Me of the Swiss NSF. We would also like to thankthe members of the CG lab at ETH and the GMRV group atURJC.References[Bar94] BARAFF D.: Fast contact <strong>for</strong>ce computation <strong>for</strong> nonpenetratingrigid bodies. Proc. of ACM SIGGRAPH (1994).[Bar96] BARAFF D.: Linear-time dynamics using Lagrange multipliers.Proc. of ACM SIGGRAPH (1996).[BFA02] BRIDSON R., FEDKIW R., ANDERSON J.: Robust treatmentof collisions, contact and friction <strong>for</strong> cloth animation. Proc.of ACM SIGGRAPH (2002).[BJ07] BARBIČ J., JAMES D. L.: Time-critical distributed contact<strong>for</strong> 6-dof haptic rendering of adaptively sampled reducedde<strong>for</strong>mable models. Proc. of ACM SIGGRAPH / EurographicsSymposium on Computer Animation (2007).[BW92] BARAFF D., WITKIN A. P.: Dynamic simulation of nonpenetratingflexible bodies. Proc. of ACM SIGGRAPH (1992).[BW98] BARAFF D., WITKIN A. P.: Large steps in cloth simulation.Proc. of ACM SIGGRAPH (1998).[BWK03] BARAFF D., WITKIN A. P., KASS M.: Untanglingcloth. Proc. of ACM SIGGRAPH (2003).[CK05] CHOI K.-J., KO H.-S.: Advanced topics on clothingsimulation and animation, 2005. ACM SIGGRAPH ConferenceCourse Notes.[CPS92] COTTLE R., PANG J., STONE R.: The Linear ComplementarityProblem. Academic Press, 1992.[DDKA06] DURIEZ C., DUBOIS F., KHEDDAR A., ANDRIOTC.: Realistic haptic rendering of interacting de<strong>for</strong>mable objectsin virtual environments. Proc. of IEEE TVCG 12, 1 (2006).[Erl07] ERLEBEN K.: Velocity-based shock propagation <strong>for</strong>multibody dynamics animation. ACM Trans. on Graphics 26,2 (2007).[GBF03] GUENDELMAN E., BRIDSON R., FEDKIW R.: Nonconvexrigid bodies with stacking. Proc. of ACM SIGGRAPH(2003).[GV96] GOLUB G. H., VAN LOAN C. F.: Matrix Computations,3rd ed. Johns Hopkins University Press, 1996.[HB00] HOUSE D. H., BREEN D. E.: Cloth Modeling and Animation.AK Peters, 2000.[HVTG08] HARMON D., VOUGA E., TAMSTORF R., GRIN-SPUN E.: Robust treatment of simultaneous collisions. Proc.of ACM SIGGRAPH (2008).[KEP05] KAUFMAN D. M., EDMUNDS T., PAI D. K.: Fast frictionaldynamics <strong>for</strong> rigid bodies. Proc. of ACM SIGGRAPH(2005).[KSJP08] KAUFMAN D. M., SUEDA S., JAMES D. L., PAID. K.: Staggered projections <strong>for</strong> frictional contact in multibodysystems. Proc. of ACM SIGGRAPH Asia (2008).[MG04] MÜLLER M., GROSS M.: Interactive virtual materials.Proc. of Graphics Interface (2004).[MHHR06] MÜLLER M., HEIDELBERGER B., HENNIX M.,RATCLIFF J.: Position based dynamics. Proc. of VRIPHYS(2006).[MW88] MOORE M., WILHELMS J.: Collision detection andresponse <strong>for</strong> computer animation. Proc. of ACM SIGGRAPH(1988).[NMK ∗ 05] NEALEN A., MÜLLER M., KEISER R., BOXER-MANN E., CARLSON M.: Physically based de<strong>for</strong>mable modelsin computer graphics. Eurographics STAR (2005).[PPG04] PAULY M., PAI D. K., GUIBAS L. J.: Quasi-rigid objectsin contact. Proc. of ACM SIGGRAPH/Eurographics Symposiumon Computer Animation (2004).[Pro95] PROVOT X.: De<strong>for</strong>mation constraints in a mass-springmodel to describe rigid cloth behavior. Proc. of Graphics Interface(1995).[Pro97] PROVOT X.: Collision and self-collision handling in clothmodel dedicated to design garment. Proc. of 8th EurographicsWorkshop on Computer Animation and Simulation (1997), 177–189.[RF06] RAGHUPATHI L., FAURE F.: QP-Collide: A new approachto collision treatment. French Working Group on Animationand Simulation (GTAS) (2006).[RKC02] REDON S., KHEDDAR A., COQUILLART S.: Gauss’least constraints principle and rigid body simulations. Proc. ofICRA (2002).[SBT07] SPILLMANN J., BECKER M., TESCHNER M.: Noniterativecomputation of contact <strong>for</strong>ces <strong>for</strong> de<strong>for</strong>mable objects.Journal of WSCG (2007).[SDCG08] SAUPIN G., DURIEZ C., COTIN S., GRISONI L.: Efficientcontact modeling using compliance warping. Proc. ofComputer Graphics International (2008).[SMT08] SIFAKIS E., MARINO S., TERAN J.: Globally coupledimpulse-based collision handling <strong>for</strong> cloth simulation. Proc. ofACM SIGGRAPH/Eurographics Symposium on Computer Animation(2008).[SSF08] SHINAR T., SCHROEDER C., FEDKIW R.: Two-waycoupling of rigid and de<strong>for</strong>mable bodies. Proc. of ACMSIGGRAPH/Eurographics Symposium on Computer Animation(2008).[ST96] STEWART D. E., TRINKLE J. C.: An implicit timesteppingscheme <strong>for</strong> rigid body dynamics with inelastic collsionsand Coulomb friction. International Journal of Numerical Methodsin Engineering 39 (1996).[THM ∗ 03] TESCHNER M., HEIDELBERGER B., MÜELLER M.,POMERANETS D., GROSS M.: Optimized spatial hashing <strong>for</strong>collision detection of de<strong>for</strong>mable objects. Proc. of Vision, Modelingand Visualization (2003).[TKH ∗ 05] TESCHNER M., KIMMERLE S., HEIDELBERGER B.,ZACHMANN G., RAGHUPATHI L., FURHMANN A., CANI M.-P., FAURE F., MAGNENAT-THALMANN N., STRASSER W.,VOLINO P.: Collision detection <strong>for</strong> de<strong>for</strong>mable objects. ComputerGraphics Forum 24, 1 (2005).[VMT97] VOLINO P., MAGNENAT-THALMANN N.: Developingsimulation techniques <strong>for</strong> an interactive clothing system. Proc. ofVirtual Systems and Multimedia (1997).[VMT00] VOLINO P., MAGNENAT-THALMANN N.: Accuratecollision response on polygonal meshes. Proc. of Computer Animation(2000).[Wri02] WRIGGERS P.: Computational <strong>Contact</strong> Mechanics. Wiley,2002.c○ 2008 The Author(s)Journal compilation c○ 2008 The Eurographics Association and Blackwell Publishing Ltd.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!