I’ve added two joint types to Bounce Lite. Ball-in-socket, and revolute with angle limits. Bounce Lite is available at its repository: here. There is a video below showing how five revolute joints can be used to simulate a small ragdoll.
As it can be seen on the video, as the iteration count increases the human legs keep from falling into the ground after spending some time planning on it. The sequential impulse solver convergence is augmented when the density of the body parts is balanced or as the solver iteration count increases.
Angle limits were added to avoid a leg and an arm from rotating more than 45 degrees. This, however, isn’t a productive solution because most of the body joints of an human are best approximated by spherical joints and conical limits. (Therefore, I look forward to add spherical joints and conical limits in Bounce.)
Here is another video that shows a “mouse joint” which can be used, for example, along with ray casting to pick body shapes:
If you haven’t read my post on how to derive the Jacobian of the constraint above then you can find it here; it’s basically a sphere constraint assuming the mouse point as a point with infinite mass, and is actually a good exercise to understand the basics of linear equality constraints.
In addition to the previous changes, I’ve updated all Bounce Lite source code as last week I changed my old wordpress blog name (irlanengine to irlans, the “s” comes from physics) consequently invalidating the old source code zlib licence headers.
You have reached the end of this post. Here, I showed how I would simulate a small ragdoll system using Bounce in the abscence of spherical joints. I showed as well what a “mouse constraint” is. That’s all.