A simple L-System generator written in pure Python, with a PySide2 / Qt GUI front-end. This project started out as a side-exploration into space filling curves and plant/tree generation.
Run src/main_gui.py
. There is no need to run the Makefile, except for running the tests and rebuilding the GUI (Unix-likes only).
You can find the axioms, rules and angles for each l-system in the src/data/lsystems.json
file.
Some of the featured l-systems may be unstable - their shapes maybe inverted or other irregularities will
appear between odd and even iteration depths.
Hilbert curve | Hilbert curve variation |
Peano curve | FASS curve 1 | FASS spiral | Quadratic Gosper curve |
FASS curve 0 | FASS curve 2 |
Most tree l-systems are from Lindenmayer, A. and Prusinkiewicz, P. (1990) The Algorithmic Beauty of Plants.
Houdini Tree | Tree X | Tree B |
Tree C | Tree D | Tree E |
Tree Y | Tree F | Tree A |
Note: the Gosper's curve is also a space filling curve.
Fake Peano | Serpinski Curve 1 | Box Fractal |
McWorter Serpinski Box (unstable) | Serpinski Curve 2 | Box Crystal |
Ice Fractals | Serpinski Carpet | |
Serpinski Triangle | Triangle A | Anthony Hanmer ADH258a |
Dragon Curve | McWorter Terdragon |
Koch curve 1 | Koch Island 1 | Koch Island 2 |
Koch curve 2 | Koch curve 2 (flipped) |
Mosaic | Anthony Hanmer ADH256a |
Zaikov | Unnamed |
Koch Curve | Quadratic Snowflake |