Many of one thing

The loops are in the graph

Before a network is a mechanism it is a graph, and the one quantity that can be read straight off a drawing is how many independent loops it has: edges less nodes plus one. Grübler's count is that arithmetic and nothing else — which is why it is right about a tong at every size and says a deployable ring cannot open.

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

L=ev+c,L = e - v + c,

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.

The mechanism, and the graph that decides how many loops it has. A lazy tong of 5 scissor units drawn over its own joint graph: a node for every body — 10 of them — and an edge for every pin, 13 of those. The number of independent loops is e − v + 1 = 13 − 10 + 1 = 4, which is how many closure equations somebody writing this mechanism out by hand would have to find and is the one quantity in the field that can be read straight off a drawing. It is also all the count knows: Grübler's 4 is 3(n − 1) − 2j and contains no geometry at all, which is why it is right here and wrong four rows further down the ledger. positioned by solving, not by drawing.
Fig. 1 A lazy tong of five units drawn over its own joint graph: ten nodes, thirteen edges, one component, four independent loops.

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 nn bodies and jj pins on a grounded assembly

M=3(n1)2j.M = 3(n-1) - 2j.

Rearranged against the circuit rank it says something slightly different from what it looks like it says. A tree of nn bodies has n1n - 1 joints and no loop at all; every joint after that closes one. So j=(n1)+Lj = (n-1) + L, and

M=3(n1)2(n1)2L=(n1)2L.M = 3(n-1) - 2(n-1) - 2L = (n-1) - 2L.

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 3×22×3=03 \times 2 - 2 \times 3 = 0 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.

The tong, at five sizes. Bodies, pins and loops all grow linearly with the unit count, and the two nullities do not move at all: four freedoms — three of them the rigid motions of the whole assembly — and no dependency among the constraints at any size. This is the control for everything else in the field. When the count is wrong later it will not be because the assembly is large.
Fig. 2 The tong at five sizes. The two nullities do not move: four freedoms, no dependency, from one unit to sixteen.

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.

Kutzbach's count against the measured mobility. Five closed loops of revolute joints. The count is 6(L − 1) − 5j, a statement about how many links and joints there are; the measurement is the number of joints minus the rank of the loop's screw system, which knows only where the axes point. They disagree for four of the five, and the one they agree on is the generic seven-joint loop — so the formula is not broken, it is blind to the special geometry that makes the other four work. The universal joint is counted at -2 degrees of freedom and is in every car built.
Fig. 3 The same audit in space, where the count is wrong about four loops in five. The arithmetic is the graph’s; the disagreement is the geometry’s.
What the count is right about. Freedoms minus dependencies, against what the count predicts, on seven assemblies from three different representations. The difference is exact every time and it is exact for a reason that has nothing to do with mechanisms: the count is unknowns minus constraints, the rank is a number no larger than either, and the two nullities are what each of them has left over. So a count is not wrong in the way a mismeasurement is wrong. It is a statement about a difference being read as a statement about one of the terms — and on four of these seven rows both terms are large and the difference is nearly meaningless.
Fig. 4 The count that reads the graph, over the field’s own assemblies. Where it agrees with the rank the loops in the graph are the loops in the mechanism; where it does not, the graph has counted a loop the geometry does not have.

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 nn by nn panels that is 2n(n1)3(n1)22n(n-1) - 3(n-1)^2, which is (n1)(3n)(n-1)(3-n) — 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 nn by nn Miura sheet has 2n(n1)2n(n-1) edges and n2n^2 nodes, so its circuit rank is 2n(n1)n2+1=(n1)22n(n-1) - n^2 + 1 = (n-1)^2, 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 LL independent loops has 2L2L rows in the plane and 6L6L 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.

Where a network's rank decision actually is. Every singular value of the deployable ring's constraint matrix, as a fraction of the largest, on a logarithmic scale. There are 48 of them and the first 44 are ordinary numbers; the last 4 are at the arithmetic's own floor. The decision is not close — the smallest kept value is 1.1e+15 times the largest discarded one — and that is what makes a mobility computed this way a measurement rather than an opinion. It is also why the routine that takes the rank matters: the usual way to get a null space out of a small matrix squares it first, which puts the floor at 10⁻⁸ instead of 10⁻¹⁶ and would put the line through the middle of the gap.
Fig. 5 The ring’s singular values as a share of the largest. Forty-eight rows, forty-four of them carrying constraint, and the decision made across fifteen orders of magnitude.

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 dimvb\mathrm{dim}\cdot v - b, 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 framework Maxwell's count calls a structureSix joints and twelve bars in space. Three coordinates each gives eighteen unknowns, six rigid motions come off, and twelve bars is exactly twelve constraints — Maxwell's count is 6 against six rigid motions, which is the definition of isostatic: no mechanism, no redundancy, every bar carrying its own share and nothing spare. The rank is 11, not twelve. There is one dependency among the bars and one freedom left over, and the freedom is a genuine finite motion: walked here with every bar held to 4.4e-16 of its own length. The reason is a symmetry — three pairs of joints exchanged by a half turn about one line — and it is built into the coordinates rather than asserted about the result. positioned by solving, not by drawing.Maxwell 6 · rank 11 · one freedom, one dependencybars held to 4.4e-16
Fig. 6 Six joints and twelve bars in space. Maxwell’s count is six against six rigid motions: isostatic, with nothing spare. The rank is eleven.
What the repeated constraints cost the drawing. Move an interior vertex of the flat pattern and the folded state generally stops existing. It survives if the change to the vertex closures can be absorbed by a change in the fold angles — and the part that cannot be absorbed is exactly the part that lies along a dependency, because a dependency is a direction in residual space the fold angles cannot reach. So the number of conditions a pattern's shape has to satisfy is at most the number of dependencies among its constraints, and on the Miura family it is exactly that: one at three by three, four at four, nine at five, measured by taking the rank of the obstruction. A twelve-by-twelve sheet has a hundred conditions on where its vertices may be. That is why a grid whose vertices are anywhere at all does not fold, and it is the same number, read the other way round, as the amount by which the count is wrong.
Fig. 7 And what the disagreement is made of: the conditions the repeated constraints impose. A loop that the graph sees and the rank does not is one of these, and it is a statement about lengths rather than about connections.

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 66=06 - 6 = 0; 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 3V3V 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.

About the same objects

Not linked from either essay — found by the objects both name.

What links here

The 8 of 9 essays linking to this one that name the most of the same objects.

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