multibody-lab Grübler's equation — counting the DOF of a mechanism
L J1 J2 M = 3(L−1) − 2J1 − J2 = 1

How many ways can this thing move?

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.

M = 3(L−1) − 2J1 − J2
01

What it's for

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.

02

The planar formula

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).

SymbolMeaning
Llinks, including the fixed frame/ground
J11-DOF-remaining ("full") joints — pin, slider
J22-DOF-remaining ("half") joints — cam, roller
Mindependent inputs needed to fix the configuration
L = 4 J1 = 4 J2 = 0 M = 3(4−1) − 2(4) − 0 = 1
03

Watch it: the four-bar linkage

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.

L = 4 J1 = 4 J2 = 0 M = 1
04

Same count, different shape: slider-crank

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.

L = 4 J1 = 4 (3 pin + 1 slider) J2 = 0 M = 1
05

Try it — planar mobility calculator

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:

06

Going 3D: the general (Kutzbach) form

M = 6(L−1) − Σ(6 − fi)

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.

Where it breaks: both formulas assume every joint constraint is independent. Special geometry can make constraints redundant, so the real mechanism moves even when the formula says it's locked. The textbook case is Bennett's linkage — four links, four revolute joints in space:
M = 6(4−1) − 5(4) = 18 − 20 = −2
predicting a rigid structure. Built with Bennett's specific link-length and twist-angle ratios, it's actually a 1-DOF mechanism. The formula is a fast necessary check, not a proof.
Jointf6−f
Revolute / prismatic15
Cylindrical / universal24
Spherical / planar33

a free rigid body in space — 6 DOF