L-System
A rewriting grammar that generates branching structures by repeated substitution.
An L-system is a formal grammar introduced by the biologist Aristid Lindenmayer to model plant growth. It consists of an alphabet, an initial string, and a set of rewriting rules applied to every symbol simultaneously at each iteration. Interpreting the resulting string as drawing instructions produces a structure.
Parallel rewriting is what distinguishes it from an ordinary grammar and what makes it a good model for growth: every part of the organism develops at once. A handful of rules and half a dozen iterations produce ferns, trees, and shells with remarkable fidelity.
Extensions broaden the range considerably. Stochastic rules choose among alternatives probabilistically, so no two instances are identical. Context-sensitive rules depend on neighboring symbols, allowing signals to propagate through the structure. Parametric systems attach values to symbols, so lengths and angles evolve rather than being fixed.
Beyond botany, L-systems generate road networks and street grids — the recursive branching of a main road into secondaries into local streets is naturally expressed as rewriting. Making that usable for a simulated city usually means quantizing the output to a grid and generating incrementally, so that the layout is stable and extendable rather than regenerated whole.
See also3
Procedural Generation
Creating content algorithmically rather than authoring it by hand.
Graphics & Rendering30 connections
Cellular Automaton
A grid of cells whose states evolve by a local rule applied simultaneously everywhere.
Graphics & Rendering14 connections
Seeded Randomness
Pseudorandom generation from an explicit seed, so any output is reproducible.
Graphics & Rendering23 connections
Related7
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from10
- Cellular AutomatonGraphics & Rendering
A grid of cells whose states evolve by a local rule applied simultaneously everywhere.
- Constraint PropagationGraphics & Rendering
Repeatedly narrowing the possible values of each variable using the constraints, until nothing more can be deduced.
- Game AIPlay & Games
Computer opponents built to be interesting to play against rather than optimal.
- Procedural GenerationGraphics & Rendering
Creating content algorithmically rather than authoring it by hand.
- RasterizationGraphics & Rendering
Converting geometry into pixels — the dominant real-time rendering approach.
- RoguelikePlay & Games
A genre defined by procedurally generated runs and permanent death, and the design pressures those create.
- Seeded RandomnessGraphics & Rendering
Pseudorandom generation from an explicit seed, so any output is reproducible.
- ShaderGraphics & Rendering
A small program run on the graphics processor for every vertex or every pixel.
- Trick-Taking GamePlay & Games
A card-game family in which players contest a series of small rounds, and a source of unusually clean rule systems.
- VoxelGraphics & Rendering
A volumetric pixel — a value on a regular three-dimensional grid.