Where the angle comes from

A hard edge is not a falloff

The prediction was that cutting the neighbourhood at three spacings would reproduce the pattern truncation had manufactured. It does — if the cut is smooth. A hard cut at the same distance produces no pattern at any width, and the reason is that it is the only one of the three whose neighbour set depends on where the candidate is.

Worth reading first: A window that makes a pattern · How far a primordium reaches.

The previous phase left three predictions about what would happen when the placement rule’s loop bound was replaced by a stated cut-off. The first was that a physical cut-off at three spacings would reproduce, exactly, the lattice the truncated loop had manufactured — the clean 8/13 at 137.62° that an inverse first-power rule produces when it cannot see past its neighbours, and does not produce when it can.

That prediction is right and it is right conditionally, and the condition is the finding.

The measurement

Three rules, one exponent, one range. The rule is the site’s usual one at p=1p = 1, where the previous phase established that an unrestricted neighbourhood gives no pattern at all: 43.9° of divergence scatter, which is the scatter of an arbitrary sequence of angles.

how the neighbourhood is cut counts divergence scatter
loop, most recent 3/√h nodes 8/13 137.62° 0.58°
exponential falloff, half-weight 2.1 spacings 8/13 137.58° 0.50°
hard edge at 3 spacings 36.5°
nothing 43.9°

The first two rows are the same pattern. Four hundredths of a degree apart on a quantity whose neighbouring branches sit three degrees apart; the same counted pair; scatters within a tenth of a degree of each other. The prediction held.

The third row is the one nobody expected. A hard cut-off — weight one inside the width, zero outside — at the same distance, produces nothing. Not a different lattice; no lattice. And it is not a matter of the width being slightly wrong, because it does the same thing at every width tried:

hard cut-off, half-weight radius scatter
2 spacings 42.1°
3 spacings 36.5°
4 spacings 36.7°
6 spacings 35.0°

Four widths spanning a factor of three, every one of them incoherent, none of them better than the uncut rule by more than a fifth. Whatever the recency window was doing to make a lattice, cutting by distance with a hard edge does not do it.

One rule at p = 1, cut three waysloop cut at 3/√h: 8/13 at 137.62° with 0.58° of scatter. exponential cut-off, 3: 8/13 at 137.58° with 0.50° of scatter. no cut at all: no lattice, 44° of scatter. The first two agree to 0.03° — the prediction held — and the third is what the same rule does when nothing cuts it.02040130135140145divergence the stem settles on, in degreesscatter of that divergence over the last quarter323 nodes, rise 0.4 → 0.004filled: a lattice · open: none
Fig. 1 Two of the three rows, drawn. The truncated loop and the smooth cut-off land on the same point; the uncut rule has no divergence angle to plot. The prediction the previous phase recorded is the distance between the first two.

Why: the argmin is taken over a landscape, and a hard edge puts steps in it

The rule does not evaluate an energy. It takes an argmin: it sweeps a candidate azimuth all the way around the cylinder, computes the total repulsion at each sampled position, and puts the node at the least of them. What matters is therefore not the value of the energy anywhere but its shape — where it goes up and where it comes down.

Now ask what happens to that shape as the candidate slides.

Under a recency window the neighbour set is fixed before the sweep starts. Every candidate position is evaluated against the same nodes, so the energy is a sum of smooth functions of the candidate’s position, and the landscape is smooth. It may be a bad landscape — a landscape assembled from an arbitrary set of neighbours — but it is continuous, and its minima are minima of an arrangement.

Under a hard distance cut-off the neighbour set is a function of where the candidate is. Slide the candidate a little and a node crosses the boundary: one moment it is contributing dpd^{-p} at d=Ld = L, the next it is contributing nothing. The energy jumps. Do that a few hundred times around the circle — once for every node whose distance passes through LL — and the landscape is a staircase.

The landscape the rule chooses over, at a cut-off of 3 spacingsOne height of an ideal lattice, swept around the circle. The exponential cut-off hands the rule a smooth landscape; the hard one hands it a landscape with steps, because a neighbour enters the sum as the candidate slides past it. Halving the sample resolution multiplies the largest jump between neighbouring points by 2.00 on the smooth curve and by 1.04 on the hard one — which is the definition of the difference, since a smooth function's steepest step is bounded by its derivative and a discontinuity's is not. An argmin taken over steps is pinned to the steps.00.2500.5000.750100.2000.4000.6000.8001candidate azimuth, in turnsenergy the rule minimises, scaled to its own rangeexponentialhard — a step, not a sloperise 0.02 · p = 1two cut-offs, one lattice
Fig. 2 The two landscapes, measured at one height of an ideal lattice. The test is not how big the steps are but how they behave when the resolution changes: halving it doubles the smooth curve’s largest step, as a bounded derivative must, and leaves the hard one’s alone.

