There is mention of my communication with Bruce Damer in his interview for the biota.org podcast, way back when the name darwin@home came up for the first time. I looked up the original email:

From bdamer@digitalspace.com Tue Dec 14 23:46:26 2004
Date: Tue, 14 Dec 2004 14:46:08 -0800
To: gerald@beautifulcode.nl
From: Bruce Damer
Subject: Hi Gerald!

Wow Gerald, truly beautiful project! I am going to include this in the next 
Biota newsletter and on the site if that is ok. Say Biota has been looking 
for a name for our public efforts to get folks to build evolving systems 
like yours and your mentioning of "Darwin @ Home" below is actually a good 
way to refer to all of these efforts. I keep explaining to folks that what 
this is all about is a kind of biological SET @ Home. Could I use your term 
(crediting you) as part of the efforts and the site when I get the pages up?

Biota is rebooting and coming up with some projects sponsored by NASA, we 
will be kicking off some of this in January at USC. I am going to show the 
guys Fluidiom.sourceforge.net and maybe there is a way for them to work 
with you.

Anyway, lots going on, esp with getting Biota restarted (a lot of interest 
and new projects out there).

Bruce

i've been building structures, and letting a simple genetic algorithm
loose to have these structures learn to run like the wind.  i'm
currently working to create a website and web start application which
facilitates many client machines evolving creatures in parallel (not
seti@home but darwin@home), so that we can _really_ see what it's
possible to brew with this survival-of-the-fittest stuff.  i want a
whole zoo of these things, and especially ones that other people have
dreamt up.

http://fluidiom.sourceforge.net

Gerald de Jong
Beautiful Code BV
Rotterdam, NL

DigitalSpace
343 Soquel Avenue, # 70
Santa Cruz CA 95062-2305 USA
damer@digitalspace.com

http://www.digitalspace.com

A short while ago I gave an audio interview for the podcast that Tom Barbalet is doing for biota.org. To put my work in context and to hear more about it, you can have a listen to my interview and several others here.

We talked about the history of Fluidiom and Darwin@Home, about the community aspects and the Biota conferences, and about where things are going. I hope you enjoy it.

Fluidiom won the prize for best demonstration last year at BNAIC 2005 and they asked me to write an article for the BNVKI Newsletter. This is what I wrote:

In the fall of 1995, I started work on a project that had been brewing for years in my mind. The geometrical and architectural work of Buckminster Fuller(1) and the unique sculptures of one of his students Kenneth Snelson(2) had captured my imagination, and after spending hours admiring a Snelson piece outside at Museum Kroller Muller in the east of Holland I resolved to try and recreate this sculpture in software.

After a few months of experimenting I released a first version of an open source program which made it possible to build these fascinating tensegrity(3) structures by hand, and algorithmically. A small community of enthusiasts for the program gathered on an internet mailing list and we built and played with many interesting virtual structures based on nothing more than push and pull forces.

Throughout the rest of the 90's the program was expanded to allow for collaborative building via internet, and the resulting structures were eventually introduced into the Virtual World community by generating beautiful and unique objects for the Active Worlds(4) chat environment.

The driving force behind my effort was to return to the first principles of spatial structure, distilling it to the simplest elements: springs. Springs push when they are too short and pull when they are too long, and when they are connected at their ends, many fascinating things can be built which not only have shape but also dynamic behavior. Only basic vector math was necessary, and some of the structures (specifically tensegrities) exhibited unique robustness. When a tensegrity is mangled, it almost invariably returns to its original shape.

I presented my work in 1998 at a small conference in Cambridge, England called "Digital Biota 2", where the keynote speaker was one of my intellectual heroes Richard Dawkins (5), the prominent Oxfordian evolutionary biologist. I demonstrated my software for him privately just before he left for Oxford, and when I asked, he scratched his chin and said "Yes.. you could evolve these..". I was inspired to start work on a new version of the software I call "Fluidiom" (Fluid - Idiom), which was initially intended to build structure based on a kind of genetic instruction set. This proved to be more difficult than expedted at the time, so other activities began to take priority.

Having played extensively with a diversity of springy structures, a seemingly natural question arose: If we suppose that these structures are bodies, what could they learn to do? I decided that they should learn to run. The goal would be simply to move as far as possible in a fixed number of iterations (amount of time). I was unsure how difficult it would be, and since Fluidiom was a hobby project, I was a little concerned about spending too much time on it.

