9
Constraint-based collision and contact handling using impulses Jan Bender Universit¨ at Karlsruhe [email protected] http://i31www.ira.uka.de Alfred Schmitt Universit¨ at Karlsruhe [email protected] http://i31www.ira.uka.de Abstract In this paper a new method for handling collisions and permanent contacts between rigid bodies is presented. Constraint-based methods for computing contact forces with friction provide a high degree of accuracy. The computation is often transformed into an optimization problem and solved with tech- niques like linear or quadratic programming. Impulse-based methods compute impulses to prevent colliding bodies from interpenetrating. The determination of these impulses is simple and fast. The impulse-based methods are very efficient but they are less accurate than the constraint-based methods because they resolve only one contact between two colliding bodies at the same time. The presented method uses a constraint-based approach. It can handle multiple contacts between two colliding bodies at the same time. For every collision and contact a non-penetration constraint is defined. These constraints are satisfied by iteratively computing impulses. In the same iteration loop impulses for dynamic and static friction are determined. The new method provides the accuracy of a constraint-based method and is efficient and easy to implement like an impulse-based one. Keywords: physically-based animation, rigid bodies, collision, contact, friction 1 Introduction The resolution of collisions and permanent con- tacts with friction is an important part of the dy- namic simulation of rigid bodies. A rigid body is defined by its mass m, the position of its cen- tre of mass c(t), its velocity v(t), its inertia tensor J, its actual orientation represented by a unit quaternion q(t) [1] and its angular velocity ω(t). There exist two main approaches for collision and contact handling: the impulse-based and the constraint-based approach. The impulse-based method works as follows. For every pair of col- liding bodies one pair of closest points is de- termined and an impulse is computed and ap- plied to resolve the collision at these points. Due to the impulses new collisions can occur. Be- cause of this, the computation of collision im- pulses is continued in a loop until all collisions are resolved. Since the determination of such impulses runs fast, the method is very efficient. If two bodies are resting on each other, in gen- eral they have multiple contacts at the same time but only one contact is handled per simulation step. This results in a vibratory motion of the bodies. There exist some approaches to cope with this problem but if a high degree of accu- racy is required, all existing contacts must be resolved at once. This is done by constraint- based methods. These methods define a non- penetration constraint for each contact that oc- curs. The defined constraints are unilateral and can be formulated as a linear complementarity

Constraint-based collision and contact handling using impulses

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Constraint-based collision and contact handling using impulses

Constraint-based collision and contact handlingusing impulses

Jan BenderUniversitat [email protected]

http://i31www.ira.uka.de

Alfred SchmittUniversitat [email protected]

http://i31www.ira.uka.de

AbstractIn this paper a new method for handlingcollisions and permanent contacts betweenrigid bodies is presented. Constraint-basedmethods for computing contact forces withfriction provide a high degree of accuracy.The computation is often transformed into anoptimization problem and solved with tech-niques like linear or quadratic programming.Impulse-based methods compute impulses toprevent colliding bodies from interpenetrating.The determination of these impulses is simpleand fast. The impulse-based methods are veryefficient but they are less accurate than theconstraint-based methods because they resolveonly one contact between two colliding bodiesat the same time. The presented method usesa constraint-based approach. It can handlemultiple contacts between two colliding bodiesat the same time. For every collision and contacta non-penetration constraint is defined. Theseconstraints are satisfied by iteratively computingimpulses. In the same iteration loop impulsesfor dynamic and static friction are determined.The new method provides the accuracy of aconstraint-based method and is efficient andeasy to implement like an impulse-based one.

Keywords: physically-based animation,rigid bodies, collision, contact, friction

1 Introduction

The resolution of collisions and permanent con-tacts with friction is an important part of the dy-namic simulation of rigid bodies. A rigid bodyis defined by its mass m, the position of its cen-tre of mass c(t), its velocity v(t), its inertiatensor J, its actual orientation represented by aunit quaternion q(t) [1] and its angular velocityω(t).

