Breed mathematical expression trees into 2K images. Pick the ones you like — the system does the rest.
One command. No admin rights required. Installs Rust if needed, clones, and builds.
After the build: cd ~/galapagos3 && cargo run --release
Linux window not appearing? Try: WINIT_UNIX_BACKEND=x11 cargo run --release
1. Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
2. System deps (Ubuntu / Debian)
sudo apt-get install -y libvulkan-dev mesa-vulkan-drivers \
libwayland-dev libxkbcommon-dev libudev-dev pkg-config build-essential
3. Clone and build
git clone https://github.com/kleer001/galapagos3.git cd galapagos3 && cargo run --release
After the build: cd %USERPROFILE%\galapagos3 && cargo run --release
Uses the GNU toolchain — no Visual Studio required. See script output if you hit a linker error.
1. Install git (no admin) — git-scm.com, choose "for current user only"
2. Install Rust (no admin) — rustup.rs
rustup default stable-x86_64-pc-windows-gnu
3. Clone and build
git clone https://github.com/kleer001/galapagos3.git cd galapagos3 && cargo run --release
Every image is a formula. Every formula is a tree. Every tree can be bred.
Each image is defined by six expression trees — hue, saturation, value, and three palette remaps. Trees mutate and cross over each generation.
All 16 tiles render in a single wgpu compute dispatch. WGSL shaders evaluate bytecode-compiled genomes at 1920×1080 with 2× SSAA.
From basic trig to Worley noise, FBM, Chebyshev distance, and palette-T indexing. Arity types: terminal, unary, binary, ternary.
S key in zoom view saves the tile at full 1920×1080 with 8-pass Halton-jittered AA and Gaussian reconstruction — 32 samples per pixel.
Walk through building blocks, tree growth, pixel evaluation, HSV coloring, palette remapping, and evolution — all live in the browser.
Mouse + keyboard.
| Input | Effect |
|---|---|
| Click tile | Select / deselect for breeding |
| Enter | Breed selected tiles → next generation |
| Z (hover) or double-click | Zoom tile to full 1920×1080 |
| S (in zoom view) | Save tile as PNG + expression text file |
| Escape | Exit zoom view |
| R | Randomize entire population |