-
Notifications
You must be signed in to change notification settings - Fork 0
Home
galapagos — evolution, observed.
A pluggable Go framework for visualizing learning algorithms in real time. The flagship demo evolves a population of cars that learn to drive a procedurally generated race track.
Environments, agents and the renderer are decoupled behind small interfaces, so any agent can run in any environment. Runs are deterministic from their seed: a seed is chosen at random when none is given and logged, and passing --seed N (or a config seed) reproduces a run exactly.

| Environment | ga |
neat |
qlearning |
efficientcube |
evochess |
|---|---|---|---|---|---|
race |
✅ | ✅ | — | — | — |
cartpole |
✅ | ✅ | ✅ | — | — |
maze |
✅ | ✅ | ✅ | — | — |
cube |
— | — | — | ✅ | — |
flappy |
✅ | ✅ | — | — | — |
chess |
✅ | ✅ | — | — | ✅ |
| Page | Description |
|---|---|
| Environments | Every environment command and its agents |
| Windowed demo | The live window and its controls |
| Browser demo | The WebAssembly build and serve
|
| Architecture | How environments, agents and the renderer connect |
| Demos | An animated GIF of each tool in action |
On macOS, the Homebrew cask installs the full binary — the native window plus every CLI command and the browser demo:
brew install --cask danielriddell21/tap/galapagosOn Linux (or macOS without the native window), the Homebrew formula installs the cross-platform CLI; the browser demo rides along via galapagos serve:
brew install danielriddell21/tap/galapagosThe native window is macOS-only — it uses Metal, which needs no extra libraries. On any platform, galapagos serve opens the WebAssembly demo in your browser.
Linux: OpenGL/X11 libraries
Building the native window from source on Linux (go build -tags ebiten ./cmd/galapagos) needs OpenGL/X11. On Debian/Ubuntu:
sudo apt install libgl1-mesa-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev