An Ivy Generator

by Thomas Luft

University of Konstanz

A few months ago I was looking for a new sample scene to test watercolor renderings. I was thinking of something complex, filled with vegetation - like trees overgrown with ivy. Fortunately I was able to implement a procedural system so that the ivy would grow by itself. The result is a small tool allowing a virtual ivy to grow in your 3d world.

The ivy grows from one single root following different forces: a primary growth direction (the weighted average of previous growth directions), a random influence, an adhesion force towards other objects, an up-vector imitating the phototropy of plants, and finally gravity. This simple scheme reveals that the goal was not to provide a biological simulation of growing ivy but rather a simple approach to producing complex and convincing vegetation that adapts to an existing scene. The ivy generator imports and exports obj+mtl files.

Here are precompiled versions for Win32, MacOS, and Linux including the source code of this project under the GNU General Public Licence. The MacOS port was kindly done by Robert Templeton (Kuroyume's DevelopmentZone). The Linux port was kindly done by Ruben Lopez. Previous releases and additional stuff can be found in the download section.

ivy_generator_Win32_1.3.rar (4,259 KB) (23.03.07) (8,797 KB) (23.03.07)
ivy_generator_Linux_qt4_1.3.tar.gz (2,873 KB) (28.03.07)

Feel free to use this tool in your projects! See also the FAQs!
The IvyGenerator v2/beta is still postponed.

Copyright (c) 2007 Thomas Luft. Last changes October 6, 2008.
Pavel Zoch
Konja Urban(?)
Tim Ellis
Heika Hartela
József Lipka
Kirk Dunne
Rainer Schmidt
Curt Roth
Daniele Del Grande
Doro Forster
Baz Mazur(?)
Frédéric Boullier
Antonio Casado
Dieter Waibel
Tom Schuelke
Marcus Wengenroth
Brian Looney
Mark Dunakin
Joăo Félix
Dave Davidson
Jérôme Prévost
Nicolas Wirrmann
Leonardo Merlos
Marco Mosetti
Michael Betke
André Vieira
Helton de Oliveira
Tudor Schinagel
Anthony McLin
Hong Jin P
Peter Christiansen
Ziv Qual
Richard Perrine
Marion Goldschmidt
Alejandro Ruano
Dan Robo
Derya Genç
Giorgio Macellari
Vitek Lasota
Berthold Grünhagen
Daniel Ackermann
Espen Harildstad
Jimmy Gunawan
Davide Guldoni
Thilo Ewers
Dinamo Productions
Diego Emanuel
Robert Seidel
Peter Guthrie
Ramon Zancanaro
Marcin Zemczak
Camille Lymer
Michael Ball
Marc Gutowski
Dean R. Robitaille
Federico Zimbaldi
Csaba Kanal
Székely Tamás
Andreas Dietz
Mads Droschler
Adán Martín
Camille Lymer
Krzysztof Cebula
Dmitry Levin
Bjorn Malmberg
Oliver Hatton
Szabolcs Csaszar
Thank you very much for your stunning feedback and the beautiful renderings!


ivy_generator_Win32.rar (4,259 KB) (15.03.07)
ivy_generator_Win32_1.3.rar (4,259 KB) (23.03.07) (10,565 KB) (18.03.07) (10,565 KB) (20.03.07) (8,797 KB) (23.03.07)
ivy_generator_Linux_qt4_1.3.tar.gz (2,873 KB) (28.03.07) (7,006 KB)
set of textures including normal maps etc., kindly provided by Tim Ellis (sonix(at)
Ivy Generator tutorial
explains first steps using the Ivy Generator, kindly provided by Mark Dunakin (MD arts)
Ivy Generator & Blender tutorial (at
explains how to use the Ivy Generator in combination with Blender, kindly provided by Tim Ellis (sonix(at)

Frequently asked questions

May I use the Ivy Generator in a commerical project? May I use my results (renderings and meshes) in a commerical project?
Yes, you are allowed to do that.

Can I somehow support this project?
Yes, you can. Please, visit

Is there a manual for this tool?
The current release of the Ivy Generator contains only a basic instruction (see readme.txt). Future releases will of course have a more detailed manual.

The import does not work properly - my scene looks somehow cluttered. What can I do?
The current release of the Ivy Generator supports only triangular faces. Thus, you have to triangulate your mesh before importing.

The ivy is growing very slow. What can I do?
Please consider the possiblity of using simpler proxy geometry for the Ivy Generator. The growing performance depends strongly on the complexity of your scene.

I can't see the ivy growing - it is growing inside my objects. What can I do?
Please press "flip normals" after importing your scene, and try again.

Is it possible to create another ivy without closing and re-opening the Ivy Generator?
Simply place a new root - double-click in your scene. Then the existing ivy will be deleted and you can grow a new one.

The exported files are HUGE. What can I do?
Future release will provide LOD techniques for this complex kind of mesh. By the way, you don't have to wait until the ivy is completely grown - by pressing the "grow" button again, you can stop it whenever you want.

The exported files are empty. What can I do?
Please press "birth" before exporting.

Can you please implement feature x?
The current release of the Ivy Generator is unsupported. Feel free to send me your feedback for future releases.

Do you plan to write a plug-in for software x?
Future releases will have a plug-in friendly software structure. If you are interest in writing a plug-in version for a specific package, please let me know.

Does this software run on a 64bit operating system or Microsoft Vista?
The current release was not tested on such a system so far.

I can not see any textures within the Ivy Generator?
Some former graphic cards do not handle textures of arbitrary size. Please, try to rescale the textures to a power of two format, e.g. 256 x 256 pixels.

I did not find an answer...
Feel free to write me an email ;-)