Series

Lsystem — the series

5 essays on one idea, from the one that introduces it to the one that assumes the rest.
  1. An L-system after 4 rewrites of two rules. X → F[+X]F[-X]+X and F → FF, walked by a turtle turning 22.5°. 130 segments, and not one of them knows anything about light, water or auxin.

    L-systems describe, they do not explain

    Two rewriting rules and a turtle produce something indistinguishable from a plant, and there is no plant in it — no light, no water, no auxin, no mechanics. That is worth demonstrating precisely because the output is so convincing.

    part 2 · branching
  2. The number of growing points after each season, for buds that wait no season, one, two, three or four. From one mature apex, each season every mature apex makes a new bud, and a bud branches only after it has waited its delay. With no delay the counts run 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 and settle into growing by 2.0000 a season; with one season the counts run 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 and settle into growing by 1.6180 a season; with two seasons the counts run 1, 2, 3, 4, 6, 9, 13, 19, 28, 41 and settle into growing by 1.4656 a season; with three seasons the counts run 1, 2, 3, 4, 5, 7, 10, 14, 19, 26 and settle into growing by 1.3803 a season; with four seasons the counts run 1, 2, 3, 4, 5, 6, 8, 11, 15, 20 and settle into growing by 1.3247 a season. On a logarithmic axis each settles into a straight line whose slope is its growth rate, the positive root of x^(d+1) = x^d + 1.

    A count set by a delay

    An L-system describes a plant and forbids nothing, because none of its parameters is anything a plant has. One branching grammar is the exception: a mature apex makes a new bud every season, and a bud waits d seasons before it branches. Its counts grow at the root of x^(d+1) = x^d + 1, a delay of one season gives Fibonacci's numbers and nothing else does, and the fourth count already separates a one-season wait from every longer one. So a Fibonacci count in a branching plant is a measurement of how long its buds wait. It is also a fragile one: if one bud in ten waits two seasons instead, eleven counts in a row come out Fibonacci's three times in a thousand.

    part 3 · branching
  3. The rate a branching count grows at, against the chance a growing point dies. Every point dies with probability q each season and the survivors rewrite as before, so the expected counts obey x^(d+1) = (1 − q)·x^d + (1 − q)^(d+1). Substituting x = (1 − q)y returns the deathless equation exactly, which makes every line here straight: the rate is the deathless root multiplied by the survival. No delay runs from 2.0000 to one at q = 0.5000; one season runs from 1.6180 to one at q = 0.3820; two seasons runs from 1.4656 to one at q = 0.3177; three seasons runs from 1.3803 to one at q = 0.2755; four seasons runs from 1.3247 to one at q = 0.2451. Below the marked line a lineage shrinks.

    A count that loses its growing points

    The branching grammar behind the Fibonacci claim has no deaths in it, and a stem that loses shoots is the common case. Giving every growing point a chance q of dying each season leaves the counts a linear recurrence and does exactly one thing to it: the growth rate becomes the deathless root multiplied by 1 − q, at every delay and every death chance, to the last bit a double holds. So each waiting time has a death chance above which its lineage shrinks — a half with no wait, 0.3820 at one season, 0.2451 at four — and a longer wait tolerates less. What does not survive is the count itself: a plant losing one growing point in ten a season shows eight Fibonacci counts in a row one time in ten thousand, against one time in eight for a bud that occasionally waits an extra season.

    part 4 · branching
  4. How many scars a lineage carries for every growing point still alive. Deaths arrive at q times the standing count and the count grows by x a season, so the scars settle at q/(x − 1) — the curves. The dots are the ratio the expected counts actually reach after eighty seasons, and they agree to within 1.0 per cent. A bud waiting no delay at q = 0.1 carries 0.1250; a bud waiting one season at q = 0.1 carries 0.2192; a bud waiting two seasons at q = 0.1 carries 0.3135; a bud waiting three seasons at q = 0.1 carries 0.4128. Each curve runs to infinity at its own threshold, where the living stop outgrowing the dead.

    What a scar is worth

    Counting the scars a dead shoot leaves does not put a branching count back on the sequence it would have had. A scar records a growing point and a dead growing point takes every branch it would have made, so living points plus scars reach 39.2 per cent of the deathless count after twenty seasons at one death in twenty, and 1.9 per cent at one in five — falling without limit rather than closing. What the scars restore is the other number. Scars per living point settle at q/(x − 1) exactly, so a rate with a scar share beside it recovers the death chance and then the waiting time, where a rate alone is reached by a one-season wait losing a tenth, a two-season wait losing 0.64 per cent and no wait at all losing 27.2 per cent.

    part 5 · branching
  5. Every pair of death chances that reproduces each count, for one plant. A plant with a wait of two seasons, apices dying at 0.05 and buds at 0.15: a rate of 1.3351, 0.3098 scars per living point and 0.2225 of its scars left by apices. Each line is every pair of chances at that wait reproducing one count; the dashed lines either side are the same count one per cent high and low. The rate's and the scar share's lines cross at the plant's own pair, at an angle of 11.6°, so a one per cent error lets the pair slide along them — apex chances from 0.004 to 0.097 and bud chances from 0.100 to 0.198. The line for scars sorted by kind crosses the rate's at 51.5°, and read with it the same error leaves 0.044 to 0.056 and 0.134 to 0.166.

    Two ways to die, three things to count

    Giving a branching plant's waiting buds a death chance of their own leaves its counts a linear recurrence, but breaks the collapse onto the survival: the rate becomes the apex survival times the root of y^(d+1) = y^d + r^d, where r is the bud survival over the apex survival. The one-chance reading then names the wrong waiting time on 171 of 477 plants with waits of two to four seasons, shorter when the buds are the fragile ones and longer when the apices are. The two chances are separable from a rate and a scar share, exactly — but the two counts' loci cross at eight to sixteen degrees, so a one per cent error lets the chances wander by a factor of two. A third count is owed, and it is the scars sorted by kind.

    part 6 · branching

All series