live simulation · reef.sim
seed 0x2A6E90BD
seed 0x2A6E90BD
crt pass · scanline 3px · vignette on
ASCII Reef
2025Dormantvibe 68%0x2A6E90BD
An aquarium living in a terminal. Fish are built from characters, school by local rules, breed when conditions allow and die when they do not. Eighty columns by twenty-four rows, no scrolling, no reset, no mercy.
“boids, but it's an aquarium in my terminal. 80 by 24. the fish are characters. they school, they breed, they die. subpixel positions, quantise only at draw. do not scroll.▮
TWEAKparameters — the stage obeys in real time
Gestation
5days
Prompts cast
78
Tokens burned
0.7M
tick
33ms
v0.1boids at full resolution — legible, boring
v0.380×24 quantisation: the school appears
v0.9breeding · first bloom-starve collapse at 41 min
v1.0archived — a stable reef needs a predator I never wrote
Substrate
RustWASMxterm.jsratatui
Register
Uptime0 d
Grid80 × 24
Longest run41 min
StatusArchived
R&DResearch log
I wanted to know whether a boid could be beautiful at a resolution of 80×24, given that the whole appeal of a flock is smooth heading changes and a character grid offers eight of them.
Five days, and it is mostly a subpixel lie. Fish hold floating-point positions and are quantised only at draw time, so the school moves smoothly and only the rendering is coarse. Sub-cell motion is expressed by swapping glyph weight rather than by moving anything.
The quantisation improved it. At 80×24 the flock reads as a single organism far more strongly than the same simulation at full resolution, where you only see individuals. Reducing the resolution increased the legibility of the emergent behaviour, which I did not predict and still find slightly annoying.
Dormant rather than finished. The population collapses inside forty minutes under every parameter set I have tried — it either blooms and starves or never establishes at all. A stable reef needs a predator, and I never wrote one.