Game Development Reference
Stacked objects act springy and objects get squashed. The solver iteration
count might be too low. We can also try adding warm starting or a shock-
Stacks are oscillating and tend to never come to rest. Toomuchwarm
starting is being used.
Stacked objects slide around on each other, eventually falling over. There
is a lack of friction-drift compensation.
An object penetrate freely and then suddenly shoots out. This can be an
incorrect bounding box or a contact-generation problem.
Objects are getting pushed through walls by other objects. The contact
stream might not favor static contacts. Rearrange the contact stream so that
static contacts are at the end of the stream.
Small, fast objects pass through walls. Enable continuous collision detec-
tion or early engage. If the problem still does not go away, it can be due to
rotation. Make the object thicker or increase inertia tensor.
Falling object stop before hitting the floor and then fall down the last bit.
This is cased by early-engage contact generation. You can add some resti-
tution to hide the problem or implement more sophisticated continuous col-
Jointed structures drift apart, causing visual separation. This cannot en-
tirely be avoided due to the nature of iterative solvers and linearization.
Use a direct solver to minimize the problem. You can also try a visual joint
displacement, if applicable.
Ragdolls are shaking and never come to rest. There can be conflicting joint
limits, too many inter-bone collisions, or joint limits that are too hard.
An animated object does not affect the environment properly. The animated
object might have incorrect velocity, or the mass or inertia is not infinite.