In the spring of 2004 I was on vacation on the island of Mallorca and the weather was less than ideal, so I spent an afternoon adding gravity, a non-slippery floor, and turned the springy intervals into muscles by varying their desired length over time according to a global cycle. Muscle behavior was just a slight extension of spring behavior, and there was no brain involved since the only thing evolving was blind coordination of muscle contractions. Each muscle is "unaware" of the others.

That same evening I built the basic mutation and the natural selection system, and before going to sleep I set the process running. The following morning I went to look at what had developed and was completely shocked! The creature was galloping desperately and at hazardous speeds in order to avoid the grim fate of its weaker brothers: death. The natural selection process had effectively explored the fitness gradient overnight. It looked dramatically purposeful, even though it was obviously just an optimization algorithm. It was clear that I was on to something.

I rebuilt the software, switching the emphasis from building structures to evolving running behavior instead, and then began to explore the effects of different parameters on the evolution process. It turned out that tweaking the physics parameters (gravity, damping, rigidity) produced very different evolved behaviors.

Some bodies jumped or galloped while others crawled ploddingly, depending on the challenge with which they were confronted. Also, bodies didn't have to resemble existing animals at all, yet they still learn locomotion, some better than others. Three-legged or circle-shaped bodies work quite nicely even though there are perhaps no biological equivalents. Long thin bodies develop snaking motion, many-legged creatures evolve millipede-like waves of movement, and quadripeds tend to walk or crawl.

The evolution algorithm itself worked on the basis of parameters such as population size and mutation rate, and making these tweakable revealed some fascinating idiosyncracies of what was essentially a minimalistic bacterial evolution (non-sexual). Playing "God" during the evolution is very entertaining indeed. For example, it is exhilarating to observe a sudden rise in fitness at the moment that a mutation causes the body to be airborne during its stepping movement, and the new leaping body genome rapidly dominates and displaces the population of crawlers.

Repeatedly evolving the same structure proved that the algorithm was exploring local maxima, since different locomotive behavior resulted from each run. For example, a six-legged creature once evolved to raise its front two legs and walk quickly on its rear four legs, while in other runs of the evolution it used all six legs. Some form of sexual crossover may provide a solution for this.

Key to the algorithm's success is the strict limitation on the domain explored by the mutation/selection. A mutation involves simply changing the timing of a single muscle contraction, of which there are often hundreds in a single body. This provides a relatively well-behaved fitness gradient, and since the algorithm very consistently capitalizes on lucky mutations, progress is almost always assured. Also, the visually compelling nature of the end result turned out to be accessible to all kinds of people instead of only specialists in the AI field.

My demonstration of Fluidiom at BNAIC 2005 involved building a body from scratch by hand with the mouse, and then launching the evolution algorithm. Having built many bodies, it only took a minute or two, and that was fortunate since there were only twelve minutes available for the demo. After ten minutes of explaining how the algorithm was doing its work, while pointing to the graph of increasing fitness as the generations quickly came and went, I showed the resulting evolved body. Ten minutes is not a great deal of time for an evolution to proceed, especially when compared to the millions of years available to biological life, but it was enough to clearly show the first rudimentary locomotive activity.

It was very gratifying afterwards to receive a series of sharply formulated questions from such a knowledgeable audience, and the interest that the BNAIC attendees had for my work was solid motivation to pursue it further. Receiving the prize for best demonstration from the BNVKI was icing on the cake!

My hope is that students with diverse academic interests might be inspired to eventually take the solid first-principles geometrical basis of Fluidiom as an environment in which to perform their own evolution experiments. I can imagine many different applications in the domain of artificial intelligence which would do well to use the Fluidiom wheel instead of reinventing their own, and the visually compelling nature of the software is useful both for finding inspiration, developing intuitions, and for presenting results. It is an open source program (6), remarkably small and simple, and carefully constructed to be a framework upon which many different things can be made to happen independently.

My own personal interest in the further development of the software and the genetic algorithm will be to apply it to the domain of architecture. In a sense this is coming full-circle for me because the original inspiration for the project was geometry and actual physical structures.