An argmin over a staircase is pinned to the staircase. The lowest sampled point is very likely to be one that has just lost a neighbour rather than one that sits between its neighbours — and “sits between its neighbours” is what a lattice is. So the rule stops making one.

The size of the effect is measurable and the figure measures it, though not in the obvious way. How large the steps are is a property of the sample grid — halve the resolution and every step doubles — so the statistic is how the largest step scales. A smooth function’s steepest first difference is bounded by its derivative and therefore halves when the resolution doubles; a discontinuity’s does not move. Measured: halving the resolution multiplies the smooth curve’s largest jump by 2.00 and the hard one’s by well under half that.

That the first two versions of this statistic were measurements of the grid is recorded here rather than quietly fixed, because it is the same class of mistake the essay is about. A number that changes with how finely something was sampled is not a property of the thing sampled.

The rule, 26 steps in, at a growth of 0.40The next primordium goes where the repulsion is least — the marked minimum at 216°. Nothing in the rule refers to any particular angle.05e+51e+61.5e+60100200300angle around the boundary (°)repulsion from what is theregrowth 0.40 · 14 elements in playthe minimum is where the next one goes
Fig. 3 What the rule is doing at every step: sweeping a candidate around the boundary and taking the least energy. Everything in this essay is a consequence of that being an argmin rather than a value.

The general form, and why it is not a numerical detail

It would be easy to file this as a discretisation artefact — the sampled circle has 720 points, a discontinuity between two of them is a numerical accident, use more samples. That reading is wrong, and it is wrong in a way worth being precise about.

Refining the sample grid does not remove the discontinuity. It resolves it better. The energy under a hard cut-off genuinely is a discontinuous function of the candidate azimuth; it has a jump wherever a neighbour’s distance equals LL, and those jumps exist in the continuum. A finer grid finds them more accurately.

So this is a fact about the model, not about the arithmetic. A hard cut-off is not an approximation to a smooth one. It is a different rule, with a different kind of energy landscape, and the pattern it produces — or fails to — is a consequence of the discontinuity rather than of the range.

That has a consequence for anybody writing a model of this kind, and it is the transferable part: if a simulation cuts an interaction at a radius, and the thing being computed is an extremum over position, the cut has put steps into the quantity being extremised. The steps are invisible in every summary statistic and they are what the extremum is finding.

The thing this looks like and is not

There is a family of results in numerical work that this one resembles closely enough to be worth separating from.

A great many computations get the wrong answer because a cut radius was chosen badly, and the standard treatments of that problem — smoothing the boundary, shifting the potential so it goes to zero at the cut, tapering over a few percent of the radius — are all about conserving something. In a molecular dynamics simulation a discontinuous potential does not conserve energy, because a particle crossing the boundary gains or loses some. The taper exists to make the force continuous so that the integration does not drift.

None of that applies here. This rule integrates nothing and conserves nothing. There are no trajectories, no forces, and no accumulated error; each node is placed once, by taking a minimum, and the past is never revisited. The reason a discontinuity is fatal has nothing to do with conservation and everything to do with what an argmin is: it reports where a function is least, and adding steps to a function changes where it is least without changing anything about its overall size or its average or its variance.

That distinction matters for how the fix is read. A tapered potential in molecular dynamics is a numerical convenience with no physical content — nobody thinks the taper is a claim about the substance. Here the falloff is the only physical content the neighbourhood has. It is not a smoothing applied to a hard cut-off to make the arithmetic behave; it is the hypothesis, and the hard cut-off is the thing with no physical content.

Read the other way round, the result says something about how easy it would be to publish the opposite conclusion. A model with a hard cut radius, run at a long-ranged exponent, would report that the rule makes no pattern — and the inference “so long-ranged inhibition cannot produce phyllotaxis” would be completely unsupported, because the failure would belong to the boundary rather than to the range. Both errors are available from the same line of code, in opposite directions, depending on which variable it cuts on.

