Skip to content

HMShannon/l-system-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inspired by The Algorithmic Beauty of Plants

Lindermayer systems, or l-systems, are a type of grammar that can be used to generate self-similar fractals and plant-like structures. An l-system is defined by an initial state(an axiom) and a set of rules to be applied iteratively to the axiom. For example:

Axiom: F
Rule : F -> F+F--F+F

After one iteration, the result is : F+F--F+F

After two iterations: F+F--F+F+F+F--F+F--F+F--F+F+F+F--F+F

After three iterations: F+F--F+F+F+F--F+F--F+F--F+F+F+F--F+F+F+F--F+F+F+F--F+F--F+F--F+F+F+F--F+F--F+F--F+F+F+F--F+F--F+F--F+F+F+F--F+F+F+F--F+F+F+F--F+F--F+F--F+F+F+F--F+F

If [F] represents a line, [+] represents a counterclockwise turn, [-] represents a clockwise turn, and a 60 degree angle is used, then graphically rendering this l-system results in the Koch curve:

l-system Koch curve

If branching behavior is added, more complex structures are possible. An open bracket ( [ ) saves a position, and a closing bracket( ] ) returns to that position, allowing for multiple segments to branch off of a single point:

l-system tree

Run git clone, npm install to install dependencies, and npm start to try it.

About

3D Lindenmayer system generator made with React and Three.js

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published