I recently saw a very interesting photo of a sea shell on Flickr.
The patterns on the shell appear to be very similar to that of a mathematical structure called a Sierpinski triangle – and this is no coincidence.
A snail’s shell can grow only by adding on new material in a thin layer on the lip the shell. The pigmentation cells lie in a narrow band on this lip, and decide whether to switch on or off depending on the pigmentation of the area immediately around it. In short, the pigmentation patterns can be modelled as elementary cellular automata very accurately.
Several elementary cellular automata rule sets produce similar structures to that seen on the shell. Combine these basic rules with a little bit of noise due to nature, and you get these beautiful pattens with a bare minimum of computational effort.
The snail that grew the shell above is from the family Conidae. Other species have slightly different rules for pigmentation, but all produce their patterns by a method that can be modelled as cellular automata.
Hey dude,
All your images are replaced with an image suggesting my Referer header is wrong. Both from Google Reader and visiting directly with a vanilla Firefox install.
Thanks David – I thought I fixed this from the last time you brought this up, but… sigh… should be working now.
Wow! These shells are beautiful!
this looks shopped…i can tell from some of the pixels and from seeing quite a few shops in my time
Is there a good place to find formulas describing these rules? I’d love to tinker with some code…. 🙂
Hi Greg,
Elementary cellular automata can produce these shapes (and many others). I wrote a blog post about them, and also wrote a small applet to allow you to experiment with different rulesets.
We live in a simulation!