What decides whether it moves
Pin two bars to two points on a bench and to each other. Nothing moves. The shape is fixed by its lengths, and changing it would mean changing a length.
Add one more bar and one more pin, making four in a closed loop, and the whole thing moves — one input gives one determinate output, and that is a machine.
The difference between those two objects is a single number called mobility, and computing it is the first thing anybody does with a mechanism.
Counting
The count is a subtraction, and both sides of it are easy.
A rigid body in a plane has three degrees of freedom: it can move in two directions and rotate. So n bodies, before anything is joined, have 3n between them. Bolting one of them to the frame removes three, leaving 3(n − 1).
Then every joint takes some away. A pin joint leaves one body free to rotate relative to the other and removes the two translations, so it costs two. A sliding joint leaves one translation and removes a rotation and a translation, so it also costs two. Joints that leave two freedoms — a pin rolling in a slot, a gear tooth pressing on another — cost one.
Putting that together gives Grübler’s criterion:
with n the number of links including the frame, j₁ the number of one-freedom joints and j₂ the number of two-freedom ones.
Apply it to the two objects above. The triangulated pair is three links and three pins: 3(3 − 1) − 2(3) = 0. The four-bar is four links and four pins: 3(4 − 1) − 2(4) = 1.
That is the whole of it, and it is why bridges are triangulated and machines are not.
What the count is a count of
Mobility is how many inputs the mechanism needs before its configuration is determined.
Mobility 0 means it needs none, because there is only one configuration — it is a structure. Mobility 1 means it needs one: turn the crank and everything else follows, which is the case almost every mechanism in engineering is designed to be. Mobility 2 needs two independent inputs, which is what a robot arm with two joints has, and what a mechanism accidentally has when a designer has miscounted.
Negative mobility means the count says the thing is over-constrained: there are more constraints than freedoms. Sometimes that is exactly what it means and the assembly will not go together. Sometimes it means something much more interesting, which is the subject of another essay.
Counting is not measuring
Grübler’s criterion is a statement about topology. It counts links and it counts joints, and it never asks how long anything is.
That is its strength — the answer for a four-bar is 1 whatever the four lengths are, which is why the classification of mechanisms can be done on a sketch — and it is exactly where it fails, because there are arrangements whose constraints are redundant because of their dimensions, and a formula that cannot see dimensions cannot see the redundancy.
So this site computes mobility a second way, from the geometry, and the second way is a by-product of solving the mechanism rather than drawing it.
The solve works by writing every constraint as an equation that must equal zero, and taking the derivative of each equation with respect to each free coordinate. That table of derivatives is the constraint Jacobian. Its rank — the number of genuinely independent rows — is how many freedoms the constraints actually remove, and the mobility is the number of free coordinates minus that rank.
Nothing in that calculation knows what a link is or what a joint is. It is arithmetic on a matrix of numbers that came out of the geometry.
Why bother having two
Because agreement between two independent calculations is the only evidence either one is right, and because when they disagree the disagreement is informative rather than embarrassing.
This is a habit rather than a one-off. Elsewhere on the site, Grashof’s condition predicts which links can turn fully and a full sweep measures it; a gear’s velocity ratio is derived from the base radii and tested on the drawn flank; an epicyclic ratio is computed by Willis’s equation and by the tabular method. In each case one route knows the formula and the other knows the object.
For mobility the pairing is unusually clean, because the two routes have genuinely disjoint inputs: one sees only the topology, the other only the dimensions. There is no way for a mistake in one to propagate into the other.
What a joint costs, and why the count is fragile
The arithmetic is easy and the inputs to it are not, which is the practical difficulty with Grübler’s criterion and the reason it is got wrong so often.
Counting links. A rigid coupler carrying three pins is one link, not two. Written as two distance constraints it looks like two bars pinned together; written as one bar with a point attached it looks like one. Both descriptions produce the same motion, and they give different Grübler counts — so the formula’s input is a modelling decision rather than a fact about the mechanism.
That is not a hypothetical difficulty. On this site the topology is declared by each mechanism rather than inferred from its constraint list, because an earlier version inferred it and gave a slider-crank −2 degrees of freedom, which is not a number any mechanism has.
Counting joints. A pin where three links meet is not one joint. Three links pinned coaxially can rotate independently, so it counts as two — and the rule generalises: a joint connecting k links counts as k − 1. Missing that is the single most common arithmetic error in the subject.
Deciding what kind of joint something is. A roller running in a slot is a two-freedom joint if it can both roll and slide, and a one-freedom joint if it is constrained to roll without slipping. The picture looks the same.
The Jacobian route has none of these difficulties, because it takes the constraints as written and does not need them classified.
The tolerance nobody mentions
Rank is a decision about which numbers are zero, and in floating-point arithmetic no number is exactly zero.
That makes the measured mobility depend on a threshold, and a threshold is a choice. This site uses a relative one — scaled by the largest pivot in the elimination — and reports the gap: the ratio between the smallest accepted pivot and the largest rejected one. A gap in the millions means the decision was not close and the rank is unambiguous. A gap near one means the matrix is nearly singular and the answer genuinely depends on where the line is drawn.
That second case is not a defect to be engineered away. It is what a mechanism looks like at a singular configuration — a dead centre, a toggle, a change point — where the constraints momentarily stop determining the motion, and reporting the gap is how a figure can say whether it was near one.
Over-constrained, and the exceptions that matter
A count below zero says the mechanism has more constraints than freedoms. Usually that means the parts will not go together without being forced, which is a real and expensive manufacturing problem: an over-constrained assembly binds, wears unevenly, and transmits stresses it was never designed for.
But a redundant constraint is only redundant if it is dependent on the others, and dependence is a property of the dimensions. Three bars that happen to be parallel constrain no more than two of them do. A door with three hinges is over-constrained by the count and works because the hinges are collinear — and stops working the moment a frame settles and they are not.
That is the case Grübler cannot see and the Jacobian can, and it is worth its own essay because the mechanisms it applies to are not curiosities. They include the parallel-motion linkages in drafting machines and anglepoise lamps, the coupling rods of steam locomotives, and a great many suspension designs.
What to take from this
Mobility is the first question about a mechanism and it is not a hard one — one subtraction, from two counts.
Both counts are easy to get wrong, and neither error announces itself. A miscounted joint gives a plausible number for a mechanism that will not work; an unnoticed redundancy gives zero for one that works fine.
The second route costs almost nothing once the mechanism is being solved anyway, and it is independent in a way that two versions of the same arithmetic are not. That is why every mechanism on this site carries both numbers, and why the one row where they disagree gets a page to itself.
The spatial case, and why the plane is the easy one
Everything above is planar: three freedoms per body, and joints that remove one or two. In space a body has six freedoms and the counting changes shape.
Grübler’s planar criterion becomes the Kutzbach criterion, with six in place of three and joint classes that are much more varied — a revolute removes five, a prismatic five, a cylindrical four, a spherical three, a planar three, a screw five. The arithmetic is no harder and the failure modes are considerably worse, because spatial mechanisms are far more likely to be overconstrained.
The famous cases are worth naming. The Bennett linkage is a four-bar with revolute joints whose axes are skew: the count says mobility −2, and it moves. The Sarrus linkage produces pure straight-line motion from six revolutes, and the count says zero. The Bricard octahedra are flexible polyhedra, which the count and most intuitions both say are impossible.
Each of these works because the link lengths and joint angles satisfy special relations that make some constraints dependent. Break the relation by a fraction of a degree and the mechanism becomes exactly what the count says it is: a rigid structure. That is the same phenomenon as three parallel bars in the plane, except that in space the special relations are far less obvious and the mechanisms far more striking.
The rank test handles all of them without modification, because it never assumed independence in the first place. That is not an accident of this implementation — it is the reason the rank test is the right tool for a question that generic formulas answer generically.
Under-constrained, and the failure nobody plans for
The count can be wrong in the other direction too, and that case gets much less attention because it is less flattering.
A mechanism with mobility greater than intended has a freedom nobody specified, and it will find it. The usual culprits are a link that can rotate about its own axis without affecting anything — a passive freedom, harmless but it inflates the count — and a genuine missing constraint, which is not harmless at all.
A connecting rod with spherical joints at both ends can spin about the line joining the two centres. That is a passive freedom: it changes nothing, it is counted, and the count for the mechanism comes out one too high. Subtracting it by hand is standard practice and it is exactly the kind of adjustment that makes a count untrustworthy, because it requires the analyst to already know the answer.
The rank test reports the passive freedom too, and reports it as a specific null-space direction that can be inspected: the vector says which coordinates move, and a spin about a link axis is recognisable at a glance. A number cannot be inspected; a direction can. That difference — being told what, not just how many — is most of why the measured route earns its extra cost.
The question behind the question
“Does it move” is answered by a count or by a rank, and both are answering a narrower question than the one a designer usually has, which is worth separating out.
Does it move? Mobility, by either route. A yes-or-no about the existence of motion.
Where can it move to? The workspace — the set of configurations reachable from the current one without disassembly. That is a global question and mobility is local, so a mechanism can have mobility one everywhere and a workspace made of two disconnected pieces, which is exactly what the two assembly branches of a four-bar are.
How well does it move there? The transmission angle, the velocity ratio, the mechanical advantage — quality measures that vary through the workspace and decide whether the motion is usable.
What happens at the edges? Dead centres, toggles and change points, where the rank drops and the mechanism’s behaviour changes character.
Mobility is the first of these and the cheapest, and it is a screening question: a mechanism with the wrong mobility is wrong regardless of the answers to the rest. But a mechanism with the right mobility has settled almost nothing about whether it is a good machine, and the remaining three questions all require configurations to have been computed.
That is the practical reason this site solves rather than counts. Once the constraint equations exist and can be solved, mobility is a rank computation on a matrix that was needed anyway, the workspace is a sweep, the quality measures are readings off the solved positions, and the singularities are where the rank drops. One piece of machinery answers all four, and the count answers one of them with an assumption that the interesting mechanisms violate.