Grasshopper

algorithmic modeling for Rhino

Generative Algorithms: Lindenmayer-System (L-System)

An L-system or Lindenmayer system is a parallel rewriting system, namely a variant of a formal grammar (a set of rules and symbols), most famously used to model the growth processes of plant development, but also able to model the morphology of a variety of organisms.
L-systems can also be used to generate self-similar fractals such as iterated function systems. L-systems were introduced and developed in 1968 by the Hungarian theoretical biologist and botanist from the University of Utrecht, Aristid Lindenmayer (1925–1989).
For details and samples, check wikipedia

Koch Curve. Implemented with Grasshopper and RhinoScript.
download koch Curve sample...


Penrose Tiling. Implemented with Grasshopper and RhinoScript.
download Penrose Tiling sample...


Sierpinski Triangle. Implemented with Grasshopper and RhinoScript.
download Sierpinski Triangle sample...


Fractal Plant. Implemented with Grasshopper and RhinoScript.
download Fractal Plant sample...
GH_FractalPlant_LSystem_DynamicAngle.zip


Dragon Curve. Implemented with Grasshopper and RhinoScript.
download Dragon Curve sample...

Views: 27489

Comment

You need to be a member of Grasshopper to add comments!

Comment by Nicholas Murao on September 21, 2011 at 6:45pm
Sorry I would like to change my question. Similar to this photo I want the L-system to create a layering effect that begins to create a density. Also is there a way to have the L-System to branch out in multiple directions like in the photo above? Sorry for the loaded question hope it's not too much to ask. Thank You
Comment by Rajaa Issa on September 21, 2011 at 4:59pm
Not sure what you need.  Can you show an image or an example of what you want to get?
Comment by Nicholas Murao on September 20, 2011 at 9:50pm
I was wondering if there's a way to use the fractal plants logic bt instead have the branches be curves instead of orth0gonal lines.
Comment by robert cervellione on July 9, 2010 at 9:35am
in 7.0030 version of grasshopper this def throws a critical error that causes the grasshopper canvas to go red. any chance you can update for 7.0030
Comment by Rajaa Issa on June 1, 2010 at 3:07pm
Hi Mateo,

I'm not sure I get what you are trying to say. Have you tried the examples above? I isolated few parameters so you can grow the system in size and step length. I also isolated the L-System definition (variables, Constants, Rules, etc.), so you can use the model to create your own system if you wish.
Comment by msgrom on June 1, 2010 at 10:17am
BTW
sorry about the weird interruption to the text. copy paste functionality misbehaviour
m
Comment by msgrom on June 1, 2010 at 10:15am
Hi Rajaa Thaks for the quick reply.

This is an exerpt from algorithmic beauty of plants introducing parametric L-Systems (p40):

1.10 Parametric L-systems
Although L-systems with turtle interpretation make it possible to Motivation generate
a variety of interesting objects, from abstract fractals to plant-like
branching structures, their modeling power is quite limited. A major
problem can be traced to the reduction of all lines to integer multiples
of the unit segment. As a result, even such a simple figure as an
isosceles right-angled triangle cannot be traced exactly, since the ratio
of its hypotenuse length to the length of a side is expressed by the irrational
number √2. Rational approximation of line length provides only
a limited solution, because the unit step must be the smallest common




1
1
√2
denominator of all line lengths in the modeled structure. Consequently,
the representation of a simple plant module, such as an internode, may
require a large number of symbols. The same argument applies to angles.
Problems become even more pronounced while simulating changes
to the modeled structure over time, since some growth functions cannot
be expressed conveniently using L-systems. Generally, it is difficult
1.10. Parametric L-systems 41
to capture continuous phenomena, since the obvious technique of discretizing
continuous values may require a large number of quantization
levels, yielding L-systems with hundreds of symbols and productions.
Consequently, model specification becomes difficult, and the mathematical
beauty of L-systems is lost.
In order to solve similar problems, Lindenmayer proposed that numerical
parameters be associated with L-system symbols [83]. He illustrated
this idea by referring to the continuous development of branching
structures and diffusion of chemical compounds in a nonbranching filament
of Anabaena catenula.


The following is an example of its application:

starting string: A
p1: A F(1)[+A][-A]
P2: F(s) F(s*R)



which I think is basically trying to say

F(s) = move forwar a step of length s > 0.


Thanks again,

Mateo
Comment by Rajaa Issa on June 1, 2010 at 10:05am
Can you elaborate. What parameters you wish to control?
Comment by msgrom on June 1, 2010 at 9:56am
Hi Rajaa,

Thanks for the definition. Is it possible to write in parametric L Systems to the core structure you have written here? How would you suggest going about it?

Thanks again,

M
Comment by Rajaa Issa on June 16, 2009 at 4:02pm
Algorithm is the logical description of a problem or basically a step-by-step description using mathematical or plane english to describe the problem. Here is what wikipedia defines it:
http://en.wikipedia.org/wiki/Algorithm

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service