Start with a string and a set of replacement rules. Apply the rules repeatedly. Interpret the result as turtle graphics: F draws forward, + and - turn, brackets save and restore position.
Aristid Lindenmayer invented L-systems in 1968 to model plant growth. The key insight is parallel rewriting: every symbol is replaced simultaneously in each iteration, unlike sequential Markov chains.
The bracket operators create branching by pushing and popping the turtle's state. Each open bracket saves position and heading; each close bracket restores them, letting the turtle jump back to a fork point.
Small changes in the branching angle produce dramatically different organisms, from ferns to dragon curves to the Sierpinski triangle. A handful of characters and one rewriting rule are enough to generate surprising complexity.
The Algorithmic Beauty of Plants · Wikipedia