SF-CODE · INFINITE GAMES

GeneTank

An aquarium with no last round.

Play to keep the lineage going.

A wide view of the tank: a soft, swirling fractal backdrop, dark rock spires, a hazy row of distant plants, and bright evolved plants and fish in front.
Zoomed out. Every plant and fish here was bred, not placed.

The idea

Two kinds of games

In Finite and Infinite Games (1986), James P. Carse splits play into two kinds. A finite game is played to be won; it has agreed edges, a clock, and a moment when someone is declared the winner and it ends. An infinite game is played so that play can continue. Its players change the rules when the rules threaten to stop the game.

Finite

  • Fixed boundaries
  • Rules set in advance
  • Ends when someone wins
  • Looks back at titles earned

Infinite

  • Horizons that move with you
  • Rules that change as it's played
  • Continues as long as anyone plays
  • Looks forward to what can happen

Evolution is the oldest infinite game there is. Nothing in it wins. Lineages persist by changing, and every change rewrites the conditions for everyone else. Gene Tank tries to make that something you can hold in your hands for thirty seconds at a time.

You don't win the tank. You become one of the forces it adapts to.

Six ideas, built in

How the tank takes them seriously

01

No last round

Rounds fade into generations and generations fade back into rounds. Walk away and the tank keeps breeding, grazing, and hunting on its own.

In the tank
02

Horizons, not walls

The tank wraps end to end. You only ever see a window of it; the rest is still evolving off-screen while you watch one patch.

In the tank
03

Rules that change

Plants tint the backdrop around them, and plants evolve too. A fish that blends in this generation can stand out a few generations later.

In the tank
04

You are a pressure

Your net, your multiplying, the predators, and the grazers all do the same thing: decide who breeds. Net what you can see and the tank learns to hide from you.

In the tank
05

Forward, not backward

There's no score. The Evolution panel tracks how visibility, speed, hiding, depth, and plant defense drift across every generation.

In the tank
06

Open to surprise

Bodies are grown from rewrite rules, so a single mutated token can sprout a creature no one designed. Each catch rings a chime that climbs with your streak.

In the tank

The chromosome

Grown, not drawn

Each fish carries 37 genes. One of them, body plan, decides whether it grows as a finned fish or a long ribboned eel; the eels swim in the same gene pool and can crossbreed back. Eight of them are tokens that build an L-system: a rewrite rule applied to the letter F a few times over, then traced by a turtle that turns at the gene's branch angle. The trace is mirrored into fins and a tail that ripple as the fish swims. Tap any specimen below to read its rule, or grow a fresh plate.

And the genome can grow. Mutations duplicate stretches of a rule, invent new rewrite symbols that start as copies of old ones and then drift, and duplicate body segments into chains. Each new symbol takes on a job: spines that make predators let go, frills for sharper escapes, lures that feed a fish at night but glow, and ornaments that win mates but catch every eye. A pickiness gene sets how much a fish cares about a partner's ornaments. Every part costs upkeep, so complexity only builds where it pays. The Evolution panel charts it and spotlights the most complex creature alive.

Tap a specimen to see its rule.

ColorBody and fin hue, saturation, brightness, and a pattern of plain, stripes, or spots.
FormBody plan (fish or eel), size, girth, and the L-system's iterations, angle, rule length, fin reach, and stroke.
MotionCruise speed, tail beat, undulation, wander, and sudden darting.
BehaviorDepth, schooling, shyness, camouflage seeking, cover seeking, appetite, diet (which plant colors feed it), fertility, lifespan.
PlantsTheir own chromosome: L-system form, color, height, leafiness, sway, and thorny defense. Tall, leafy plants shade their neighbors to death; seeds only take root in the gaps, and fish graze hardest on the colors their diet favors.
PredatorsTheir own chromosome too: the hue their eyes are tuned to, acuity, speed, size, night vision, and stamina.

The tank

Hide in plain sight

The far water is one seamless fractal that drifts between smooth washes, streaks, and mottled blotches, softened and hazed so it reads as distance. A row of faint plants, grown from the living flora's own genomes, stands in front of it. A fish's visibility is the distance between its colors and whatever lies behind it, eased when its stripes or spots match the texture and by the darkness of deep water. Rock spires, boulders, and the plants themselves sit in front of the fish, so cover is real.

Predators hunt whatever stands out. So do you. Over generations, the survivors drift toward matching colors, faster bodies, deeper water, and the habit of tucking into plants.

The predators evolve too. Each carries its own chromosome: the hue its eyes are tuned to, acuity, speed, size, night vision, and stamina. The hunters that eat best breed, so their eyes follow whatever colors the fish are wearing. Their eye color shows what they hunt.

And the light turns. Over a few generations the tank passes from day to dusk to night and back. In daylight, a fish hides by matching the color behind it; after dark, color barely matters and only brightness gives a fish away. Long nights favor dim fish and predators with night vision, whose eyes glow in the dark.

Close view: a hazy green fractal backdrop with faint distant plants, a dark rock spire, bright foreground plants, and a few fish.
Near plants sharp, far plants soft. A fish's colors only work against part of it.

How to play

Net. Multiply. Let go.

  1. Explore. Drag, scroll, or use WASD to swim the camera. Pinch, ctrl-scroll, or + − to zoom. The map in the corner shows the whole tank. M toggles the music.

  2. Choose who breeds. Each round lasts 20 seconds by default. Net fish to pull their genes out of the pool. Multiply the fish and plants you like: each tap spawns three young fish from a parent and a nearby mate, or two seedlings. Tap a predator to stun it and spare the fish it's chasing.

  3. Watch it go dark. The lights fade, one or more generations pass, and the tank comes back up on the descendants. A short note tells you who was born, eaten, and netted.

  4. Read the drift. Open Evolution to see the population's traits change over time, or use Look on any fish or plant to read its whole chromosome.

Net 1Catch a fish or uproot a plant. Hold to widen it, then release to sweep a whole school; four big nets per round.
Multiply 2Ten per round. Three young fish, or two seedlings, appear on the spot.
StunTap any predator with Net or Multiply. It drifts, dazed, for six seconds.
Look 3Open a genome card, rule string and all.

In Tank settings you can lengthen rounds, run up to 25 unwatched generations between them, set up to eight predators, change the length of the day, and raise the mutation rate.

The series

Infinite Games

Classic arcade and table games with the ending taken out.

Infinite WordsA word game on a board with no edges, after the tiles run out.
Play ▶
Digger!!A raccoon digging down through a buried city.
Dig ▶
Digger: SunsetThe same dig under San Francisco's Outer Sunset dunes.
Dig ▶
Gene Tank HEREAn aquarium where fish and plants never stop evolving.
Play ▶
KEEPEVOLVING
▶ Play Gene Tank

The ideas on this page paraphrase James P. Carse, Finite and Infinite Games (Free Press, 1986). Read the book; it's short and it will change how you see play.