music: “The Slackers”
Exploring LSystems in 3D
Few images produced with RABBIT 0.2:
What is an LSystem?
In Brief: LSystem is a parallel string rewriting system. A string rewriting system consists of an initial string, called the seed, and a set of rules for specifying how the symbols in a string are rewritten as (replaced by) strings. Let’s have a look at a simple LSystem:
A = AB
B = BA
The LSystem starts with the seed ‘A’ and iteratively rewrites that string using the production rules. On each iteration a new word is derived.
n is the derivation length = the number of iterations
All these words form the language of the LSystem.
Application of LSystems
Since their original formulation, L-systems have been adapted to modelling a wide range of phenomena including:
- herbaceous plants
- neural networks
- the procedural design of cities
- generative art
- generative music
There exist different types of LSystems: deterministic, stochastic, context-free, context-sensitive, parametric, timed-depending on the rules and the way they are applied by the LSystem.
For more info about LSytems, we strongly suggest the following resources:
- The Algorithmic Beauty of Plants & other papers
- Designing with L-Systems Series by Griswold, Ralph E. – Part 1
- Design by Evolution: Advances in Evolutionary Design (Natural Computing Series)
- LSystems in architecture by Michael Hansmayer
- Wikipedia LSystems
What is a Turtle Interpreter?
The derivation strings of developing L-systems can be interpreted as a linear sequence of instructions (with real-valued parameters in the case of parametric L-systems) to a ‘turtle’, which interprets the instructions as movement and geometry building actions. The historical term turtle interpretation comes from the early days of computer graphics, where a mechanical robot turtle (either real or simulated), capable of simple movement and carrying a pen, would respond to instructions such as ‘move forward’, ‘turn left’, ‘pen up’ and ‘pen down’. Each command modifies the turtle’s current position, orientation and pen position on the drawing surface. The cumulative product of commands creates the drawing.
RABBIT 0.2 provides a 3d Turtle Interpreter: the “turtle” moves and draws graphics in 3d. The TurtleInterpreter could be used by itself or together with the LSystem component giving you the opportunity to explore new designs.
Feel free to comment here !