Skip to content

robertkist/lsystems_py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

L-Systems Exploration

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).

Screenshot

Main Program Window

L-Systems

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.

Space filling curves

Hilbert curve Hilbert curve variation
Peano curve FASS curve 1 FASS spiral Quadratic Gosper curve
FASS curve 0 FASS curve 2

Trees

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

Circular Shapes & Snowflakes

Note: the Gosper's curve is also a space filling curve.

Koch Snowflake Snowflake 1 Snowflake 2
Bourke Pentaplexy McWorter Pentigree Gary Teachout Hex-7-b
McWorter Penta Snowflake 1 McWorter Penta Snowflake 2 Anthony Hanmer ADH231a
Mariano Doily Circle Gosper's curve Levy curve

Rectangular Shapes

Fake Peano Serpinski Curve 1 Box Fractal
McWorter Serpinski Box (unstable) Serpinski Curve 2 Box Crystal
Ice Fractals Serpinski Carpet

Triangle Shapes

Serpinski Triangle Triangle A Anthony Hanmer ADH258a

Dragon Shapes

Dragon Curve McWorter Terdragon

Quadratic Koch Curves

Koch curve 1 Koch Island 1 Koch Island 2
Koch curve 2 Koch curve 2 (flipped)

Misc Shapes

Mosaic Anthony Hanmer ADH256a
Zaikov Unnamed
Koch Curve Quadratic Snowflake

About

L-Systems visualization with Python and Qt

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published