Treez, an old favorite

[processing width=”600″ height=”400″ file=”” method=”onclick”][/processing]

This was originally a screensaver I wrote for my mother’s birthday in VB6. This version is written in Processing, but you don’t need to know that to enjoy it.

People always ask me if it’s random to which I never am completely sure how to answer. The answer is that all the apparent randomness is based on pseudo-random numbers generated by Java. But that isn’t the end of the story either. Some “trees” still seem to grow differently than others… The reason is that every time a new tree is started it gets a new, “random” set of parameters such as what color it is, how bendy it is, how fast it grows and how often it sprouts new branches. When the root of the tree branches these parameters are then passed to it’s ‘child’ but they aren’t copied exactly, only approximately so the tree “evolves” as is grows.


One of my favorite Processing apps I’ve written is this one I affectionately call ‘Grass’. I try not to explain these apps too much because I think it’s natural for the viewer to make sense of my programs in whatever way they like, but I’ll make an exception in this case. In one way or another this app is inspired by long summer evenings at Greenlake in Seattle where I lived for two years.

[processing width=”600″ height=”300″ file=”” method=”onclick”][/processing]

Once the program is loaded you can move the mouse to control the ‘wind’ blowing over the scene.

In my opinion, there are some pretty interesting things going on under the hood of this app. For starters, the background gradient is procedurally generated by the technique used in my ‘Bezier Gradient’ app. The strands of grass are neat too. They are drawn as a series of triangles deformed along a ‘spine’. I coded up the physics of the spine myself as well and they’re pretty extensible; hopefully soon I’ll get around to doing my hairdryer program to show them off in more glory ;).
The fireflies (which I should mention don’t actually live anywhere near Seattle) are simulated with a very long parameterized sinusoidal series which I wrote myself that allows me to control how fast and far they can move each frame as well as how convoluted their path is.


Last year, when I was too busy with a myriad of other things a piece of art called vanishing point by Matt W. Moore caught my eye. I thought, “Hey that reminds me of the stuff I make.” So I made a program which can be seen below.

[processing width=”450″ height=”300″ file=”” method=”onclick”][/processing]

Click the image to load the program. After it’s loaded if you click and hold down the mouse you get a fancy spin effect.

The graphic is created by drawing a bunch of triangles around the mouse position with Processing’s beginShape() and endShape() routines.