Where an optimiser starts
The fits in the previous essay converged in a few hundred evaluations and landed on sensible linkages. That happened because they were started from a linkage that already worked — the Chebyshev interpolant, obtained from a 3 × 3 linear solve.
Take that away and the problem is different in kind.
The dependence is not a defect of the particular optimiser used here. Nelder–Mead is a local method and so is every gradient method, every trust-region method and every quasi-Newton method; they differ in how efficiently they descend, not in whether they can leave the valley they started in. A method that could would have to be global, and global methods on a nine-dimensional non-convex objective are expensive enough that the seed still matters, because it decides how much of the budget is spent finding a reasonable region at all.
What the objective looks like
Before listing them, one thing is worth naming: none of these properties is unusual for an engineering objective. They are what happens whenever the quantity being minimised is computed by simulating the thing being designed rather than by evaluating a formula. A simulation can fail, and a failure is not a large value.
Three properties, and each of them defeats a different piece of standard optimisation practice.
It is not everywhere defined. Computing the structural error means solving the mechanism at 121 crank angles, and for many parameter values it does not assemble at some of them. There is no error to report there — not a large error, no error — and the code substitutes a penalty, which makes the objective a function with a cliff around a region whose boundary is itself the answer to a nonlinear problem.
It is non-convex, with many local minima. Different assembly branches, different Grashof classes, and different ways of arranging three link lengths to produce roughly the right relation all give distinct basins.
Its feasible region is disconnected. A crank-rocker and a double-rocker that both approximate the same function are separated by parameter values where neither works. A local search cannot travel between them, because there is no path along which the objective is defined.
That third property is the one that matters most and is the least discussed. It means the search is not “finding the minimum” — it is finding the minimum of the component it started in, and which component that is was decided before any optimisation happened.
A fourth property is worth adding to the three above, because it is the one that makes the whole objective awkward to reason about: the objective is not a smooth function of the design even where it is defined. The structural error is computed from solved positions, and the solution the solver returns depends on which assembly branch it is on. Move the parameters far enough and the branch the seed selected ceases to exist, the solver lands on the other one, and the error jumps discontinuously — not because the design got worse but because the mechanism being measured changed identity.
Nothing in the objective knows about branches. That is a limitation shared with essentially every published approximate synthesis, and it is why branch consistency appears in the literature as an explicit constraint rather than as something the error function handles.
So where does the guess come from
There are three answers in practice and this site uses the first.
From an exact construction. Prescribe as many conditions as there are free numbers, solve exactly, and use the result as the seed. Freudenstein’s linear solve for three angle pairs; Burmester’s construction for three or five poses. The seed is a linkage that satisfies some of what is wanted exactly, which is generally in the right region of parameter space for satisfying all of it approximately.
From an atlas. Look the desired curve up in a catalogue of coupler curves, read off the proportions of the linkage that draws something like it, and start there. This was the practical method for a century, and the atlases — Hrones and Nelson’s is the famous one, some seven thousand curves — were produced precisely so that a designer could find an approximate answer by eye.
From a global search. Random restarts, or a genetic algorithm, or a systematic sweep of the parameter space. This is what a modern paper on the subject usually does, and it is expensive: the objective costs 121 mechanism solves per evaluation, and a global method needs thousands of evaluations to say anything.
The interesting thing about that list is the middle entry, because it looks like the obsolete one and is not.
What an atlas is for now
A coupler-curve atlas is a table of what four-bars draw. It was compiled by drawing, it was consulted by eye, and it was made redundant by the ability to compute a coupler curve in microseconds. The obvious conclusion is that nobody needs one.
The obvious conclusion is wrong, and the reason is the disconnected feasible region.
A computer can evaluate a coupler curve instantly. What it cannot do instantly is answer “which linkage draws something like this shape”, because that is a search over a nine-dimensional space with a non-convex objective — the exact problem the atlas exists to short-circuit. The atlas is a precomputed index from shape to parameters, and an index is not made obsolete by the operation it indexes becoming fast.
So the modern use is the same as the historical one with a different consumer. A designer used to look up an approximate answer and then refine it by hand. A program looks up an approximate answer and then refines it with an optimiser. The lookup is doing the same job in both cases: choosing which component of the feasible region the refinement is going to happen in.
The atlas has one property the optimiser cannot have, which is that it is complete over what it contains. Seven thousand curves is seven thousand basins visited, at a cost paid once, decades ago.
Nine dimensions is why the atlas was worth compiling
The size of the space is the whole reason a lookup table beats a search, and the numbers make it concrete.
A four-bar path generator has nine free parameters: two ground pivots, three link lengths and a coupler point. Sampling that space at even ten values per dimension is designs, and each one requires a coupler curve to be traced and compared against the target before it can be scored. That is not a computation anybody runs to answer one design question.
An atlas cuts the dimension down before the search begins. Scale, rotation and translation of the whole linkage do not change the shape of the curve, only its size and placement, so three of the nine parameters can be normalised away — leaving a six-dimensional space of shapes, and a catalogue that samples it coarsely is a usable index. Hrones and Nelson’s four thousand pages sample it at intervals a designer can interpolate between by eye.
The reduction from nine to six is the useful observation, and it is the same one that makes cognates interesting: a coupler curve is a shape, and a shape has fewer degrees of freedom than the mechanism that draws it. Roberts’s theorem says three different linkages draw each shape, which is the extreme version — the map from linkages to curves is three-to-one before scale and placement are even considered.
The same problem, one field over
This is not the first time this phase has met a method that explores by starting somewhere and following.
The assembly-mode search starts Newton from four hundred guesses and reports what it lands on. Monodromy starts from one solution and walks the parameters in loops. Both are searches, both stop when they stop finding things, and neither can report its own completeness.
An optimiser is the same shape of thing with a different objective. It starts somewhere, follows a downhill direction, and stops when it cannot go further — and “cannot go further” is a statement about the neighbourhood rather than about the space.
The remedy in that field was to find a method that enumerates rather than searches, and there is no such method here. Approximate synthesis over a continuous objective has no Bézout number: there is no count of local minima known in advance, no bijection with the solutions of an easy problem, and nothing to be complete with respect to.
So the honest statement about every optimised linkage on this site is: it is the best in its neighbourhood, and the neighbourhood was chosen by the seed.
What a basin looks like from inside
There is a specific failure mode worth describing, because it is how a bad seed announces itself and it is easy to mistake for something else.
A search started in a poor component converges. It converges quickly, it reports a small final simplex, and it returns a linkage. Everything about the run looks successful. The only symptom is that the error is larger than it should be — and “larger than it should be” requires knowing what it should be, which is exactly what the search was run to find out.
So a single optimisation run carries no information about whether its answer is good. It carries information about whether the search went well, which is a different question and the one the diagnostics report on.
The cheap partial remedy is to run from several seeds and compare, which converts the problem from “is this the best” to “is this the best of the ones tried” — a lower bound, with all the properties this phase has been finding in lower bounds. It is better than one run and it is not a guarantee.
The expensive remedy is a global method, and it buys a different kind of ignorance: a genetic algorithm or a multi-start over thousands of designs will find a good component with high probability and still cannot say it found the best one. There is no analogue here of tracking every path.
Why the exact constructions are not obsolete either
That gives the classical material a role it is not usually credited with, and it is worth stating clearly because the standard telling has exact synthesis being superseded by numerical optimisation.
An exact construction produces a linkage that satisfies a specified subset of the requirements perfectly, in closed form, with no iteration and no guess. As a design, it is frequently unusable — 176 of 1,176 three-position syntheses can be built, and two of six five-position ones. As a seed, none of that matters: an unusable linkage that reaches three of the prescribed poses is still in a part of the parameter space where the poses are roughly reachable, and a defect that makes it unbuildable is exactly the thing the subsequent optimisation, with its branch and circuit constraints, will be pulled away from.
So a construction whose direct output is discarded four times in five is still supplying the one thing the optimiser has no way to generate. The measured statistic that reads as a failure of the classical method is not a statistic about its usefulness in the pipeline it is actually used in.
That is a slightly awkward conclusion for an essay in a field whose earlier rungs presented those constructions as answers. They were presented that way honestly — Burmester’s construction is an answer to the question it is asked — and this rung is where the question changes and the answer becomes an ingredient.
What this site does not do
Three gaps, named rather than implied.
No global search. Every fit here starts from an interpolant, and no attempt is made to find out whether a better linkage lives in some other component of the feasible region. Doing that properly means a multi-start over a sampled parameter space, and the cost is the objective’s cost multiplied by however many starts, which is a build this site cannot pay for.
No atlas. The site computes coupler curves and does not index them. Building an index from shape to parameters is a substantial piece of work whose output is a data file rather than an argument, and it has not been done.
No constrained optimisation. Grashof condition, transmission angle, branch consistency and packaging enter the objective here only through a penalty on samples that fail to assemble. A serious tool writes them as constraints and uses a method that respects them, which changes the optimiser and the search entirely.
Each of those is a real piece of engineering rather than a footnote, and each would be a phase’s worth of work on its own. Each of them would make the fits better and none of them would change the finding, which is about the dependence on the seed rather than about the quality of any particular fit. An optimiser that started somewhere else would find something else, and there is nothing in the optimisation that says which is better.
The seed decides more than the answer
One consequence of all this deserves separating out, because it changes how a design should be documented.
If the answer depends on the seed, then the seed is part of the design record. A linkage reported as “the result of a least-squares fit to this function over this range” is under-specified: two engineers running the same fit from different starting points get different linkages, both correctly described by that sentence.
The site’s own fits state their seed for that reason — fitFunctionGenerator reports the starting parameters alongside the answer, and the seed is the Chebyshev interpolant unless something else is passed. That is not thoroughness for its own sake. It is the difference between a reproducible result and a number.
The same applies with more force to the classical half of the field. A three-position synthesis is reported by its two coupler-pin choices, because those are what select a solution from a two-parameter family, and a five-position one by which pair of Burmester points was used. In every case there is a choice upstream of the construction, and reporting the output without it describes a linkage that cannot be rebuilt.
The practical shape
Reduced to a working procedure, the pipeline this field arrives at is:
- Choose the objective, which is a decision about what accurate means and is not the optimiser’s to make.
- Get a seed from an exact construction or a catalogue — something that satisfies part of the specification exactly.
- Check the seed is buildable by sweeping it, because a construction cannot check itself.
- Refine locally, with the constraints that matter written into the objective.
- Sweep the answer again, because an optimiser that was never told about circuits will happily produce a linkage that has a defect.
Steps 3 and 5 are the ones this site keeps insisting on, and they are the ones that are absent from most descriptions of the process. A linkage that emerges from an optimiser is exactly as much in need of a sweep as one that emerges from a compass, and for the same reason: neither the construction nor the objective contains a statement about whether the mechanism can get from one place to another in one piece.
The rung’s conclusion is worth stating as a general relation between two kinds of method, because it is the opposite of the usual account. Exact constructions are normally presented as the classical thing that numerical optimisation superseded — closed forms for the cases that happen to have them, replaced by a search that works on everything. What this rung measures is that the search needs them: its objective is non-convex, disconnected and not everywhere defined, so the answer is decided by the starting point, and the only source of good starting points is the constructions. So the two are not successive generations of the same method. They are two halves of one method, in which the construction supplies a point that satisfies some of the conditions exactly and the search trades that exactness for the rest. Read that way the field’s four rungs of exact synthesis stop being history and become infrastructure — and a site that had only the optimiser would have a method whose most important input it could not produce.
About the same objects
Not linked from either essay — found by the objects both name.
- The problem the other way round atlas · coupler curve · kinematic synthesis
- Five positions, and what is left branch defect · kinematic synthesis
What links here
The 8 of 10 essays linking to this one that name the most of the same objects.
- Prescribing a curve rather than points The problem backwards
- The linkage that is only nearly right The problem backwards
- A demand that is an equation The curve as an equation
- A dwell made from a curve Linkages
- What universality is worth The curve as an equation
- A circle costs one term The curve as an equation
- A construction with no arithmetic in it The motion, not the mechanism
- Exact costs more than close The curve as an equation
The objects this essay names
Each one links to every other essay that touches it.
Approximate synthesisAtlasBranch defectCoupler curveInitial guessKinematic synthesisNelder meadObjective function