Six freedoms, not three
Assumes What decides whether it moves and Counting and measuring mobility.
Everything on this site up to here has been flat. Bars in a plane, pins whose axes all point the same way, a body with three freedoms and a pin that removes two of them. That is not a teaching simplification: the overwhelming majority of mechanisms people meet really are planar, and the planar count is the one a designer uses.
But it hides something. Grübler’s formula gets a working mechanism wrong exactly once in the planar essays, and it takes a contrived arrangement of three parallel bars to make it happen. In space the failure is not contrived. It is the normal case, and the mechanisms it applies to are ones most readers have used today.
The count, one dimension up
A body free in space has six freedoms: three to move it and three to turn it. A revolute joint — a pin, a hinge — leaves the two bodies it joins one relative freedom and takes five away.
So for a mechanism of L links, one of which is the frame, joined by j revolute joints:
This is Kutzbach’s criterion, and it is the same argument as Grübler’s with the 3 replaced by a 6 and the 2 by a 5. Count the freedoms the moving links would have if they were loose, subtract what each joint takes away, and what is left is what the mechanism has.
For a single closed loop the number of links equals the number of joints, so L = j and the formula collapses to something startling:
A single closed loop of revolute joints needs seven of them before it moves at all. Six gives zero. Five gives −1. Four gives −2, and −2 is not a number any mechanism has.
That is the prediction. Here is the difficulty: the universal joint in a car’s driveline is a closed loop of four revolute joints, the Sarrus linkage is a closed loop of six, and Bennett’s is a closed loop of four. All three move. Two of them are in production hardware.
What the formula cannot see
The failure is the same one the planar formula has, and stating it once covers both.
Kutzbach counts links and joints. It is a statement about the topology of the mechanism — what is connected to what — and it is completely blind to where anything is. Two mechanisms with identical link counts and identical joint counts get identical answers, whatever the axes are doing.
That would be fine if joint constraints were always independent. They are not. When several joints’ constraints repeat each other, the formula subtracts each one separately and the mechanism keeps freedoms the arithmetic has already spent. The technical name for the surplus is overconstraint, and the planar essays met it once, with three parallel bars where two would do.
In space overconstraint is easy to arrange, because there are more ways for a set of axes to be special. Parallel axes are special. Intersecting axes are special. Axes that all cut a common perpendicular are special. Each kind of specialness makes some constraints redundant, and every named spatial linkage in the literature is a mechanism built on one of them.
Measuring instead of counting
The site’s habit applies here without modification: where there is a formula, find a second route, and prefer the one that measures. In the plane that second route is the rank of the constraint Jacobian. In space it is the same idea in a form that happens to be more revealing.
Take a closed loop and walk round it, accumulating the transform from one joint frame to the next. If the loop is closed, the product of all of them is the identity. Now ask what happens to that product when each joint turns a little. Turning joint i by a small angle moves everything downstream of it as a rigid rotation about joint i’s axis, and a rotation about an axis with direction ω through a point q is described by six numbers:
which is the joint’s screw. Small motions of all the joints together change the loop closure by the sum of each joint’s screw times its own small angle. For the loop to stay closed, that sum must be zero.
So the closure condition on velocities is a linear system: a 6 × j matrix whose columns are the joint screws, acting on the joint rates, equal to zero. The number of independent solutions — the dimension of that matrix’s null space — is the mechanism’s mobility:
Nothing in that says how many links there are. It is a statement entirely about where the axes point, which is precisely the information the formula throws away.
And it is the same matrix twice over. The screw matrix is also the Jacobian the solver needs to close the loop in the first place, so every position drawn on this site already has it. Mobility costs no extra work: the rank of a matrix that has been formed anyway.
How a spatial loop gets written down
There is a practical obstacle between the paragraph above and any actual figure, and it is worth a section because it is where most of the confusion about spatial mechanisms lives.
A planar linkage can be specified by writing down four numbers. A spatial one cannot, and the two conventions people use for it look nothing like each other.
Denavit–Hartenberg parameters describe each link by four numbers: how long the common perpendicular between its two joint axes is, how much those axes are twisted relative to each other, how far along the axis one perpendicular sits from the next, and the joint angle itself. It is a compact, unambiguous description, it is how every classical spatial linkage is tabulated in the literature, and it is nearly unreadable. Bennett’s condition is a statement about two of those numbers on opposite links, and no amount of staring at the table makes it obvious.
Axes given as a direction and a point, in a configuration that is already assembled, is the other way. It says nothing about link lengths and everything about where things are, which is how a mechanism designed in space is easiest to state: the Sarrus linkage is “three axes along x̂ at these places, three along ŷ at those”, and that description is the argument for why it works.
Both reduce to the same thing — a chain of constant rigid transforms with a rotation between each — so one residual, one Jacobian and one solve serve both, and the figures here use whichever description makes the mechanism’s point. Bennett’s comes from its DH table because that is what its condition is a statement about. The Sarrus and the universal joint come from their axes, because their axes are the explanation.
What neither convention gives is a picture. A spatial mechanism on a flat page is genuinely ambiguous in a way a planar one is not — the same projection can be read as two different mechanisms — so every spatial figure here draws the joint axes as dashed stubs rather than leaving them to be inferred, and states the direction it is viewed from. That is a drawing decision rather than a measurement, and it is the only one in the field.
What the five loops in the figure are
The hero table is worth reading row by row, because the pattern is not “the formula is broken”.
The universal joint is four revolute axes all passing through one point. Four screws whose q is the origin have zero in their bottom three components, so the whole matrix is at most rank 3 — the loop can produce rotation and never translation, which is exactly what a joint bolted between two shafts should do. Rank 3 with four joints gives mobility 1. Kutzbach says −2. Its output speed is the subject of its own essay, and it is not constant.
The Sarrus linkage is two three-joint chains in perpendicular planes. Each chain confines the moving plate to a plane; two planes meet in a line, and the plate translates along it. Rank 5, mobility 1, Kutzbach 0. It draws a straight line exactly, from pin joints, with no approximation in it.
Bennett’s four-bar has four axes that are neither parallel nor intersecting, and it moves only when its lengths and twists satisfy one equation. Rank 3, mobility 1, Kutzbach −2. Break the condition by two parts in a thousand and it seizes.
A spatial four-bar with generic twists is the null case, and it is in the table on purpose. Kutzbach says −2; the measurement says 0. Both agree the thing does not move, and they disagree about the number — which is worth noticing, because a formula can be wrong about the number and right about the verdict, and a check written to expect four disagreements-that-matter would have been quietly relaxed to make this row pass.
A seven-joint loop with scattered axes is the case the formula is right about. Nothing is parallel, nothing intersects, the screw system is full rank 6, and mobility is 7 − 6 = 1, which is what Kutzbach says. This row is why the honest summary is not “the criterion fails” but “the criterion is blind to geometry, and geometry is where the interesting mechanisms live”.
Every planar mechanism is an overconstrained spatial one
Here is the observation that makes the spatial field less exotic than it looks, and it is checkable rather than rhetorical.
Take an ordinary four-bar. Build it as a spatial loop: four revolute joints whose axes all point along the same direction, positioned wherever the four-bar’s pins are. Hand that to the spatial machinery, which has never been told the mechanism is flat.
Four parallel screws have the form [ω; −ω × q] with the same ω throughout, and they span a three-dimensional space — one rotation about the shared direction, two translations perpendicular to it. Rank 3, four joints, mobility 1. The loop turns through every crank angle the planar solver finds.
So the ordinary four-bar is overconstrained too. It has three redundant constraints, which is the same surplus Bennett’s linkage carries. The difference is that its specialness — parallel axes — is so familiar that nobody calls it special, and its redundancy is so thoroughly designed into everything from door hinges to windscreen wipers that the arithmetic saying it cannot move goes unnoticed.
This is not a trick of the formulation. It is what the criterion actually says, and it is why the planar Grübler count works: the planar formula is Kutzbach with the three redundant constraints already removed, on the assumption that everything is parallel. Assume it wrongly — put one hinge a degree out of line — and the mechanism binds, which is exactly what happens to a badly-mounted gate.
What overconstraint buys and what it costs
Since it is everywhere, it is worth saying what it is for.
An overconstrained mechanism carries its load through more members than it strictly needs. The Sarrus linkage’s plate is held to its line by two chains, either of which is doing part of the job twice. That makes the mechanism stiff: a load that would deflect one chain is resisted by both, and the plate stays where it is meant to be.
The cost is that it only works when the geometry is right. A statically determinate mechanism — one Kutzbach counts correctly — tolerates manufacturing error by moving slightly. An overconstrained one has nowhere to put the error, so it either binds or deforms. That is the trade, and it is the same one structural engineers make with redundant members in the opposite direction.
Which is why the sensitivity in Bennett’s essay matters so much and why the linkage was a mathematical curiosity for the better part of a century. Redundancy that depends on an exact condition is not robust; redundancy that depends on axes being parallel is, because parallel is a condition machining can hold.
What the solver has to do differently
Two things change when the loop leaves the plane, and both are worth stating because they are where the arithmetic bites.
The closure error is a rigid transform, not a list of coordinates. In the plane a mechanism’s constraint residual is a list of numbers — distances that should be zero. In space the natural residual is the logarithm of the loop’s closure transform: three numbers for how far the loop has failed to come back to its own orientation, three for how far it has failed to come back to its own position. Those six are in the same units as the screw matrix’s rows, so the Newton step is exactly the linearisation and the rank argument above means what it says.
Getting that logarithm right was, in this file’s history, two separate bugs. The first took the rotation angle from the arc cosine of the matrix trace, which is flat near zero — an angle of 10⁻⁸ moves the trace by one unit in the last place, so the recovered angle carried about eight digits, and the solver converged beautifully to a residual of 10⁻⁷ and stopped there. The second was worse because it hid: a branch guard meant to catch rotations near a half turn also fired for rotations near zero, so every nearly-closed loop took the code written for half-turns and got back a rotation about the wrong axis with the right magnitude. The residual norm looked healthy the whole time. Only the direction Newton was told to step in was invented.
That is a general lesson about this kind of check and it is worth carrying: a quantity whose magnitude is right and whose direction is wrong passes every test that prints a number. The tolerance said 10⁻⁹, the figure captions would have said “solved”, and fifty-one of seventy-two positions of the universal joint were being reported as not existing.
The mechanisms worth drawing are the rank-deficient ones. A solver that assumes its Jacobian is well conditioned is fine for the generic seven-joint loop and useless for all four of the others, because their redundancy is rank deficiency. So the spatial solve uses the same escalating damping the planar one does, for the same reason: the interesting mechanisms are the ill-conditioned ones, and a solver tuned for the well-behaved case reports that the useful mechanisms cannot be assembled.
What to take from the field
Three things, and the third is the one that changes how the rest of the site reads.
The count is not useless. For a mechanism whose axes are in general position it is correct, cheap, and available before anything has been designed, which is exactly when a designer needs it.
The count is not sufficient. Every spatial mechanism anyone has bothered to name is one it gets wrong, because the reason to name a mechanism is usually that its geometry is special, and special geometry is what the count cannot see.
And the plane is not a different subject. The essays before this one describe a family of overconstrained spatial loops whose specialness is so ordinary that the overconstraint is invisible. The mechanism Grübler says cannot move is not an anomaly at the edge of the planar theory. It is the planar theory, looked at from one dimension up.
There is a way of putting the field’s whole argument that is worth having in one sentence, because it explains why the spatial case had to be a separate field rather than an appendix. In the plane the count is nearly always right and in space it is nearly always wrong. A planar mechanism’s constraints are usually independent, so Grübler’s arithmetic gives the answer and the rank confirms it; a spatial one’s usually are not, so Kutzbach’s gives a number that is wrong by the redundancy and the rank is the only route. That is not a difference of degree. It means the planar field could treat the count as the instrument and the rank as a check, and the spatial field has to treat the rank as the instrument and the count as a hint — an inversion of which number is doing the work, arriving with nothing but a change of dimension. Everything else in the field follows from that: the corrected criterion, the redundancy count, the two kinds of overconstraint, and the fact that the field’s most interesting mechanisms are the ones the count is most wrong about.
What this makes readable
Essays that name this one as a prerequisite.
- A joint is a surface that slides on itself What a joint is
- Bennett, and the condition that moves it Out of the plane
- In space there is one chain Out of the plane
- When the link lengths are angles Out of the plane
- Sarrus, and the straight line that is exact Out of the plane
- The chain that does not close One path to the tool
- The joint that is not constant velocity Out of the plane
- Every motion is a screw Out of the plane
About the same objects
Not linked from either essay — found by the objects both name.
- The formula is repaired by the thing it replaced constraint · kutzbach's criterion · mobility · overconstraint · rank · screw · screw system
- Fragility has a direction constraint · kutzbach's criterion · mobility · overconstraint · the sarrus linkage · screw system
- Two ways to be overconstrained constraint · mobility · overconstraint · rank · screw · screw system
- A roller is not a slider constraint · degrees of freedom · mobility · overconstraint · rank
- Almost nothing is a group constraint · degrees of freedom · overconstraint · rank · screw system
- The count cannot tell a pin from a slide constraint · degrees of freedom · mobility · rank · screw
What links here
The 8 of 31 essays linking to this one that name the most of the same objects.
- Bennett, and the condition that moves it Out of the plane
- Why a hinge works As built
- In space there is one chain Out of the plane
- Six points and no more Machines you have met
- The freedom that is a set What can move
- Compose two positions and see where you land What a joint is
- Counting and measuring mobility What can move
- Pin the tool and it is a loop One path to the tool
The objects this essay names
Each one links to every other essay that touches it.
ConstraintDegrees of freedomKutzbach's criterionMobilityOverconstraintRankthe Sarrus linkageScrewScrew systemSpatial mechanism