Bodies get stuck! in ragdoll demo

Topics: Developer Forum, User Forum
Oct 27, 2010 at 3:00 PM

Hi everyone,

We are involved in a project using the Farseer Physics Engine (v. 2.1.3) . Given our progress status when the version 3 was released, we decided to carry on our developement under the previous version. Everything was right, but then we noticed some issues with the behaviour of our "complex" structures (i.e. the set of bodies, geoms/shapes, and joints that build our complex structure). The observation was that some bodies got stuck each other, leading to an unexpected behaviour to users.

Since our complex structures are similar to the ragdoll, we tested the samples regarding ragdolls (Demo 9 in version 2, Demo 7 in version 3). We observed the same problem in both versions as shown in figures below. This is the result of dragging the ragdoll across the screen.

Because we are inexperienced in physics engines, we don't know what is going on. We would be very grateful if someone could give us some tips or advices on that issue. At the moment we don't know if there is some technique or feature available to avoid the problem..., or if the ragdoll could be modelled in a different way...


Fig 2.1. Ragdoll in Farseer 2 at the beginning of run, before any action have been taken (http://tinyurl.com/2uectyd)
Fig 2.2 Ragdoll in Farseer 2, when some bodies have already got stuck (http://tinyurl.com/2vnnasg)
Fig 3.1. Ragdoll in Farseer 3 at the beginning of run, before any action have been taken (http://tinyurl.com/3ym9snf)
Fig 3.2 and 3.3. Ragdoll in Farseer 3, when some bodies have already got stuck (http://tinyurl.com/32sl9sa, http://tinyurl.com/3xtoefg)

 

Thank you in advance for your comments.

Regards
Alex

Coordinator
Oct 27, 2010 at 3:06 PM

When moving the ragdoll in certain ways, the limbs can reach high speeds and tunneling can occur. In 3.0 you can enable CCD on the body limbs to prevent inter-body penetrations. In 2.0 we don't have CCD and you can only minimize the tunneling problem by updating the physics engine more often and otherwise tweak the engine using the iterations property.