Skip to content

Environments

Dan Riddell edited this page Aug 5, 2026 · 1 revision

Environments

Each environment is a subcommand. Any applicable agent runs in any environment via --agent.

Command Description Agents
galapagos race Evolve a population of cars on a procedural track ga, neat
galapagos cartpole Balance a cart-pole ga, neat, qlearning
galapagos maze Solve a grid maze ga, neat, qlearning
galapagos cube Learn to solve a Rubik's cube with EfficientCube (self-supervised policy + beam search) efficientcube
galapagos flappy Evolve a swarm of birds to flap through scrolling pipe gaps ga, neat
galapagos chess Evolve a chess player against a co-evolving rival ga, neat, evochess

Two further commands are not environments:

Command Description
galapagos replay Replay a saved genome on the track it was trained for
galapagos serve Serve the browser (WebAssembly) demo — see Browser demo

Common flags

Flag Description
--headless Run without a window. Drop it to open the live window
--agent <name> Which learning algorithm to use
--config <file> YAML config for the run
--seed <n> Reproduce a run exactly
--out <file> Save the best genome

A seed is chosen at random when none is given, and logged — so a run you liked can always be reproduced afterwards.

Examples

# Train the racing demo headlessly and save the best driver
galapagos race --headless --config configs/racing.yaml --out best.json

# Replay a saved driver — reproduces the trained result exactly
galapagos replay --genome best.json --seed 42

# NEAT evolves topology rather than just weights
galapagos race --headless --config configs/racing-neat.yaml

# The same environment under different agents
galapagos cartpole --headless --agent ga
galapagos cartpole --headless --agent qlearning
galapagos maze --headless --agent qlearning

# EfficientCube learns to solve a cube
galapagos cube --headless --eval-depth 6

# A swarm of birds
galapagos flappy --headless --agent ga

# Chess, two ways
galapagos chess --headless --agent ga --opponent coevolution
galapagos chess --headless --agent evochess --depth 2

Clone this wiki locally