MIT Open Source License

Copyright 2004-2009, Steve Grand. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


This source code was released under the MIT Open Source license by Steve Grand under the following stipulations...

From: Steve Grand
Date: June 24, 2010 10:47:02 AM PDT
To: Tom Barbalet
Cc: Bob Mottram
Subject: Re: What's the status of Simbiosis?

1. I can't see me continuing to develop it - I'm working on something else.

2. I don't have any time to devote to it. I don't want to be inundated with questions about how this or that aspect works, because I really don't have the time.

3. I'm not averse to letting other people continue developing it if they want to, as long as I'm suitably credited.

It's currently a Visual Studio project in C# for .NET, using the now obsolete Managed DirectX. I'd say it is approaching Alpha, in terms of completeness, apart from the MDX issue (it should be converted to XNA, although this isn't trivial because the two libraries use different object representations and Simbiosis (released here as Simergy) is unusual in its needs compared to a conventional game where the objects are predesigned). Apart from that, the main thing that remains to be written is a library of useful cell-types. The physics is also buggy, simplistic and needs work. The code is pretty well documented line by line but the only orientation overviews are at the tops of source files - there's no standalone documentation.

The premise is a lego set for creating artificial life-forms, cell by cell. Each cell type is a sensor, an actuator or some kind of metabolic or computational unit, and the user combines cells into circuits to create higher-level behavior. New cell types can be added without recompilation. Cells interact through channels thatcan be configured to conduct one of several chemical signals. Choosing the chemical affinities for the various input and output channels defines the circuit (e.g. an oscillator cell producing chemical 1 as its output could be connected to a bioluminescent cell. The bioluminescent cell might have two inputs: one controls brightness, the other color. Whichever channel is given an affinity for chemical 1 will determine which parameter the oscillator affects. "Bypass channels" allow signals to be sent to cells further downstream, and thus arbitrary circuits can be constructed.

The scenario is underwater. The user has a little yellow submarine for exploring the world and tracking/observing creatures. There's also a research ship, with a laboratory in the hull. This is where creatures are constructed and edited/debugged.


This source was released with Steve Grand's permission following a conversation with Steve on Biota Live.

The source is currently being maintained by Tom Barbalet.