I guess I can work around the thickness problem by changing the world dimension unit.
My application is for visualizing hurricane damage process.
I made a video showing shingles fell to the ground under gravity force. but I donot know how to paste here. It's about 4 megabytes.
And I am still working on that.
Perhaps you can upload it to YouTube?
It's best to use meters for units: 1 meter = 1 unit. Then gravity around 10.
And keep object sizes 'reasonable' above 20 centimeter (in any direction) and at most 10 meters.
Also, never make the margin totally zero or too small (setCollisionMargin/setMargin), that's destined to fail. Best to use at least 0.02 - 0.05 units. Other improvements include making the internal timesteps smaller.
The internal timestep is normally 60 hertz, and you can change this by changing the 3rd parameter of 'stepSimulation'. The second should be large enough too:
This would use an internal timestep of 240 hertz:
dynamicsWorld->stepSimulation(timeStep, 1000, 1.0 / 240.0);
It will allow at most 1000 times 240 hertz internal fixed steps to reach your 'timeStep'. Don't pass 0 as second argument.
Hope this helps,