Tree Growing

By Matt Mazur on April 6, 2014

This Emergent Mind project is inspired by the tree growing procedure outlined by Richard Dawkins in The Blind Watchmaker:

Embryonic development is far too elaborate a process to simulate realistically on a small computer. We must represent it by some simple analogue. We must find a simple picture-drawing rule that the computer can easily obey, and which can then be made to vary under the influence of 'genes'. What drawing rule shall we choose? Textbooks of computer science often illustrate the power of what they call 'recursive' programming with a simple tree-growing procedure. The computer starts by drawing a single vertical line. Then the line branches into two. Then each of the branches splits into two sub-branches. Then each of the sub-branches splits into sub-sub-branches, and so on. It is 'recursive' because the same rule (in this case a branching rule) is applied logically all over the growing tree. No matter how big the tree may grow, the same branching rule goes on being applied at the tips of all its twigs. The 'depth' of recursion, means the number of sub-sub-… branches that are allowed to grow, before the process is brought to a halt.

You can adjust the depth of the tree (how many sub-branches to create), the growth multiplier (how long each branch is relative to its parent branch), and the branch angle to see what impact they have on the growth of the tree.