There exist two main approaches for collisionand contact handling: the impulse-based and theconstraint-based approach. The impulse-basedmethod works as follows. For every pair of col-liding bodies one pair of closest points is de-termined and an impulse is computed and ap-plied to resolve the collision at these points. Dueto the impulses new collisions can occur. Be-cause of this, the computation of collision im-pulses is continued in a loop until all collisionsare resolved. Since the determination of suchimpulses runs fast, the method is very efficient.If two bodies are resting on each other, in gen-eral they have multiple contacts at the same timebut only one contact is handled per simulationstep. This results in a vibratory motion of thebodies. There exist some approaches to copewith this problem but if a high degree of accu-racy is required, all existing contacts must beresolved at once. This is done by constraint-based methods. These methods define a non-penetration constraint for each contact that oc-curs. The defined constraints are unilateral andcan be formulated as a linear complementarity

Page 2: Constraint-based collision and contact handling using impulses

problem (LCP). The contact forces can be com-puted by solving this LCP. Alternatively the con-straints can be written as a quadratic programand solved by using quadratic programming al-gorithms [2].

The goal of the presented method is to com-bine the advantages of the constraint-based andimpulse-based approaches. To avoid problemswith vibratory motion between bodies restingon each other and to achieve a higher degree ofaccuracy, a constraint-based approach was cho-sen for this method. But instead of transform-ing the collision and contact resolution into anoptimization problem, the non-penetration con-straints are satisfied by iteratively computingimpulses. The advantage of using impulses is,that the computation is simple and fast. Im-pulses change the velocities of the bodies di-rectly, so no numerical integration is needed todetermine the velocity change due to contactforces.

2 Previous work

Analytical methods define the determination ofcontact forces as a linear complementarity prob-lem [3]. Either two colliding rigid bodies areaccelerating away from each other or a nor-mal force is needed to prevent interpenetration.So either the normal acceleration or the nor-mal force must be zero. Per Lostedt was thefirst to handle contacts in this way [4]. DavidBaraff presented a heuristic approach to com-pute the contact forces analytically [5]. Vic-tor Milenkovic and Harald Schmidl solved theproblem of computing non-interpenetrating po-sitions, momenta and accelerations by usingquadratic programming [6]. In [7] they usedimpulses to resolve collisions and contacts withfriction and determined the necessary impulsesby the solution of quadratic programs. To ac-celerate the simulation of many objects, Vic-tor Milenkovic proposed a simplified position-based physics and used linear programming [8].Danny Kaufman et al. presented an algorithmfor the simulation of large sets of non-convexrigid bodies [9]. Contacts are solved simultane-ously by quadratic programming. The solutionis linear in the number of contacts detected ineach iteration. David Baraff presented an algo-

rithm to determine the contact forces with fric-tion without solving an optimization problem[10]. This algorithm is faster, simpler and morerobust than methods based on optimization tech-niques.

Brian Mirtich and John Canny proposed animpulse-based method to handle collisions andcontacts with friction [11, 12]. They identifythe occurrence of a contact by using a velocitythreshold. During the simulation of a block rest-ing on a plane small impulses are applied to dif-ferent corners of the block to prevent interpene-tration. These impulses lead to a vibratory mo-tion. In the case of static friction a block slideserroneously down an inclined plane due to thesevibrations. A microcollision model was intro-duced to reduce this error [13]. Eran Guendel-man et al. also use an impulse-based approachfor collision and contact handling [14]. Theyproposed a new order of the simulation loop tocope with the vibration problem. After all col-lisions are processed, only the velocities of therigid bodies are updated. With the new veloci-ties the contact handling is done and at last thepositions are updated. The change of order is notphysically correct but with a sufficiently smalltime step size the results are plausible.

3 Collision response

A dynamic simulation system for non-penetrating rigid bodies needs a collisiondetection. The collision detection controlsthe time step size of the dynamic simulator todetermine the time of impact. At this pointof time the colliding bodies just have contactand do not penetrate each other. Especially inthe case of bodies resting on each other, twocolliding bodies can have contact in more thanone point. In the case of collision or contact,the collision detection determines all contactpoints and a contact normal n for each pair ofcolliding bodies. A contact normal is alwaysdirected from the second body to the first one.The collision detection will not be discussed infurther detail in this paper.

The collision response of a dynamic simula-tion system must handle collisions and restingcontacts. A collision occurs if two bodies are incontact and their velocity towards each other in

