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.
I look forward to get a MATLAB license after using the R2015a trial for a week. Scalar and vector functions, gradient fields, and level curves are very easy to be evaluated in my experience. Example:
I’ve been experiencing frame rate drops when rendering different meshes using my DirectX 11.0 based framework to debug physics and create testbeds. My GPU is a (very-old but still working) NVIDIA 8400 GS 512 MiB of VRAM, so I’ve noted that the problem was brute-force setting a bunch of render states before issuing a draw call.
You can read here how to compute the mouse constraint Jacobian, which I think is the simplest constraint along with a distance constraint. It can be helpfull when you’re selecting geometries in the scene using the mouse world space position (as a joint anchor point), since there is lack of controlability by directly applying forces at a particular point of a rigid body shape.
Errata: There is a minus sign before the stabilization term. It should be:
Lambda = (J * M * J^T)-1 * (-J * V – Beta / TimeStep * C)
Note: You can bound excessive impulses to avoid excessive velocity changes.
Thanks to Dirk Gregorius of Valve for pointing those things out via e-mail.
I gave a simplistic talk last week at university for a couple of math and engineering students about vectors and points. You can download the slides translated to the English language here.