simulation results stability

Post Reply
robb
Posts: 3
Joined: Wed Jul 16, 2014 9:16 am

simulation results stability

Post by robb »

Hi there.

I am relatively new to Bullet and I am facing a problem that many would describe as "getting not deterministic results". However, I believe this is not the case. I don't know what the best word for describing it would be... perhaps a 'stability' problem?

This is a pretty old thread
http://bulletphysics.org/Bullet/phpBB3/ ... php?t=7889
but illustrates the situation pretty well. Erwin says there:
"Any change in the world, including adding a non-interacting objects, can cause the simulation to diverge [...] the broadphase acceleration structures will be different. This can cause a difference in the order of overlapping objects, which in turn will lead in a different constraint ordering. This will lead to different results."

I need a solution that allows for localised changes to have a minimal impact in the whole simulation. Real-time is not essential.
I set up a 'toy scene' with two sets of rigid bodies constrained to each other located apart from each other so there is no interaction. Removing one of this sets or adding the rigid bodies in a different order (first set 1, after set 2 or vice-versa but keeping the internal order).

I tried using btSimpleBroadphase as an initial step before implementing or modifying one of the provided broadphases. My assumption was that the acceleration structures could be introducing the 'problem' and by using a naive approach like btSimpleBroadphase, results would be stable since -I thought- the constraint order would be respected. However the order in which I add the RBs groups still affects the outcome.

My question/s would be... if no acceleration techniques are used during the broadphase stage. Wouldn't we be expecting stable results? and if not... what is the reason for this behaviour? Is there any way to keep stability or reduce the impact of subtle -isolated- changes in the scene by doing some 'trickery' after one of the more sophisticated broadphases are used?

thank you very much beforehand! :)
Post Reply