Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

enter image description here

share|improve this question

migrated from Jan 27 '13 at 16:24

This question came from our site for active researchers, academics and students of physics.

Have a look at the wiki article on Collision response along with this paper – Crazy Buddy Jan 26 '13 at 6:49
I recommend – Seth Battin May 21 '13 at 23:22
You also need to know the moment of inertia matrix. – Pasha S 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.

share|improve this answer
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.

share|improve this answer

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.