# Calculating impulse propagation through a rigid body after a collision

I'm working on a game. I need to work out what the impulse is at different points on a body as a result of a collision.

For example, in the following diagram, if there is a collision that results in an impulse being applied to the body at A, what will the resulting impulse be at B? I know the mass, center of mass and dimensions of the body.

• Have a look at the wiki article on Collision response along with this paper – Crazy Buddy Jan 26 '13 at 6:49
• – Seth Battin May 21 '13 at 23:22
• You also need to know the moment of inertia matrix. – Pasha May 22 '13 at 0:28

An impulse is an instantaneous change in velocity. You can calculate the velocity of a point before and after an impulse has been applied to the body. The velocity of a point is:

V = Vcm + omega cross r


V is the velocity of a point on a rigid body. Vcm is velocity at the center of mass. Omega would be angular velocity, and r is the vector from center of mass to a particular point on the body.

A simple way to perform your needed operation is to record the velocity before and after an impulse is applied and look at the difference.

• omega cross r - I don't understand. How can you get the cross product of a scalar and a vector? – Tharwen Jun 10 '13 at 11:48
• @Tharwen: In three dimensions, both omega and r are (pseudo)vectors. – Marcks Thomas Jun 10 '13 at 12:52
• There is a 2D cross product analogue. See Box2D for implementation. – RandyGaul Jun 10 '13 at 18:21

A rigid body is generally defined as one which has a fixed shape. This means that its center of mass moves at a certain speed, and additionally the object may be rotating around its center of mass. The net impulse because of the latter term is zero (impulse is a vector field; opposite values cancel.)

Note that the impulse of a single point is zero, unless you have point masses. The impulse of an object is the volume integral of its mass multiplied by its local speed.

The simplest model retaining a physical sensibility would be to regard each collision as instantaneous, with momentum (linear and angular) conserved and energy conserved but with an inelastic loss simulated by a percentage calculated form the properties of the colliding objects.

For two objects such as hard ball bearings a loss of perhaps 0.5% to 1% is probably realistic.

This of course assumes that both objects in collision are rigid, and the very small collision time frames are not of interest.