Skip to content
Dan Riddell edited this page Aug 6, 2026 · 3 revisions

vivarium

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.

overview

Documentation

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

Install

Homebrew

brew install danielriddell21/tap/vivarium
brew install --cask danielriddell21/tap/vivarium

Go install

go install github.com/danielriddell21/vivarium/cmd/vivarium@latest

Quick start

go run ./cmd/vivarium              # run the GUI
go run ./cmd/vivarium --seed 42    # reproducible run

On 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.

Links

Clone this wiki locally