Aquarium planner with a living 3D world

Plan a tankthat stays alive.

Water, bioload, space and every tank mate, scored 0–100 and swimming in 3D, so you find the problem before your fish do.

0Health scoreHealthy0 inhabitants
Bioload0%
40G Breeder · filter 1100 L/h
  • 6independent axes
  • 150species modelled
  • 0–100health score
The research model

Six independent axes, not one percentage.

Most stocking calculators squeeze a tank into one number, and a tank that fails on space or on a single bad pairing still comes out green. HappyFishTank checks each axis on its own. Every problem is a blocker, a warning or a note, and a blocker is never averaged away.

01

Water window

Temperature, pH, GH, KH, TDS and salinity, each stored per species as an ideal band inside a tolerated one.

Tank mates must share a window, not just a number.

02

Bioload vs. biofilter

Waste grows with body mass to the power 0.8 and with warmth (Q10), not with fish length.

Weighed against what your filter and water changes clear.

03

Hydraulics

Filter turnover per hour and the current it makes, against what each species likes to swim in.

Bettas hate a river; hillstream fish need one.

04

Space

Swimming length, floor area for bottom dwellers, height for tall fish and cover for the shy.

Real tank dimensions in centimetres, not just gallons.

05

Tank mates

Directed pair rules: mouth size against body depth, fin nipping, look-alike rivals and territory.

An angelfish can eat a neon; a neon cannot eat an angel.

06

Equipment

A lid for jumpers, a heater for tropicals, a cycled filter before the first fish goes in.

The small things that end tanks overnight.

Example: the water window

Each species has an ideal band inside a tolerated range. Two fish can share a tank only where their bands overlap.

Neon tetraCorydorasshared ideal18°C22°C26°C30°C34°C
Three kinds of answer
Blocker: the tank cannot work as it is. Score goes to 0.
Warning: it works with care, or not for long.
Note: worth knowing, nothing to fix.

Most problems come with a one-tap fix: a bigger filter, a larger school, warmer water, or a tank mate swapped out.

Try it

Change the tank. Watch the score.

This is the real model, running in your browser. Turn up the heat, add a betta to the barbs or switch off the cycled filter, and the health score, bioload and living world answer at once.

Tank size
76°F · 24°C
Cold tapTropicalToo hot
Cycled filterBacteria already turn ammonia into nitrate
Who lives there
0
Health score
Healthy
0 inhabitants in 29G
Bioload0%
Pick a few species to see how they get along.
Opens it in 3D and saves it to your workspace.
The living world

The water shows what the numbers mean.

The 3D tank is not a screensaver. Every fish takes its health from the model: stressed fish lose colour and slow down, gasp at the surface when oxygen runs low, hide when the school is too small or a predator moves in, chase their victims, and float when the water has killed them.

Clear water, busy fish

Every species sits inside its water window. Schools stay tight, corys work the sand, colours are full.

Compatibility

Who eats whom, who nips whom.

Compatibility runs in both directions. A predator's mouth is measured against the prey's body depth, fin nippers against long fins, look-alike males against each other. Keeper reports add what the rules miss.

Tap a cell to see why.

Get along Careful Do not mix
How it works

Set up once. Ask forever.

Your tank follows you around the site. Every species page and guide checks against it, and the pill in the header keeps its bioload in sight.

Set up my tank
  1. 1

    Set up your tank once

    Pick the size (real dimensions in cm), substrate, plants, light, filter, water changes and your tap water: temperature, pH, GH, KH, nitrate.

  2. 2

    Ask every species

    Each species page now answers "can I add this to my tank?" with a fit badge, the room left in the bioload and the exact clash, if there is one.

  3. 3

    Watch it live

    Open the tank in 3D. Fish school, graze and hide by their real habits, and the water shows what the numbers mean, long before the fish do.

Questions

Why not just a stocking percentage?+

One number hides the problem that kills the fish. Seven adult cichlids can fit the volume and still fail on floor space and territory. The model keeps six axes apart, and a blocker on any of them sets the score to zero instead of being averaged away.

Where do the numbers come from?+

From published care data and fisheries research: water ranges per species, metabolic scaling of waste with body mass, mouth gape against prey depth, and keeper-reported clashes. Constants still being calibrated are marked as such in the model.

Do I need an account?+

No. Your tanks are saved in this browser, and you can keep several: the living room tank, the shrimp nano, the one you are still planning.

Is the 3D tank just decoration?+

No, it is the model made visible. Overheat it and the fish pale and gasp; skip the cycle and the water clouds; add a predator and the small fish hide.

Your fish can't tell you what's wrong. The tank can.

Free, no sign-up. Your tanks stay in your browser.