How many answers

Twenty-eight, not forty

The general six-legged platform has forty poses for a given set of leg lengths, and this site has quoted that number beside a picture of a platform that has twenty-eight. Its anchors are arranged symmetrically, which makes it a special architecture, and the missing twelve poses are not missing. They are at infinity, and perturbing the anchors brings them back.

Assumes The paths that leave and Six legs and a square root.

lib/parallel.js has carried this sentence since the parallel field was written:

The theoretical answer for a general Gough platform is that the forward problem has forty solutions in the complex numbers, a result from elimination theory rather than from a search, and how many are real depends on the platform and the lengths. This function does not compute forty.

Everything in it is true. The forty is right, elimination theory is where it comes from, and the honesty about not computing it is exactly the right register.

It sits next to a picture of a platform that has twenty-eight.

Computing the forty

The first thing this field’s machinery was pointed at was the classical number itself, because a count that reproduces a published result is a count with a witness.

The system is seven unknowns — a quaternion and a translation — and seven equations: six leg lengths and the quaternion’s own normalisation. Every leg equation is cubic and the normalisation is quadratic, so Bézout’s number is 36×2=1,4583^6 \times 2 = 1{,}458.

Tracking all 1,458 paths on a platform whose twelve anchors are in general position gives 80 finite solutions, and the 80 come in ± pairs, because a quaternion and its negative are the same rotation. Eighty solutions, forty poses.

That agreement is worth pausing on. The forty in the literature comes from an elimination — a symbolic argument that produces a univariate polynomial of degree forty and proves the count. The forty here comes from following 1,458 numerical paths and seeing how many arrive. The two have almost nothing in common except the answer, which is the best kind of agreement to have.

The factor of two is not a discrepancy and is worth stating explicitly rather than dividing away. assertGoughHasFortyPoses requires eighty solutions, each paired with its own negative, and it is written that way on purpose: collapsing the pairs before counting would hide the double cover and make the agreement with the classical number look like a confirmation when it is an arithmetic coincidence waiting to be checked.

And then the site’s own platform

GoughPlatform builds its anchors like this: three pairs on a circle of one radius for the base, three more pairs on a smaller circle for the platform, each pair straddling one of three directions 120° apart.

That is a perfectly reasonable way to build a platform and it is very close to how real ones are built. It is also a symmetry, and Bézout’s genericity argument is precisely an argument about mechanisms that do not have one.

Running the same 1,458 paths against it gives 56 solutions. Twenty-eight poses.

The count is stable: 56 at four different random deformations, 56 at four different poses of the platform, and 56 with the anchors jittered by anything up to a thousandth. It is not a numerical accident and it is not a lost path — the ± pairing holds, so the count is even, and every path is accounted for as arrived or departed.

The platform this site has been drawing since the parallel field simply does not have forty poses.

Where the other twelve are

The interesting question is what happened to them, and the answer is visible if the anchors are shaken hard enough.

The twelve that were at infinity, coming back. Every solution of the platform's direct kinematics, plotted by how far from the origin it sits, as the six anchors are jittered. At no jitter the site's own platform has 56 solutions and the largest is at 25.8. At a jitter of 0.2 there are 80, and the extra ones arrive from far out — they were never missing, they were at infinity.
Fig. 1 Every solution, plotted by how far from the origin it sits, as the anchors are jittered. At no jitter there are 56 and the largest sits at 25.8. At a jitter of 0.05 there are 80, and the extra ones are out at nearly a thousand.

At zero jitter: 56 solutions, the largest at 25.8.

At a jitter of a thousandth: still 56. The symmetry is broken, but not enough for anything to change.

At a jitter of five hundredths: 80, and the twenty-four new ones are at coordinates of order 10310^3 — forty times further out than anything that was there before.

That is what a solution coming in from infinity looks like. For the symmetric platform the twelve extra poses are not absent; they are on the line at infinity, where the equations put them and where no machine can be. Breaking the symmetry pulls them into the finite part, and the further the symmetry is broken the closer in they come — at a jitter of 0.2 the largest is down to 88.

