Repository navigation
Home
Dan Riddell edited this page Aug 6, 2026
·
3 revisions
vivarium — a place where life is kept, and behaviour evolves.
A 2D ecosystem simulation in Go + Ebiten where agent behaviour evolves rather than being programmed. Each organism is steered by a tiny hand-rolled neural network; there is no backpropagation between generations — populations improve through reproduction with mutation, and adapt within a lifetime through reward-driven learning.

| Page | Description |
|---|---|
| Highlights | What the simulation actually models |
| Controls | Keys, camera and the analytics views |
| CLI | Flags for the GUI and the headless subcommand |
| Configuration | The JSON config and every tunable |
| Headless runs | CSV experiments, snapshots, save/load |
| Demos | The full feature gallery with screenshots |
| Related work | Prior art in artificial life |
brew install danielriddell21/tap/vivarium
brew install --cask danielriddell21/tap/vivariumgo install github.com/danielriddell21/vivarium/cmd/vivarium@latestgo run ./cmd/vivarium # run the GUI
go run ./cmd/vivarium --seed 42 # reproducible runOn Linux you need the usual Ebiten build dependencies (OpenGL + X11 dev headers, e.g.
libgl1-mesa-dev xorg-dev libxxf86vm-dev libasound2-dev).
All randomness comes from a single seeded generator, so a given --seed reproduces the same run exactly.