EcoSym

Betta (Siamese fighting fish)

The betta (Betta splendens) is the roster's air-breather and the reason a betta survives a bowl that would suffocate any other fish here. It is a solitary, territorial anabantoid from the shallow, warm, often stagnant and oxygen-poor waters of Southeast Asia — rice paddies, ditches, and floodplain pools. To live there it evolved a labyrinth organ, a folded, highly vascularized chamber above the gills that lets it gulp and absorb atmospheric oxygen directly. A betta does not depend on dissolved oxygen the way a gilled fish does.

In EcoSym a fish is a boundary condition: biomass is the stocking level (fixed — no growth or breeding in V1), and the model reports the betta's bioload and its health ∈ [0, 1].

The air-breather differentiator

The labyrinth organ is modelled with a single parameter, aerial_O2_access (0.9 for the betta): it scales the contribution of low dissolved oxygen to the fish's health stress down by 90 %. So when a tank's oxygen falls to a level that would push a neon tetra into lethal hypoxia, the betta's health is almost unaffected. This is visible in scenarios/betta_bowl.yaml: a single betta in a 2 L unfiltered, open-top bowl drives the dissolved oxygen down to ~1.5 mg/L (lethal for most fish), yet the betta's health barely registers it.

But a bowl is still a bad idea

The betta's air-breathing is not a licence to keep it in a bowl — and the model says so. With no biofilter and only 2 L to dilute into, the betta's own bioload ammonia climbs steadily because nothing is cycling it (a tiny water volume has almost no buffer against a fish's nitrogen output). In the betta_bowl scenario the fish survives the low oxygen but its health declines slowly over weeks as ammonia accumulates — the small-volume warning. The betta is also fairly ammonia- and nitrite-tolerant for a fish (the literature LC50s are very high; Anh et al. 2023), so its thresholds are only moderately relaxed in the model — enough that the bowl's slow ammonia rise still tells the cautionary story rather than making the fish immortal.

Diet and bioload

The betta is a surface-oriented insectivore in the wild; in V1 it eats only the prepared feed the keeper adds (preference 1.0, ~80 % assimilation). As with every fish, the assimilated nitrogen is excreted as ammonia and the egested remainder becomes detritus that mineralizes to ammonia — its bioload, despite the solo, low-stocking nature of a betta, is what an unfiltered bowl cannot keep up with.

Want to see this in action?

Pre-built demo scenarios for this topic are coming soon. You'll be able to run a simulation directly from this page.

Last updated: 6/7/2026