Grübler's equation (extended by Kutzbach) counts a mechanism's degrees of freedom from nothing but a parts list — before you write a single equation of motion.
Before you build a stiffness matrix or run Adams, you want one number: how many independent inputs does this linkage need before its configuration is fully determined? That number is the mobility, M — also called the degrees of freedom, DOF.
Grübler's insight (1917, generalized by Kutzbach in 1929) is that you don't need the geometry to get M — just a count of rigid bodies and how they're connected. Free-floating in a plane, every rigid body has 3 DOF (x, y, rotation). Bolt it to the ground and it loses all 3. Pin two bodies together with a revolute or prismatic joint and you remove 2 of the 3 relative DOF, leaving 1. A joint that only removes 1 DOF (a cam-follower or roller contact, leaving 2 free) is a half joint.
Ground counts as one of the links. J1 = full joints (revolute, prismatic —
remove 2 DOF each). J2 = half joints (rolling/sliding contact — remove 1 DOF
each).
| Symbol | Meaning |
|---|---|
L | links, including the fixed frame/ground |
J1 | 1-DOF-remaining ("full") joints — pin, slider |
J2 | 2-DOF-remaining ("half") joints — cam, roller |
M | independent inputs needed to fix the configuration |
4 links (including ground), 4 revolute joints, no half joints. Drag the crank or press play — notice that one input angle fixes every other link's position. That's M = 1 in action.
Swap the rocker for a block sliding in a straight channel. Still 4 links and 4 full joints (3 revolute + 1 prismatic) — Grübler doesn't care that one "joint" is a slider instead of a pin. Same M = 1. This is the mechanism inside every piston engine and reciprocating compressor.
The calculator is pinned at the top of the page — edit L, J1, J2 there any time, from any slide. Watch M flip sign: 0 is a rigid structure (a truss), negative means overconstrained (redundant members), positive means it moves with that many independent inputs.
Or load a preset — it updates the calculator at the top:
In space, a free rigid body has 6 DOF, not 3. Every joint removes 6−f
constraints, where f is however much relative motion that joint still allows.
Set every joint to revolute (f=1) and every body to a plane and this collapses back to the
planar formula — same idea, fewer dimensions per body.
| Joint | f | 6−f |
|---|---|---|
| Revolute / prismatic | 1 | 5 |
| Cylindrical / universal | 2 | 4 |
| Spherical / planar | 3 | 3 |
a free rigid body in space — 6 DOF