Page 3: Constraint-based collision and contact handling using impulses

the contact point is greater than zero. If the rel-ative velocity of the bodies in the contact pointis equal to zero, then the bodies are in restingcontact. In both cases an impulse is computedto prevent the bodies from interpenetrating.

Let us assume that gravity is the only exter-nal force that acts on the bodies. In the case ofcontact between two bodies, let a be the contactpoint in the first body and b the one in the sec-ond body and let ua and ub be the correspondingpoint velocities. The velocity of a point a of arigid body can be computed by

ua(t) := v(t) + ω(t)× (a(t)− c(t)).

The relative velocity of the contact points is de-fined as urel := ua − ub. The relative pointvelocity in normal direction u′rel,n = urel · n isdetermined to differentiate between three cases.If u′rel,n is greater than zero the bodies are sep-arating and no impulse need to be applied. Oth-erwise the bodies are in resting contact or a col-lision occurs. The criterion for a resting contactis

−u′rel,n <√

2 g εc

where εc is the tolerance of the collision detec-tion and g is the acceleration of gravity. Thiscriterion was proposed by Brian Mirtich in [13].

The difference between resolving a collisionand handling a resting contact is that the du-ration of a collision is infinitesimal whereas aresting contact lasts for a whole simulation step.Because of this, the resolution of all collisions isdone before the simulation step and the contactsare handled during the simulation step (see fig-ure 1). The collision resolution has to be donein a loop because the applied impulses that pre-vent the bodies from interpenetrating can causefurther collisions. The loop ends if no pair ofcontact points satisfies the criterion for a colli-sion. After all collisions are resolved, impulsesfor the resting contacts are computed, so that asimulation step can be done without interpene-tration. In the following first the resolution ofcollisions is discussed and then the handling ofresting contacts.

3.1 Collision resolution

The impact law of Newton is an approxima-tion of the collision process without friction. It

Figure 1: Simulation step with collision andcontact handling

states that the relative velocity of a pair of con-tact points in the direction of the normal after acollision is

ucrel,n = −e · urel,n

where e is the coefficient of restitution andurel,n := u′rel,n · n is the normal velocity be-fore the collision. If two bodies collide, an im-pulse p has to be applied to the first body and anequal impulse in opposite direction−p has to beapplied to the second body to prevent interpene-tration. These impulses must act in the directionof the normal n. To resolve the collision the im-pulses must change the relative velocity of thecontact points by

∆urel,n = ucrel,n − urel,n.

Let x and y be two arbitrary points of a rigidbody and let rxc := x − c and ryc := y − cbe the vectors from the centre of mass to thesepoints. The velocity change ∆ux of the point x

Page 4: Constraint-based collision and contact handling using impulses

if an impulse p is applied at the point y can bedetermined with the following matrix Kx,y:

Kx,y :=

1m I3 − r∗xc J−1 r∗yc if the body

is dynamic0 otherwise

∆ux = Kx,y · p

where r∗xc and r∗yc are the cross product matricesof the vectors rxc and ryc and I3 is the 3×3 iden-tity matrix. The impulse in normal direction thatchanges the relative velocity of the pair of con-tact points a and b by ∆urel,n is determined by

pn =1

nTKn∆urel,n (1)

where K := Ka,a +Kb,b. The resulting impulsepn is applied at point a and the impulse −pn atpoint b in order to resolve the collision. If thereoccur multiple collisions at the same time or twocolliding bodies have multiple pairs of contactpoints, then for each pair an impulse must becomputed and applied. Since in general the col-lision impulses depend on each other this pro-cess must be continued in an iterative loop untilall collisions are resolved correctly.

The collision resolution with multiple pairsof contact points works as follows. In the be-ginning the relative velocity uc

rel,n of each pairof contact points after the collision is computedwith Newton’s law. Then the computation of thecollision impulses is done in an iterative loop. Inthe i-th iteration for each pair of contact points itis tested if the relative velocity urel,n of the pairhas already reached the corresponding collisionvelocity uc

