Arbor Vitae

Arbor Vitae, meaning tree of life in latin, is an image generator aimed at generating trees. There are three algorithms avalible, Fractal, Branched, and Function. There are also options to randomize the parameters, and to generate a new seed.

Fractal will generate uniform, full, lush trees with the same number of branches stemming from each level of the tree. An example is pictured to the left. Fractal trees vary mostly in the angle at witch the different branches stem, and the length or size of the branches. Parameters such as Stiffness and Size Variation may be used to alter the general appearance of the tree. Branched trees have a built in stall guard that keeps the program from automatically generating new trees. The time taken per branch is measured with each tree, then this value is used to determine if redrawing will cause an application hang.

The default settings. The default settings with some color applied.

Branched trees are thin and intricate. A main branch is generated, and then may fork or branch to generate more branches. This may generate long thin trees, or complex, uncontrolled and chaotic ones. Branched trees are harder to tame, but they look very interesting when tuned. Be careful when altering branched trees, the application may hang as more complex trees are generated. An example of a branched tree may be seen to the right..

The controls for the branched generator. A nice looking branched tree. A simple branched tree.

Function is just a function generator, written mostly for my understanding of polynomial functions. The coefficients of whole powers of x up to 5 may be altered.

Screenshot of the function generator

This program may be altered by whomever would like without restraint. It would be cool to see new algorithms added to this project.

What I learned

  1. Java applets are a big pain. Java applets need to be signed with a valid security certificate in order to run. Making sure this works reliably is a huge hassle. When this project was originally written, the applet version worked alright, but after returning to it a few years later, it no longer works at all. Jarfiles or packed executables seem to be the way to go with getting Java apps on an end user’s computer.