Generator
The below images and explanations are well and good, but we all know what you really came for: making your own.
Have at itProof of concept
The goal for Trees was in place and clear from the beginning.
It's just the getting there that was difficult.
The concept was based on a single principle:
- Each branch splits off at an angle ±60° from its parent.
Unfortunately, the way I programmed it, each branch was splitting off at an angle of ±30° from the x-axis - and from a single parent node of the previous layer. I also made each branch after the stem match the length of its parent, which would later come back to haunt me.
That considered, the first attempt was better than I'd hoped for, even considering its near-complete lack of resemblance to the final product:
Version 2
In the second iteration, branches correctly stemmed from different parent nodes, but the sharp angles left something to be desired. Still, I counted it a success. Victory fast approached.
Version 3
In the next iteration, I decided that tree branches should split off at an angle no more than 30° in either direction from its parent. All record of this version is lost.
Success
The one remaining problem was that of branch length. Eventually, I settled on making each successive branch one unit shorter than its parent, then letting the program run through each layer until no branch length remained. After fixing the program, it was a game of patience as I waited for program to spit out something beautiful. The examples leading up to that are below.
All of these lead, eventually, to what remains the single best piece of generative art I have created: