In 1968, Hungarian botanist Aristid Lindenmayer developed a grammar-based system to model the growth patterns of plants. Lindenmayer systems — or L-systems for short. This system was made as a mathematical theory of plant development.

L-systems involves three main components:

**1. Alphabet:** a set of valid characters that can be included in a “sentence”. For example, if the alphabet is “ABC”, any valid “sentence” will contain the three characters : A, B and C.

**2. Axiom:** The sentence that describes the initial state of the system. For example, using the alphabet “ABC,” some example axioms are “AAA” or “B” or “ACBAB.”

**3. Rules:** they are applied to the axiom and then applied recursively, generating new sentences over and over again. An L-system rule includes two sentences, a “predecessor” and a “successor.” For example, with the Rule “A → AB”, whenever an “A” is found in a string, it is replaced with “AB.”

**Example**

Alphabet: A B

Axiom: A

Rules: (A=AB) (B=A)

## Plug-in Rabbit

I used plug-in Rabbit: https://morphocode.com/rabbit/

This type of drawing framework is called “Turtle graphics”, it is like having a turtle in the screen and being able to command it to move in different directions.

**L-system commands**

**F ** move forward at distance L and draw a line

**f ** move forward at distance L without drawing a line

**+ ** turn left A degrees

**– ** turn right A degrees

**[** save current location

**]** restore previous location

**A/B/C/D** placeholders

## Snowflake

## Hilbert curve

## Peano curve

## Dragon curve

## Plant

## Greenhouse structure

In the Grasshopper script you can change the height of each level of pipes – pink circle.

And in the blue and yellow rectangle you can change length and diameter in each level of the structure.

Grasshopper file: L-system to greenhouse structure