L-systems describe, they do not explain
Start with the string X. Replace every X with F[+X]F[-X]+X and every F with FF. Do it five times. Hand the result to a turtle that reads F as “go forward”, + and − as “turn”, and brackets as “remember and restore where one are”.
Four hundred and twenty-two line segments come out, and they look like a plant.
What is genuinely good about them
Lindenmayer introduced these in 1968 as a model of how filamentous organisms develop, and they have real virtues.
They capture self-similarity honestly. A plant’s branching repeats at several scales, and a rewriting rule is exactly a statement about a structure that contains copies of itself.
They are compact. Two rules and an iteration count produce arbitrarily complex structures, which matches the observation that a genome does not store a tree’s shape.
They are parametric. Adding parameters to the symbols — a length, an angle, an age — turns a shape grammar into something that can respond to conditions, and open L-systems can take input from a simulated environment.
They are used. Plant modelling for graphics, for agronomy, and for architecture runs on them, and the results are good.
What they do not do
They contain no mechanism whatsoever.
The turn angle is a parameter, not a consequence of anything. The branching ratio is chosen. Nothing competes for light, nothing is limited by water, nothing has to support its own weight, and no signal passes between parts. A tree that grew by these rules would be indifferent to being planted upside down.
That is not a criticism of L-systems, which were never claimed to be mechanistic. It is a criticism of what happens next: a picture this convincing invites the conclusion that the rules capture something about how the plant works, and it does not follow.
The general problem
Patterns are cheap, and visual conviction is a poor guide to explanatory power.
A great many rules produce branching trees. A great many produce spirals. A great many produce hexagonal tilings. Matching an output constrains the space of possible mechanisms far less than it feels like it does, and the more striking the match, the stronger the false impression.
This is the same caution that applies to the ferrofluid experiment, which produces spiral phyllotaxis with no biology in it, and to the dynamical model, which produces the golden angle without being told it. In every case the honest reading is the same: the model shows what kind of process could produce the pattern, and narrows the field of candidate mechanisms without selecting one.
What distinguishes a description from a mechanism
A useful test, since the distinction is doing so much work.
A description reproduces the output. Change the conditions and it has nothing to say unless one change the description too.
A mechanism predicts the response. Change the light, the water, the gravity, the hormone, and it says what should happen — and can be wrong.
By that test, Murray’s law is a mechanism: it derives a relation from stated costs and predicts what happens to a junction when the flow changes. An L-system is a description: it reproduces a shape and says nothing about what would happen to the plant in shade.
Both are worth having. The error is treating the second as though it were the first because its output is prettier.
Where the line actually falls
It is worth being fair to the modern versions, which are less naive than the classic ones.
Environmentally-sensitive L-systems let the rewriting depend on simulated light or space, so a branch that finds itself shaded develops differently. That is a genuine step toward mechanism, because the response to a condition is now in the model rather than in the parameters.
The line is not between L-systems and other formalisms; it is between models whose parameters encode the answer and models that derive it. A rewriting rule with a fixed branch angle encodes it. A model in which the angle emerges from competition for light derives it — and could be wrong about a plant, which is what makes it worth testing.
What the bracket does
The single feature that makes an L-system produce something plant-shaped rather than a curve is the bracket, and it is worth isolating.
Without brackets, a rewriting system with a turtle produces a path — a single line that goes somewhere and never returns. Koch curves, dragon curves and space- filling curves are all of that kind, and none of them looks like a plant.
The bracket adds a stack. [ remembers the turtle’s position and heading, ]
restores them, so the turtle can travel out along a branch and then return to the
fork and take the other one. That single addition turns a path into a tree,
and it is the whole of the structural difference.
It is also where the correspondence with biology is closest. A plant’s branches are genuinely independent after the fork: what happens along one does not affect the position of the other, because the fork already happened. The bracket encodes exactly that independence, which is why the formalism fits branching organisms and fits almost nothing else.
Context-free, and what that rules out
The rules used here rewrite each symbol without looking at its neighbours, which makes the system context-free, and that is a strong restriction with a clear biological reading.
A context-free rule says that what a part of the plant does next depends only on what that part is, not on what is around it. No branch is shaded by another. No branch is starved because a sibling took the water. No signal passes between parts.
Lindenmayer’s original systems included context-sensitive rules for exactly this reason — a symbol could be rewritten differently depending on its neighbours, which is how a signal propagating along a filament is modelled. That is a genuine step toward mechanism, because the response to a condition is in the grammar rather than in the parameters.
The step after that is to let the condition come from outside the grammar altogether — an open L-system, where the rewriting queries a simulated environment for light or space and the plant develops differently in shade. That is where the formalism stops being purely descriptive, and it is worth knowing that the line is inside the family rather than at its edge.
The parameters that are chosen
It is worth listing what a reader is looking at when they look at a generated plant, because the list is the argument.
The turn angle is a number in the rule. Real branch angles vary with species, with position on the plant, with light and with age, and none of that is present.
The branching ratio — how much shorter a daughter is than its parent — is a number in the rule. In a real plant it follows from resource allocation and from mechanics.
The iteration count is a number supplied by the operator. In a real plant the number of branching generations follows from time, resources and the plant’s determinate or indeterminate habit.
The topology — how many branches per fork, in what arrangement — is fixed by the production. A real plant’s is developmental.
Change any of them and a different plant comes out, and nothing in the formalism says which value is right. That is the exact sense in which the model has no content beyond the shape it produces.
Where the comparison with Murray’s law bites
Set the two side by side and the difference is sharp.
Murray’s law derives a relation from two stated costs and predicts what happens to a junction when the flow changes. It can be wrong: a network that departs from the cube law is evidence against the assumption that those two costs dominate, and fitting the exponent turns the departure into a measurement.
An L-system predicts nothing. It reproduces a shape, and if the shape is wrong the response is to change the rule. There is no observation about a plant that an L-system forbids.
Both are useful and they are useful for different things. The formalism is a compact language for describing branching structures, and it is genuinely good at that — plant modelling for agronomy and for graphics runs on it, and the descriptions are compact and manipulable in ways that a list of coordinates is not. What it is not is an account of why a plant has the shape it has.
The lesson that generalises
The pattern here recurs across this site, and well beyond it.
A model that produces a convincing image invites the belief that it has captured something, and the strength of that belief tracks the quality of the image rather than the content of the model. The ferrofluid experiment produces spiral phyllotaxis with no biology in it; Vogel’s rule produces a sunflower head from two lines of arithmetic; an L-system produces a fern from two rewriting rules.
In each case the honest reading is the same. The model shows what kind of process suffices to produce the pattern, which narrows the field of candidate mechanisms and does not select one. And in each case the way to tell a description from a mechanism is to ask what the model forbids — because a model that forbids nothing has said nothing, however good it looks.
The one thing they get right that nothing else does
It would be unfair to end on the limitations, because L-systems capture something real that neither a coordinate list nor a differential equation does.
A plant is modular. It is built from repeated units — a node, an internode, a leaf, a bud — and the same unit appears at every scale and in every position. The plant does not store a shape; it stores a rule for making the next module, and applies it wherever a module is.
A rewriting grammar is exactly a formalism for that. The production rule is the module’s instruction, and the derivation is the plant’s development. That correspondence is structural rather than cosmetic, and it is why Lindenmayer, who was a biologist, reached for grammars rather than for geometry.
It also explains why the compression is so extreme. A fern with tens of thousands of segments comes out of two rules and an iteration count, and a genome that had to specify each segment would be enormous. Modularity is how a small instruction set produces a large organism, and the grammar makes that visible.
So the criticism in this essay is narrow. The formalism captures the architecture of development and says nothing about its control, and the error is only in reading the first as the second.
What to ask of a generated plant
A short checklist, since the pictures are so persuasive.
What is chosen and what is derived? Every number in the rule is chosen unless something says otherwise. A model in which the branch angle comes out of a competition rather than out of a parameter is doing more.
What would falsify it? If the answer is “nothing — the rule would be changed”, the model is a description.
Does it respond to conditions? A plant in shade grows differently. A model that cannot represent shade cannot be wrong about it.
Does it predict anything not put in? Murray’s law predicts the exponent from the costs; the repulsion rule predicts the angle without being told it. That is the standard worth applying.
Where the formalism came from
Lindenmayer introduced these in 1968 and he was not thinking about graphics. He was a theoretical biologist working on the development of filamentous algae, and the question was how a filament of cells, each of which can divide or differentiate according to its own state, produces the sequences observed down a real filament.
That original problem is genuinely one-dimensional — a string of cells — and a string-rewriting grammar is the natural formalism for it. The cells are the symbols, division is a production, and the derivation is the organism’s history. There is no geometry in it at all.
The turtle came later, from Prusinkiewicz in the 1980s, and it is what turned a model of cell lineage into a model of shape. That is a large change in what the formalism is claiming, and it happened without much comment: a grammar over cell states is a claim about development, and a grammar over drawing instructions is a claim about nothing in particular.
Knowing that history makes the criticism in this essay narrower and fairer. The formalism was mechanistic where it started, and the geometric versions inherited its authority without inheriting its content.
What a good use looks like
Two examples, to be concrete about where the line falls.
Agronomic modelling. A parametric L-system where internode length responds to a simulated light environment, calibrated against measured plants, and used to predict yield under a planting density that has not been tried. That model can be wrong, it makes a claim about the world, and the grammar is doing structural work rather than decorative work.
Architectural description. Cataloguing the branching architectures of tropical trees — the Hallé and Oldeman models — as a small set of grammars, which turns a morphological taxonomy into something with a finite generative description. The claim is descriptive and is stated as such, and the compression is the result.
Neither of those is what a fern rendered from two rules is doing, and neither is diminished by saying so.
A closing distinction
The word “model” is doing two jobs in this subject and separating them removes most of the confusion.
A model can be a compression: a short description that reproduces a long observation. An L-system compresses a fern into two rules, and that is a genuine achievement — the compression ratio is the discovery, and it says the fern’s shape has very little information in it.
Or a model can be an account: a statement about what produces the observation, which forbids some outcomes and can be checked against them.
Both are called models and only the second is an explanation. The trouble is that a good compression looks like an account, because the thing it produces is indistinguishable from the thing being explained — and the better the compression, the more convincing the illusion.
The test is the one this essay keeps returning to: ask what it forbids. A compression forbids nothing, because any observation can be accommodated by changing the description. An account forbids something, and is therefore worth testing.
What “describes rather than explains” was eventually made to mean
This essay’s complaint about L-systems — that producing something plant-shaped is not an account of a plant — was stated in the founding essays as a judgement. Expansion turned it into a checklist, and the L-system’s position on it is worth stating in those terms.
Six items: that the form is measured, that some rule generates it, that the rule’s parameters correspond to measurable quantities in the organism, that the parts the mechanism names exist, that interfering with them changes the form as predicted, and that the form would have been different had the mechanism been different.
An L-system meets the second. It generates. Its parameters — branching angle, shrink ratio, production rules — correspond to nothing measurable in the plant, because they were chosen to make the output look right, so it does not meet the third.
Compare Murray’s law, which is on the same page of this site and is a different kind of object: its exponent is a prediction from a stated optimisation, it is recovered from geometry rather than assumed, and the fit returns 2 when shown junctions built to a square law.
That is the distinction the essay was reaching for, made checkable. The problem with an L-system is not that it is a model; it is that it has no parameter anything could disagree with.
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.
- The branch is what is left — both name branch, description versus mechanism, underdetermination
- A cube law with a lever arm — both name branch, description versus mechanism
- The angle is not the actor — both name description versus mechanism, underdetermination
- The last of three quantities — both name description versus mechanism, underdetermination
- What a scar is worth — both name branch, l-systems
Named objects
A flat tag is an object no other essay names yet.
BranchDescription versus mechanismL-systemsRewritingTurtle graphicsUnderdetermination