The same rule at p = 1, cut off at two distancesThe top 220 nodes of two stems grown by an identical rule whose energy does not converge. Allowed to see 3/√h neighbours it produces 8/13 at 137.62° with 0.58° of scatter — a lattice no test on this site would question. Allowed 12/√h it produces 44° of scatter and no pattern. The truncation was doing the work.cut at 3/√h8/13 at 137.62°0.58° of scattercut at 12/√hno divergence angle43.86° of scatterexponent 1 · identical but for the neighbourhood0.58° against 43.9°
Fig. 4 The previous phase’s finding, which this essay is a correction to. The recency cut makes a lattice and the same rule uncut makes none — and now a hard distance cut of the same size makes none either.

Why the recency window escaped it

The comparison is now sharp enough to say exactly what the previous phase’s accident was doing, which is more than that phase could say.

A recency window is also a hard cut — a node is in or out, with nothing in between. But it cuts on a variable the argmin does not range over. The candidate azimuth sweeps; the node’s age does not change while it sweeps. So the discontinuity sits somewhere the rule never looks, and the landscape stays smooth.

That is a genuinely strange property to have been relying on. The truncated rule made a lattice because its arbitrary boundary happened to be arbitrary in a direction orthogonal to the thing being minimised. Move the same arbitrariness into the distance — which is the direction that has a physical meaning — and the pattern goes away.

Where the lattice ends, for two falloff shapes at p = 1Both shapes are read in the same unit — the distance at which the weight has halved — and they still disagree, by 50%: the exponential holds a lattice out to about 3.75 spacings and the gaussian only to about 2.25. So the range is not what decides whether there is a pattern.00.2500.5000.750112345range at which the interaction has halved, in local spacingsshare of runs that still have a lattice3 runs per point, separated by 0.2° of noiseboundaries 50% apart
Fig. 5 And what the smooth cut-offs do over a range of widths. Both shapes hold a lattice out to a few spacings and lose it further out, which is a boundary rather than an artefact — a hypothesis that excludes something. The hard cut-off has no such curve to draw, because it never has a lattice to lose.

What survives of the manufactured lattice

Putting the three results together gives a reading of the previous phase’s finding that is sharper than the one it could state.

The 8/13 at 137.62° was called manufactured, and the word was right. But it was not manufactured out of nothing: an inverse first-power rule with a stated short-range falloff makes exactly that pattern, and does so for a reason — the falloff suppresses the far field, the near neighbours dominate the profile, and the rule places between them. What the truncation was doing, badly and by accident, was being short-ranged.

So there are two claims where the previous phase had one:

A long-ranged rule makes no lattice. True, and confirmed here by the uncut and wide-cut-off rows.

A truncated long-ranged rule makes a beautiful one. Also true, and the explanation is that truncation is a crude way of being short-ranged rather than a bug that produces patterns from nowhere.

The difference matters because the second claim, read as “simulations of this kind manufacture patterns”, is alarming and vague. Read as “a neighbourhood is part of the model and this one was unstated”, it is a specific defect with a specific repair, and the repair has been made.

Whether the rule's energy has a value at allThe sum of d⁻ᵖ over every node within a distance, divided by its value at one circumference, for seven exponents. Above p = 1 the curve flattens — the last doubling of the range adds 0.0 per cent at p = 3. Below it the sum keeps climbing however far the rule is allowed to see, so there is no total to take a minimum of.2468012345range looked at, log₂ turnsenergy ÷ first turna golden-angle stem at a rise of 0.02 · 20000 nodesconverges above p = 1
Fig. 6 The tidy wrong explanation, once more. The total energy converges above an exponent of one, which is true and is about the wrong quantity — an argmin cannot see a term that is the same at every azimuth, and a hard cut-off makes the sum finite while destroying the pattern.

How much of the far field is actually being removed

One number is worth putting beside all of this, because the intuition that a cut-off “throws away a lot” is usually wrong and is wrong here.

At an inverse first power on a cylinder, the neighbours within a distance dd grow linearly with dd once dd passes one circumference, so the total energy diverges logarithmically. That divergence is the thing the previous phase spent an essay being careful about: it is real, and it is about the wrong quantity. What the argmin sees is not the total but the variation of the total as the candidate moves, and the far field contributes almost none of that — under two per cent at p=1p = 1 and under a hundredth of a per cent at p=2p = 2, measured shell by shell.

