I sat down again to update my ActionScript L-system renderer so that it can use multiple rules and new characters.
Next, I fiddled around a bit with axioms, rules and angles and came up with some pretty cool new curves (if I may say so myself). Check them out below.
I’ve also added the renderer application, if you run it you can play around with the curves (controls are listed at the bottom of the app). If it is too slow, please decrease the number of iterations or resize the window to be smaller.
more “L-systems revisited”
A long while ago I wrote a small Flex application to draw L-systems (post).
With this app I noticed how cool it is to play around with drawing angles by moving the slider (post #2).
But somehow, I never thought of adding a play button to the slider so it plays it as an animation.
So now I did. Well, no play button, but just an animation. Here it is. Please enjoy.
Note: after clicking once, you can use the + and – keys to speed it up or slow it down
I’ve made a small application in Flex to draw l-systems with.
The previous post explains what l-systems are exactly, but here are the rules again in short:
L-systems is a grammar describing the growth of plant-like structures. It is made up of simple drawing commands and rules how these change during growth. For example, you start out with the command ‘F’ meaning draw one unit. You add a rule that says ‘change F to F+F-F’ where ‘+’ and ‘-‘ mean turn left and right, respectively, with a predefined angle. Then, as it grows, the sequence of commands grows longer and more complex, as every time each ‘F’ is replaced by ‘F+F-F’ until you end up with a long sequence of simple commands that make up a complex shape. Add branching with the ‘[‘ (start branch) and ‘]’ (end branch) characters and you can quickly create nice plant structures.
Try out the application here. It’s a small first version with some limitations, such as a maximum amount of drawing commands to prevent slow processing times, the possibility to define only one rule, and the fact that it always starts out with ‘F’. You can define your own rule of how ‘F’ changes (using F, +, -, [ and ]), you can set the angle of rotation and the amount of iterations to define the complexity of the resulting shape. If responses are too slow, you can turn off ‘update realtime’ and hit the ‘go’ button to calculate your l-system.
The Interactive Morphogenesis project, which I made a while ago with Rick Companje and Irad Lee, has been accepted for the Areas of Conlu(x)ence conference in Rumania.
Areas of conflu(x)ence proposes an international debate on the relationship between art and technology in the present digital era, focusing on the impact of the new media in our lives.
The project has to do with l-systems, which are mostly used to model plant growth. As Wikipedia puts it:
An L-system or Lindenmayer system is 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.
To explain it in a bit more detail: take a string, say “F” and define a rule saying how this “F” changes, for example “F->F+F-F”. This has the effect that you can iterate over the string, each time replacing each “F” with “F+F-F”. After three iterations the string would have become “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”. Now imagine these different characters to represent drawing commands, where in this case F means draw a line in the current direction and + and – mean turn left or right by, say, 45 degrees. These few simple rules can lead to very complex and very beautiful structures being drawn, such as the famous Koch Curve, which is not exactly plant-shaped but does convey the complexity and beauty hidden within the simple grammar of l-systems:
We used this grammar to create a generative art piece which uses sound input to generate an l-system, visualize it, and convert it to sound output as well. We also customized it a bit to make it 3D and we let it move to environmental sounds as well. There’s an active demo where you can simulate the influence of sound by moving you mouse cursor to make the shape move. Also be sure to check out the website 🙂