Customizing the dynamic solver in Bullet ???

winspear
Posts: 77
Joined: Thu Nov 26, 2009 6:32 pm

Customizing the dynamic solver in Bullet ???

Post by winspear »

I found that the default simulation values in Bullet give the best performance. Whenever I try to mess with fancy parameters like split impulse, erp, linear slop and damping, instability arises where blocks don't stack properly or contacts are not resolved consistently.

There is no proper documentation for the following values:

btScalar m_tau;
btScalar m_damping;
btScalar m_friction;
btScalar m_timeStep;
btScalar m_restitution;
int m_numIterations;
btScalar m_maxErrorReduction;
btScalar m_sor;
btScalar m_erp;//used as Baumgarte factor
btScalar m_erp2;//used in Split Impulse
btScalar m_globalCfm;//constraint force mixing
int m_splitImpulse;
btScalar m_splitImpulsePenetrationThreshold;
btScalar m_linearSlop;
btScalar m_warmstartingFactor;

int m_solverMode;
int m_restingContactRestitutionThreshold;
int m_minimumSolverBatchSize;

I can figure out some of them myself but some of the factors listed above are above my level of understanding.
Can anyone please explain how these values affect the simulation and how to go about setting them to customize the solver?

Thanks
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Customizing the dynamic solver in Bullet ???

Post by Erwin Coumans »