So a cut-off at two or three spacings is not discarding most of the energy. It is discarding most of the energy and almost none of the signal, and the pattern that appears when it is applied cannot be explained by the sum being made to converge. That was the tidy wrong explanation the previous phase recorded at length, and this essay’s result is another route to the same refutation: if convergence were what mattered, a hard cut-off would work as well as a smooth one, since both make the sum finite. They do not behave remotely alike.

What a cut-off changes is contrast — how much of the profile’s variation the nearest ring of neighbours owns, against the ring beyond it. A smooth falloff at a short range raises it; a wide one does not; and a hard edge raises it too while simultaneously destroying the landscape it was raised in. The next essay measures contrast directly, because it turns out to be the quantity that predicts every result in this thread.

Where the lattice ends, for two falloff shapes at p = 1Both shapes are read in the same unit — the distance at which the weight has halved — and they still disagree, by 50%: the exponential holds a lattice out to about 3.75 spacings and the gaussian only to about 2.25. So the range is not what decides whether there is a pattern.00.2500.5000.750112345range at which the interaction has halved, in local spacingsshare of runs that still have a lattice3 runs per point, separated by 0.2° of noiseboundaries 50% apart
Fig. 7 And what the two smooth shapes do over the range the hard one never manages. A boundary that falls to zero is a hypothesis; a flat line at zero is a rule that never worked.

The refusal

The library refuses two things, and the second is here because of this essay.

A cut-off with no width is refused: a width of zero puts every weight at zero and leaves a flat profile, whose argmin is wherever the sample loop started. That would draw a figure — a single vertical line of nodes up the stem — and no assertion downstream would be about whether the rule was doing anything.

A falloff shape the rule has never heard of is refused by name. Without it, asking for a Lorentzian falloff throws a TypeError from inside the energy loop, several frames down, with nothing in the message about what was asked for. The site’s habit is that machinery refuses what it cannot do and says so; a shape list is the cheapest possible instance of it.

Both refusals are checked. An assertion that has never rejected anything proves nothing, and these two are the ones a spelling mistake would otherwise turn into a figure.

Three cut-offs at the same nominal width of 3 spacingsThe weight the interaction is multiplied by, against distance. They halve at 2.08 (exponential), 2.50 (gaussian), 3.00 (hard) spacings — so a rule described as "cut off at 3 spacings" is three different rules until the falloff is named. Every later figure is read in half-weight radii for that reason.00.2500.5000.7501012345distance from the candidate, in local spacingsweight the interaction is multiplied byhalf weightweight = f(d / 3√h)window runs to 4 widths
Fig. 8 The three shapes, with the one that is not a hypothesis among them. It is kept in the library deliberately: it is what a truncated loop amounts to, written down, and a control that is known to fail is worth what one that works is.

What a reader should take from a negative result

This essay is mostly the report of something that did not work, and it is worth saying why that is published rather than quietly fixed.

The hard cut-off was tried first. It is the obvious implementation — replace “the nearest few nodes” with “the nodes within a radius” and the change is two lines — and when it produced forty degrees of scatter the first reading was that the repair had failed and the truncated lattice was an artefact after all. That reading was wrong, and the thing that showed it was wrong was running the same width with a smooth shape rather than reaching for a conclusion.

The order matters. Had the smooth shape been tried first, the hard one would probably never have been run at all — the prediction would have been recorded as confirmed, the essay would have been shorter, and the fact that an argmin over a discontinuous landscape is pinned to the discontinuities would still be waiting in the library for somebody to walk into. The negative result is what produced the mechanism.

There is also a small piece of discipline in it. The three shapes are in the library together, and the hard one is kept there deliberately even though it is not a hypothesis about anything, because it is the control: it is what the previous phase’s accident looks like when written down honestly, and a comparison against it is the only way to say what the accident was doing rather than merely that it was an accident. A control that is known to fail is worth as much as one that is known to work, and it costs a line in a table.

What is left

The prediction was right about what a physical cut-off makes and had no view about what shape it should be, because the question had not come up. It comes up immediately: two shapes with mechanisms behind them, read in the same unit, disagree about where the lattice ends by half. That disagreement turns out to have an answer, and the answer was measured a phase ago for an unrelated reason.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A flat tag is an object no other essay names yet.

ArtefactCut offDiscretisationDivergence angleThe range of the interactionLattice offsetLocal minimumNegative resultNeighbourhoodThe placement rulePrimordiumRepulsionRiseTruncation