walstad loom

Generative Walstad aquarium. Continuous 3D voxel simulation → palette-quantize + dither → 48-color pixel output. Closed nutrient loop; population dynamics settle over minutes of observation.

Release
v0.2.31
Runtime
Godot 4.6+
Steam EA
7 Jul 2026
Planted aquarium in void environment — pixel-art voxel fish over substrate
Fig. 1 — void preset · isolated tank · 48-color quantize pass

01 Status

Active development, September 2026. Public builds on GitHub + Steam; plant systems and fish aliveness still iterating.

v0.2.31 shipped

Plant Systems 50 visual stack, fish body-first aliveness, quieter notification inbox, spawn settling fix.

In development

Player-wish foundations, deeper plant ecology, and keeper-facing communication polish.

Distribution

GitHub Releases (free). Steam wishlist for EA launch. Revenue → dev hours.

02 v0.2.31 notes

Plant Systems 50

Foliage caustics, canopy shadows, gusts, golden-hour rim, senescence batches, and flowering tip stability — plants read as living volume.

Fish alive + inbox

Body-first fear/habit kits without requiring LLM voice. Notification toast policy: quieter mute, death window, kind filters.

Spawn settle

New fish ease into the water column instead of popping into place mid-tank.

Prior (v0.2.30)

Mobile safe-area chrome, Beer–Lambert water, generative coats, Steam client icon.

03 Subsystems

Walstad-style closed loop. Each agent carries a genome; behavior emerges from physics and state machines, not keyframes.

Plant growth

Voxel-by-voxel construction from substrate nutrient field. Six leaf morphs, runners, crypt melt/regrow from rhizome.

Fish genetics

Heritable morphology and swim pattern. Schooling, brooding, live-bearing, morph drift across generations.

Food web

plants ← substrate ← waste ← fauna. Grazing, predation, algae bloom/crash cycles. Self-balancing over ~minutes.

Photoperiod

6-minute day/night. Photosynthesis, O₂ pearling, diurnal/nocturnal activity, surface gulping at low O₂.

Reef mode

Saltwater preset: coral morphs, mixed reef fish morphs at spawn, marine inverts, night bioluminescence.

Render pipeline

Continuous 3D sim → GDShader palette quantize + dither. 48-color output. Motion from simulation state.

04 Scenarios

Eight presets. Each sets tank geometry, substrate, lighting, and stocking — distinct glass silhouette, not just species swap.

Scenario picker — Walstad Jungle, Iwagumi, Blackwater, Coral Reef
Fig. 2 — scenario picker · 8 presets

Walstad Jungle

box 8×4×7

Planted community: tetras, harlequins, cory, gourami pair, shrimp.

Iwagumi

wide 11×3×5

Sand, high light, single tetra school, negative space.

Blackwater

column 6×3×9

Tannin-stained water, driftwood, killifish, cory, guppy.

Reef Cube

cube 6.5²×7

Saltwater reef: corals, clams, mixed morph school.

Hex Showtank

hex 7²×8

Angelfish + gourami pairs, territorial wedges.

Polyp Biosphere

sphere 5²×6

Shrimp colony, hydra polyps, clams — no fish.

NA Column

cylinder 5.5²×8

Tall planted column, full behavior stack.

Predator Den

box 6×4×6

Dim tank: betta vs dwarf puffer, opposite territories.

06 Installation

macOS

Extract walstad-loom-mac.zip, then double-click WalstadLoom.app. Developer ID signed and notarized.

Windows

Extract walstad-loom-windows.zip. Run WalstadLoom.exe. SmartScreen: More info → Run anyway.

Linux

Extract archive, then:

tar -xzf walstad-loom-linux.tar.gz
./WalstadLoom-linux.x86_64

Tested Ubuntu/Debian. Exec bit preset.

Android

Install walstad-loom.apk. May require unknown-sources permission. Android 8.0+.