assertTheSiteSPlatformIsSpecial requires all three facts at once, and requiring all three is what makes it an explanation rather than an observation. A check that only tested the symmetric platform would pass on a tracker that had simply lost twenty-four paths. A check that only tested the generic one would never have noticed that the site was drawing a platform its own docstring described wrongly. And the third clause — that the restored solutions arrive an order of magnitude further out than the ones that were always there — is what says they came from infinity rather than merely appearing.

Bézout's number, and the answer. 2 polynomial systems, each solved by tracking every one of Bézout's paths. The Bézout column is what the shape of the system permits; the solutions column is what it has. Gough, this site's: 1458 → 56; Gough, generic: 1458 → 80. The last column is how many paths were tracked per solution found.
Fig. 2 The generic platform and this site’s, run through the same 1,458 paths. Eighty against fifty-six, from equations of identical shape.
Bézout's number, and the answer. 3 polynomial systems, each solved by tracking every one of Bézout's paths. The Bézout column is what the shape of the system permits; the solutions column is what it has. four-bar coupler pin: 4 → 2; 3-RPR platform: 16 → 6; Gough, generic: 1458 → 80. The last column is how many paths were tracked per solution found.
Fig. 3 The forty in its own company. It is the generic platform’s number and it is a bound rather than a count, which is the distinction the site’s own platform turns out to sit on the other side of.

Why a symmetry does this

The mechanism is not mysterious, though the details are.

Bézout’s theorem counts intersections in projective space. How many of them are at infinity is determined by the leading forms of the equations — the parts of highest degree, which is where the behaviour at infinity lives. For a generic set of coefficients those leading forms intersect the line at infinity in a predictable number of points. A symmetry among the anchors makes the leading forms share a factor, or become dependent, and the intersection at infinity becomes larger than the generic one — taking solutions from the finite part to pay for it.

The total is conserved. Bézout’s 1,458 is unchanged; what changes is how it splits between the finite plane and infinity.

The clean way to see the same thing in miniature is a case this site has already met. Two circles meet in four points, two of which are at infinity, and that is a degeneracy too — a general pair of conics meets in four finite points, and circles are the special conics that spend two of their four at the circular points. The platform’s symmetry is the same phenomenon with twenty-four instead of two.

What has to be amended, and what does not

Three sentences on this site need changing and it is worth being precise about which.

“The Gough platform has forty solutions” is right about the general platform and was never claimed to be about this one. It stands.

“This function does not compute forty” is now half-true. The function still does not, and this field does — and the number it computes for this platform is not forty.

Every figure that shows this platform’s assemblies is showing a mechanism with 28 complex poses. None of those figures said otherwise, because none of them claimed a count. That is the reason nothing was ever published incorrectly: the parallel field was careful to report what it had measured and to label the theoretical number as belonging to the general case. The gap was between two true statements sitting next to each other, and a reader entitled to assume they were about the same object.

Bézout's number, and the answer. 2 polynomial systems, each solved by tracking every one of Bézout's paths. The Bézout column is what the shape of the system permits; the solutions column is what it has. Gough, this site's: 1458 → 56; Gough, generic: 1458 → 80. The last column is how many paths were tracked per solution found.
Fig. 4 The two platforms, the same equations, the same 1,458 paths. The generic one converges 80 and this site’s converges 56. Nothing about the tracker distinguishes them; the difference is entirely in where the anchors sit.
A lower bound that happened to be tight. The site's own Gough platform at its home pose. The search starts Newton from a spread of guesses and reports what it lands on: 16 from 400, 16 from 1200, 16 from 4000. Tracking every one of the 1458 Bézout paths says there are 28 poses in the complex numbers and 16 of them are real. The search was right. Nothing available to the search could have said so.
Fig. 5 The real half of the same platform’s answer, at its home pose: sixteen assemblies, found by search and confirmed by the complete count.

