Grow - A Topiary Modeling Program
Topiary is the art of ornamental gardening. Usually plants are cut and
trimmed into fanciful forms, as of animals, buildings, etc. In reality it takes
a long time and a lot of work to create those pretty figures. A computer
simulation can hasten things a lot (although, it still takes some time and
The ProblemA plant is rather difficult to model with standard computer
graphics methods. This is because standard computer graphics programs generate
objects from various combinations of primitive geometric bodies such as spheres,
cylinders, boxes etc. These programs are quite adequate for modeling artificial
objects such as desks, chairs, screens, walls and so on because relatively few
primitives are needed to create an appealing model. However, because of a
plant's inherently complex structure (each plant is composed of a large number
of branches, leaves, flowers etc.) it is necessary to model it using a
relatively large number of primitives. In a conventional modelling program these
primitives need to be positioned manually and because of their large number,
modeling a plant is very hard.
The SolutionOur program essentially enables the user to simply specify
the location of seeds from which plants will grow and a bounding object. Our
program uses an environmentally sensitive L-System to model the growth and
pruning of the plants (and thus frees the user of the burden of taking care of
what can typically be millions of primitives). An environmentally sensitive
L-System starts off with an initial word representing a seed and uses production
rules to derive a new word from it. This process is repeated iteratively (in
each iteration the productions are applied on the word derived in the previous
one). Each iteration represents a time step in the growth of the plant. When all
derivations are finished a 3-D "logo style" turtle is used to interpret the word
and draw the plant. For a more thorough explanation of environmentally sensitive
L-Systems please see our user
manual. For an explanation of the specific L-System used to produce the
pictures below click
PicturesThese pictures were created with our
program. The files needed for the creation of each picture can be found in the
distribution. Rendering was done with povray
left a topiary teapot on a yellow table drawing only the leaves. On the right a
topiary teapot on a yellow table, drawing both leaves and branches.
On the left a
topiary teapot on a grassy plane, set against a beautiful blue sky. Has 3 colors
of leaves. On the right a topiary dinosaur on a grassy plane.
Source CodeIn accordance with ISL policy we offer the program's source
code for downloading. The program is written in C++ and was successfully
compiled on these platforms: Linux 2.0.30, Sun (for all of the above platforms
g++ 2.7.2 was used) Windows NT 4.0 using Visual Studio 97. Most of the parser
code was generated using flex 2.5.4 and bison 1.2.5. The input files for these
programs are included, as well as their output. Click
here to download the sources.
ExecutablesExecutables of the program are supplied for the following
IritThe program uses Irit data files as its input and
output graphic file formats. We also created some Irit
functions (found in the Irit directory in each of the executable archives
and in the source archive).
here to download some examples, including the ones that appear in this page.
here to download these web pages, which include the user's manual.
here for a reduced version (without the pictures).
CreditsThe program is based on the paper "Synthetic
Topiary" by Przemyslaw Prusinkiewicz and Radmoír Mech. The program was
written by Erez Louidor, Adi Izkovitch and Ido Tal under the supervision of Dr. Gershon Elber.
CommentsIf you have any questions, comments or bug
reports please send mail to one of the following: