PROJECT: tree.growth

Project Title: tree.growth
Date: Fall, 2006
Project Link: http://www.blprnt.com/treegrowth

Trees are uniquely suited to being simulated using computer graphics. Indeed, since the 1970s, methods to algorithmically render trees have been developed and refined to the point at which trees seen in high-quality scenes are very nearly photorealistic.

For this project, rather than concentrating on realistic renderings, I was instead interested in how simple forms could capture the inherent 'treeness' of the real thing. 

In pursuit of this goal, I developed a customized software engine which produced vector renderings of imaginary tree species. By adjusting parameters in the program, trees could be rendered with various leaf shapes and colours, with flowers or shedding leaves, and in virtually any shape from small shrubs to towering birches. 

The software uses a modified version of Lindenmayer Systems, a variant of formal grammar used to model growth. L-Systems were developed by the Hungarian theoretical biologist Aristid Lindenmayer.

 

 

This project was originally exhibited at the ArtPool Art Research Centre in Budapest as part of the fifth workshop of the EvoNET working group on Evolutionary Music and Art.

In 2006, tree.growth was featured as part of the "Into the Woods" collection at the Digital Well Being Labs in London. 

Prints from the tree.growth project are available through the blprnt Etsty store. 

tree.growth was built in Processing. Source code is available for this project. Please contact me for details.


Share:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Reddit
  • StumbleUpon
  • Tumblr
Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL.

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

6 Comments

  1. Posted March 3, 2009 at 7:52 pm | Permalink

    Amazing work (both in Flash and Processing.) You mentioned offering the source code for this project. I would be deeply appreciative to be able to play around with the source code and see how you implemented an L-System.

    Best Regards,

    - Tom Gonzalez

  2. Jon Davis
    Posted March 23, 2009 at 1:44 pm | Permalink

    hello there

    I really like the work you have done here, the abstract tree forms you have created are stunning. I am new to the concept of generating L Systems based visuals and was wondering if you could give me some pointers? A peek at the source code for this project would be of a huge help!

    Jon Davis

  3. Jer
    Posted March 23, 2009 at 2:05 pm | Permalink

    Hi Jon,

    The concept behind L-Systems is really straight-forward. You start with a string, then you successively apply a string replacement rule. So, let’s say we have a string:

    A

    And we apply this rule: Every time you see an ‘A’, change it to ‘AB’. Every time you see a ‘B’, change it to ‘A’. The first time through, we get:

    AB

    Then:

    ABA

    Then:

    ABAAB

    Then:

    ABAABABA

    That’s the root of it (pun intended). Once you have a long enough string, you can then run it through an engine to translate it into some result. In our easy example, maybe A draws a line forward, and B turns 90 degrees to the left. Or maybe A plays the next note up on a piano scale, and B plays the next note down.

    In my system the symbol set is different. My strings look something like this:

    FF-[-F+F+F-]+[+F-F-F+]

    In which F moves one unit forward, – rotates to the left, + rotates to the right, and the brackets start and return to ‘branch points’.

    If you send me an e-mail, I’ll send you the source. My system is very portable – the Lsystem objects, rulesets, and engines are separated so that the structure can be easily adapted to different purposes.

    I spent a long time with this stuff a few years ago – I’m sure it is something that I will return to in the future.

    Cheers,

    -Jer

  4. Posted May 12, 2009 at 9:56 pm | Permalink

    Fabulous work here. One note: one of the hyperlinks on the tree growth page actually sends the user to the darwin instruments page.

    Jacob

  5. Grey
    Posted May 6, 2010 at 4:48 am | Permalink

    Hi Jer, amazing work, im aware of LSystems from doing some work in Houdini but having just been involved in a more interactive project for uni im starting to look into Processing and im trying to understand how I can build environments/landscapes. Do you have any pointers/good resources for that? Please could you send me your code so I can try and pick it apart to learn a little more?
    thanks, and great work.
    G

  6. Duncan
    Posted May 14, 2010 at 7:29 am | Permalink

    I built this (L-System) in Flash a while ago:
    http://www.my-mot.co.uk/automata/AutomataTubularL...

    Duncan

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*