interactive web application built with Elm, designed to help users explore and visualize L-systems
the following characters are used with specific geometric interpretations to define the L-system rules:
| Character | Meaning |
|---|---|
| F | Move forward by line length drawing a line |
| f | Move forward by line length without drawing a line |
| + | Turn left by turning angle |
| - | Turn right by turning angle |
| | | Reverse direction (i.e., turn by 180 degrees) |
| [ | Push current drawing state onto stack |
| ] | Pop current drawing state from the stack |
| # | Increment the line width by line width increment |
| ! | Decrement the line width by line width increment |
| @ | Draw a dot with line width radius |
| { | Open a polygon |
| } | Close a polygon and fill it with fill color |
| > | Multiply the line length by the line length scale factor |
| < | Divide the line length by the line length scale factor |
| & | Swap the meaning of + and - |
| ( | Decrement turning angle by turning angle increment |
| ) | Increment turning angle by turning angle increment |
These symbols allow users to create a wide range of L-system rules and customize the generated fractals to their liking.
you can try it out by visiting the live link:
if you'd like to set up the development environment and run the application locally, follow these steps:
- clone the repository:
git clone https://github.com/hunorg/L-System-Studio.git
- navigate to the project directory:
cd L-System-Studio
for more information on L-Systems and a collection of examples, please visit the following resource:
this resource provides extensive information about L-Systems, along with numerous examples and visualizations to help you better understand their capabilities and potential applications
contributions are welcome! If you'd like to contribute, please fork the repository and submit a pull request with your changes. If you have any questions or need assistance, feel free to open an issue or contact the project maintainer
- code optimization for performance and deeper recursion
- adding more presets

