Here’s a good question, why wont a stack of blocks stand? Really, try making a stack of blocks that doesn’t collapse on it’s self.
I was working with a stack of bowels being dropped on a table. I found even with a collision distance of .01 the bowels still wouldn’t set on the surface of the table. So when I set the bowels on the table with collision on, then clicked to start the calculations, the bowls dropped that last little bit, bounced, and blew my set up
To much jitter in the resolver. It might actually work any given time, but mostly it won’t. In my current project there’s a “structure”—a base, rods across that, vertical block supports at either end with a long horizontal block set across them and a ball on top of that. That *used* to be stable for at least 14 seconds of calculation and is sort of equivalent to a stack of blocks.
Now it collapses entirely in less than 3 seconds and it takes less than a second for the inevitable to be obvious. If the ball doesn’t spontaneously decide to roll in some direction the horizontal block will start to shimmy. If the horizontal block doesn’t shimmy one of the vertical support blocks will shimmy or bounce. If neither horizontal block shimmies or bounces then one of the rods will skitter out from underneath.
Bottom line is, the more objects in contact the more likely that at least one of them will start moving. You might be able to affect the probability a bit by playing with density and friction, but it is just a matter of time.
I tried a few approaches:
Accommodate: because (at least for the times I ran physics calculations) one of the balls always took off in approximately the same direction (albeit at different speeds) I moved it so that it would be in about the right spot when events reached it. This of course introduced variability into later events.
Modify: Another ball (the last one) had to remain in place for a considerable length of time. I couldn’t just place it differently and hope it was in the right spot when the time came. I did some tessellation and put a dimple exactly underneath it. This isn’t ever visible and keeps it completely in place as long as I needed it to be.
Block: In the structure I described above neither of those techniques was workable. What I ended up doing was adding some extra non-physics blocks to prevent the objects from moving until shortly before they were going to be hit. This of course required doing a calculation to find what time that was going to be. Because the calculations vary each time it is only approximate but I had ~0.25 seconds before the shimmy would become apparent and possibly even ~0.5 seconds before it would be noticeable in the animation (given view points, etc.). I went with .5 seconds and it worked out.
Note that re-running physics can introduce even greater variance in the calculations (at least in my experience). The method I worked out was to load, make previously noted alterations, save, calculate, close, load, ...