That number is a bound and not a count, and the distinction is worth seeing beside a count that genuinely moves — because what is being claimed here is that twenty-eight does not.

The count that moves, and the one that does not. 676 sets of leg lengths for one 3-RPR platform, the third leg held at 2.2. Every one of them has exactly 6 complex solutions. The number that is real runs 0, 2 — 141 cells at 0, 535 cells at 2 — and that number is what a machine shop would call the assembly modes.
Fig. 6 What a count that does move looks like, for contrast. The real count changes as a parameter is swept and the complex one does not, so twenty-eight being stable across poses is evidence about the system rather than about the pose it was measured at.

The count is the same at every pose

One thing had to be checked before any of this could be said, because it would be an easy mistake.

The number of solutions of the direct kinematics is a property of the architecture — where the twelve anchors sit — and not of the leg lengths commanded. Different leg lengths are different members of the family, and every member of a family has the same complex count. But that is the claim, not the evidence, and the claim is exactly what a special architecture puts in doubt: a degeneracy could in principle be a degeneracy of one pose rather than of the design.

So the platform was counted at four unrelated poses — at its home position, tilted, translated off-axis, and lifted — and it returns 56 at every one. The real count varies enormously across those four: 32 real solutions at the home pose, 16, 8 and 24 at the others, which is 16, 8, 4 and 12 real poses. The complex total does not move.

That is the distinction from the count that does not move in its sharpest form, on the largest mechanism the site builds. The number 28 belongs to the platform. The number of ways it can actually be assembled belongs to the leg lengths, and it ranges over a factor of four.

It also disposes of a tempting explanation. If 56 had appeared only at the symmetric home pose and 80 elsewhere, the story would have been about a configuration being degenerate rather than a design — which is a different and much more ordinary phenomenon. It is not that. Twenty-eight is the architecture’s number.

Whether a symmetric platform is a worse platform

The obvious follow-up question is whether having twenty-eight poses instead of forty is good or bad, and the honest answer is that it is very close to irrelevant, for a reason worth setting out.

The poses that vanished were complex. A pose with an imaginary part is not a configuration of a machine, and for the platform at its home pose only sixteen of the twenty-eight are real anyway. Losing twelve complex poses costs a machine nothing at all.

Where it matters is in the analysis rather than in the machine. A method that assumes forty and finds twenty-eight has, from its own point of view, lost twelve — and if that method is an elimination expecting a degree-forty polynomial, it gets a degenerate one and may fail rather than answer. Special architectures are studied precisely because the general theory does not apply to them, and the reason to know that a platform is special is so that the right tool is used on it.

There is a second reason, and it is the one that made these architectures popular in the first place: a platform with a symmetry often has a direct kinematics that can be solved in closed form, where the general one cannot. The extreme case is the octahedral platform, whose anchors coincide in pairs, and whose forward problem reduces to a polynomial small enough to solve exactly. Symmetry costs solutions and buys tractability, and the trade is deliberate wherever it is made.

This site’s platform is not that extreme case — its anchors are distinct — and whether its 28 admits a closed form is not something computed here. It is named as an open thread rather than implied away.

The threshold that had to be loosened

One practical detail of the jitter figure is worth recording, because it is the sort of thing that produces a wrong picture quietly.

The tracker abandons a path once its coordinates pass a threshold, on the grounds that a path out at 10610^6 is going to infinity and there is nothing to be gained by following it. That is what makes the complete route affordable — 1,378 of 1,458 paths are dropped in a handful of steps.

The whole content of this figure is solutions that are far out and finite. At a jitter of 0.05 the twenty-four returning poses sit at coordinates of order 10310^3, which is nowhere near the default threshold; but the paths reaching them wander further still on the way, and with the usual settings some were abandoned before they arrived. The count came back as 79 — an odd number, which the ± pairing says is impossible.

