Loving the mathematics of sea snails

Sourcing inspiration for unique design ideas sure does lead me down some truly weird and wonderful paths. Last week it was all about snails. Tropical sea snails to be precise!

The original Oliva Porphyria sea shell is a thing of beauty on its own. With its distinctive geometry, it’s hard to believe this pattern comes from nature:

Tropical sea snail shell detail
Image attributed to Hectonichus on Oliva Porphyria Wikipedia article.

But how could I possibly emulate this in woollen form?

I was excited by the work of late theoretical biologist Hans Meinhardt. Creating complex mathematical formulas to simulate biological reactions on shells over time is no mean feat, and he’s captured the variations across multiple species so eloquently by the activator – inhibitor theory.

Sadly Hans Meinhardt’s sample shell simulation program was written in Visual Basic 6 which is very unfriendly with even the oldest version of Windows I have. So my task was to rewrite his simulation in Processing.

I use Processing for most of my scarf generation algorithms because it’s a C-based language designed to output images. The IDE is similar to Arduino’s IDE (thus is familiar to me) and the compiler can even produce a web friendly format. I call that win-win-win-win!

What I love most about this algorithm is it’s prone to producing shapes which look suspiciously like hearts. Who doesn’t love an algorithm that loves back?? It’s the week of Valentine’s Day and I have a lovely new woollen scarf available in the Etsy store for you to enjoy:

And because sharing is caring, you’ll find my Processing source code on Github here and a sample of the running program below. Aww, feel the love. 🙂

Click/tap anywhere on the generated pattern to render a new pattern using a random seed. I hope you enjoy the beauty of the sea snail brought to you by theoretical biologist Hans Meinhardt!

Do you have any crafty or creative projects you’re working on right now? Where do you begin?

Leave a Reply

Your email address will not be published. Required fields are marked *