How many walruses can one floe carry, what does resting on it cost in the cold, and how long does the ice last?
The science
Buoyancy. Floating ice displaces its own weight plus the load: draft d = (ρi A h + M)/(ρw A), freeboard f = h − d. With no load f = h (1 − ρi/ρw) ≈ 0.107 h. The floe stays usable while f ≥ fmin, so the load limit is Mmax = (ρw − ρi) A h − ρw A fmin. Space is a second limit: one animal needs about 4.2 m² (scaled by mass2/3) at about 75 % packing. Real floes also tilt and break; this is a flat rigid slab.
Skin heat balance. Heat flows from the 36.5 °C core through tissue of conductance C = kb/Lb (blubber kb = 0.2 W/m/K) multiplied by up to 7 when blood is sent to the skin (vasodilation). Skin temperature follows C (Tc − Ts) = fe ha (Ts − Tsa) + fi hi (Ts − Tice), with convective ha = 6 + 3.7 v (wind v, m/s), sol-air temperature Tsa = Ta + 0.5 α I / ha and ice contact hi = 10 W/m²/K. Heat loss is Q = A C (Tc − Ts), body area A = 0.1 m2/3 m². Resting metabolism is taken as 1.8 × 3.4 m0.75 W.
Regulation. The animal chooses the conductance that makes loss equal to resting heat production if that lies between the vasoconstricted and fully dilated limits. Below the lower critical temperature it must burn more (shivering or raised metabolism); above the upper one it cannot shed heat in air and goes into the water. Huddling replaces air-exposed skin by body-to-body contact (no loss): fn = 0.07 z with z neighbours.
Ice budget. dh/dt = (Fc − Fw − Ftop)/(ρi Lf): conductive growth Fc = ki(Tf − Ta)/h (Stefan; closed form h² = h0² + 2 ki ΔT t/(ρi Lf)), ocean heat Fw = 25 (Tw − Tf) W/m², surface melt from warm air and sun; the edge erodes at twice the basal melt rate. Snow cover, brine, waves and currents are ignored.
Illustrative parameters for an adult of about 1 tonne; real animals vary by sex, age and season. Walruses are protected animals and disturbance at haul-outs harms them: this page models only the physics of resting animals. Models (walrus, ice floe, polar terrain) built with Blender and rendered with Three.js.