rel,n. If this is true, the computationcontinues with the next contact. Otherwise animpulse pn,i is determined with equation 1 toeliminate the actual velocity difference ∆urel,n.To prevent the colliding bodies from sticking to-gether it must be ensured that in each iterationthe sum of all impulses that are applied to a pairof contact points is in positive normal direction:

n ·i∑

j=1

pn,j ≥ 0. (2)

If condition 2 holds in iteration i− 1 and isnot satisfied anymore in the i-th iteration, then−n · pn,i > n ·

∑i−1j=1 pn,j must hold. The fol-

lowing impulse p′n,i is applied at the contact

points instead of pn,i to ensure that sticking isprevented:

p′n,i =

{pn,i if n

∑ij=1 pn,j ≥ 0

−∑i−1

j=1 pn,j otherwise.(3)

The iteration loop ends, if every pair of contactpoints has reached its corresponding collisionvelocity.

The friction that occurs if two bodies collidedepends on the collision impulse in normal di-rection. Because of this, friction impulses arecomputed in the same iteration loop as the col-lision impulses. The computation of static anddynamic friction is based on the friction law ofCoulomb. Dynamic friction occurs, if the rela-tive tangential velocity urel,t = urel−urel,n be-tween two colliding bodies at the contact pointis not zero. To simulate dynamic friction an im-pulse is computed that acts in the opposite di-rection of the tangent t = urel,t/|urel,t|. Thefriction impulse of a pair of contact points in thei-th iteration is computed by

pt,i = −µd|p′n,i|t (4)

where µd is the coefficient of dynamic friction.Before this impulse is applied to the contactpoints, it must be ensured that it does not turnthe relative tangential velocity urel,t in the oppo-site direction because friction impulses are onlyallowed to decelerate the bodies. The maximalallowed friction impulse is determined by

pt,max = − 1tTKt

urel,t. (5)

This impulse eliminates the relative tangentialvelocity completely. If the impulse pt,max istaken into account, the resulting impulse for dy-namic friction is given by

p′t,i =

{pt,i if pt,max · t < pt,i · tpt,max otherwise.

In the case that the impulse pt,max is applied,the relative tangential velocity vanishes andstatic friction may occur.

Let µs be the coefficient of static friction. If inthe i-th iteration the relative tangential velocityurel,t of a pair of contact points is zero and thecondition

|pt| ≤ µs|pn| (6)

Page 5: Constraint-based collision and contact handling using impulses

is satisfied for the sum of the tangential impulsespt =

∑ij=1 p′

t,j and the sum of the normal im-pulses pn =

∑ij=1 p′

n,j , static friction occursbetween the colliding bodies. The sum of fric-tion impulses pt is exactly the impulse that haseliminated the relative tangential velocity of thetwo colliding bodies at the contact point. Aslong as condition 6 is satisfied, the correspond-ing pair of contact points is marked to have staticfriction. The friction impulses computed in theiteration process for such a marked contact musteliminate the relative tangential velocity. Animpulse computed with equation 5 eliminatesurel,t and is therefore exactly the impulse thatmust be applied to simulate static friction. Inthe case that a pair of contact points is markedto have static friction but friction is not strongenough to maintain sticking, the bodies start toslide at this position. This happens, if condi-tion 6 is not satisfied anymore. Then the corre-sponding mark is removed and in the followingiteration steps impulses for dynamic friction areapplied. To guarantee that contacts where staticfriction occurs have no relative tangential veloc-ity at the end of the collision resolution, the it-eration process continues until this condition issatisfied.

3.2 Contact handling

After the collisions are resolved, all pairs of con-tact points are tested, if they satisfy the criterionfor resting contacts. The contact handling workssimilar to the resolution of collisions. The onlydifference is that in the case of a resting con-tact the bodies remain in contact for a wholesimulation step. Hence an impulse in normaldirection has to be computed that prevents in-terpenetration during the whole step in order tosatisfy the non-penetration constraint. Let usassume that at the time t0 all collisions are re-solved and for one pair of contact points a andb the criterion for a resting contact is satisfied.If the simulation would continue without regard-ing the non-penetration constraint, in general therigid bodies would interpenetrate due to the ex-ternal forces acting on the bodies as shown infigure 2. The distance of the contact points af-ter a simulation step of size h has to be deter-mined. Let rac = a − c1 and rbc = b − c2 bethe vectors from the centres of mass of the col-

Figure 2: Interpenetration of two bodies

liding rigid bodies to the corresponding contactpoints at the time of contact t0. The directionsthe vectors will have after a simulation step ofsize h can be computed by numerically integrat-ing the following differential equation:

r = ω × r. (7)

The fourth order Runge-Kutta method is used todo the numerical integration. Since gravity is theonly external force, the position of the centre ofmass c of a rigid body after a simulation step isdetermined by:

c(t0 + h) = c(t0) + v(t0) h +12

g h2.

If the resulting vectors are added to the new cen-tres of mass, the distance of the contact pointsafter the simulation step can be computed:

a(t0 + h) = rac(t0 + h) + c1(t0 + h)b(t0 + h) = rbc(t0 + h) + c2(t0 + h)

d = a(t0 + h)− b(t0 + h).

By numerically integrating differential equation7, the new direction of the contact normal is de-termined. The distance and the new contact nor-mal n(t0 + h) can be used to compute the pene-tration depth after the simulation step:

dn(t0 + h) = −d · n(t0 + h).

The impulse that eliminates exactly this pen-etration depth within one simulation step canbe determined by solving a non-linear equation[15]. In the presented method a simplificationwas used. An impulse is determined that causesa change of the relative velocity of the contactpoints in normal direction by dn(t0 + h)/h:

pn =1

nTKn· 1h

dn(t0 + h) · n. (8)

Page 6: Constraint-based collision and contact handling using impulses

This impulse must be applied at time t0. Since ingeneral the contact points have no linear motion,the resulting impulse will possibly not resolvethe contact directly but it is a good approxima-tion. The contact can be completely resolved bycomputing impulses with equation 8 in an iter-ative loop until dn(t0 + h) is zero within a tol-erance. In practice the time step size h is nor-mally at most 0.04 s (25 frames per second). Inseveral tests with h = 0.04 s the desired im-pulse could always be computed in one or twoiteration steps even when a small tolerance of10−6 m was used. The advantage of the usedsimplification is that the equation for the re-quired impulse is linear and can be solved easily.In the case that multiple resting contacts occur atthe same time in the system, the iterative com-putation of the impulses solves emerging depen-dencies between the contacts. In this iterativeprocess it must be guaranteed that rigid bodiesin contact do not stick together due to the com-puted impulses. Hence condition 2 must be sat-isfied for the impulses pn,i that are determinedby using equation 8. Analogous to the resolu-tion of collisions, an impulse p′

n,i computed byequation 3 is applied instead of pn,i to satisfythe condition in every iteration step.

If a stack of bodies lies on the floor, the bodyat the top pushes all other bodies in the floor andmany iterations are needed to handle all the con-tacts. Eran Guendelman et al. proposed an algo-rithm in [14] called shock propagation to reducethe number of iterations needed for such situa-tions. A contact graph is used to describe thedependencies between the contacts in a systemof rigid bodies. Every body is represented by anode in the graph. Static bodies are marked asroot nodes. For every contact between two bod-ies the corresponding nodes are connected byan edge. After a given number of iterations theshock propagation starts with the bodies whosecorresponding nodes are connected to the rootnodes. All contacts in this level of the contactgraph are handled. Then the bodies of this levelare assigned infinite mass. In the same way theshock propagation method traverses the contactgraph level by level. When the traversal ends,all contacts are resolved and the simulation cancontinue. In this way the contact handling ofsystems with stacks is more efficient.

The determination of impulses to simulate dy-

namic friction works exactly in the same way asdescribed for the resolution of collisions. If therelative tangential velocity of a pair of contactpoints is zero and condition 6 is satisfied, thenstatic friction occurs. The distance the contactpoints have after a simulation step of size h isgiven by

dt(t0 + h) = −d− dn(t0 + h)n(t0 + h).

In the case that dt(t0 + h) has zero length, noimpulse has to be applied in tangential direction.Otherwise the tangent t can be determined bynormalising the vector dt(t0 + h). The frictionimpulse that eliminates the distance of the con-tact points in tangential direction is determinedby

pt =1

tTKt· 1hdt(t0 + h).

With this impulse static friction can be simu-lated. It assures that the contact points are still atthe same position after the simulation step. Theiteration process ends, if interpenetration is pre-vented for all contacts and the distance in tan-gential direction dt(t0 + h) after the simulationstep is zero for all contacts where static frictionoccurs.

4 Results

The presented method for collision and contacthandling was implemented in C++. Differentmodels have been simulated to test the method.First of all, blocks with different coefficients offriction were dropped on an inclined plane. Theblocks with a higher coefficient stopped theirmovement due to static friction and were ableto hold their positions until the end of the sim-ulation without any erroneous sliding. The dis-tances the blocks needed for stopping in the caseof static friction have been compared to analyti-cally computed stopping distances to verify thatthe simulation delivers correct results.

To measure the performance of the collisionand contact handling a model with 1000 cubeswas created. The cubes fall through a funnel inorder to cause many collisions and contacts (seefigure 3). The performance tests were run on aPC with a 3.4 GHz Intel Pentium 4 processor.The cubes had a side length of 1 m. The resti-tution coefficient was set to e = 0.48 and the

Page 7: Constraint-based collision and contact handling using impulses

Figure 3: 1000 cubes falling through a funnel.

coefficients of static and dynamic friction wereµs = µd = 0.1. Resting contacts were re-solved until they had at most a penetration depthof 10−4 m. 6000 simulation steps were per-formed with a time step size of h = 0.001 s.Shock propagation was not used in this simula-tion in order to produce very accurate results.The results of the performance tests are pre-sented in figures 4(a) and 4(b). During the sim-ulation the rigid bodies had 41 collisions and426 resting contacts per time step on average.The simulation method needed 3.09 ms on av-erage for the resolution of all collisions. Theaverage time needed for contact handling was6.30 ms. Since the time step size and the maxi-mal allowed penetration depth were very small,accurate results could be achieved. The simu-lation of 1000 cubes with friction was less thanten times slower than real-time. This is a goodresult for an accurate simulation. If only plau-sible results are required, the parameters can bechanged and the simulation runs much faster.

The next model that was simulated was atippe top (see figure 5). This is a top that spinsfirst on its spherical body and then after a whileit turns around and spins on its stem. The tippetop turns around due to the friction between thetop and the plane on which it spins. The sim-ulation of this model is not trivial [16]. It is agood example for showing the capabilities of thepresented method concerning frictional effects.The model was simulated with different coeffi-cients of friction. The tippe top always turnedaround without any problems. In simulationswith a small friction coefficient it spun longer onits spherical body before it turned around due to

0

0.01

0.02

0.03

0.04

0.05

0.06

0 100 200 300 400 500 600 700

time

[s]

number of collisions

(a)

0

0.005

0.01

0.015

0.02

0.025

0.03

0.035

0.04

0 200 400 600 800 1000 1200 1400 1600

time

[s]

number of contacts

(b)

Figure 4: Computation times for collision andcontact handling

the lower friction.

For the last simulation the dynamic simula-tion method of Bender et al. [17] was imple-mented to simulate joints by iteratively comput-ing impulses. Since the computation of the jointand the contact impulses both work in an iter-ative loop, the iterative processes can be easilycombined. In this way the collisions and con-tacts for a system with articulated rigid bodiescan be resolved. The office toy that is shownin figure 6 was simulated to test if the collisionimpulses are propagated correctly through theballs. Every ball had a restitution coefficient ofe = 1.0. When the two balls on the left hit therest of the balls, they stopped and the two ballson the right bounced off. After the collision theballs on the right had the same velocity as theballs on the left had before the collision. The en-ergy of the system was measured during the sim-ulation to verify that it is conserved. The resultsshowed that the energy was constant except fora small numerical error during the whole simu-

Page 8: Constraint-based collision and contact handling using impulses

Figure 5: Tippe top

Figure 6: Office toy

lation.

5 Conclusion

A method for collision and contact handlingwith friction was presented. This method isbased on a constrained-based approach and isable to handle collisions and resting contacts be-tween rigid bodies. The method works by iter-atively computing impulses. The equations todetermine these impulses are simple and no nu-merical integration has to be done to computethe resulting velocities. Therefore this method iseasy to implement. The results have shown thatthe method is also very fast and even complexfrictional effects can be simulated. Contacts canbe simulated even faster, if the shock propaga-tion algorithm is used. The presented methodcan handle multiple contact points between twocolliding bodies at the same time. Hence no er-roneous vibratory motion occurs and very accu-

rate results can be achieved. Finally, the methodwas successfully integrated in a dynamic simu-lation system for articulated rigid bodies.

References

[1] Ken Shoemake. Animating rotation withquaternion curves. In SIGGRAPH ’85:Proceedings of the 12th annual confer-ence on Computer graphics and inter-active techniques, pages 245–254. ACMPress, 1985.

[2] Nick Gould and Philippe Toint. Aquadratic programming bibliography,2001.

[3] Richard W. Cottle, Jong-Shi Pang, andRichard E. Stone. The linear complemen-tarity problem. Academic Press, 1992.

[4] Per Lotstedt. Numerical simulation oftime-dependent contact and friction prob-lems in rigid body mechanics. 5(2):370–393, June 1984.

[5] David Baraff. Analytical methods for dy-namic simulation of non-penetrating rigidbodies. Computer Graphics, 23(3):223–232, 1989.

[6] Victor J. Milenkovic and Harald Schmidl.Optimization-based animation. In SIG-GRAPH ’01: Proceedings of the 28thannual conference on Computer graphicsand interactive techniques, pages 37–46,New York, NY, USA, 2001. ACM Press.

[7] Harald Schmidl and Victor J. Milenkovic.A fast impulsive contact suite for rigidbody simulation. IEEE Transactionson Visualization and Computer Graphics,10(2):189–197, 2004.

[8] Victor J. Milenkovic. Position-basedphysics: simulating the motion of manyhighly interacting spheres and polyhe-dra. In SIGGRAPH ’96: Proceedings ofthe 23rd annual conference on Computergraphics and interactive techniques, pages129–136, New York, NY, USA, 1996.ACM Press.

Page 9: Constraint-based collision and contact handling using impulses

[9] Danny M. Kaufman, Timothy Edmunds,and Dinesh K. Pai. Fast frictional dynam-ics for rigid bodies. ACM Trans. Graph.,24(3):946–956, 2005.

[10] David Baraff. Fast contact force compu-tation for nonpenetrating rigid bodies. InSIGGRAPH ’94: Proceedings of the 21stannual conference on Computer graphicsand interactive techniques, pages 23–34,New York, NY, USA, 1994. ACM Press.

[11] Brian Mirtich and John Canny. Impulse-based dynamic simulation. In WAFR: Pro-ceedings of the workshop on Algorithmicfoundations of robotics, pages 407–418,Natick, MA, USA, 1994. A. K. Peters, Ltd.

[12] Brian Mirtich and John Canny. Impulse-based simulation of rigid bodies. In SI3D’95: Proceedings of the 1995 symposiumon Interactive 3D graphics, pages 181–ff.,New York, NY, USA, 1995. ACM Press.

[13] Brian Vincent Mirtich. Impulse-baseddynamic simulation of rigid body sys-tems. PhD thesis, University of California,Berkeley, 1996.

[14] Eran Guendelman, Robert Bridson, andRonald Fedkiw. Nonconvex rigid bod-ies with stacking. ACM Transactions onGraphics, 22(3):871–878, July 2003.

[15] Rachel Weinstein, Joseph Teran, and RonFedkiw. Dynamic simulation of articu-lated rigid bodies with contact and colli-sion. In IEEE Transactions on Visualiza-tion and Computer Graphics, volume 12,pages 365–374, 2006.

[16] Jorg Sauer and Elmar Schomer. Aconstraint-based approach to rigid bodydynamics for virtual reality applications.In VRST ’98: Proceedings of the ACMsymposium on Virtual reality software andtechnology, pages 153–162, New York,NY, USA, 1998. ACM Press.

[17] Jan Bender, Dieter Finkenzeller, and Al-fred Schmitt. An impulse-based dynamicsimulation system for VR applications.In Proceedings of Virtual Concept 2005,Biarritz, France, 2005. Springer.