L-System Tree
Aristid Lindenmayer's L-systems (1968) grow structure by rewriting a string of symbols against a handful of production rules, then handing the result to a "turtle" that reads each symbol as a drawing command. Biology in, geometry out: the same machinery that models filamentous algae also draws a plausible tree.
This one is a dicot with opposite, decussate branching — the signature of a maple (Acer): each node throws a pair of branches on opposite sides, and every successive node is rolled 90° from the last, so the pairs cross at right angles climbing the stem. But a perfectly balanced fractal doesn't read as alive, so the demo bends the ideal toward nature: at each node the two branches grow unequally (a near-vertical dominant limb and a wider, shorter subordinate, randomized), every limb curves back toward the light (tropism), thickness follows the pipe model (a limb's cross-section ≈ the sum of what it feeds — a flared trunk tapering to fine twigs), internode lengths vary, and some buds never open.
axiom: A
A → ! F / [ +A ] [ -A ]
That's the seed of the idea — F draws a segment, / rolls 90° (the decussate twist), [ ] save and restore the turtle, + and − yaw the opposite pair, ! tapers — and everything above is the naturalistic elaboration layered on top.
Left-drag on the ground to plant a seed, then drag upward to grow it — a longer pull yields a taller, more-branched tree, the way a sapling matures. Plant as many as you like; click a tree to select it and press Delete to remove it. Middle-drag orbits the camera, shift+middle pans, and the wheel zooms. The branch-angle, twist, tropism (how hard limbs reach for the light — spreading and oak-like near 0%, columnar near 100%), and randomness sliders shape the whole grove; set the twist to 137.5° (the golden angle) for a spiral; max depth caps how complex a fully grown tree gets, and ↻ re-rolls every tree's variation. Plain HTML5 canvas + JS with a hand-rolled 3D turtle and camera — line art, no leaves, light or dark to match the page. Source on GitHub.