The curve as an equation

The machine, compiled

Twenty bars, twenty joints, and one degree of freedom. Every position is a converged solve on thirty-five equations, none of which mentions the polynomial — and the polynomial at the tracing point reads 1.3 × 10⁻¹⁴ across the whole working arc.

Assumes A parallelogram carries an angle, and only so far.

Everything is in hand. This rung assembles it, on one curve, and runs the result.

The curve is the rectangular hyperbola xy=0.5xy = 0.5. It is chosen because it is the smallest curve in this field’s catalogue whose machine has all four gadget kinds and a summing chain longer than one link — a line has no reflectors and a circle has no chain to speak of — and because at twenty bars it is still a picture a reader can hold.

What the compiler does, in order

Expand. xy0.5xy - 0.5, with unit links, comes out as a constant of 0.5-0.5 and three cosine terms, at frequency pairs (2,0)(2,0), (0,2)(0,2) and (1,1)(1,-1). Under a millisecond, and checked against a direct evaluation at three hundred random angle pairs.

Choose a start. Scan the driving angle; at each, find every second angle putting the arm’s tip on the curve; score each candidate by how far the machine’s parallelograms would be from flat, and keep the best. Here that is α=1.833\alpha = 1.833, β=0.262\beta = -0.262, at a score of 0.870.87 out of a possible 11 — a machine whose worst parallelogram is well clear of degenerate.

Build the arm. Pivot, two links of unit length, tracing point at the tip. One parallelogram carries the second angle back to the pivot, which is legal because the arm’s first link is a bar.

Build the frequencies. 2α2\alpha and 2β2\beta by one reflector each; αβ\alpha - \beta by a mean, a reflector to add, and a reflector to negate. Three reflectors and one mean, shared where they can be shared.

Apply phase and amplitude. One rigid attachment per term: a triangular link at the right angle and the right reach.

Sum. Three links head to tail from the pivot, with four parallelograms carrying the later terms’ directions out along the chain.

Close. The last vertex is held on the vertical line at x=0.5x = 0.5, which is the statement that the three cosines add to 0.50.5, which is the statement that xy0.5=0xy - 0.5 = 0.

Drive. A crank on the arm’s first link, replacing its bar.

Twenty bars, twenty joints, thirty-five equations in thirty-six unknowns, one degree of freedom.

The machine compiled from a rectangular hyperbola. xy − 0.5, compiled: 20 bars and 20 joints, painted by what each part is for. The two-link arm at the pivot carries the tracing point; the reflectors and means build each term's angle; the rigid offsets fix the constant φₖ and the amplitude; the translators carry those directions out along the summing chain, whose last vertex is held on a line. That last constraint is the equation. Every joint drawn is the output of a Newton–Raphson solve on 36 equations, converged to 4.2e-16, and the polynomial at the tracing point is 2.2e-16.
Fig. 1 The whole machine, painted by what each part is for. The thin line behind it is where the polynomial vanishes, found by walking a grid with no mechanism involved.

Positioning it, and the trap that was avoided

Every joint’s position at the starting configuration is known in closed form — that is what a construction is — and the compiler writes them all down before solving anything.

That seed is not a check. A Newton solve handed the answer agrees with the answer having never run an iteration, and this site has made exactly that mistake and recorded it: the expansion phase built a solver seeded with a closed form and reported agreement, and the agreement was vacuous.

So the seed is used once, at the start, and everything afterwards is a march. Each new driving angle is solved from the previous solved position, which is a genuine Newton–Raphson problem on thirty-five equations with a starting guess that is merely nearby. The solver reports its own residual at every step and the worst over the whole arc is 101410^{-14}.

The seed is needed at all because a hundred-bar linkage solved from a bad guess does not fail — it converges, to a different assembly, which is precisely the object this field spends two rungs on. Starting from the construction picks the intended assembly, and the branch census picks the others on purpose.

The frequencies a cubic asks for. One mark per term of x^3 − 0.2x − y, placed at the whole numbers (m, n) that say how many times the two arm angles enter it, and sized by the amplitude — which is the length of the link the machine builds for it. Only one of each conjugate pair is drawn, because (m, n) and (−m, −n) are the same cosine. The empty places are the content: a curve's cost is how many of these lattice points its coefficients fail to cancel, and every one that survives is a chain of reflectors long enough to multiply an angle by m and by n.
Fig. 2 What the compiler read out of the polynomial before building anything: the frequency pairs, and the amplitude of each.

