A constraint that has been said already
Assumes Many loops, one freedom and The loops are in the graph.
A constraint matrix has two null spaces and a mechanism only lives in one of them.
The one everybody uses is the ordinary null space: the vectors with , which are the velocities the constraints permit. Its dimension is the mobility, and every essay on this site until now has been about it — right back to the first mobility count.
The other is the left null space: the vectors with . Each of those is a combination of the constraint rows that comes to nothing — not at one configuration, but identically, as an algebraic fact about the matrix. It says that one of the constraints has been said already, in pieces, by the others.
On a four-bar that space is empty and there is nothing to talk about. On a network it is not, and its dimension is precisely the amount by which the count is wrong.
Both at once, exactly
Write for the mobility and for the number of independent dependencies. Both are non-negative. The rank is a number no larger than the row count or the column count, and
Subtracting kills the rank:
The right-hand side is the count — Grübler’s , or Maxwell’s less the rigid motions, or a fold pattern’s creases less three times its interior vertices. It contains no geometry at all.
So a count is not wrong the way a mismeasurement is wrong. It is a statement about a difference being read as a statement about one of the terms, and the reading is safe exactly when is nought. That is why it works on a four-bar, on a slider-crank, on a Gough platform and on a lazy tong at any size, and why it fails on everything this field is about.
What a dependency looks like
The smallest example takes two bars.
Pin two points a unit apart on either side of a third, with all three in line, and join the middle one to each of the others. Two bars, two coordinates, and both rows of the rigidity matrix point along the same line — so the rank is 1, the mobility is 1 and there is one dependency.
The dependency is the vector : adding the two bars’ rows gives nothing. In words, the two bars say the same thing about horizontal motion, so one of them is not adding a condition that the other has not already imposed.
That is the entire content of a dependency and it is worth having in this bare form, because the same object on a Miura sheet is a hundred-dimensional subspace of and there is no drawing of it.
Where they come from in a network
In a network the dependencies are not accidents of a degenerate drawing. They are what the assembly was built out of.
The deployable ring is the sharpest case. Eight pairs of angulated elements, sixteen bodies, twenty-four pins: forty-eight constraints on forty-eight coordinates, and Grübler’s count of nought. The rank is 44. There are four dependencies and four freedoms, three of which are the rigid motions of the whole ring and the fourth of which is the deployment.
Change the elements’ kink angle by a degree and the dependencies vanish: the count becomes right, the mechanism becomes a structure, and — more to the point — it cannot be assembled at the drawn radius at all. The dependencies are the design.
The Miura sheet is the same statement at a larger scale. Its dependencies number : one at three panels a side, four at four, sixteen at six, a hundred at twelve.
And the Bricard octahedron has exactly one, which is what makes it interesting: a framework the count calls isostatic, with nothing spare anywhere, which has one dependency and therefore one freedom left over.
Reading the ring’s four
The ring’s dependencies can be located, in the weak sense that the reason for them can be said, and it is worth doing because it makes the design argument concrete.
An angulated pair joins its two neighbours along two connection lines, and the theorem the ring is built on is that the angle between those lines is the element’s own kink, at every opening. In a ring with -fold symmetry the connection lines are radii, so consecutive pairs must be separated by , and the kink is chosen to be — 135° for eight pairs, 150° for twelve.
Impose that and something happens to the arithmetic that would not otherwise. The pair’s two pins would ordinarily each impose two conditions on the next pair’s position; with the kink chosen this way, one condition per pair is implied by the others going round the ring. Four such implications survive as independent statements, and those four are the dependency space.
Change the kink and the implications stop holding. Every constraint then says something new, the rank rises to 48, and the count of nought becomes the truth. The mechanism has not been made worse by being made more general — it has been made into a structure.
Why this is not a force argument
There is a reading of the left null space that this field names and does not take, and the boundary needs stating because it is the only place in twenty fields where it could be crossed by accident.
An engineer looking at sees a state of self-stress: a set of bar tensions in equilibrium at every joint with nothing applied from outside. The two objects are the same subspace, because the matrix whose null space carries the mechanisms is the transpose of the matrix whose null space carries the equilibrium states, and that is a genuine and useful duality.
It is not what is being computed here. A dependency, as this field uses it, is a combination of the rows of a Jacobian that comes to nothing. It needs no material, no stiffness, no load and no notion of force at all, and every number in this field survives with every force in the mechanism unknown — which is the standing test this site has applied since it opened its transmission field. The self-stress reading belongs to somebody whose subject is structures, is named twice here, and is developed nowhere.
The separating question is simple enough to apply: does the quantity change if the bars are made of a different material? A dependency does not. A tension does.
What the dependencies are worth
A number that only measures the count’s error would be a curiosity. This one has a second life, and it is what makes it the field’s most useful quantity.
Move an interior vertex of a flat crease pattern and the folded state generally stops existing. It survives, to first order, if the change the move makes to the vertex closures can be absorbed by a change in the fold angles — that is, if lies in the column space of the Jacobian. The part of it that does not lie there is the obstruction, and the directions in which nothing can be absorbed are exactly the dependencies.
So the number of conditions a pattern’s shape has to satisfy before it folds is at most the number of dependencies, and on the Miura family it is exactly that: one at three by three, four at four, nine at five. A twelve-by-twelve sheet has a hundred conditions on where its two hundred and forty-two free coordinates may be drawn.
That is the same hundred, from the other end. It is why a grid whose vertices are anywhere at all does not fold, and it is worked out in full in its own essay.
Where else this site has met one
The object is not new to the site; only its size is.
Sarrus’s linkage is six revolutes in a spatial loop, which Kutzbach’s count calls immobile, and it translates exactly. Bennett’s four-bar moves only when its lengths and twists satisfy one relation, and the count cannot see the relation. A planar four-bar built with four parallel axes in space is counted at minus two and has rank three. In every one of those the mechanism moves because constraints repeat one another, and in every one the repetition is arranged rather than accidental.
What the network field adds is scale, and scale changes the character of the argument. A Sarrus linkage has one dependency and it can be pointed at; a hundred and forty-four panels have a hundred, and the only honest description of them is a subspace and its dimension. It also changes what the dependencies are for. In a spatial loop they are a curiosity of the count. In a folded sheet they are the count of conditions the drawing has to satisfy, and therefore the measure of how difficult the pattern was to design.
A dependency is not a redundant part
A phrase worth heading off, because it invites the wrong picture.
“Four redundant constraints” does not mean four particular pins could be removed. There is no canonical set of four, and removing four arbitrary ones from the ring gives a mechanism with more freedoms than the ring has, not the same one. The dependencies form a four-dimensional subspace of the forty-eight-dimensional space of combinations of constraints, and it has a basis but no distinguished one.
The right mental picture is closer to a linear-algebra fact than to a parts list: the rows of the matrix span a 44-dimensional space, and there are 48 of them. Which four are “spare” is a question the matrix does not answer, in the same way that four vectors spanning a plane have no distinguished pair.
This is why the site’s own overconstraint essays distinguish two things that both get called overconstraint: a loop whose constraints genuinely overlap, and a mechanism with more joints than its mobility needs. The first is measured by ; the second is a statement about the count.
What the dependencies cost
Two costs, and both are real even with force left out of it entirely.
They make the assembly sensitive to its own dimensions. A constraint that repeats another one is a constraint that is satisfied by coincidence, and a coincidence disturbed is a mechanism that will not go together. That is the tolerance argument, and it repeats once per unit, and it is a different kind of statement from a tolerance on an output: the question is not how far the mechanism is from where it should be but whether it can be assembled at all.
And they make the count useless as a design check. On a chain, computing the mobility from the formula is a sound way to find out whether a drawing will move. On a network it is a way of finding out , and a designer who wants has to take a rank.
Counting the two nullities is one computation
A practical note, because it is the reason both numbers appear together on every row of every table in this field.
The rank is taken once. Everything else is arithmetic: the mobility is the column count less the rank, the dependency count is the row count less the rank, and the count is the difference between the two. So there is no cost at all to reporting both, and there is a cost to reporting only one — namely that a reader cannot tell whether a count that looks reasonable is reasonable.
That has a consequence for how this field’s tables are laid out. Every one of them carries four columns where a chain would carry two: unknowns, constraints, measured mobility and dependencies, with the count alongside. A row where the last column is nought is a row where the count can be trusted; a row where it is a hundred is a row where the count is a hundred out and the reader should be looking at the third column.
It is the same discipline as reporting the rank gap alongside the rank, and for the same reason. A number that could have come out differently under a different threshold is an opinion, and saying which it is costs one column.
A dependency cannot be found by looking
There is a property of the two nullities under perturbation that decides how a mechanism like this is ever discovered, and it is worth stating because it explains why every example in this field has a name and a discoverer.
The rank of a matrix can only fall on a special set and can only rise under perturbation, so the number of dependencies can only fall. Move the vertices of a framework at random and goes to zero: whatever coincidences the rows had are destroyed, the constraints become independent, and the mobility drops by exactly the number of dependencies that were there. That is what the ring does when its kink angle is changed by a degree, and it is not a fragility peculiar to the ring.
The consequence for method is total. A dependency cannot be found by sampling. Draw a framework at random and it has none, with probability one; draw a million and none of them has any. The set of configurations carrying a dependency has measure zero in the space of all configurations, which is exactly the property that makes a random search useless and a construction necessary.
So every mechanism in this field arrived the same way: somebody imposed a condition and then discovered what it bought. Bennett’s linkage is a relation among lengths and twists; Sarrus’s is a pair of perpendicular planes; the deployable ring is a theorem about angulated elements; a Miura pattern is a crease condition. In each case the condition came first and the dependency is what the condition produced, and no amount of drawing frameworks and measuring their ranks would have turned any of them up.
That also settles what a measured is a statement about. It is not a property discovered in an assembly; it is a certificate that the assembly satisfies the condition it was built to satisfy. A ring reporting four dependencies is a ring whose angulated elements really do have the kink angle the theorem asks for, to within the tolerance of the rank computation. Reporting zero would not mean the theorem is wrong; it would mean the model has drifted off the condition.
Which is a useful way to use the number in practice, and it inverts what a nullity is normally for. The mobility is the answer to a question; the dependency count is a check on the construction, sensitive to exactly the parameters the construction was supposed to fix, and it fails loudly when any of them is off. That is more than most checks manage, and it is available from a decomposition that was being taken anyway.
The instrument, once more
The rank is the whole field, so it is worth saying what taking one costs.
The dependencies are the null space of , so they come out of the same decomposition as the mechanisms with the matrix turned on its side. That decomposition has to be able to see a singular value at of the largest, and the route this site had used everywhere until now cannot: accumulating squares the condition number, so its floor is , about , whatever tolerance it is handed.
Asked at it reports a triangle’s three bars as five independent constraints, the octahedron’s twelve as fifteen, and the ring’s forty-four as forty-five. At , which is what its own callers pass and what a six-by-six screw system wants, it is right every time, which is why the floor had never been reached.
A dependency is a quantity computed at the bottom of a spectrum, and a quantity computed at the bottom of a spectrum is only as good as the instrument’s floor. That the gap is reported on every rank in this field is not fastidiousness; it is the only evidence that the number is a fact rather than a threshold.
What this makes readable
Essays that name this one as a prerequisite.
- It moves to first order and not at all Many of one thing
- The ring that closes at every size Many of one thing
- What a pattern has to satisfy Many of one thing
About the same objects
Not linked from either essay — found by the objects both name.
- Six things a network is not deployable · grübler's criterion · mobility · network · null space · rank · redundant constraint
- The count says how many and not where grübler's criterion · mobility · network · null space · rank · redundant constraint
- The freedom that survives repetition constraint jacobian · grübler's criterion · mobility · network · rank · redundant constraint
- Twelve bars and a symmetry constraint jacobian · mobility · network · overconstraint · rank · redundant constraint
- A roller is not a slider constraint jacobian · grübler's criterion · mobility · overconstraint · rank
- It moves to first order and not at all mobility · network · null space · rank · redundant constraint
What links here
The 8 of 10 essays linking to this one that name the most of the same objects.
- Many loops, one freedom Many of one thing
- The ring that closes at every size Many of one thing
- Which diagonal rigidifies a grid Many of one thing
- A bar between two midpoints The curve as an equation
- The cell that repeats for ever Many of one thing
- The loops are in the graph Many of one thing
- What a pattern has to satisfy Many of one thing
- A constraint that only pushes Contacts that only push
The objects this essay names
Each one links to every other essay that touches it.
Constraint jacobianDeployableGrübler's criterionMobilityNetworkNull spaceOverconstraintRankRedundant constraint