Multi-Body Collisions: Solving Complex Interactions

  • Thread starter Thread starter rorix_bw
  • Start date Start date
  • Tags Tags
    Collisions
AI Thread Summary
The discussion centers on the complexities of handling multi-body collisions in game physics. The original poster initially attempted to resolve collisions by breaking them into pairs but struggled with simultaneous impacts. It was clarified that for three objects colliding, one can sum their vectors to treat them as a single entity, but this approach lacks a definitive analytic solution due to the complexities involved. The conversation highlights that many games simplify these interactions by avoiding true simultaneous collisions, instead opting for sequential processing to maintain realism. Ultimately, achieving a balance between realistic physics and computational feasibility remains a significant challenge in game development.
rorix_bw
Messages
145
Reaction score
0
Looking at some old code I wrote for a game.

It has objects that collide, and rebound from each other. Where two collide, or one collided with a boundary, I knew how to work out the new trajectories and speeds.

In the case of multiple body collisions I had no clue. I broke them down randomly into pairs of 2 and just kept resolving until everything was moving again [EDIT: and nothing interpenetrated] :-)

How you actually do it for multi-body systems?
 
Physics news on Phys.org
You sum them.

If three objects collide simultaneously, you can add the vectors of two of them, and treat the result as a single object, involved in single collision. Then repeat the same process for the other two.

I just did a google on this and there seems to be a lot more about it on game developer forums.
 
deleted post, sec :) will edit.

krd said:
If three objects collide simultaneously, you can add the vectors of two of them, and treat the result as a single object, involved in single collision. Then repeat the same process for the other two.

EDIT: No, i still don't understand it.

Each = is 1 unit of velcoity. A and C contact B from opposite sides while B is staitonary.

A---->B<----C

Now doing (A+B)

A----> + B = <--A B-->

We treat that (A+B) as a single object with a combined velcoity ... which is zero as they cancel.

We collide C with it, we get this final result for C

C-->

And why is B moving?
 
Last edited:
With A and C striking B with equal and opposite momenta you can see they should rebound leaving B stationary.

In your case you ended up with B moving because you started out colliding A and B ... which, if C wasn't there, would have ended up moving to the right -->.
(I see your model has them with zero net momentum after the collision - which is broadly incorrect. You haven't conserved momentum. I'd have expected A to come to rest in a simple model.)

Anyway - the next step would intuitively have B collide with C ... following your rules, then B and C will now be moving in opposite directions. I think krd was expecting you to treat A+B as a single system in the second collision somehow.

However, the calculation will turn out differently depending on which pair you compute first. There is no analytic solution: google for "three body problem".

We usually do it numerically, or make some sort of approximation (or series of approximations).

In computer games you can get around it by deciding that you cannot get three objects colliding at the same time ... two will always hit before the third one does. There are lots of different approaches and, as krd observed, it is a big topic.
 
sacrasm mode on:

What kind of crap is "no analytic solution"? :-) From my notes I see that I spent ages puzzling over it in the dark days when you couldn't google anythng. I was expecting it be all done and dusted now, with physics games everywhere, but now I see that they ALL CHEAT!

Time to lock myself in away in seclusion until either I break the problem or it does me in! Nobel or funeral bell!

sarcasm mode off:

Maybe something in this post is not quite true. I'll have a look at ways of cheating it first. Thanks Simon.

edit: So does mean I can sue anyone selling "realistic billiards game"? :-)
 
Last edited:
but now I see that they ALL CHEAT!
That's what Charles Fort said :)

eg. the Solar System is a many-body system ... we solve it approximately and then work out the small effects using a perturbation method until what we get is close enough to what we measure to make good predictions. It works because of the scales involved - Jupiter does affect the Earth but the Sun is a much bigger influence.

Unfortunately "realistic" is not the same as "accurate model of reality". It just has to be good enough to fool you. Besides, I don't think you'd get much per person in the inevitable class action.

I've noticed there are situations in the "realistic" snooker and pool games where the balls jiggle around a lot more in small collisions that I experience IRL so I suspect some ordering of the interactions is happening.

It's hard to imagine a scale where you'd get two simultaneous collisions in real life though ... so, for a sufficiently short time step, sequencing the collisions probably makes sense.
 
Hi there, im studying nanoscience at the university in Basel. Today I looked at the topic of intertial and non-inertial reference frames and the existence of fictitious forces. I understand that you call forces real in physics if they appear in interplay. Meaning that a force is real when there is the "actio" partner to the "reactio" partner. If this condition is not satisfied the force is not real. I also understand that if you specifically look at non-inertial reference frames you can...
This has been discussed many times on PF, and will likely come up again, so the video might come handy. Previous threads: https://www.physicsforums.com/threads/is-a-treadmill-incline-just-a-marketing-gimmick.937725/ https://www.physicsforums.com/threads/work-done-running-on-an-inclined-treadmill.927825/ https://www.physicsforums.com/threads/how-do-we-calculate-the-energy-we-used-to-do-something.1052162/
Back
Top