I am in the process of construct an application which applies Darwinian selection to optimize physical architecture, of course choosing among multitudes of candidate variations in search of an optimum. Here, however, the fitness function will not be as straightforward as locomotion, but will instead involve the genetic evolution of building processes and it will attempt to optimize construction and material costs. Hopefully this approach can play a role in the creation of future inexpensive smart buildings and other structures made of real atoms instead of bits.

Part of my current research efforts at Almende BV was to create a platform for multi-agent systems, which is called "Emerge"(7). The Emerge platform represents a somewhet unusual approach to agent systems because it integrates agent visualizations, and because it allows agents to be persisted individually in the form of readable XML files (persistence, but no database!). It also permits the creation of very large numbers of autonomous agents, each of which can be persisted at any time.

With the new tools available in the Emerge platform, I am now able to revisit an the idea from a number of years back: to evolve the structure itself, instead of only the behavior of a structure that must be built by hand. Emerge agents can have an arbitrary number of parallel tasks, and all tasks can be persisted in XML at any time, so I will be attaching an Emerge agent to each Fluidiom body and evolving tasks that do building. Fluidiom bodies will then have an evolving embryology!

If you find yourself interested and wanting to know more, contact me at .

  • [1] Buckminster Fuller http://en.wikipedia.org/wiki/Buckminster_Fuller
  • [2] Kenneth Snelson http://www.kennethsnelson.net/
  • [3] Tensegrity http://en.wikipedia.org/wiki/Tensegrity
  • [4] Active Worlds http://www.activeworlds.com/
  • [5] Richard Dawkins http://www.world-of-dawkins.com/
  • [6] Fluidiom Project http://fluidiom.sourceforge.net
  • [7] Emerge Project http://chap.sourceforge.net/emerge

Fast-forward to my fourth year at UW, and while strolling around a big bookstore I came across Synergetics by Fuller. Now here was an interesting thick book full of diagrams and lots of text. Fuller was extremely obsessive about things, and Synergetics has all of its lines numbered so that future generations could refer to individual passages, sort of like the Bible.

If you ever want to get a mathematician confused, let them have a look at Synergetics. It's got sort of the look of a math book but it's also chock full of very long and often convoluted sentences. I began to shop the book around a bit, showing my fellow math-heads and everybody scoffed at it, saying that it wasn't mathematics. So then I showed it to some artists and their reaction was similar: that's not art! Still the contents were fascinating, and since neither the math people nor the art people could value it I became all the more fascinated.

Before you go off and read Synergetics, I can recommend picking up Amy Edmondson's book A Fuller Explanation, which is a lot shorter and easier to consume.

Fuller was putting spatial geometry at the core of everything, however strange that sounds. The Geometry of Thinking. I found myself always returning to this stuff, because I liked the idea of thinking in terms of structures that could be built and played with. I built all kinds of geometrical structures and had them hanging around the house.

The funniest things was when I got into contact with a group of Bucky Fuller enthusiasts on the internet, because when I finally went to meet a number of them in real life (years later!) they all lived in houses full of geometrical structures.

There were others like me!

Waaay back in 1984, my dorm room at the University of Waterloo (Ontario, Canada) had some double images on graph paper pinned to the bulletin board. I had a little Sharp calculator/computer and I had written a BASIC program to convert 3D coordinates to 2D coordinates assuming the points of view of two eyes in space. I created stereo images by painstakingly inventing objects with 3D coordinates and then plotting them on the graph paper in stereo and later connecting the dots.

I was able to see the stereo images unaided (eyes in parallel gaze, but focus nearby) so I saw depth! Being an enthusiastic first-year student at the Math faculty, I found it exciting to be able to create completely virtual 3D forms, even if it did involve incredibly slow plotting by hand.

Every calculus class where we were expected to sketch 3D shapes (for figuring out how to integrate them to find volume, or whatever) was a fun challenge for me, and I loved drawing the X-Y-Z axes and lightly plotting critical points and then sketching and shading in the rest.

Eventually, since I was studying Combinatorics & Optimization, I encountered Graph Theory and that really caught my attention. Here was a branch of mathematics which was focused on dots-and-lines (and basically nothing else!), with no real use for spatial representations except to avoid getting confused about the dots-and-lines (sometimes, on a good day, arrows). My sensibilities were bothered by this, but fascinated as well. How could it possibly not matter?!