This 2D companion strips the 3D fish down to a side cross-section through the gill membrane, driven by the same real osmoregulation model. Water crosses the semi-permeable gill/skin membrane by osmosis, moving toward the side with the higher total solute concentration — the driving force is the osmotic gradient from van 't Hoff's law:
π = i · C · R · T
ΔOsm = C_internal − C_external (mOsm/L)
J_water = k_p(T) · ΔOsm (µL of water per g body mass per hour)
k_p(T) is gill permeability, which rises with temperature (a Q10 effect on membrane diffusion). A marine teleost keeps its blood near 330 mOsm/L — far below seawater (~1000–1050 mOsm/L at 35 ppt) — so it constantly loses water outward and must drink seawater, then use gill chloride cells (Na⁺/K⁺‑ATPase) to actively pump excess Na⁺/Cl⁻ out, against the gradient. A freshwater teleost is the mirror image: blood (~280 mOsm/L) is far saltier than the water around it, so it gains water passively and must actively pump salt in through the gills while excreting large volumes of dilute urine. A shark or ray retains urea and TMAO in its blood to stay close to isosmotic with seawater, so passive water flux is small — but salt still leaks in, and a rectal gland actively secretes it back out.
The ATP cost of active transport scales with |ΔOsm|, because moving ions against their concentration gradient requires free energy (ΔG = R·T·ln(C₂/C₁) per mole). Toggle transport off to see the unregulated flux a real fish would face. The scrolling strip chart below the cross-section plots gradient, flux and ATP cost live so you can see how each responds as you drag the sliders — drag the cross-section itself to pan, and scroll to zoom into the gill membrane.
Model note: the external-osmolarity, internal-osmolarity and Q10-permeability formulas here are the same ones driving the 3D version, cross-checked numerically for internal consistency (sign of the gradient always matches the direction of net flux described in the text, and every species' steady state matches its real physiology) — no correction was needed.