The loops are in the graph
Assumes Many loops, one freedom and Counting and measuring mobility.
A mechanism’s closure equations have to come from somewhere. On a four-bar they come from noticing that there is a loop, going round it and writing down that the trip closes; on a Gough platform there are six of them and the six are found the same way. Nobody writes that step down because on a chain it is not a step.
On a network it is, and it has an exact answer that predates mechanisms entirely. Take the joint graph: a node for every body and an edge for every joint. The number of independent loops in it is
edges less nodes plus components, and the whole business of finding the closure equations is that arithmetic. It is the one quantity in this field that can be read straight off a drawing.
What the count is made of
Grübler’s formula is that arithmetic and one more line. Every planar body has three coordinates and every pin takes two of them away, so with bodies and pins on a grounded assembly
Rearranged against the circuit rank it says something slightly different from what it looks like it says. A tree of bodies has joints and no loop at all; every joint after that closes one. So , and
The count is a statement about loops. Each body added past the frame brings one freedom, and each loop closed takes two away. That is the whole of it, and it explains both halves of this field’s ledger at once: the count is exact whenever each loop’s two equations are genuinely two independent statements, and it is wrong by two for every loop whose closure repeats something another loop has already said.
Nothing in that arithmetic knows where any joint is. A tong of five units and a tong of five units with one bar cut to a different length have the same graph and the same count, and only one of them is the mechanism the drawing is of. That is not a defect of the formula; it is the formula’s subject.
Where the graph is right
The lazy tong is the case where the two answers agree, and it agrees for a reason worth stating rather than observing.
Each unit is two bars pinned at their middles, and consecutive units share their two end pins. Adding one unit adds two bodies and three pins, so it adds to the count: a tong of any length has the same mobility as a tong of one. The circuit rank grows by exactly one per unit added past the first, and each of those loops is a genuine quadrilateral whose closure says two independent things.
The measured rank agrees at every size, and the redundancy count is nought at every size.
That last column is what makes the tong the control for the field. When the count is wrong on the next mechanism, it will not be because the assembly is large.
Where the graph is right and the count is not
The deployable ring has the same kind of graph and a wholly different answer. Eight pairs of angulated elements give sixteen bodies and twenty-four pins, which is nine independent loops and a count of nought.
The rank is 44 of 48 and the mobility is four. Four of the ring’s twenty-four pins impose a pair of conditions that the rest of the assembly has already imposed, and the count has no way of knowing which four or that there are four.
The difference between the ring and the tong is not in their graphs. It is that the ring’s elements are bent, and the bend is chosen — to a hundredth of a degree, at 135° for an eight-pair ring — so that the closures are dependent. Change it by a degree and the ring is exactly what the count says it is: a structure, and one that cannot be assembled at the drawn radius at all. That is the subject of the ring’s own essay, and the arithmetic here is what makes it surprising: the graph is the same either way.
A joint that is not a pin
One thing has been assumed throughout and is worth making explicit, because a network makes it expensive to get wrong.
The arithmetic above counts every joint as a pin: two conditions in the plane, five in space. What each joint takes away is a table this site built in its first field, and on a chain the difference between a pin and a sliding contact is one line of it. On a network it is one line of it multiplied by the unit count.
A tong of sixteen units with a roller in place of one pin per unit has sixteen fewer constraints than the same tong drawn with pins, which is thirty-two on the count and moves it from four to thirty-six. Nothing about the drawing changes much; the difference is in what the small circle at each crossing is taken to mean. So the first question about a network is not how many joints it has but what kind they are, and the answer has to be the same for the graph, for the Jacobian and for the thing that gets built.
That is also where a network’s assumptions become load-bearing in a way a chain’s are not. A pin with a clearance in it is a link of its own, which adds a body and two joints and changes the count; on a chain that is a refinement, and on an assembly of thirty units it is thirty refinements and a different mechanism.
The loops of a folded sheet
A crease pattern is a network too, and the translation is worth doing carefully because it is where the loops stop being obvious.
The panels are the bodies and the creases are the hinges. Written that way in space it costs six coordinates per panel and five constraints per hinge, which is correct and hides everything. The cheap form is the one this field uses: the unknowns are the fold angles, one per crease between two panels, and the closures are one loop per interior vertex of the pattern.
That works because the hinges around a vertex all pass through it, so the loop’s closure is a pure rotation and costs three scalars rather than six. Going once round an interior vertex, panel by panel, the composed transform has to be the identity; there are three independent scalar conditions in that, and one such loop for every interior vertex.
So the arithmetic for a fold pattern is creases minus three times interior vertices. For a Miura sheet of by panels that is , which is — the number that runs down the middle of the field’s scaling table and goes to minus ninety-nine at a hundred and forty-four panels.
The loop no vertex can see
Here is where the graph stops being a convenience and starts being a trap, and it is worth the space because the failure is silent.
The vertex loops are a basis of the panel graph’s cycle space only when the pattern is a disk. The panel graph of an by Miura sheet has edges and nodes, so its circuit rank is , which is exactly the interior vertex count. The two agree, and they agree because of Euler’s formula rather than because of anything about folding.
Take the same pattern and roll it into a tube, or cut a hole in the middle of it, and they do not. A ring of four panels around a hole has four edges and four nodes in its panel graph, so one independent cycle — and no interior vertex anywhere near it. Left out, that cycle’s closure is never imposed: every vertex closes, every panel is rigid, and the tube does not join up.
The mobility then comes back one too large, with nothing whatever to indicate the omission. There is no error message, no residual, no failed assertion; the answer is simply a number about a mechanism that is not the one on the drawing.
So the circuit rank is counted when a pattern is built and the count has to be met, and a pattern that does not meet it is refused rather than measured. An extra loop, given explicitly, costs six constraints rather than three, because its creases do not pass through a common point and its closure has a translation in it as well as a rotation. That is a real difference in kind and not a bookkeeping detail: a cycle around a hole can fail to close by sliding as well as by turning.
Reading a mechanism’s loops off its rank
There is a second route to the loop count, and it is worth having because it uses none of the graph.
The Jacobian of a network with independent loops has rows in the plane and in space, one block per loop. Its rank is at most that, and the number of blocks is therefore recoverable from the matrix’s shape alone — which means a mechanism whose graph has been built wrongly shows up as a matrix of the wrong size before any rank is taken. That is the cheapest check in the field and it fires on exactly the failure above.
The two routes disagree only when something is wrong, which is what makes the agreement worth computing. It is the same discipline the mobility field put on itself when it started measuring the rank alongside the formula, applied to the step before the formula rather than to the formula.
The same arithmetic on points and bars
A framework — points joined by bars, with no bodies in it at all — is counted by the same reasoning with different constants, and it is worth writing out because it is the representation in which the two null spaces are easiest to see.
Each point has dim coordinates and each bar imposes one condition on them, so the count is , less the rigid motions of the whole assembly if none of the points is pinned: three in the plane, six in space. That is Maxwell’s rule, and its graph-theoretic content is the same as Grübler’s: a tree of bars is a mechanism with as many freedoms as it has joints, and every bar that closes a cycle takes one away.
The octahedron is the extreme case of the graph deciding nothing. Its graph is fixed — six nodes, twelve edges, every pair joined except the three diagonals — so its count is fixed at isostatic, and whether it moves depends entirely on where the six joints are. Placed generically it is rigid. Placed so that three pairs of them are exchanged by a half turn about one line, it has a finite motion and one dependency among its bars, and no arithmetic on the graph can tell the two cases apart.
That is the same shape of argument the spatial field made about Bennett’s linkage, where the count also cannot see the condition, and the same one the overconstraint essays make about loops whose constraints overlap.
What one more unit costs
Read down the tong’s table and the arithmetic per unit is the interesting quantity rather than the totals. A tong unit brings two bodies and three pins, so it contributes ; a ring pair brings two elements and three pins and contributes nought as well; a Miura panel brings two creases and, once the sheet is large, three constraints, so it contributes minus one.
The per-unit figure is what decides whether the count runs away, and on a large sheet it does: minus one per panel, a hundred and forty-four panels, and a count that has left the mechanism a long way behind. The rank does not run away, because the constraints that arrive with each new panel are the ones that repeat.
Taking that to its end is the cell that repeats for ever, where the network is infinite, the measurement is made on one cell, and the count of bodies is not a large number but no number. What is left of the graph there is the quotient graph — the cell’s own nodes, with an edge for every bar and a note of which neighbouring cell its far end lies in — and the loop arithmetic survives the translation intact.
The missing loops are the topology
The vertex loops fail to span the cycle space when the pattern is not a disk, and the omission is silent — which makes it worth saying exactly how many loops are missing, because the number is computable before anything is solved.
The extra independent cycles are the pattern’s own topology. A disk has none, so the vertex loops are a basis and the arithmetic is right. An annulus — a sheet with a hole, or a strip joined into a tube — has one, so one closure equation is missing and the mobility comes back one too large. A torus has two. In general the deficit is the surface’s first Betti number, one per handle or hole.
That turns the trap into a check with no solving in it. Count the panel graph’s circuit rank directly, edges less nodes plus one; count for the interior vertices; and the difference is the number of extra loops the pattern needs. On a disk it is zero. On anything else it is the topology, and if the model has not been given that many extra closure equations, it is short of them.
The check is cheap and it fires on exactly the case that is otherwise invisible. Nothing about a tube’s crease pattern looks different from a sheet’s — the same vertices, the same sector angles, the same local mechanics — and the only thing that changed is which edges are glued to which. A count over the graph sees the gluing; a count over the vertices does not.
It also says where the extra equations come from, which the omission conceals. Each missing loop is a circuit around the hole, and its closure is the ordinary condition that the product of the fold transforms around that circuit is the identity. So the repair is not new machinery: it is the same closure the vertices use, applied to a cycle that no vertex owns.
Which is the general moral of the rung, sharpened. The circuit rank is the honest count of loops and the vertex loops are a convenient basis for it — convenient, and a basis only sometimes. Counting the loops and counting the vertices give the same number on a disk and not otherwise, and the difference between them is a topological invariant that a crease pattern carries whether or not anybody looked at it.
What the graph does not decide
Three things, and the third is the field’s subject.
It does not decide whether the mechanism can be assembled. A graph and a count are satisfied by lengths that no configuration realises, and a linkage that is exactly right and unbuildable is a case this site has met before. On a network that failure has a scale to it: a pattern with a hundred repeated constraints has a hundred conditions on where its vertices may be, and a drawing that misses one of them is a mechanism that will not go together.
It does not decide how far anything moves. Mobility one is a statement about a tangent space; the reachable range is a separate computation, and on a deployable ring it has geometric ends that the count knows nothing about. Worse, a tangent direction the rank leaves need not be a direction anything can travel in at all, which is the distinction the two-bar framework makes in two lines and which no count and no rank settles.
And it does not decide whether the loops are independent, which is the whole gap between the two columns of the ledger. The circuit rank counts how many closure equations there are. Whether those equations say different things is a question about where the joints are, and the only instrument that answers it is the rank of the matrix they generate.
That question is what a repeated constraint is, and it turns out to have a second life: the number of repeated constraints in a folded sheet is also the number of conditions its shape has to satisfy before it folds at all.
What this makes readable
Essays that name this one as a prerequisite.
- A constraint that has been said already Many of one thing
- Each one moves, and together they do not Many of one thing
- One input at one end Many of one thing
- The freedom that survives repetition Many of one thing
- Which diagonal rigidifies a grid Many of one thing
About the same objects
Not linked from either essay — found by the objects both name.
- The freedom that survives repetition constraint jacobian · crease pattern · grübler's criterion · mobility · network
- A roller is not a slider constraint jacobian · grübler's criterion · mobility
- Every vertex is a spherical linkage crease pattern · mobility · network
- Nine bars that ought to be rigid constraint jacobian · grübler's criterion · mobility
- One freedom, and a motion that never repeats constraint jacobian · grübler's criterion · mobility
- Six things a network is not grübler's criterion · mobility · network
What links here
The 8 of 9 essays linking to this one that name the most of the same objects.
- Which diagonal rigidifies a grid Many of one thing
- Many loops, one freedom Many of one thing
- One input at one end Many of one thing
- The count says how many and not where Many of one thing
- The cell that repeats for ever Many of one thing
- Where the shortest loops are As built
- A link that takes up room Links with a width
- A plane is a colour Links with a width
The objects this essay names
Each one links to every other essay that touches it.
Circuit rankConstraint jacobianCrease patternGrübler's criterionJoint graphLoop closureMobilityNetworkSpanning tree