So the figure runs with the threshold three orders of magnitude looser and the step budget raised, and it costs several times what an ordinary run costs. That is the honest price of a picture whose subject is the thing the fast path exists to discard, and it is worth being explicit that the parameter was changed rather than letting the figure quietly use different settings from every other count on the site.

The 79 is the more useful half of the story. Nothing about it looked wrong. It is a plausible number, it came from a run in which every path was accounted for, and the only reason it was caught is that this system has a symmetry which makes odd counts impossible. Most systems do not.

How this was nearly missed

The route to noticing was accidental and the accident is worth recording, because the deliberate route did not exist.

The generic platform was built first, as a test case for the tracker: twelve anchors placed with deliberately unequal spacings so that nothing about it would be special. It gave 80, agreeing with the classical 40, and that was the result the machinery was being tested against.

Only afterwards was the tracker pointed at the platform the site draws, on the assumption that the answer would obviously be the same. It was not.

Nothing about the site would have flagged the difference. The parallel field’s figures do not quote a count of complex solutions; they show assemblies found by search, which is a real count and behaves quite differently. Its docstring quotes forty and attributes it correctly to the general case. Every gate passes either way, because no gate has ever asked how many complex poses a platform has — there was no machinery capable of asking until this phase.

So the gap was not a failure of any check. It was a question nobody could pose, and the first time it could be posed the answer was not the one everybody would have guessed. That is a reasonable description of what a new field is for.

What became of Bézout's paths. Gough, this site's: 56 of 1458 paths arrived at a solution and 1402 went to infinity; Gough, generic: 80 of 1458 paths arrived at a solution and 1378 went to infinity. The surplus is not merely wasted — it is cheap: a path on its way to infinity is abandoned in a handful of steps, while every path that arrives is tracked in full.
Fig. 7 How many of Bézout’s paths arrive for each platform. The symmetric one loses twenty-four more than the generic one, and every one of them leaves for infinity.

What a reader should take from a published count

The general habit this suggests is small and worth stating, because it applies well beyond platforms.

A count in the literature is nearly always a count for the generic member of a family, and it is nearly always quoted without the word. Forty is the general platform’s; sixteen is the general 6R serial arm’s inverse kinematics; six is the general planar three-legged platform’s. Each of those is a theorem about a measure-zero complement, and each is quoted as though it were a property of the class.

The mechanism in front of a reader is usually not generic, because somebody designed it, and designing means imposing regularity. So the question to ask of a published count is not whether it is right but whether the mechanism at hand is in the family the count is about — and that question has a cheap experimental answer: perturb the design and see whether the count moves.

This site now runs that experiment as a check rather than as a courtesy, and it found the one platform it draws to be outside the family whose number it was quoting.

What generic means, and how to tell

The word generic does a great deal of work in this field, and this platform is the case that gives it teeth.

A property holds generically if it holds for all coefficient values outside some lower-dimensional set. “The direct kinematics has forty solutions” is a generic property of six-legged platforms. The set where it fails has measure zero — so a platform with anchors chosen at random has forty with probability one.

And nobody builds a platform with anchors chosen at random. Every architecture that a person would design has some regularity in it, and regularity is exactly what puts a mechanism in the measure-zero set. The generic case is the one that never gets built, which is an uncomfortable thing to notice about a body of theory built on genericity.

The practical test is the one this essay performs: jitter the design and see whether the count changes. If it does, the design was special. That is not a proof of anything — a jitter of 0.001 changed nothing here and a jitter of 0.05 changed everything, so the answer depends on how hard the shake is — but it is a cheap experiment that turns an assumption into a measurement, and it is now a check the site runs.

The parallel field’s own screw-system essays reached the same shape of conclusion from a different direction: the mechanisms that count as exceptions to Kutzbach’s formula are, without exception, the ones with a symmetry, and the formula is right about the ones nobody builds. It is the same sentence twice, once about mobility and once about counting.

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 15 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.

BezoutComplex solutionDirect kinematicsGough platformPolynomial systemQuaternionSolutions at infinitySpecial architecture