Complicated things from very short rules.
An L-system starts with a short string and a set of rewriting rules. Apply the rules to every character at once, repeat, then read the resulting string as drawing instructions: forward, turn left, turn right, remember this position, go back to it. Out come plants, ferns, coastlines and lightning, from a rule that fits on one line.
Aristid Lindenmayer was a biologist, and he introduced them in 1968 to model how algae grow. The detail that matters is that every character is rewritten in parallel, the way a population of cells divides, rather than one at a time. It is also why the output looks grown instead of drawn.
Two L-systems with identical rules can look nothing like each other. The branching angle does most of the work, and a few degrees will swing a plant from a narrow conifer to a sprawling shrub.
Adding a little randomness to the angle or the segment length is the whole difference between a botanical diagram and something that looks alive.
The same idea, a rule applied to its own output, drives recursive subdivision, fractal curves and space-filling tilings. In Unruly it also drives a grammar that rewrites regions of the canvas instead of a string, and mutates its own rule weights as it descends, so two branches of the same tree drift into different dialects.