This is the same one-node core-temperature heat balance as the 3D version, but rendered as a 2D psychrometric field instead of a body: heat storage S (W/m² of skin) drives the rate of change:
S = M − E − C
dTcore/dt = S · A_body / (mass · c_body)
M = metabolic heat production (W/m²)
E = actual evaporative heat loss (W/m²)
C = dry (convective) heat exchange with air (W/m²)
A_body ≈ 1.8 m², mass ≈ 70 kg, c_body ≈ 3492 J/(kg·°C)
The top heatmap is the whole temperature × humidity plane, recomputed every frame: each cell's colour is the evaporative-cooling ceiling E_max at that (T_air, RH) pair, given your current skin temperature and wind — from Tetens' saturation-vapour-pressure formula and the Lewis relation:
P_sat(T) = 0.6108 · exp(17.27·T / (T+237.3)) [kPa]
h_c = 8.3 · wind^0.6 (convective coeff.)
h_e = 16.5 · h_c (Lewis relation)
E_max = h_e · [ P_sat(T_skin) − RH·P_sat(T_air) ]
E = min( sweat demand , E_max )
- The white marker on the heatmap is your current slider position — red regions of the plane have almost no evaporative capacity left (the "humidity trap": sweat keeps flowing but nothing evaporates), green regions still cool effectively.
- The middle strip chart traces core temperature over elapsed exposure time, banded by the same NORMAL / CAUTION / HEAT-EXHAUSTION / HEAT-STROKE zones as the status badge — this is where the trajectory actually plays out, unlike the static heatmap above it.
- The bottom skin cross-section is a 2D schematic strip of skin: cyan droplets appear, swell briefly and vanish where evaporation is working; amber droplets appear and visibly slide down the strip where they can't evaporate — sweat production without heat loss, the physiological mechanism behind heat-exhaustion and heat-stroke mortality in real urban heatwaves.
- Activity level sets metabolic heat production M (65–300 W/m²): more internal heat that still has to leave through the same evaporative bottleneck.