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