## trees06

Launch Java Applet:** trees06**. (runs at 1024×1024)

See a pile more pics of this sketch over on Flickr.

I’m not sure what my fascination with rendering trees in Processing is. But I sure seem to spend a lot of time on it

This sketch is an advancement of my scribble04 sketch. I took the concept of an object drawing a line, and simply had it conform to more rules. The past sketch I did on trees (trees03) was all function based, so I consider this sort of an evolution of my tree code 😉

If you run the example, it will consistently run a certain set of rules. But if you download the source, you’ll see there are many variables exposed to the user, here’s a snippet from the sketch:

// what is the birth position, based on a percentage of screen size? float initX = .5; float initY = 1; // How long is the initial branch in pixels? float initLength = 20; // as it grows, scale the length between steps by this value float lengthAgeScale = .98; // How can a trunk differ in direction direction from it's parent? float angleRand = radians(5); // angle in radians: PI = 180 deg. float initAngle = random(-HALF_PI-angleRand, -HALF_PI+angleRand); // what is the initial size of the branch (first trunk): float branchSize = 200; // for each groth, how much smaller does the trunk get: float branchAgeScale = .95; // For a NEW branch, define a range of angles relative to its parent angle to be grown in. The // values can be for either side of the branch, randomly picked at birth. 0 = same angle as its parent. // HALF_PI = (90 deg) would be perpendicular to its parent. So, {HALF_PI, 0} would be a // 180 deg arc based on it's current angle (since it will randomly choose to grow off of either side. float[] branchAngleRange = {radians(45), 0}; // for each growth period, what is the percent chance (from 0->100) that // a new branch will be formed? float branchPercent = 10; // as a trunk gets older, multiply its branchPercent by this value. float branchAgePercentChange = .99; // What is the initial brightness: float bright = 0.0; // for each groth, how should the brightness be scaled? float brightnessScale = 1.0; // for each grown, what value should be added to brightness? float brightAdd = 2; // How strong is the force that makes the branches want to grow "up"? float upStrength = 1; // How strong is the force that bends the branches down? Force is very weak near the roots, // and gets progressively stronger towards the tips. float gravityStrentgh = 5;

Great post.I like this site.Thanks a lot for the sketch on Flickr.

Seriously awesome stuff.