Shock Propagation
I tried the shock propagation algorithm as described in Kenny Erleben’s dissertation. It does amazing things for stacking. I was able to easily stack 20 boxes at a 30Hz time step and 5 iterations. However, it has some bad side effects.
The problem is that stacks of boxes are too stable. You could have a stack where each box has its center of mass just inside the edge of the box below it. The centerline of the stack would make almost a 30 degree angle from the vertical. Clearly such a stack should fall, but due to shock propagation, lower boxes don’t feel the weight of higher boxes. Shock propagation only provides for downward transfer of momentum, not of static forces.
Consider a suspension bridge. The normal dynamics phase will spread out the joint error among all joints. When the shock phase is added, all the error is pushed to the middle joints, resulting in a nasty gap in the bridge.
I was curious how well the commercial engines do under similar conditions. So I fired up NovodeX. It appears that NovodeX does not use shock propagation and behaves somewhat similar to my engine. I also tried Newton and it does not use shock propagation.
Still, I recommend reading Kenny’s dissertation due to the wealth of information it contains.