My writing about art and math in nature are always among my most popular posts, and I’ve meant to write about fractals for a while because they fascinate me. This time of year the bare branches of deciduous trees display their full beauty and fascinating growth patterns. Did you know that most trees have no more than 11 orders of branches? To put it another way, trees grow in patterns known in math as ‘branching fractals‘ and are usually limited to 11 internodes.

Observing trees in nature

Go for a walk outside, if you can, and find a deciduous tree (a tree which looses its leaves in winter), or alternatively find a picture in a book or online. Unless it is very young, your tree subject will repeatedly branch into smaller and smaller branches from the ground upwards.

Try and count how many times each stem splits into a smaller one – each one known as an ‘Order’. On a young tree, say one about the height of you, it may have an Order of four or five. For example, the main stem (or trunk) you would count as ‘1’, and when this has a branch count that as ‘2’, and when this branch produces a twig you would count this as ‘3’. On a big tree you may be able to count as many as 11 Orders.

Technically each branch junction (where one stem splits into more or ‘bifurcates’) is known as a ‘node’, and each branch is an ‘internode’.

What are fractals?

The term fractal was first used by mathematician Benoit Mandelbrot in 1975 in his book “The Fractal Geometry of Nature“. Fractals come from the Latin fractus meaning ‘broken’. Mandelbrot defined a fractal as “a rough or fragmented geometric shape that can be split into parts, each of which is (at least approximately) a reduced-size copy of the whole.” His informal description may have been more accurate though: “beautiful, damn hard, increasingly useful. That’s fractals.”

According to Wikipedia the following definition is commonly adopted:

“theoretical fractals are infinitely (1) self-similar, (2) iterated, and (3) detailed mathematical constructs having fractal dimensions.”

  1. self-similar: nothing changes at any scale,  the same pattern repeating over and over.
  2. iterated: the act of repeating a process; the results of one iteration are used as the starting point for the next iteration.
  3. detailed: producing fine or detailed structure at arbitrarily small scales.

A tree fractal in motion

I’ve created a short film of a tree fractal. It shows the creation of a perfectly symettrical tree with an order of 11 internodes. To make your own, read on.

Practical application of tree fractals

Beyond being mathematically interesting, understanding tree fractals has many practical applications. For example:

  • Understanding and being able to recognise the particular growth pattern of different tree species is an important feature in helping identify them.
  • Modelling  how much carbon dioxide a tree exchanges with the atmosphere.
  • Understanding how much water a tree transpires through its leaves.

If you want to read more about the science, see: Bentley et al. (2013). An empirical assessment of tree branching networks and implications for plant allometric scaling models. Ecology Letters, 16(8):1069-78. doi: 10.1111/ele.12127.

And another math thing . . .

In the 15th century Leonardo da Vinci wrote:

“All the branches of a tree at every stage of its height when put together are equal in thickness to the trunk.”

Leonardo da Vinci made this sketch depicting the branching pattern of trees. He depicted that the total thickness of branches along each of the arcs would e qual the thickness of the trunk.
Leonardo da Vinci’s 15th century sketch depicting the branching pattern of trees.

So, if you were to cut all the branches off a tree at a fixed distance away from its trunk, and bundle these all together, the size of this cylinder would equal the size of the trunk (and any branches) below. The rule applies at whatever distance (or height) you exercised this –  now that’s cool math!

This is now known as ‘Leonardo’s Rule for Branches’. It came from his thinking that branches act as pipes to move fluid, and so the total cross-sectional area must be the same at different levels of the tree if they are to work efficiently, if at all. This theory is now disputed by some who believe that, although the rule still stands, the branch patterns are related more to the impact of wind on a tree.

Make your own tree fractal in Python

I made the model shown in the above film with the help of my son (thanks Will Hemery!) using Python. Python is a simple programming language that lets you work quickly. Python Idle is completely free to download and use. Visit to install. Once done, create a new file, then copy and past this code into Python [note that the indents are stripped out in html so you will need to make sure the code looks like it does in the image on the right]:

import turtle
def f(w):
if w>=1:
t.fd(w9) t.rt(20) f(w.81)
f(w.81) t.right(20) t.bk(w9)

Make sure the formatting looks like this, taking special care with the indentation

If you’re familiar with Python, try improving on this model. For instance, rather than the branches splitting into two, can you make them split into three or four. Try changing the colour (color) by editing the hex code. Can you make it produce more than 12 rather than 11 internodes?

Related posts:


  1. Really interesting. I was trying to run your Python script but I think there are a few things that messed up when you pasted it onto the site (e.g. indentation) do you have the the original .py file I can download to try it out?

    1. Author

      Hi Andrew – thanks for your interest in this Python script.
      It’s been a while since I checked this out but its not been changed on my site since I published it, and I know it worked well previously. It may need updating to run with the latest version of Python? If you or anyone else is able to correct it, please do let me know and I will update the post.

    2. Author

      Andrew – A follow up. I’ve check the code and it works fine. The indentation has been stripped out on the webpage unfortunately. So, I’ve added an image next to the code to show how it should be indented. Good luck and let me know if it now works for you.

    1. Author

      So pleased you raised this Bob. I admit that normally I’m a British-English vigilante – as you will no doubt realise if you read my blog regularly – but I’ve been intrigued recently to discover that for the first time I am attracting more North American visitors than British. So this was, I admit, a quiet experiment to discover impact in terms of visitor numbers and comments.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.