The check, which the machine cannot see

Here is the whole reason this field can make a claim at all.

The machine’s constraint list is twenty bar lengths, four rigid attachments, one rail, one line and one crank. Not one of them mentions the polynomial. The compiler used the polynomial to decide what the bars should be; the mechanism, once built, has no access to it.

So evaluating xy0.5xy - 0.5 at the solved tracing point is a question from outside. Over the whole working arc — a hundred and sixty-two solved positions, 1.431.43 radians of driving angle — the worst answer is 1.3×10141.3\times10^{-14}.

Running the machine compiled from an ellipseThe same linkage at nine stops of its driving angle, each one a converged solve of 54 equations. The readout is the polynomial evaluated at the tracing point, and it is the field's whole claim: it does not move off the floor of double arithmetic at any stop. **A readout that stayed still would usually be a bug**; here it is the result, because a machine compiled from an equation satisfies the equation at every position it has.34 barsdeparture 6.4e-16
Fig. 3 A compiled machine at nine stops of its driving angle, each a converged solve. The readout is the polynomial evaluated at the tracing point, and it does not move off the floor of double arithmetic at any stop.

A readout that does not change across a slider is usually a bug, and this site has a standing note about it — a figure whose number is constant is normally a figure whose number was computed once. Here it is the result. A machine compiled from an equation satisfies the equation at every position it has, so a readout that moved would mean the construction had failed.

What the machine is not doing

Three descriptions that fit the picture and are wrong, worth clearing before the rest of the field builds on it.

It is not tracing the curve by following it. There is no sense in which the machine knows where the curve is and steers along it. It is a one-freedom linkage, driven at its arm; the configurations it can occupy are the ones its bars permit, and the set of those happens to be the set on which the polynomial vanishes. The curve is where the machine can be, not where it is trying to go.

It is not solving the polynomial numerically. Nothing iterates towards a root. The Newton solve in this site’s solver is finding the mechanism’s configuration from its bar lengths, which it would do identically if the bar lengths had come from anywhere else.

It is not an approximation with a very small error. The residual is the solver’s floor rather than a method error, and the distinction is checkable: run the solve to a tighter tolerance and the curve residual follows it down. An approximation would have a floor of its own, above the arithmetic, and would stop improving.

That third one is the one worth testing rather than asserting, and the frontier rung does test it, by putting this machine beside two that genuinely are approximations and measuring all of them the same way. Watt’s linkage stops at nine per cent of its stroke however carefully anything is solved.

What a singularity does, and what it does not do. The reflector driven straight through the configuration at which its two placements merge — here θ = 0.800, where the rhombus flattens onto its own mirror. Two numbers are plotted. The closure residual is how well the bars are satisfied, and it does not move: 8.3e-14 on both sides. The departure is how far the output is from the angle the gadget is supposed to produce, and it goes from the floor to order one at 0.800. Nothing breaks. The gadget goes on being a perfectly good linkage and stops being the function it was built to be.
Fig. 4 What ends an arc: a gadget driven through the configuration at which its two placements merge, with the closure residual flat across it.

Where the arc ends

The machine turns through 1.431.43 radians and not through a full circle, and the reason is a real property of it rather than an artefact of how far the sweep was asked to go.

Drive far enough and one of the reflectors reaches the configuration where its rhombus flattens onto its own mirror. The two placements of its output merge there, and a continuation through the merge may come out on the other one. Nothing breaks: every bar is still its own length, the closure residual is still at 101410^{-14}, and the machine goes on turning.

What changes is the function it computes. Past that point the tracing point is on some other curve, and the polynomial reads a number of order one.

The march stops when it detects that, by a measurement finer than either the closure or the curve residual: the departure, which compares each gadget’s actual output angle against the angle its specification asks for, given the machine’s own two arm angles. The departure names which gadget went and at what driving angle, where the curve residual only says that something did. It is the field’s third instrument and the rung on singularities is about what it sees.

The trace, against the set it is supposed to be on

The scene shows the machine at one instant. What it draws over its arc is the other half of the picture, and the two objects in it were found by routes that share nothing.

What the machine draws, against where the polynomial vanishes. Two objects, found two ways. The thin line is the set where x^4 + 2x^2y^2 + y^4 − 1.2x^2 + 1.2y^2 is zero, walked over a grid with no mechanism involved. The marks are where the compiled machine's tracing point went, one per converged solve, over the 147 positions of its working arc. The machine's constraint set never mentions the polynomial, so evaluating it at each traced point is an independent check: the worst value over the whole arc is 3.7e-13. The arc is 1.30 radians of the driving angle and not the whole turn, and past that arc it draws something else.
Fig. 5 The thin line is where the polynomial vanishes, walked over a grid. The marks are where the machine’s tracing point went, one per converged solve. Neither was derived from the other.

