
Collision response

In the context of classical mechanics simulations and physics engines employed within video games, collision response deals with models and algorithms for simulating the changes in the motion of two solid bodies following collision and other forms of contact.
Rigid body contact.
Two rigid bodies in unconstrained motion, potentially under the action of forces, may be modelled by solving their equations of motion using numerical integration techniques. On collision, the kinetic properties of two such bodies seem to undergo an instantaneous change, typically resulting in the bodies rebounding away from each other, sliding, or settling into relative static contact, depending on the elasticity of the materials and the configuration of the collision.
Contact forces.
The origin of the rebound phenomenon, or "reaction", may be traced to the behaviour of real bodies that, unlike their perfectly rigid idealised counterparts, do undergo minor compression on collision, followed by expansion, prior to separation. The compression phase converts the kinetic energy of the bodies into potential energy and to an extent, heat. The expansion phase converts the potential energy back to kinetic energy.
During the compression and expansion phases of two colliding bodies, each body generates reactive forces on the other at the points of contact, such that the sum reaction forces of one body are equal in magnitude but opposite in direction to the forces of the other, as per the Newtonian principle of action and reaction. If the effects of friction are ignored, a collision is seen as affecting only the component of the velocities that are directed along the contact normal and as leaving the tangential components unaffected
Reaction.
The degree of relative kinetic energy retained after a collision, termed the "restitution", is dependent on the elasticity of the bodies‟ materials. The coefficient of restitution between two given materials is modeled as the ratio formula_1 of the relative post-collision speed of a point of contact along the contact normal, with respect to the relative pre-collision speed of the same point along the same normal. These coefficients are typically determined empirically for different material pairs, such as wood against concrete or rubber against wood. Values for formula_2 close to zero indicate inelastic collisions such as a piece of soft clay hitting the floor, whereas values close to one represent highly elastic collisions, such as a rubber ball bouncing off a wall. The kinetic energy loss is relative to one body with respect to the other. Thus the total momentum of both bodies with respect to some common reference is unchanged after the collision, in line with the principle of "conservation of momentum".
Friction.
Another important contact phenomenon is surface-to-surface friction, a force that impedes the relative motion of two surfaces in contact, or that of a body in a fluid. In this section we discuss surface-to-surface friction of two bodies in relative static contact or sliding contact. In the real world, friction is due to the imperfect microstructure of surfaces whose protrusions interlock into each other, generating reactive forces tangential to the surfaces.
To overcome the friction between two bodies in static contact, the surfaces must somehow lift away from each other. Once in motion, the degree of surface affinity is reduced and hence bodies in sliding motion tend to offer lesser resistance to motion. These two categories of friction are respectively termed "static friction" and "dynamic friction".
Applied force.
It is a Force which is applied to an object by another object or by a person. The
direction of the applied force depends on how the force is applied.
Normal force.
It is the support force exerted upon an object which is in contact with another
stable object. Normal force is sometimes referred to as the pressing force since its
action presses the surface together. Normal force is always directed towards the
object and acts perpendicularly with the applied force.
Frictional force.
It is the force exerted by a surface as an object moves across it or makes an effort
to move across it. The friction force opposes the motion of the object. Friction results
when two surfaces are pressed together closely, causing attractive intermolecular forces
between the molecules of the two different surface. As such, friction depends upon
the nature of the two surfaces and upon the degree to which they are pressed together.
Friction always acts parallel to the surface in contact and opposite the direction of
motion. The friction force can be calculated using the equation.
Impulse-based contact model.
A force formula_3, dependent on time formula_4, acting on a body of assumed constant mass formula_5 for a time interval formula_6 generates a change in the body’s momentum formula_7, where formula_8 is the resulting change in velocity. The change in momentum, termed an impulse and denoted by formula_9 is thus computed as
formula_10
For fixed impulse formula_11, the equation suggests that formula_12, that is, a smaller time interval must be compensated by a stronger reaction force to achieve the same impulse. When modelling a collision between idealized rigid bodies, it is impractical to simulate the compression and expansion phases of the body geometry over the collision time interval. However, by assuming that a force formula_13 can be found which is equal to formula_14 everywhere except at formula_15, and such that the limit
formula_16
exists and is equal to formula_11, the notion of "instantaneous impulses" may be introduced to simulate an instantaneous change in velocity after a collision.
Impulse-based reaction model.
The effect of the reaction force formula_18 over the interval of collision formula_19 may hence be represented by an instantaneous reaction impulse formula_20, computed as
formula_21
By deduction from the principle of action and reaction, if the collision impulse applied by the first body on the second body at a contact point formula_22 is formula_23, the counter impulse applied by the second body on the first is formula_24. The decomposition formula_25 into the impulse magnitude formula_26 and direction along the contact normal formula_27 and its negation formula_28 allows for the derivation of a formula to compute the change in linear and angular velocities of the bodies resulting from the collision impulses. In the subsequent formulas, formula_27 is always assumed to point away from body 1 and towards body 2 at the contact point.
Assuming the collision impulse magnitude formula_23 is given and using Newton's laws of motion the relation between the bodies' pre- and post- linear velocities are as follows
where, for the formula_31th body, formula_32 is the pre-collision linear velocity, formula_33 is the post-collision linear velocity.
Similarly for the angular velocities
where, for the formula_31th body, formula_35 is the angular pre-collision velocity, formula_36 is the angular post-collision velocity, formula_37 is the inertia tensor in the world frame of reference, and formula_38 is offset of the shared contact point formula_39 from the centre of mass.
The velocities formula_40 of the bodies at the point of contact may be computed in terms of the respective linear and angular velocities, using
for formula_41. The coefficient of restitution formula_2 relates the pre-collision relative velocity formula_43 of the contact point to the post-collision relative velocity formula_44 along the contact normal formula_27 as follows
Substituting equations (1a), (1b), (2a), (2b) and (3) into equation (4) and solving for the reaction impulse magnitude formula_46 yields
Computing impulse-based reaction.
Thus, the procedure for computing the post-collision linear velocities formula_47 and angular velocities formula_48 is as follows:
Impulse-based friction model.
One of the most popular models for describing friction is the Coulomb friction model. This model defines coefficients of static friction formula_71 and dynamic friction formula_72 such that formula_73. These coefficients describe the two types of friction forces in terms of the reaction forces acting on the bodies. More specifically, the static and dynamic friction force magnitudes formula_74 are computed in terms of the reaction force magnitude formula_75 as follows
The value formula_76 defines a maximum magnitude for the friction force required to counter the tangential component of any external sum force applied on a relatively static body, such that it remains static. Thus, if the external force is large enough, static friction is unable to fully counter this force, at which point the body gains velocity and becomes subject to dynamic friction of magnitude formula_77 acting against the sliding velocity.
The Coulomb friction model effectively defines a friction cone within which the tangential component of a force exerted by one body on the surface of another in static contact, is countered by an equal and opposite force such that the static configuration is maintained. Conversely, if the force falls outside the cone, static friction gives way to dynamic friction.
Given the contact normal formula_78 and relative velocity formula_79 of the contact point, a tangent vector formula_80, orthogonal to formula_27, may be defined such that
where formula_82 is the sum of all external forces on the body. The multi-case definition of formula_83 is required for robustly computing the actual friction force formula_84 for both the general and particular states of contact. Informally, the first case computes the tangent vector along the relative velocity component perpendicular to the contact normal formula_27. If this component is zero, the second case derives formula_83 in terms of the tangent component of the external force formula_82. If there is no tangential velocity or external forces, then no friction is assumed, and formula_83 may be set to the zero vector. Thus, formula_84 is computed as
Equations (6a), (6b), (7) and (8) describe the Coulomb friction model in terms of forces. By adapting the argument for instantaneous impulses, an impulse-based version of the Coulomb friction model may be derived, relating a frictional impulse formula_90, acting along the tangent formula_83, to the reaction impulse formula_92. Integrating (6a) and (6b) over the collision time interval formula_93 yields
where formula_94 is the magnitude of the reaction impulse acting along contact normal formula_27. Similarly, by assuming formula_83 constant throughout the time interval, the integration of (8) yields
Equations (5) and (10) define an impulse-based contact model that is ideal for impulse-based simulations. When using this model, care must be taken in the choice of formula_97 and formula_98 as higher values may introduce additional kinetic energy into the system.