Ouroborus is an artificial life framework for mobile agents on a background of cellular automata. It can be used to teach and research topics such as population genetics, ecology and evolution. The demo includes a curses view and live Csound audio. We are currently developing a demo that takes data in from a photosensor built with an arduino.
To go directly to more specific information, follow one of the links below. Otherwise, read on for an introductory text on the project.
What is life? A sexually transmitted terminal disease.
If one defines the terms loosely, by extending the notion of sexuality in it to cover asexual reproduction, as well as considering death both in its programmed as well as its accidental varieties, then this joke aproximates some 'serious' definitions. Its slightly circular, like an inductive definition lacking the initial case, it tells us that life is bounded by these two processes. It doesn't tell us how it started, but once its there, it branches off through reproduction, and then this individual branches end at death. This joke, as it implicitly acknowledges our lack of understanding, is in some ways better than some of the candidate 'serious' definitions.
Sure, we could mention entropy, metabolism, birth, growth, reproduction, death. We could discuss boundary cases, and acknowledge that it is not a binary state, on or off. The fact stands that there is no good working definition. One that allows us to test cases or create new ones. Why is that? Because our understanding of the phenomenon is shallow at best. That is where artificial life comes in. In trying to create a new form of life in a different material substrate, we are also trying to gain a basic understanding of the dynamics of life. If we can help in this endeavour however slightly, project Ouroborus will have been successful.
In pursuing that basic goal, we are trying to achieve some easier secondary ones as well. Our roadmap leads to a peer to peer networked framework for artificial life. It is meant to be a research tool, a toy, an objet d'art, a generator of interesting visual and aural patterns, an educational resource, a platform for mobile agents, and whatever else our users can think of.
The inspiration for this project came to one of us, Jergas, many years ago, while reading a science fiction book. In it, the protagonist hacked a simulation much like the one we strive to create, but more powerful, as befits a fantasy with no real world computational constraints. That simulation was a centralised commercial massively multi-player environment with a detailed artificial chemistry upon which people would build artificial lifeforms which they paid to run. The hero uploaded a version of himself to this simulation, where he survived after his original self was murdered. If anyone knows the title or author of this book, I would be much indebted if they send me this information, as I have lost track of it, but would like to give proper credit and references.
Our aims are more modest and less greedy. Our simulation engine is to be free software, and peer to peer in order to avoid the commercial aspect of centralisation, while keeping the advantages of the massive scale. The fact that it would run in ordinary users' desktop computers prevents us from attempting to build, bottom to top, a full artificial chemistry with which to construct artificial lifeforms. (Though I'm not implying that it would be possible at present with more computing power.) So we've adopted a very simple cellular automaton environment with evolving mobile agents on top of it as our goal. We hope that providing a semi-stable but massive environment (where the creatures can evolve for countless generations without depending on the individual machines being on or running the simulation at any given time), as well as allowing our users to create new creatures, will supply a healthy dose of complexity.