The grid walk is worth a sentence because it is the only part of this field that has nothing to do with mechanisms. Sample the polynomial on a fine grid, find every cell whose corners disagree in sign, and cut a segment across it by linear interpolation — marching squares, which the synthesis field already uses to draw Burmester curves. It has no idea a linkage exists.

Overlaying the two is therefore a comparison rather than a demonstration, and it is the honest way to draw the claim. A figure that plotted the machine’s trace alone and captioned it the lemniscate would be asserting the very thing in question.

Reading the picture

Two conventions in the scene above are worth stating, because they are decisions rather than defaults.

The colours are the argument. A machine of twenty bars could be labelled joint by joint and a machine of four hundred could not, and this family draws both the same way for consistency: one colour per gadget kind, so what a reader sees at a glance is the proportion of the machine that is arithmetic and the proportion that is transport. On this curve the translators are four bars of twenty. On the quintic they are three hundred and eight of four hundred and thirteen, and the picture is almost entirely one colour.

The curve is drawn separately. The thin line is the set where the polynomial vanishes, found by marching squares over a grid, with no mechanism involved anywhere. Drawing the machine’s own trace and calling it the curve would make the picture a tautology; drawing both makes it a comparison.

The closure, spelt out

The last constraint deserves a paragraph because it is the only one that is not a bar, and because it is where the historical construction and this one differ.

Akcosθk+c0=0\sum A_k\cos\theta_k + c_0 = 0 says the horizontal components of the term links add to c0-c_0. So the chain’s last vertex is at x=c0x = -c_0, whatever its height: it lies on a vertical line. One prismatic pair does that in one equation, and the machine above uses one.

Kempe would not have. The whole interest of his result was that it used revolutes only, and a prismatic pair is a different lower pair with a different history. Replacing it with a Peaucellier cell — whose output point runs on an exact straight line — costs seven bars and five joints, and does not change what the machine draws by more than the solver’s floor.

The machine compiled from a line. 0.6x + 0.8y − 0.35, compiled: 12 bars and 15 joints, painted by what each part is for. The two-link arm at the pivot carries the tracing point; the reflectors and means build each term's angle; the rigid offsets fix the constant φₖ and the amplitude; the translators carry those directions out along the summing chain, whose last vertex is held on a line. That last constraint is the equation. Every joint drawn is the output of a Newton–Raphson solve on 22 equations, converged to 8.2e-16, and the polynomial at the tracing point is 1.1e-16.
Fig. 6 The compiled machine for a line, closed the all-revolute way: the inversor cell on the left holds the summing chain’s last vertex on a line without a slider anywhere.

Seven bars, on every curve. The cell’s size has nothing to do with the polynomial, so it is more than half the machine on a line and under two per cent of it on a quintic. The counts in this field are quoted with the slide, because that keeps them about the compilation, and the all-revolute number is quoted beside them.

The starting configuration, and why it has to be chosen

One step of the pipeline above looks like housekeeping and is not, so it gets its own paragraph.

The compiler does not start the machine wherever the driving angle happens to be. It scans, and it scores, and the scoring exists because two configurations are degenerate and both are easy to land on by accident.

The folded arm. Set β=α±π\beta = \alpha \pm \pi and the tracing point is back at the pivot. That configuration is on every curve through the origin at every driving angle — which is three of this catalogue’s nine, since a polynomial with no constant term vanishes at the origin — and a scan taking the first root it finds picks it. The machine that comes back has a flattened parallelogram carrying β\beta and will not move at all: the residual grows exactly in proportion to the driving angle, every joint stays where it was, and no gate on this site says why.

A flat translator. Two term directions parallel, so a parallelogram in the ripple has no area and its two bars are one equation. On the cubic at the naive start that cost eight ranks of a hundred and thirty-four, and the machine again would not move.

Both are the same condition — a parallelogram with no area — so both are scored the same way: the worst sin(θiθj)|\sin(\theta_i - \theta_j)| over every pair the machine builds a parallelogram from, together with the arm’s own sin(αβ)|\sin(\alpha - \beta)|. The score is computed from the closed forms of the term angles rather than by compiling, because compiling a five-hundred-bar linkage at each of three hundred candidate starts to discover it is singular is the expensive way to learn something arithmetic already knows.

