|
(Book image from large online vendor.) |
I've decided it's about time I did a book review. The book is probably not going to already be on your reading list. You are likely to have never heard of it and if you brought it up at a party, I don't expect you'd see a glimmer of recognition among your conversational targets. That said, I think it is a important book because it approaches an interesting topic in biology in a different way than most biology books and in doing so may reach an audience which normally wouldn't connect with biology books.
The book is: "
The Algorithmic Beauty of Sea Shells", by Hans Meinhardt (ISBN 3-540-44010-0). I own a copy of the third edition in English. The first version was printed in 1995 in Germany.
At first glance, the book appears to be about how the patterns on sea shells are formed. The book talks very little about molluscs, however. In the first chapter, Meinhardt introduces us to the idea of dynamical systems and how they're involved everywhere in the origin of patterns in the world we live in. From sand dunes to fern leaves, everything we see is a snapshot of a dynamical system. He then goes on to introduce seashell patterns as the history of a complicated dynamic system that played out over the life of the animal.
Chapters 2-9 develop an increasingly detailed mathematical model describing more and more complex patterns found on seashells. You don't have to be able to follow the math to follow the discussion. There are lovely photos and images from the author's computer simulations at every turn. However, if you are interested in the math, the essentials are laid out for you to explore. This detailed mathematical description of the biology is what is often lacking in biology books and what may attract the interest of people who normally would shy away from the "soft-science" that biology is often perceived to be.
Chapter 10 discusses efforts to mathematically model the shapes of seashells. Again, the math is only written out lightly and there are numerous figures illustrating the efforts that have come out of the research into the subject.
Chapter 11 introduces a computer program the author wrote to generate the many simulations illustrated throughout the book. The software comes with the book in the form of a CD-ROM and can can be run on any modern computer using
DOSBox, an emulator of the DOS operating system on an x86 computer. This chapter can be entirely ignored if you're not interested in the software.
Chapter 12 takes the lessons learned in chapters 2-9 and applies them in a simplified way to the more complicated biology that is responsible for how plants, animals, and other organisms develop. If you're interested in how the bones of chicken wings (or our arms) are laid out, this is the chapter that might gain your interest. The topics discussed here are much less worked out than the detailed analysis of how seashell patterns are formed.
When I first came upon this book, I was already a biology student at
university who also did extensive computer programming. and math. The
book spoke to me in a way that no biology book had done before. If you are interested in math as applied to biology, or in how you can convince computers to do complex math, this book will probably be of great interest to you. If you are interested in the complexities of biology and how we can approach the beginnings of an understanding about them, this book will probably be of great interest to you. If you have no interest in math or biology, then this book will probably not be for you. (Also. What are you doing here at this blog?)
I found the software included with the book to be clunky and slow. It is written in basic and run through a slow interpreter. I decided it would be fun and educational to re-implement the software in a faster language. I was using Turbo Pascal and so began writing. After several years, during which many other things took up most of my time, I had written a program which replicated much of the original software.
The figure at right is from my own software. It takes about 1% of the time to compute as it did in the original program, so it is much easier to play around with generating many different versions. Unfortunately, my program isn't yet complete. There are numerous simulations where my output doesn't quite match the author's. Whenever I am able to dedicate some time to working on this project, I find I am able to resolve more issues, but it will still take some time yet before I am "done".
Eventually, I'd like to write up a detailed description of what I learned while re-implementing the software. If I found the time, I'd like to extend the software in new directions. I've done some initial work towards simulating more realistic 2d clusters of cells, but without any of the complicated math needed for pattern generation. I'd like to explore the evolutionary dynamics that can lead to complex pattern formation. (Things like the various forms of mimicry and what not.) For now, I've put up the various figures I've generated
at my Flickr account.
References: