Rigid body dynamics joints I can't seem to find any info on connected rigid bodies by a joint.  Can someone explain the basics to me?  I'm trying to do a little research to find out how feasible it would be to implement 3d ragdoll physics for my first person shooter game.  
 A: 
Disclaimer: The writeup here is from the robotics viewpoint, and not specific to game development. For gaming, it is much simpler to consider stick figures of point masses, rather than full 3D rigid body dynamics (shown below).

A rag-doll is mostly connected with ball joints, which constrain the position of one point of the rigid body and allow all three degrees of freedom. There are no easy answers, although the equations needed can be found in a college-level dynamics book.
Each complex joint is modeled as a sequence of simpler 1DOF joints, each with its own joint position (or angle), speed, and acceleration.
The basics of dealing with just systems are working out the kinematics first (how are all the individual motions of each body related to each other), applying Newton's laws to related how all the individual forces relate to each to other, and finally, using joint power relationships to solve for everything. As I mentioned, there are no easy answers.
Problem Setup
Consider the following simple (?!?) example, with two connected bodies via a hinge joint.

*

*Example - Body 1 is considered the parent body, and body 2 the child. Thus the position $\vec{r}_2$ of body 2, is a function of the position $\vec{r}_1$ of body 1 as well as the joint angle $\theta$. The hinge axis $\hat{z}$ is a unit vector described in world coordinates below.



*Position Kinematics - This is one of the more complex steps usually, but using geometry and the orientation of the bodies you describe the position of the joint $\vec{r}_A$ from the position $\vec{r}_1$  as and the 3×3 orientation (rotation) matrix $\mathbf{R}_1$ of body 1. Then the orientation of body 2 is described recursively $$ \mathbf{R}_2 = \mathbf{R}_1 \mathrm{rot}(\hat{z},\theta) \tag{1} $$ The position of body 2 is described recusively $$ \vec{r}_2 = \vec{r}_1 + \mathbf{R}_1 \text{(local to 1)} + \mathbf{R}_2 \text{(local to 2)} \tag{2} $$


*Velocity Kinematics - This is the least complex step as it involves pretty intuitive equations, that are the result of differentiating the above expressions
$$ \begin{aligned} 
\vec{\omega}_2 &= \vec{\omega}_1 + \hat{z} \dot{\theta} \\ 
\vec{v}_2 & = \vec{v}_1 + \vec{\omega}_1 \times ( \vec{r}_A - \vec{r}_1) + \vec{\omega}_2 \times (\vec{r}_2 - \vec{r}_A)
\end{aligned} \tag{3}$$ If there was any sliding along $\hat{z}$ then the velocity $\vec{v}_2$ would have some component added parallel to $\hat{z}$.


*Acceleration Kinematics - Differentiating the velocities using he chain rule yields the accelerations and this is more complex because there are a lot of terms involved.
$$ \begin{aligned} 
\vec{\alpha}_2 &= \vec{\alpha}_1 + \hat{z} \ddot{\theta} + \vec{\omega}_1 \times \hat{z} \dot{\theta} \\ 
\vec{a}_2 & = \vec{a}_1 + \vec{\alpha}_1 \times ( \vec{r}_A - \vec{r}_1) + \vec{\alpha}_2 \times (\vec{r}_2 - \vec{r}_A)  +\\ & + \vec{\omega}_1 \times ( \vec{v}_A - \vec{v}_1) + \vec{\omega}_2 \times (\vec{v}_2 - \vec{v}_A)
\end{aligned} \tag{4}$$


*Dynamics - Here is where we rely on free body diagrams to balance the forces and moments. Consider only gravity present, and the joint generating some force vector $\vec{F}$ and moment $\vec{M}_A$ which is applied in equal and opposite measure to each body. But first, we need to find the mass moment of inertia tensor (3×3 matrix) using the orientation matrices. Use $ \mathbf{I}_1 = \mathbf{R}_1 \mathbf{I}_\text{body} \mathbf{R}_1^\top $ for body 1 and $ \mathbf{I}_2 = \mathbf{R}_2 \mathbf{I}_\text{body} \mathbf{R}_2^\top $ for body 2, where $\mathbf{I}_\text{body}$ is the mass moment of inertia tensor on body riding coordinates (a constant matrix).

*

*Body 1

$$ \begin{aligned}
-\vec{F} + m_1 \vec{g} & = m_1 \vec{a}_1 \\
-\vec{M}_A - ( \vec{r}_A - \vec{r}_1) \times \vec{F} & = \mathbf{I}_1 \vec{\alpha}_1 + \vec{\omega}_1 \times \mathbf{I}_1 \vec{\omega}_1
\end{aligned} \tag{5} $$

*

*Body 2

$$ \begin{aligned}
 \vec{F} + m_2 \vec{g} & = m_2 \vec{a}_2 \\
\vec{M}_A + ( \vec{r}_A - \vec{r}_2) \times \vec{F} & = \mathbf{I}_2 \vec{\alpha}_2 + \vec{\omega}_2 \times \mathbf{I}_2 \vec{\omega}_2
\end{aligned} \tag{6} $$


*Joint Power - The last part to make the problem solvable is to impose that the joint forces and moments do not add power to the system (constraint forces only). For ragdoll simulation all joints are free to move, and thus must obey the power-in equals power-out law. For a pin joint, the above is simplified to the following
$$ \hat{z}  \cdot \vec{M}_A = 0  \tag{7}$$
Solution
We have 6 unknown motions for each body (translation & rotation) plus the motion of the joint to solve for. In addition, there are 6 unknown joint forces/moment components. This gives us a total of 6*2+1+6=19 unknowns in the problem above.
We also have 2 vector equations of kinematics, 4 vector equations of dynamics plus 1 scalar power equation. This gives us a total of 2*3+4*3+1=19 equations to solve the system, thus the system is solvable.
A: Probably too late for the OP, but for the sake of the next generations or anyone searching about something related to this topic, I'm dropping this link:
http://www.gamasutra.com/resource_guide/20030121/jacobson_01.shtml
This article actually contains everything you need to know about programming cool ragdoll physics engine. Code samples included! 
This article is actually one of the turning points in my life, will it be yours as well? :)
