The Project

Openlab Workshops and SPACE Studios are excited to present a new type of collaborative workshop project. A collective of 20+ artists, designer, makers, musicians takes on the task of creating an interactive, living ecosystem of machine “life” from April-June 2011 at SPACE Studios, Hackney, London.

The Brief (in brief):
Using pervasive technologies such as RFID, Twitter, Arduino, digital sound, and LED lighting, we will create an ecosystem of little machines that live, grow, reproduce, communicate, and die with one another, based on Conway’s classic Game of Life. Machines will need tending to by humans (“machine husbandry”), encouraging an evolutionary process of genetic algorithms embedded in the creatures. If left alone, the creatures will die of neglect and loneliness. By interacting with this small slice of digital ecology in a public exhibition, people can draw their own conclusions about our complex and interdependent relationship between technology and the “natural” world.

Continue reading

Exhibition This Thursday & Friday

Exhibition This Thursday & Friday @ SPACE

6pm – 9pm Thurs 13 and Fri 14 October 2011

Openlab Workshops and SPACE Studios invite everyone to an exhibition of the Life Project, an ongoing series of weekly making sessions where we build a digital ecosystem of aftificial creatures.  Part art project, part communal crafting excercise, it could be described as both a conceptual work of art and a colelction of “Tamagotchis on steriods.”  Come see for youself, talk to the participants, and even participate in future sessions!

SPACE STUDIOS (in the Medialab)
129—131 MARE STREET
LONDON E8 3RH
020 8525 4330

Small Hacking Session

integrated twitter

x – fixed bugs in color code (had to do with global references vs. pointers in Aduino code for classes; yeah Nick I don’t get it either…)

solder LED modules

javascript simulator

Dimmer plug puts out 5V at 25mA – better to use 3.3V  pin (labeled “+”) on JeeNode than use another resistor

made prototype board layout, took photos

Now creature simulator in java near complete, new emotion maps added, color menu, integrating twitter…

Pre-Mega-Building Session

This Tuesday we’re having a mega-building session.  I’ve cajoled a bunch of people into coming down and helping out, and Fiona is bringing her kids as reinforcements!

The goals for this session:

  1. Finish AI state tables that represent emotions using our emotion maps, so our creatures start behaving according to our plan
  2. Craft some creative creature bodies
  3. Integrate the wireless code – get Twitter broadcasts into it
  4. Solder some LEDs into the environment, create the Happy Cave and Orgasmitron
  5. Draw some animations for the RGB LEDs based on Dave Griffith’s curves:

    Dave Griffith's emotional colour curves

    Dave Griffith's emotional colour curves from his blog

  6. Write animation code for RGB LEDs based on above
  7. Finish audio code for emotions based on above

Creating the Emotional AI

The creatures update their current emotional state, and respond to external emotional broadcasts, via a look-up table in their Arduino code for the external reactions and another for the internal ones.  These are basically lists of probabilities for what state the creature changes to when either time increases (for the internal case) or another creature confronts it with an emotion (for the external case).
The internal one is easy enough to edit by hand, but the external one is a 3D array of values that takes some computer-generated magic to fit onto the Arduino. We use a Processing sketch that is in a more human-friendly form to generate the Arduino’s look-up table code, which can then be easily pasted in the ExternalEmotions.h file.
The way you edit this beast is to look at the Emotions map so you can see which states (happy, sad, etc) can affect other states (happy, sad, etc).
For example:
ExternalStateMap3D[HAPPY][SAD][ANGRY] = 5;
means that if the creature is HAPPY and looks at a SAD creature (e.g. receives a SAD broadcast via infrared) than the odds that it becomes angry are 5/10.
If the creature CANNOT go from one state to another, the odds are 0:
ExternalStateMap3D[HAPPY][SAD][HAPPY] = 0;
This means that a HAPPY creature receiving a SAD can’t stay HAPPY.
All odds are out of 10 – so all odds for a state MUST add up to 10 and not more or less!
So all the 11 entries for ExternalStateMap3D[HAPPY][SAD][*] must add to 10.  Or else everything goes haywire.  
(TODO – add a check for that in the code to warn us…)