The scores are published with the machines. The line starts at 1.0001.000 — perfectly clear — and the quintic at 0.0870.087, which is a machine whose worst parallelogram is five degrees from flat and is the best start its eighteen term directions allow.

One freedom, whatever the count says. Every one of these machines has exactly one degree of freedom, measured as the number of unknowns minus the rank of the constraint Jacobian. Unbraced, the count agrees. Braced, the count says the largest machine has -153 — that it cannot move, by a wide margin — and the rank says it still turns exactly as it did. The gap is one equation per brace and every one of those equations is implied by the others. This is the constraint field's oldest example, at a scale nobody would try by hand: a count that is wrong by a hundred and fifty-three about a mechanism that works.
Fig. 7 The bookkeeping at scale: unknowns, equations, and the rank that says the mobility is one.

One freedom, and what that means at four hundred bars

The mobility bookkeeping is worth doing once, here, where it is small enough to follow.

The arm has two degrees of freedom: two free joints, four coordinates, two bars. Every gadget adds exactly as many equations as it adds unknowns — a mean is two coordinates and two bars, a reflector four and four, an offset two and two, a translator two and two — so no gadget changes the count. The closing line removes one. The crank removes the other.

So the machine is square: thirty-six unknowns, thirty-five equations plus the crank’s two in place of the arm’s first bar, and a Jacobian of full rank. Newton on a square system, with a unique nearby solution.

That property survives to any size. The quintic’s machine has four hundred and eighty unknowns and one degree of freedom, and the count is right about it — which is a mild surprise on a site whose constraint field is mostly about counts being wrong, and which stops being true the moment the braces arrive.

Why not just check the residual and be done

There is an obvious objection to all the instrument-building above: the closure residual is already at 101410^{-14}, so what is the curve residual for?

Because they are different questions, and this field’s central result is that the first cannot answer the second.

Assemble the same twenty bars sixteen different ways — a parallelogram has two closures, and there are four of them — and eight of the sixteen converge. Four put the tracing point on the curve. Four put it somewhere else entirely, with a polynomial reading of 0.150.15 where zero was wanted.

All eight close to 9.6×10159.6\times10^{-15}.

Every way the same bars can be put together. The machine compiled from a rectangular hyperbola has 4 parallelograms, and a parallelogram's four bars also close as an antiparallelogram — so there are 16 ways to assemble it. One mark per way. 4 of them put the tracing point on the curve, 4 put it somewhere else, and 8 do not close at all. The ones that are wrong are not broken: they satisfy every bar to 9.6e-15 while the polynomial at their tracing point reads 1.5e-1. This is the gap in Kempe's original argument, and no tolerance on the closure could ever have found it.
Fig. 8 Every way the same bars can be put together. Four on the curve, four closed and elsewhere, eight that will not close at all — and the wrong ones satisfy every bar as well as the right ones do.

No tolerance on the closure separates those columns, at any level, because they are not separated in that quantity at all. That is why this field carries three instruments rather than one, and why the rung on branches is where the argument actually lands.

It is also the answer to a question the rest of this site has never had to ask. Every gate here checks that a loop closes; this is a mechanism whose loops close perfectly and whose output is wrong, and the only thing that can say so is a measurement taken from outside the constraint set.

What has and has not been shown

Shown. A polynomial goes in; a mechanism comes out; the mechanism assembles, moves, and puts its tracing point on the curve to fourteen decimal places over an arc of its motion. The pipeline is mechanical throughout — no search, no fitting, no choice made by judgement — and the check at the end shares nothing with the construction.

Not shown, and the next four rungs are about it. That the machine works over its whole turn: it does not, and the arc is measured for every curve. That the machine has one assembly: it has sixteen, of which four draw the curve and four draw something else at the same closure residual. That the machine is a sensible way to draw a hyperbola: it is twenty bars where two crossed rods and a slot would do, and the cost rung is about how much worse that gets.

What has been shown is enough for one sentence, and it is the sentence the field exists to support: a curve given as an equation can be turned into a linkage by a procedure, and the linkage draws it exactly. Everything after this is the price.

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

Essays that link to this one from their own argument.

The objects this essay names

Each one links to every other essay that touches it.

Compiled linkageLoop closureNewton–RaphsonPrismatic pairSumming chainTracing pointWorking arc