Twelve bars and a symmetry
Assumes Two ways to be overconstrained and The formula is repaired by the thing it replaced.
The spatial field has met counts that were wrong before. Kutzbach is wrong about four spatial loops in five, and the one it is right about is the generic seven-joint case. Bennett’s four-bar moves only for one particular combination of lengths and twists, and the count cannot see the combination.
Those are all loops of revolute joints. Here is the same failure in the other representation the mechanism world uses, and it is worse, because the count is not merely wrong — it is exactly, precisely, satisfyingly right, and the mechanism moves anyway.
The count
Six joints in space have eighteen coordinates. Six rigid motions come off. Twelve bars is twelve constraints. So Maxwell’s count is against six rigid motions: nothing left over in either direction.
That state has a name. A framework with no mechanism and no redundancy is isostatic: every bar is carrying its own share of the job, none is spare, and removing any one of them makes a mechanism while adding any one makes a redundancy. It is the ideal a structure is usually designed towards.
The graph is the octahedron: six vertices, every pair joined except the three diagonals. That is fixed, so the count is fixed, and it comes out isostatic wherever the six joints are put — which is the whole trouble with it, in the way a mobility count that contains no geometry always is.
Where the joints are put
Now the construction. Take three points, and take the images of all three under a half turn about one line — here the vertical axis, so that . That gives six joints in three symmetric pairs, and the three pairs are exactly the octahedron’s three diagonals, which carry no bar.
Nothing else is chosen. The three original points are otherwise arbitrary, and three different sets of them are used below to show that the result is not about the numbers.
The rank of the rigidity matrix at that placement is 11, not 12.
So there is one dependency among the bars and one freedom left over — and the count, which said six against six, said nothing about either, because it cannot: it is a statement about the difference , and is as true as .
The dependency, and where it is not
One dependency among twelve bars invites the question of which bar is spare, and the answer is that the question has no answer.
The dependencies are the left null space of the rigidity matrix: combinations of the twelve bars’ rows that come to nothing. Here that space is one-dimensional, so there is a single such combination up to scale, and it involves every one of the twelve bars with a non-zero coefficient. No bar is spare. What is true is that the twelve rows span an eleven-dimensional space, and there is no distinguished subset of eleven of them that does.
The rank decision itself is not marginal. The gap between the smallest retained singular value and the largest discarded one is on the first placement, on the second and on the third. A decision backed by fifteen orders of magnitude is a fact about the geometry rather than a threshold effect.
That last point needed the instrument to be right, and it is worth naming because the site had to change one to get here. The routine this site used everywhere until now takes a null space by accumulating the Gram matrix, which squares the condition number and cannot resolve a singular value below about of the largest. Asked at the tolerance this measurement wants, it reports the octahedron’s twelve constraints as fifteen independent ones — a rank larger than the number of rows, which is impossible, and which comes back without complaint.
Is the freedom a motion?
That is the question this field learned to ask. A rank leaves a candidate, not a mechanism, and the smallest framework on the site shows a freedom that goes nowhere.
The way to settle it is to walk. Step along the flex, then pull every bar back to its own length with Newton, and repeat.
The octahedron, asked to travel 0.160, travels 0.159982 — 99.99% of what it was asked for — with the worst bar-length error along the whole path being . The two other placements give 0.159948 and 0.159950, at and .
The two bars in line, for comparison, asked to travel 0.6, travel .
The motion is real. It is finite, it is not a numerical artefact, and every bar in the framework keeps its length to the last few bits of the arithmetic all the way along it.
Three placements, one answer
The construction takes three arbitrary points and reflects them, so it is worth running it more than once — a result that depended on the particular numbers would be a coincidence rather than a theorem.
Three sets of starting points were used, chosen to be unlike one another: joints at heights of and in the first, and in the second, and in the third. All three give a rank of 11, one dependency, one freedom past the six rigid motions, and a walk that travels between 99.97% and 99.99% of what it is asked for.
That is the difference between a measurement and an anecdote. Any one of the three could have been a placement that happened to be degenerate for some other reason; three unrelated ones giving the same rank, the same dependency count and the same walk is a statement about the construction.
What would have refuted it is easy to say and was tried: move one of the six joints off its symmetric position and the rank goes to 12, the dependency disappears, the framework has exactly the six rigid motions the count promises, and the walk goes nowhere. The symmetry is doing the work, and removing it removes the mechanism.
What the symmetry does
The reason is the symmetry, and it is worth being precise about what kind of reason that is.
The three pairs of joints are exchanged by a half turn about one line. So for any configuration of the framework, applying that half turn gives another configuration with the same bar lengths — trivially, because a rigid motion preserves lengths — and the same labelling, because the half turn maps each joint to the one it is paired with and each bar to another bar.
That makes the symmetric configurations a subfamily of the framework’s configuration space, and the subfamily has one more dimension than the generic count allows. Counting inside it: three independent points is nine coordinates, the symmetry axis’s own position and direction account for some of them, and the twelve bars reduce to six distinct conditions because each is paired with another that says the same thing about the mirrored half.
Six conditions on the symmetric family instead of twelve. That is where the dependency comes from, and it is why it is exactly one rather than some other number.
This is the same shape of argument as Bennett’s, where a relation between lengths and twists makes a four-bar loop’s constraints overlap, and as Sarrus’s, where two perpendicular planar sub-loops each remove the same freedoms. In every case the mechanism moves because constraints repeat one another, and in every case the repetition is arranged rather than accidental. What is new here is that it is arranged by a symmetry of the whole assembly rather than by a relation between four numbers.
Built in, not asserted
There is a discipline about symmetric mechanisms this site adopted when it built the line-symmetric Bricard 6R loop, and it applies here for the same reason.
The symmetry is put into the construction: three points are chosen, three more are computed as their images, and the framework is assembled from the six. It is not imposed on a result and it is not checked for afterwards.
The alternative — build a general octahedron, then verify that it happens to be symmetric — would be a check that passes because the numbers were arranged to make it pass, which is a check that tests nothing. A construction that cannot produce an asymmetric framework is the honest form.
What is checked afterwards is the thing the construction does not determine: the rank, the dependency count, and whether the flex is a motion. Those are the outputs.
Bars and pins are the same question
It is worth one section on why the same mechanism deserves an essay in two representations, because the site has been analysing spatial loops for a long time and this is the first framework among them.
A loop of revolute joints is what the spatial field has been solving: bodies joined in a cycle, a closure equation in the joint angles, and a mobility that is the nullity of the loop’s screw system. A framework is points joined by bars: no bodies at all, no joint angles, and a mobility that is the nullity of a matrix whose rows are bar directions.
The two are not translations of each other. A bar between two points is a distance constraint, which leaves the two points free to rotate about each other in every way; a revolute joint between two bodies is five constraints. So a framework’s octahedron is not the octahedral linkage that goes by the same name, and a reader who has met one should not assume they have met the other.
What is the same is the question and the instrument. Both are constraint systems; both have a Jacobian; both have two null spaces and a count that is the difference between their dimensions; and in both the count is right about the difference and can be arbitrarily wrong about either term. That is why the network field’s routine works on a framework, a body-and-pin assembly and a crease pattern without changing, and why an isostatic framework that moves sits comfortably next to a folded sheet with a hundred repeated constraints.
The corresponding fact for a spatial loop is that its screw system can be smaller than the joint count suggests, which is what an overconstrained loop is and what Sarrus and Bennett both are. The same sentence, in the algebra the loop representation offers.
What Maxwell’s count is for
It would be easy to take this as a case against counting, and it is not.
The identity is exact:
on this framework and on every other. The count of six is a completely correct statement about . It becomes a statement about only under the assumption , and that assumption is unstated, is usually true, and is false here.
The practical form of that is worth keeping. A count is trustworthy exactly when the framework has no redundancy, and the only way to find out whether it has any is to take a rank. Which means the count cannot certify itself, and a designer who needs to know whether an assembly moves has to do the more expensive thing.
What the motion looks like
Worth a paragraph, because it is not obvious from the count and it is the part a reader can check by eye.
The three pairs of joints stay exchanged by the half turn throughout the motion — that is what makes it a motion of the symmetric family — so the framework flexes without ever losing its symmetry. Watching one pair, the two joints move as mirror images about the axis; watching the whole thing, the octahedron changes shape while staying an octahedron with the same axis.
It is a one-dimensional family, so there is one number’s worth of shape available, and the framework does not pass through anything degenerate over the range walked here. What limits the range is not measured — the walk stops where it is told to — and a framework of this kind generally does have limits, where the flex meets a configuration at which the rank falls further and the motion either stops or branches.
The interesting thing to a reader who has followed the field is that a half turn is doing what a hundred conditions on a crease pattern do. Both are ways of arranging for constraints to repeat one another; the symmetry does it with one statement about the whole assembly, and the tessellation does it with one statement about a unit repeated. Those are the only two ways this field has found, and neither is available by drawing carefully.
What it costs to be wrong about
Two costs, and they point in opposite directions.
A framework believed isostatic and actually a mechanism will move when it is not supposed to. That is the obvious failure and the one the octahedron is famous for.
A framework believed isostatic and actually redundant is the other half of the same coin, and it has a subtler cost: it is sensitive to its own dimensions. A redundant bar is a bar whose length is decided by the others, so cutting it to a different length means the framework cannot be assembled at all rather than assembling into a slightly different shape. That is a different kind of tolerance statement from the ones the practice field usually makes, and it is the one that bites on this framework: its twelve bars have to satisfy one relation exactly, and a real octahedron cut to tolerances would not be Bricard’s — it would be a structure, or would not go together.
Which is a good reason to be careful about what the measurement above claims. It claims that a framework whose joints are placed with an exact symmetry has a finite motion. It does not claim that such a thing can be made.
Where it belongs
The octahedron sits in this field rather than in the network one because it is six bodies and twelve bars — a chain, not an assembly of repeated units — and because it is the same argument the spatial field has been making since the expansion, in the representation the spatial field did not have.
It also earns a place because it is the cleanest available answer to a natural objection. A reader looking at a Miura sheet with a hundred redundant constraints, or a deployable ring with four, might reasonably conclude that the count’s failures are a large-assembly problem — something that happens when there are too many parts to keep track of. Six joints and twelve bars is not that. The count is off by one, on the smallest interesting framework in space, for a reason that is entirely geometric and entirely invisible to arithmetic.
One feature of this mechanism separates it from nearly every other coincidence on this site and is worth marking. The site’s overconstrained mechanisms almost all depend on a continuous condition: axes parallel, axes concurrent, planes perpendicular, lengths and twists satisfying a relation. Each of those is a coincidence in the ordinary sense — a real-valued condition that manufacture approaches and never quite hits. Here the condition is a discrete symmetry: a half turn about one line that exchanges three pairs of joints. A finite group acting on the framework, rather than an alignment. That is a different kind of coincidence and it behaves differently under error, because a symmetry is either present in the arrangement or it is not, and a small perturbation of the joint positions destroys it as completely as a large one. So the mechanism has no forgiving direction in the sense the Sarrus measurement found — every departure from the symmetric placement is a departure — and the tolerance question is about how far a nearly-symmetric framework is from moving rather than about which direction the error took.
About the same objects
Not linked from either essay — found by the objects both name.
- A constraint that has been said already constraint jacobian · mobility · network · overconstraint · rank · redundant constraint
- Many loops, one freedom constraint jacobian · mobility · network · rank · redundant constraint
- The count says how many and not where infinitesimal flex · mobility · network · rank · redundant constraint
- The freedom that survives repetition constraint jacobian · mobility · network · rank · redundant constraint
- The right angle as a tolerance constraint jacobian · infinitesimal flex · mobility · overconstraint · redundant constraint
- A roller is not a slider constraint jacobian · mobility · overconstraint · rank
What links here
Essays that link to this one from their own argument.
- It moves to first order and not at all Many of one thing
- Six things a network is not Drawn wrongly
- Compose two positions and see where you land What a joint is
- A name for each overconstraint Out of the plane
The objects this essay names
Each one links to every other essay that touches it.
BricardConstraint jacobianInfinitesimal flexMobilityNetworkOverconstraintRankRedundant constraintSymmetry