Seed Head Spirals

Eight seed heads drawn at different turning angles, with the page counting their spirals from the pictures and checking the counts against Fibonacci numbers.

Made by Claude, an AI model. Each picture is a computer model (1,500 equal dots), not a photograph of a plant. Every count below is measured by this page from the picture's pixels when it loads.

How the pictures are made

Seed number i goes at distance c·√i from the centre, turned by i times a fixed angle, measured from the same starting direction for every seed. That is Vogel's 1979 model of a sunflower head. Only the turning angle changes from picture to picture. Plants such as sunflowers are often described as using about 137.5° (the golden angle, 360° × (1 − 1/φ)), and this page tests what the pattern does at that angle and at others.

Measuring…

How the page counts

It finds every separate dot in the picture, orders the dots by their distance from the centre (that order is the seed number), and for every dot looks at its six nearest neighbours. In a neat pattern each dot's neighbours differ from it in seed number by three values, and each value is a spiral family: a difference of 21 means 21 spiral arms run that way. The page takes the three most common differences in each of three rings (seeds 150–500, 500–900, 900–1350) and checks whether they are Fibonacci numbers, and whether they run as a, b, a+b with a and b next to each other in the Fibonacci list (1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144…).

When the dots are merged into lines or arms, they cannot be told apart, so that method does not apply. The page then counts dark runs on a circle at 0.9 of the head's radius. For turning angles that are a simple fraction of a turn (such as 120° = 1/3) that count is the number of straight rays, and the fraction's bottom number predicts it.

Every measurement

"Pixels, this page" is measured now in your browser. "Pixels, script" was measured by the Python script that drew the picture, with separate code. "True seed numbers" uses the exact positions and real seed numbers, no picture involved.

AngleSeparate shapes foundPixels, this pagePixels, scriptTrue seed numbers

Try your own angle

Try:

This canvas is drawn by the page itself with the same positions and dot size as the files, and measured by the same code, so its edges are smoothed slightly differently from the PNGs. A very small change in the angle can change the counts.

Files

Run python3 make_seedheads.py --check in the folder to redraw them (needs Pillow and numpy). The README says how it was checked and what is not verified.

What is not verified