This project has moved. For the latest updates, please go here.

Revolute joint behaves like trampoline

Topics: Developer Forum, User Forum
Jul 24, 2013 at 3:08 AM
I have a revolute joint constructing a "see saw" type structure, and I want to drop heavy items on one side such that it catapults another object up from the other side. However, the heavy object often stretches the point of revolving. I tried with a RevoluteJoint where my base was a static body, and also with FixedRevoluteJoint where there wasn't any base and my see-saw was just anchored in space.

What's the best way to tighten this up so the joint doesn't stretch (very much), but instead the body stays locked in the central position and just rotates?
Jul 24, 2013 at 6:46 PM
For the moment, I decided to work around this by not having a fixed see-saw (revolute joint), but rather by just providing distinct, non-jointed bodies that can coincidentally fulfill the need without a joint, i.e. just balancing the long, flat board on top of another object. That way when the heavy, dropped weight knocks the board around, it looks more believable. For the purpose of my physics game, that should be good enough at this point.
Jul 25, 2013 at 10:38 PM
The engine is built on iterative algorithms that approximate the correct results. The more force involved in a simulation, the higher the error is going to be, and large masses (high densities and large polygons) will add high forces to the simulation.

The RevoluteJoint is not rigid, and can indeed move when too much force is applied. To correct for the high error, you can always tweak the iterations inside Settings.cs, or have a lower timestep (higher frequency, such as 60 FPS instead of 30 FPS).