Design your aquarium and calculate dimensions, layout, light, CO₂, fertiliser and nitrogen cycling in one deterministic scenario.
Build Your Own Aquarium
Set the dimensions. Add life. Explore how it all comes together.
1. Choose your starting layout
Choose a style to arrange your tank automatically. Then edit every object.
What changes when I choose a style?
Sets the substrate layout, rocks, plants, planned fish count and starting equipment together; replaces the previous layout and equipment. Dimensions stay. Add fish gradually only after filter maturation and suitable measured water conditions.
Project archive photos provide inspiration; they are not exact images of the generated 3D layout.
Basic layout examples, not care or stocking recommendations. Nature and Diorama are simplified using the available rock and plant models.
Plans in my account
Sign in to save this plan to your account and download it from any device. Registration is free.
Living aquarium
Build → equip → start time. Every model step is 1 hour; speed only changes playback.
To-scale layout · 117.6 × 57.6 cm
A static layout is shown on this device. Dimensions, livestock and calculations stay interactive.
The scene shows the selected hour; readings show the end of the day.
Equipment effects in the simulation
Switches control all installed devices of that kind. Lighting and CO₂ follow the light schedule. The hour slider over the scene shows lighting at the selected time; readings show the end of the selected day. Setting changes recompute the entire scenario.
Edit installed device capacities in Equipment.
Water over time
NO₃ (mg/L) · TAN (mg N/L) · O₂ (mg/L)
| Day | NO₃ mg/L | TAN mg N/L | O₂ min mg/L | Water replaced L |
|---|---|---|---|---|
| 0 | 0 | 0 | 7 | 0 |
| 7 | 0 | 0 | 8.6 | 0 |
| 14 | 0 | 0 | 8.66 | 0 |
| 21 | 0 | 0 | 8.67 | 0 |
| 28 | 0 | 0 | 8.67 | 0 |
| 35 | 0 | 0 | 8.67 | 0 |
| 42 | 0 | 0 | 8.67 | 0 |
| 49 | 0 | 0 | 8.67 | 0 |
| 56 | 0 | 0 | 8.67 | 0 |
| 63 | 0 | 0 | 8.67 | 0 |
| 70 | 0 | 0 | 8.67 | 0 |
| 77 | 0 | 0 | 8.67 | 0 |
| 84 | 0 | 0 | 8.67 | 0 |
| 91 | 0 | 0 | 8.67 | 0 |
| 98 | 0 | 0 | 8.67 | 0 |
| 105 | 0 | 0 | 8.67 | 0 |
| 112 | 0 | 0 | 8.67 | 0 |
| 119 | 0 | 0 | 8.67 | 0 |
| 126 | 0 | 0 | 8.67 | 0 |
| 133 | 0 | 0 | 8.67 | 0 |
| 140 | 0 | 0 | 8.67 | 0 |
| 147 | 0 | 0 | 8.67 | 0 |
| 154 | 0 | 0 | 8.67 | 0 |
| 161 | 0 | 0 | 8.67 | 0 |
| 168 | 0 | 0 | 8.67 | 0 |
| 175 | 0 | 0 | 8.67 | 0 |
| 182 | 0 | 0 | 8.67 | 0 |
| 189 | 0 | 0 | 8.67 | 0 |
| 196 | 0 | 0 | 8.67 | 0 |
| 203 | 0 | 0 | 8.67 | 0 |
| 210 | 0 | 0 | 8.67 | 0 |
| 217 | 0 | 0 | 8.67 | 0 |
| 224 | 0 | 0 | 8.67 | 0 |
| 231 | 0 | 0 | 8.67 | 0 |
| 238 | 0 | 0 | 8.67 | 0 |
| 245 | 0 | 0 | 8.67 | 0 |
| 252 | 0 | 0 | 8.67 | 0 |
| 259 | 0 | 0 | 8.67 | 0 |
| 266 | 0 | 0 | 8.67 | 0 |
| 273 | 0 | 0 | 8.67 | 0 |
| 280 | 0 | 0 | 8.67 | 0 |
| 287 | 0 | 0 | 8.67 | 0 |
| 294 | 0 | 0 | 8.67 | 0 |
| 301 | 0 | 0 | 8.67 | 0 |
| 308 | 0 | 0 | 8.67 | 0 |
| 315 | 0 | 0 | 8.67 | 0 |
| 322 | 0 | 0 | 8.67 | 0 |
| 329 | 0 | 0 | 8.67 | 0 |
| 336 | 0 | 0 | 8.67 | 0 |
| 343 | 0 | 0 | 8.67 | 0 |
| 350 | 0 | 0 | 8.67 | 0 |
| 357 | 0 | 0 | 8.67 | 0 |
| 364 | 0 | 0 | 8.67 | 0 |
No monitored threshold exceeded on this day. This is not an animal health guarantee.
Equipment and automation
Equipment or initial layout changes replay the scenario from day 0. Maintenance acts at the end of the selected day. One month = 30 days.
Model coefficients
Maintenance log
No maintenance interventions yet.
This is an uncalibrated educational scenario. Growth, respiration, filtration and gas exchange rates are assumptions; survival/disease percentages are not calculated. Fish counts remain fixed. Displacement assumes a fixed waterline and fish density of 1 g/mL; water consumption and evaporation are not modelled. Twenty percent of assumed TAN load persists without automatic feeding. Substrate and rocks affect volume/flow; plant positions affect illustrative shading. pH requires the carbonate assumption. No real device is controlled.
The tables below analyse fixed assumptions in the initial plan; they are separate from the time simulation above.
The same plan produces the same result. This does not mean every natural variable is known. Placement does not automatically determine uptake, survival rates or disease probabilities.
Nutrient timeline
Before water change · ┄ / After water change · ━
| Week | Before water change mg/L | After water change mg/L |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 0 | 0 |
| 3 | 0 | 0 |
| 4 | 0 | 0 |
| 5 | 0 | 0 |
| 6 | 0 | 0 |
| 7 | 0 | 0 |
| 8 | 0 | 0 |
| 9 | 0 | 0 |
| 10 | 0 | 0 |
| 11 | 0 | 0 |
| 12 | 0 | 0 |
NO₃ includes feed → TAN → nitrite → nitrate and fertiliser. Other nutrients use weekly dosing/uptake/water changes. Uptake is your constant assumption, not inferred from plant count.
Fertiliser
No target selected; fertiliser addition is 0.
Targets are weekly additions in mg/L, not top-ups from measured levels. Potassium supplied by KNO₃ and KH₂PO₄ is included. Choosing a scheme does not change your water-change percentage.
Nitrogen cycle scenario
Daily model: feed × protein × 0.16 × excretion; capacity-limited oxidation, fertiliser doses distributed through the week and daily nitrate uptake; water change on day 7. Source-water TAN/nitrite assumed 0. Capacities assumed independent of pH, temperature and oxygen, so this is an estimate. NO₃ is mg/L; TAN and nitrite are mg N/L.
| Day | TAN mg N/L | NH₃-N mg N/L | NO₂-N mg N/L | NO₃ mg/L |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 0 | 0 |
| 3 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 0 |
| 5 | 0 | 0 | 0 | 0 |
| 6 | 0 | 0 | 0 | 0 |
| 7 ↻ | 0 | 0 | 0 | 0 |
| 8 | 0 | 0 | 0 | 0 |
| 9 | 0 | 0 | 0 | 0 |
| 10 | 0 | 0 | 0 | 0 |
| 11 | 0 | 0 | 0 | 0 |
| 12 | 0 | 0 | 0 | 0 |
| 13 | 0 | 0 | 0 | 0 |
| 14 ↻ | 0 | 0 | 0 | 0 |
| 15 | 0 | 0 | 0 | 0 |
| 16 | 0 | 0 | 0 | 0 |
| 17 | 0 | 0 | 0 | 0 |
| 18 | 0 | 0 | 0 | 0 |
| 19 | 0 | 0 | 0 | 0 |
| 20 | 0 | 0 | 0 | 0 |
| 21 ↻ | 0 | 0 | 0 | 0 |
| 22 | 0 | 0 | 0 | 0 |
| 23 | 0 | 0 | 0 | 0 |
| 24 | 0 | 0 | 0 | 0 |
| 25 | 0 | 0 | 0 | 0 |
| 26 | 0 | 0 | 0 | 0 |
| 27 | 0 | 0 | 0 | 0 |
| 28 ↻ | 0 | 0 | 0 | 0 |
| 29 | 0 | 0 | 0 | 0 |
| 30 | 0 | 0 | 0 | 0 |
| 31 | 0 | 0 | 0 | 0 |
| 32 | 0 | 0 | 0 | 0 |
| 33 | 0 | 0 | 0 | 0 |
| 34 | 0 | 0 | 0 | 0 |
| 35 ↻ | 0 | 0 | 0 | 0 |
| 36 | 0 | 0 | 0 | 0 |
| 37 | 0 | 0 | 0 | 0 |
| 38 | 0 | 0 | 0 | 0 |
| 39 | 0 | 0 | 0 | 0 |
| 40 | 0 | 0 | 0 | 0 |
| 41 | 0 | 0 | 0 | 0 |
| 42 ↻ | 0 | 0 | 0 | 0 |
| 43 | 0 | 0 | 0 | 0 |
| 44 | 0 | 0 | 0 | 0 |
| 45 | 0 | 0 | 0 | 0 |
| 46 | 0 | 0 | 0 | 0 |
| 47 | 0 | 0 | 0 | 0 |
| 48 | 0 | 0 | 0 | 0 |
| 49 ↻ | 0 | 0 | 0 | 0 |
| 50 | 0 | 0 | 0 | 0 |
| 51 | 0 | 0 | 0 | 0 |
| 52 | 0 | 0 | 0 | 0 |
| 53 | 0 | 0 | 0 | 0 |
| 54 | 0 | 0 | 0 | 0 |
| 55 | 0 | 0 | 0 | 0 |
| 56 ↻ | 0 | 0 | 0 | 0 |
| 57 | 0 | 0 | 0 | 0 |
| 58 | 0 | 0 | 0 | 0 |
| 59 | 0 | 0 | 0 | 0 |
| 60 | 0 | 0 | 0 | 0 |
| 61 | 0 | 0 | 0 | 0 |
| 62 | 0 | 0 | 0 | 0 |
| 63 ↻ | 0 | 0 | 0 | 0 |
| 64 | 0 | 0 | 0 | 0 |
| 65 | 0 | 0 | 0 | 0 |
| 66 | 0 | 0 | 0 | 0 |
| 67 | 0 | 0 | 0 | 0 |
| 68 | 0 | 0 | 0 | 0 |
| 69 | 0 | 0 | 0 | 0 |
| 70 ↻ | 0 | 0 | 0 | 0 |
| 71 | 0 | 0 | 0 | 0 |
| 72 | 0 | 0 | 0 | 0 |
| 73 | 0 | 0 | 0 | 0 |
| 74 | 0 | 0 | 0 | 0 |
| 75 | 0 | 0 | 0 | 0 |
| 76 | 0 | 0 | 0 | 0 |
| 77 ↻ | 0 | 0 | 0 | 0 |
| 78 | 0 | 0 | 0 | 0 |
| 79 | 0 | 0 | 0 | 0 |
| 80 | 0 | 0 | 0 | 0 |
| 81 | 0 | 0 | 0 | 0 |
| 82 | 0 | 0 | 0 | 0 |
| 83 | 0 | 0 | 0 | 0 |
| 84 ↻ | 0 | 0 | 0 | 0 |
Checks to address
Water values have not been marked as measured; these are example scenario values.
Biofilter capacity has not been verified; no fish limit is given.
Non-carbonate buffering invalidates the pH/KH CO₂ result.
Survival and disease percentages cannot be determined from these inputs. If breathing, appetite, skin or behaviour changes, test the water and consult a veterinarian experienced with aquatic animals for diagnosis and treatment.
Based only on the current species mix, average mass, feeding rate and entered biofilter capacity. This is not a safe stocking limit accounting for swimming space, adult size, compatibility, oxygen or welfare. Initial masses of 1 g/neon and 100 g/discus are example assumptions; adjust them.
Model and assumptions
CO₂ = 3 × KH × 10^(7−pH). Disable carbonate buffering if tannins, active substrate or other buffers are present; no CO₂ result will be shown. Target pH is not a chemical treatment instruction.
Existing Lambert/attenuation model; lumen conversion and PAR are estimates with ±30% uncertainty. Shadowing, growth and spectral distribution are not solved. Known PPF overrides lumens.
Daily model: feed × protein × 0.16 × excretion; capacity-limited oxidation, fertiliser doses distributed through the week and daily nitrate uptake; water change on day 7. Source-water TAN/nitrite assumed 0. Capacities assumed independent of pH, temperature and oxygen, so this is an estimate. NO₃ is mg/L; TAN and nitrite are mg N/L.
NH₃ / TAN = 1 / (1 + 10^(0.09018 + 2729.92 / (273.2 + T) − pH))
Sources: EPA · ammonia · Merck Veterinary Manual · water quality
From Clan Aquascaping Design projects ↗
These are original project photographs, not renders of the plan above.



