Baumgarte 'Jet Propulsion'

Please don't post Bullet support questions here, use the above forums instead.
Post Reply
oztune
Posts: 24
Joined: Tue Aug 21, 2007 12:13 am

Baumgarte 'Jet Propulsion'

Post by oztune »

Hello,

After a while trying to figure out the ins and outs of Erin's Box2D method, I finally started implementing it myself.
I implemented an SAT algorithm which clips edges and generates a contact manifold equivalent to box2D's (as far as i know at least, it seems to generate the same points for tested situations).

So I have everything running except for warm starting, but the main problem with my simulation is that (only sometimes) boxes seem to shoot up in the air like popcorn, or even disappear (tunneling through the walls and escaping). I noticed Erin mentioned 'Jet Propulsion' in his slide about Baumgarte.. Is this what you meant?
I'm wondering if anyone here has experienced this violent change is velocities too? I know these problems don't happen with Box2D light (which I'm working off of) so if you've had similar problems please let me know.

Here are the observations I made about this 'bug':
- It happens with and without split impulses, but more often with them
- It becomes worse as the amount of iterations go up
- It also becomes worse with higher bias factors (0.6+)
- It seems to happen when boxes come in contact with two or more other boxes

Any suggestions would be greatly appreciated.
Thanks!
Oz
Erin Catto
Posts: 316
Joined: Fri Jul 01, 2005 5:29 am
Location: Irvine
Contact:

Re: Baumgarte 'Jet Propulsion'

Post by Erin Catto »

This sounds more like a bug than a problem with Baumgarte. Baumgarte provides a low speed jet, not a rocket. If you set the Baumgarte coefficient to zero, do you still see problems. Is it related to bugs in warm starting? Are you performing impulse clamping correctly?
oztune
Posts: 24
Joined: Tue Aug 21, 2007 12:13 am

Re: Baumgarte 'Jet Propulsion'

Post by oztune »

Hey Erin,

Yea after some more tinkering it looks like when setting the bias to 0 the same things happen. the Baumgarte part just enhanced the effect I guess...
I don't use warm starting because I didn't work the feature caching part yet.

I pretty much copy/pasted the clamping part, and compared the solver code to make sure it's identical to what you wrote...

I'm looking more into my collision detection code, as it's now the most probable cause. I'll make sure to post when I find the problem in case anyone else encounters it in the future.

Thanks for the reply,
Oz
Post Reply