The purpose of this project is to represent the L-systems in Python and simulate the growth of trees.
By adjusting parameters, different trees are generated and a forest is drawn.
An L-system, also known as the Lindenmayer system, is a kind of parallel rewriting system and formal grammar. An L-system consists of an alphabet of symbols that can be used to make strings, a collection of production rules that expand each symbol into a larger string of symbols, an initial “axiom” string, and a method for translating the generated strings into geometric structures. Aristid Lindenmayer, a Hungarian theoretical biologist, and botanist at the University of Utrecht introduced and developed L-systems in 1968.
- Lindenmayer used L-systems to model the growth processes of plants
- To characterize the behavior of plant cells.
A recursive system
The rule of the L-systems is rewriting. If we start the process with the letter b (the premise) and follow it through in time, we see a certain pattern emerges by following the rewriting rules. We can see that A can go into AB, and B can only go into A.
State of the art
We can see that there are already many references to L-systems in architecture. These two projects are supported by a tree structure and enhance its aesthetics.
Pseudocode
Catalog
There are five factors controlling the result of code:
- levels: control the number of loops
- branches: control how many branches are generated at a time
- branches scale factor: control the length of branches
- rotate value: control the angle of rotation of branches
- rotate axis: control the direction of rotation of branches
Shape Subdivision
References – Mesh Subdivision
Python Code
L – Systems + Mesh Subdivision
L-systems is a project of IAAC, Institute for Advanced Architecture of Catalonia developed at MAA02, Python in 2021 by Aniket Sonwane, Aqeel Sourjah, Chirag Shah, Xingyu Zhang and Jiaqi Sun. Faculty : Angel Munoz