The exponent that barely matters
Worth reading first: How far a primordium reaches · The angle is an output · The bifurcation diagram.
Here is a sentence that stood in this site’s source for three phases:
Repulsion falls off with distance; the exponent barely matters and the site uses an inverse cube, which is what the original paper’s magnetic droplets actually obey.
It is the kind of remark that gets written while doing something else. It is also a claim about a parameter, in a collection whose stated discipline is state the claim, state the test, report the number — and it had no test.
Worse than that: it had no way to be tested. The function that runs the model, iterate(), took a sample count and a growth parameter and a seed angle and no exponent, and called the step function without one. Every figure and every check on this site had been run at a single point of an argument that a comment made a claim about, and nobody could have varied it without changing the code.
That is now fixed, in the least interesting way — the argument is threaded through — and the claim can be looked at. It turns out to be true on one geometry, false on the other, and true for a reason that is better than the claim.
On a stem: the exponent decides whether there is a pattern
Grow a stem from a coarse start, let the rise decline, and count the top blind. Do that at ten exponents, with an ensemble at each — five runs separated by a fifth of a degree of placement noise, which is a twelfth of what a lattice tolerates and enough to make five runs five runs rather than one run reported five times.
The result has three regions and only the middle one is untidy.
Below about 0.9, no run makes a lattice. The divergence scatters over forty degrees, which is what an arbitrary sequence gives. The counter still returns a pair, because a counter always does; the scatter test says there is nothing there for it to have counted.
Above about 1.25, every run makes the same lattice. From to — a sixfold range, from a rule whose interaction is barely local to one that is nearly nearest-neighbour — every run ends on 8/13, at a divergence within a degree of 137.5°, with a scatter between 0.72° and 1.01°. The transitions each of them makes land within a twentieth of a rung of where the static ladder puts them, and within that of each other.
Between them is a band, and it is ragged. At 0.9 the share of runs that order themselves is 38 per cent; at 1.0 it is zero; at 1.12 it is 88. It does not move monotonically, and reporting a single critical exponent would be tidier than the measurement supports. A first attempt bisected for one and returned a different answer every time the ensemble size changed, which is what happens when there is nothing there to find.
So on a stem the exponent controls something absolute — whether a lattice exists — and controls nothing else. There is no room in that top region for a lag, a shifted angle, or a different ladder to depend on the range of the interaction, because everything in it is identical.
On a disc: three and a half degrees across a sixteenfold range
The disc model is the one the original comment was about, and there the claim holds.
Sweep the exponent from 0.5 to 8 at a growth parameter of 0.4 and the settled angle runs from 139.50° down to 136.00°. That is a real dependence — it is not noise, it is monotone, and every step of the exponent moves it in the same direction — and it is three and a half degrees, on a branch that is 137.5° wide in the sense that matters. Every exponent tried classifies as the golden angle.
“Barely matters” is a fair description of that. What is worth more than the description is the reason, which the comment did not have and which the previous essay in this ladder supplies.
In the disc model the elements drift outward exponentially with age — an element of age sits at radius — so the number within a distance grows like the logarithm of that distance. Every neighbourhood is effectively local whatever the exponent, because the elements that would have made a long-range rule long-ranged are exponentially far away. The disc model cannot tell a long-range rule from a short-range one because its geometry does not deliver enough distant neighbours for the difference to show.
That also disposes of the natural worry about the sweep. If the rule can only see a fixed number of neighbours, a long-range rule is being truncated into a short-range one and the insensitivity is an artefact of the window. Measured, it is not: widening the window from eight elements to a hundred and forty changes the settled angle at by nothing at all, to the resolution of the sample grid. The window is not binding because the geometry has already made it irrelevant.
What the drift is, since it is not zero
Three and a half degrees is small and it is not nothing, and a monotone dependence is the sort of thing worth having an account of rather than filing under noise.
The direction is that a shorter-range rule settles on a smaller angle: 139.50° at , 137.00° at , 136.00° at . The golden angle sits at 137.5077°, so the sweep passes through it somewhere between 2 and 3 rather than sitting on it.
That is what one would expect from a discrete model and it is worth spelling out, because it is easy to read a curve passing through the famous number as a confirmation of something. The golden angle is the limit of an infinite process — the divergence at which no family of parastichies ever lines up, reached by a tree of forks with infinitely many levels. A model with a finite number of elements, each placed among a finite number of neighbours, is working with the first few levels of that tree only, and where it settles depends on how many levels its neighbourhood spans. A shorter-range rule sees fewer of them.
So the drift is a finite-size effect rather than a physical dependence, and the honest statement of the disc result is slightly weaker than “the exponent barely matters”: the exponent moves the answer by about as much as the model’s own finiteness does, and in the direction finiteness would move it. It happens to cross the golden angle inside the range because the range includes the exponent this site has always used, which is a coincidence of the sweep’s bounds rather than a finding.
Two organs, one rule, opposite answers
Putting the two together gives the finding this ladder is really about.
The same rule with the same exponent is nearly parameter-free on a disc and sits on a cliff edge on a stem. Nothing about the rule changed between those two sentences. What changed is how fast the organ delivers neighbours with distance, and that is a growth law rather than a shape.
The consequence for this collection is a licence and a warning in the same breath.
The licence: every result on this site that came out of the disc model — the golden angle as an attractor, the bifurcation diagram, the whorled regimes at large growth — is robust to the one arbitrary constant in the rule. That is worth knowing, and it had been assumed rather than known.
The warning: those results were obtained in the geometry where the exponent cannot matter, and carrying them to a stem without checking is exactly the move this phase has now measured to be unsafe. The stem results at are fine — 3 is comfortably inside the region where nothing depends on it — but the reasoning “the exponent barely matters, so the choice of 3 is harmless” was a disc argument being applied to a cylinder, and it happened to land inside the safe region rather than being shown to.
What made the claim untestable, and why that is the real defect
The sentence was wrong about a stem and right about a disc. That is a smaller problem than the fact that nobody could have found out.
iterate() did not take an exponent. settle() passed its options through to iterate(), so it did not either. bifurcation() called settle() with a sample count and a run length, and so the whole of this site’s central figure — the one the collection is arranged around — had been produced at exactly one value of a parameter its own docstring described as unimportant.
There is a name for the shape of this on this fleet: a generator only ever run at one point of its own argument space is a generator whose assertions have only ever seen that point. The standard pass in a previous phase found forty-six of them here and made every one take the argument its essays are about. This is the same defect one level up — not a figure run at one point of its parameter, but a model run at one point of its own, with a comment asserting that the point did not matter.
The repair is three characters of plumbing in two functions. The reason it went three phases without being made is that nothing was missing: every gate passed, every figure was correct, and the claim was in a comment rather than in an assertion. A claim in a comment is not gated by anything, and this collection’s habit of writing the reasoning down beside the code has the side effect of producing a great many of them.
The rule that follows, and it is now recorded in the phase plan: if a comment makes a claim about a parameter, the parameter should be reachable and the claim should be a check. Where it cannot be — because the claim is about intent rather than behaviour — it should say so.
Why an untestable claim is worse than a wrong one
It is tempting to file this as a small error corrected. The error is small; what it sat inside is not.
A wrong claim that can be tested is a temporary condition. Somebody runs the test, the claim changes, and the collection is better off — which is most of what the essays here consist of, since a great many of them exist to report that a famous statement is out by a factor of two or true of a branch rather than of plants.
A claim that cannot be tested is a permanent condition, and it is invisible in every way this collection normally notices things. Every gate passed. Every figure was correct at the point it was drawn. The claim was accurate about the model as it stood, in the sense that varying the parameter was not something the model did. Nothing anywhere was inconsistent, because a claim about behaviour that cannot be exhibited cannot be inconsistent with anything.
The only thing that would have surfaced it is somebody wanting to vary the parameter for another reason — which is what happened, two phases later, because the scale phase’s negative result about lags needed a long-range rule to test against.
That suggests a modest general rule, and it is the one this phase has adopted. A parameter a comment makes a claim about should be reachable from outside. Not necessarily swept, not necessarily gated — reachable, so that the claim is the kind of thing somebody could check on an afternoon when they have a reason to. The cost of that here was two function signatures.
The stronger version — every claim in a comment should be an assertion — is not adopted, because most comments make claims about intent, history and design, and those are not testable in the sense meant. What is adopted is the narrower rule about parameters, which covers this case exactly and would have covered it three phases ago.
What is left over
Two things this measurement does not settle, both recorded rather than glossed.
The disc sweep is at one growth parameter. At the drift with exponent is 3.5°, and towards the coarse end of the range the model’s own resolution is a couple of degrees, so what is being measured near the edges is partly the sampling. The claim holds across the range where the model converges cleanly, and the essays about that range already state where it is.
The stem sweep is at one rate and one starting rise. The runs all decline from 0.4 to 0.004 at seventy nodes per rung, which is a configuration chosen because the previous phase established that the ladder is walked cleanly there. Whether the band sits at the same exponents when the stem is hurried, or carried further, is not measured. The direction that would be worth checking is the fast one: a hurried stem has fewer placements in which to establish the contrast between its nearest neighbours and the rest, and the band might widen.
And the stem’s ragged band is not explained. Between 0.9 and 1.25 the share of runs that order themselves goes 38 per cent, zero, 88 per cent, which is not monotone and is not noise in the ensemble — the same ensembles repeated give the same shares. Something structural is happening in that band and this phase does not know what. It is written down here because a band reported as a band, with its non-monotonicity visible, is honest, and a critical exponent quoted to three decimals from a bisection through it would not have been.
One guess is available and it is only a guess. The shell measurement puts the ratio between the nearest neighbours’ influence and the next shell’s at 8.2 at and 20.9 at , and a lattice forms reliably at the upper figure. In between, the rule is placing each element with respect to its immediate neighbours most of the time and with respect to a broader neighbourhood the rest. A pattern assembled that way would order itself when the early placements happen to fall the right way and not otherwise, which would produce shares between zero and one that depend on the history of the run rather than smoothly on the exponent — and shares that do not move monotonically, because the histories at neighbouring exponents are unrelated to each other.
That is consistent with what is measured and it predicts something checkable: in the band, the outcome should depend strongly on the starting divergence, where above the band it does not depend on it at all. The starting divergence is already a parameter of the runs and the check is an afternoon’s work. It is not done here, and it is the first thing to do if this band is ever worth resolving.
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.
Shares its objects with
Essays that name at least two of the same things, and that neither author linked.
- Noise is not a slow rate — both name branch, divergence angle, ensemble, ladder, noise, the placement rule, rise
- Where the noise gets in — both name branch, divergence angle, meristem, noise, the placement rule, rise
- A pattern with a rate — both name branch, noise, the placement rule, repulsion, rise
- Counting the spirals — both name branch, divergence angle, nearest neighbour, noise, rise
- The rate decides the branch — both name branch, ladder, noise, repulsion, rise
- Two degrees of scatter — both name divergence angle, ensemble, ladder, noise, rise
Named objects
A flat tag is an object no other essay names yet.
BranchCylinderDivergence angleEnsembleLadderMeristemNearest neighbourNoiseThe placement ruleRepulsionRiseUntested claim