Vivarium
Vivarium is a digital terrarium that I built to explore my fascination with genetic algorithms and emergence in complex system.
The creatures
Each arrow is a creature, pointing where it's headed. Each creature has it's own brain. Colour shows its diet:
- eats plants
yellow eats a bit of everything
red hunts other creatures.
The brains
Brains are a set of nodes and connections. Creatures are generated with a brain that is slightly mutated from it's parent's brains. Mutations can include adding/removing nodes, adding/removing connections, or changing the strength of existing connections. In this simulation brains have 32 inputs or "senses" and 3 outputs. You can hover over nodes on graph to see what each input/output is.
This type of "brain" architecture is called NEAT (NeuroEvolution of Augmenting Topologies), a generic algorithm developed by Risto Miikulainen and Kenneth Stanley. While I have strayed from their original implementation of NEAT slightly, the general principle remains the same.
Emergence
Creatures that survive long enough have babies, which inherit slightly changed brains and bodies. Over time the ones that cope best become common — real evolution, no design required.
The world
Coloured zones are different habitats, shaded patches are cover to hide in, and scattered dots are food. The yellow ring is a drifting "hotspot" where food is richest.
Have a look around
Click any creature to open up its brain and stats. Drag to pan, scroll to zoom. This is a window into the world — it keeps living whether or not anyone's watching.