The angle is an output
Worth reading first: A head is a set of points.
The golden angle is usually introduced as a number that plants use, which raises an obvious question that popular accounts step around: how would a plant know it?
The answer is that it does not have to. The angle is not an input to anything. It is where a very simple rule ends up.
The rule
Douady and Couder wrote it down in 1992 and it takes one sentence.
New elements appear on the boundary of a growing meristem. Each one, once formed, drifts outward as the meristem grows. The next one appears at the angle where the repulsion from all the existing elements is least.
That is the whole model. It has one parameter — how fast the elements drift outward relative to how often they appear — and it contains no reference to the golden ratio, to Fibonacci numbers, or to spirals. A reader looking for where 137.5° enters will not find it, because it does not enter.
The repulsion falls off with distance, and the exponent barely matters; this implementation uses an inverse cube, which is what the magnetic droplets in the original experiment actually obey.
What it settles on
Run it and the divergence angle it produces settles down.
From a seed angle of 112°, the last thirty steps of a run give 137.00° with a spread of exactly zero. From 277° — a hundred and sixty-five degrees away — the same. Two runs with nothing in common but the rule arrive at the same place and stay there.
That is what an attractor is: a value the system moves toward from a wide range of starting conditions, and stays at once it arrives. The golden angle is not stored anywhere in the rule; it is a property of the rule’s dynamics.
Why the rule finds it
The intuition is short and the precise version is a theorem.
A new element placed at angle δ from the last one is well away from its immediate predecessor. But it is also, after many steps, at angle 2δ from the one before that, 3δ from the one before that, and so on. If δ is a simple fraction of a turn, then after a few steps some multiple lands almost exactly on top of an earlier element, and the new one has nowhere good to go.
So the rule is under pressure to choose an angle whose multiples avoid whole turns for as long as possible — an angle badly approximated by fractions. And there is a unique number that is worst-approximable, which is the golden ratio, and its angle is 137.508°.
The rule does not know any of this. It has an energy landscape with a minimum, and the minimum happens to be there, because avoiding the neighbours over many generations is the same problem as avoiding rational approximations. That equivalence is where the arithmetic and the biology meet, and it is the only place they do.
Convergence is not exactness
The model here settles on 137.00°, not 137.508°, and the half-degree gap is worth accounting for honestly rather than rounding away.
Part of it is resolution: the boundary is sampled at 720 points, so the model cannot express an angle more finely than half a degree. That part is worth doing the arithmetic on, because it turns out to be nearly the whole of it — 137.508° less 137.00° is 0.508°, which is 1.02 steps of a 720-point grid. The gap is one grid step, and the other two causes below are needed to explain a residue of about one hundredth of a degree rather than a half. Part of it is the finite window — only the nearest few dozen elements are counted, and the true problem involves all of them. Part of it is the discreteness of the model itself, which places elements one at a time on a boundary of fixed radius while a real meristem does something continuous.
The claim the model supports is therefore “settles near the golden angle”, and the site says that rather than the stronger thing. What makes it convincing is not the precision but the independence: an angle within half a degree of 137.508°, reached from unrelated starting conditions, by a rule with no reference to it.
What the model establishes
Three things, and it is worth separating them because they are usually run together.
That the angle need not be stored. A system with no memory of any particular angle produces one. That removes the mystery the popular framing creates, which is the mystery of how a plant knows a transcendental-looking number.
That the angle follows from crowding. The rule is nothing but “get away from the neighbours”, so any process with that character will land in the same place. That is a strong statement and it makes a prediction: systems with nothing biological in them should do it too, and they do.
That there are other answers. The parameter changes what the rule settles on, which is the next essay, and it is the part that turns a constant into a diagram.
What it does not establish
It does not establish that any plant works this way.
The rule is an abstraction of a physical situation — elements that repel, on a growing boundary — and the real mechanism in a plant is auxin: a hormone whose transporters concentrate it where it is already concentrated, so that an existing primordium depletes its neighbourhood and the next one forms where the depletion is least. That is a different process with the same character, and it was worked out decades after the geometry.
The relationship between the two is the honest one to state: the dynamical model shows what kind of process produces the pattern, and the biology says which process it is. Neither substitutes for the other, and a model reproducing the pattern is not the same as explaining it.
The interaction window, and a bug that looked like physics
The rule as stated sums the repulsion from every existing element. In practice the sum is truncated — elements far from the boundary contribute almost nothing, and carrying them all makes a bifurcation sweep intolerably slow.
The first implementation truncated at a fixed count: the most recent forty elements, say. That is wrong, and the way it is wrong is instructive.
How many elements lie within a given radius ratio of the boundary depends on the growth parameter. At high G each element clears the neighbourhood quickly, so forty is far more than enough. At low G they crawl, so the forty most recent are all still within a hair of the boundary and the ones that matter — slightly older, slightly further out, still exerting force — are outside the window.
The symptom was that the model failed to converge at low G, which is a real phenomenon and was therefore easy to accept. The genuine limit is at G ≈ 0.18; the buggy version put it near 0.5, and the difference was invisible without knowing what to look for.
The fix is to scale the window: the number of elements within a fixed radius ratio is log(ratio)/G, so the window grows automatically as the parameter shrinks. That recovered the middle of the range and left the genuine limit where it is.
The general lesson is one this site keeps meeting. A numerical parameter chosen for speed can produce a result that reads as a property of the system, and the only defence is to derive the parameter from the model rather than pick it.
Two runs, and what agreement is worth
The convergence demonstration uses two runs from seed angles a hundred and sixty-five degrees apart, and the design of that test is deliberate.
A single run settling on 137.5° is weak evidence: a rule with a strong preference built into it would do that too. What distinguishes an attractor from a stored constant is that unrelated starting conditions arrive at the same place, and the further apart the starts the stronger the statement.
The last thirty steps of each run agree to a spread of exactly zero, which is the useful form of the result: not “both runs end near 137.5°” but “both runs stop moving, at the same value”.
A related check runs the model with the repulsion switched off and confirms it produces nothing of the kind — an obvious control, and the sort that occasionally fails and reveals that a figure was drawing a Vogel head all along.
What the model does not contain
Worth enumerating, because the claim being made is a negative one and negatives are easy to state loosely.
There is no golden ratio in the code. No φ, no √5, no 137.5, and no constant that evaluates to any of them.
There are no Fibonacci numbers. The counts that come out are found by a separate counter handed only coordinates, and it does not know what answer to prefer.
There is no spiral. The rule places points; the spirals are a way of looking at the result, not an ingredient of it.
There is no optimisation of packing. The rule is local and greedy — the next element goes where the repulsion is least now — and it never evaluates any global quantity. The packing measurements are done afterwards, by different code, and they do not single out the answer the model reaches.
A reader who wants to check that list can grep for it, which is the point of stating it as a list.
From a local rule to an arithmetic property
The gap this essay leaves open is the interesting one, and closing it is a mathematical rather than a computational job.
The rule knows nothing about continued fractions. The property that makes the golden angle special is entirely about continued fractions. So why does a greedy local rule find the number with the worst rational approximations?
The short answer is that a rational divergence angle makes the pattern periodic: at p/q of a turn every qth element is on the same ray, which stacks elements radially and leaves large wedges empty. A greedy rule that always fills the biggest gap is driven away from any such value, and away from anything close to one, because near a rational the pattern is nearly periodic and nearly as bad.
Being driven away from every rational, in proportion to how simple the rational is, is a description of maximal irrationality. The rule does not compute that property; it is pushed to it.
That argument is a sketch and not a proof, and rigorous versions exist for particular interaction laws. What is checkable here is the endpoint: the settled angle across the parameter range, and the arithmetic property measured directly, meeting at a number neither of them was told about.
Greedy, local, and no memory of the answer
Three properties of the rule are worth stating together, because between them they close off the ways an angle could be smuggled in.
It is greedy: the next element goes at the current minimum of the repulsion, with no lookahead and no revision. Nothing evaluates whether the resulting arrangement will be good.
It is local in time: the state is the positions of the existing elements, and the rule has no record of the angles it has produced. It cannot be converging on a value it remembers, because it does not remember any.
It is local in space in the sense that matters: the repulsion falls off steeply, so the placement is decided by the nearest few elements rather than by the head as a whole.
A rule with all three properties arriving reliably at a specific irrational number is the surprising part, and it is why the result is worth having rather than being an elaborate restatement of the input.
What the settled angle is settled to
A pedantic but load-bearing point about the reported numbers.
The model settles to 137.00° in the run quoted, not 137.508°. The difference is the boundary sampling — 720 samples around the circle is half a degree of resolution, and the minimum is located to about that.
So the honest statement is that the model settles on a value indistinguishable from the golden angle at this resolution, not that it computes the golden angle. Raising the sample count tightens it, at a cost that a bifurcation sweep cannot afford at every point.
That is worth saying because the alternative — quoting 137.5° from a model whose resolution is 0.5° — would be reporting the expected answer rather than the measured one, which is precisely the failure mode this site keeps finding elsewhere.
Where the rule came from and what replaced it
A short note on lineage, since the rule is presented here as if it were obvious and it was not.
Before 1992 the standard accounts of phyllotaxis were descriptive: lattices, parastichy numbers, transitions between them, all correct and none of it explaining why a particular angle occurs. The competing explanations were teleological — the angle is optimal, therefore selected — which does not survive the packing measurements.
Douady and Couder’s contribution was to propose a rule with no reference to the outcome and show that it produces the outcome anyway. That is a categorically different kind of explanation, and it is the reason this essay is the hinge of the site.
What came after was mechanism: the auxin transport work of the 2000s, which identified what plays the part of the repulsion in a real meristem. The rule survived that — the chemistry filled in the term rather than replacing the model — which is unusual and is a point in its favour.
What is left to explain
The essay closes with a boundary rather than a conclusion, because the account is incomplete in a specific and interesting way.
Settled: a local repulsion rule on a growing boundary converges on a divergence angle; the angle it converges on is the golden angle across most of the parameter range; a physical system with no biology does the same thing; and the value has an arithmetic property that singles it out.
Not settled: why the greedy rule finds the maximally irrational number, rigorously rather than by the sketch above. Proofs exist for particular interaction laws, and a general statement covering the family does not.
Not addressed here at all: the low-growth regime, where the classical Fibonacci ladder lives and this implementation does not converge.
Listing the third item next to the first is the point of the essay’s arrangement. A model that explains the common case, has a boundary, and leaves a stated gap is in better shape than one presented as complete — and the gap is where the next measurement goes.
The other route to the same output
Expansion produced a second construction that singles out this angle, with no dynamics in it at all, and the agreement between the two is worth having here because it changes what the claim rests on.
The lattice tree is a branching structure of cylindrical lattices. At each branch point three spiral families are equally short and the pattern must keep one of two; keeping the larger every time, from the coarsest fork, gives divergences of 128.571°, 142.105°, 135.918°, 138.140°, 137.270° — converging on 137.508°. Making the other choice once, at the first fork, converges on 99.502° instead.
Two angles, twice, from a construction with no time in it, no repulsion, and no settling.
That matters because the two routes have unrelated failure modes. This model’s failures are about resolution and truncation — a sampled boundary, a finite window. The tree’s are about search and dominance — a missed bracket, a spurious root. Neither can produce the other’s answer by accident.
So the claim that these two angles belong to the subject rather than to a model is now supported from two directions, which is more than the bifurcation diagram could give on its own.
What links here
Computed from the collection, not written here: the essays that point at this one.
Reads more easily once this is understood
Essays that name this one as worth reading first.
- A pattern with a rate
- A steeper rule walls nowhere else
- Destinations only a steep rule reaches
- How far a primordium reaches
- The bifurcation diagram
- The block is the count it was cut from
- The clock a share cannot see
- The exponent that barely matters
- Two-ranked, by two different routes
- A counter on the settling table
- What a steep rule counts as
- Ten sequences, two of them the ladder's
- A list that was a rounding
- Twenty angles instead of nine
- Round numbers are not a sample
- A basin has a width
- The angles left over
- A basin with no upper edge
- A wall or a fade
- What a quarter degree cannot see
- Which minimum was chosen
- Droplets with no biology in them
Shares its objects with
Essays that name at least two of the same things, and that neither author linked.
- The angle is not the object — both name attractor, branch, divergence angle, fibonacci
- The exponent that barely matters — both name branch, divergence angle, meristem, repulsion
- The rate decides the branch — both name bifurcation, branch, fibonacci, repulsion
- How long a stem takes to settle — both name attractor, convergence, divergence angle
- Noise is not a slow rate — both name branch, divergence angle, fibonacci
- Ten sequences, two of them the ladder's — both name attractor, divergence angle, fibonacci
Named objects
A flat tag is an object no other essay names yet.
AttractorBifurcationBranchConvergenceDivergence angleDouady–CouderFibonacciφ, the golden ratioMeristemMeristem growthRepulsion