This simulation needs WebGL. Try another browser or enable hardware acceleration.
A model of one emperor penguin foraging trip. All numbers are typical or illustrative and are flagged verify before publish; this is not a species-validated model.
Lung air (160 mL/kg x inhale fraction) and plumage air (0.9 L) compress with depth. At the surface a bird with 70 % fill is about +27 N buoyant; B = 0 at the neutral depth (20.3 m for the defaults). Deeper than that the bird sinks passively and must swim to come up.
Quadratic drag, added mass, flipper thrust along the heading h. The sideways coordinate is cosmetic.
Defaults: blood 22 + muscle 13 + respiratory 25.4 x fill mL/kg (about 1,479 mL at 70 % fill), h = 0.8 (diving metabolic suppression), efficiency 0.22. A level swim at 1.8 m/s gives ADL = 5.36 min. Real emperors usually dive for 2-6 min to tens of metres, but records exceed 500 m and about 27 min; longer dives rely on lower metabolism and anaerobic metabolism (lactate), which this model only represents as an oxygen deficit with a cap, followed by a forced reflex ascent.
Leave a fish school when the marginal rate of gain (net of cost) falls to the average rate of the whole trip. The autopilot uses a running estimate of this rule; check 4 compares the closed-form optimum with a brute-force scan.
Each fish: 22 g x 4.8 kJ/g x 0.82 assimilated = 86.6 kJ; 35 % is eaten by the bird (self-feeding), the rest goes into the stomach (cap 3 kg). The walk to and from the sea costs 1.9 x resting metabolism; the stomach is partly digested on the way. The chick grows by dM/dt = (intake - 2 x 3.9 M^0.75 W) / 9 kJ/g. The egg-on-the-feet and brood-pouch hand-over are shown only as scenery; heat loss and huddling are not modelled.
Shown as an ecological risk near the ice edge: a near miss if you burst away, otherwise a snap that costs part of the catch and ends the dive. Nothing is ever shown being killed. In the wild, predation is a real and important mortality cause.
Eight independent checks (closed form vs simulation) run on the Lab tab. Models were made with Blender; Three.js r160 draws the scene.
Controls: arrows or W/S pitch, A/D turn left/right, Space or Shift swim, F strike, B burst, G glide, R surface or haul out, X skip rest, H walk home, P pause, 1 split, 2 follow, 3 wide, 4 colony, Enter jump in.