Cloud Phase Lab · a model of existing ice in a rising cloud
Watch ice grow as cloud conditions change.
This page is an interactive, client-side cloud simulation. If JavaScript is unavailable, this summary contains its main explanation, equations, evidence, and limitations. Tiny ice crystals are present at the start: the model follows their growth, not the creation of new crystals or the onset of snowfall.
What happens in the parcel
As a parcel rises, pressure falls and the air usually cools. Cooling can make vapor more favorable to ice, while expansion dilutes vapor. Existing droplets and crystals exchange water with the vapor; deposition onto ice releases heat. These effects occur together, so the change in the drive toward ice cannot be inferred from cooling or expansion alone. In one experiment lifting stops after five simulated minutes, yet exchange can continue afterward.
The three quantities to watch are ice-growth drive (the vapor imbalance relative to ice), exchange capacity (how readily existing ice can exchange water), and ice exchange rate (the actual modeled mass transfer per second). A large drive need not produce fast growth when the existing ice has little capacity. At zero existing ice, capacity and ice growth remain zero.
The compact model
Drive: ψ = ln[e/esi(T)]. Here e is vapor pressure, esi(T) is equilibrium vapor pressure over ice, and T is absolute temperature in kelvin. Positive ψ favors ice deposition; negative ψ favors sublimation. Multiplying ψ by RT gives the chemical driving potential per mole transferred.
How the drive changes: dψ/dt = [1/T − d ln(esi)/dT] dT/dt − (1/V) dV/dt − (Γl + Γi)/mv. The terms are the simultaneous contributions from temperature, volume, and phase change. V is parcel volume; mv is vapor mass. Γl and Γi are vapor-to-liquid and vapor-to-ice mass rates in kg/s. Positive rates consume vapor; negative rates return water to vapor.
Ice response: Γi = Ki(exp ψ − 1). Ki is exchange capacity in kg/s, computed from the fixed number and changing equivalent radii of existing crystals, with vapor and heat transport resistance. The liquid rate has an analogous saturation relation over water.
Temperature feedback: Cp dT/dt = Q̇ + V dp/dt + LvΓl + LsΓi, with external heat input Q̇ = 0. Cp is the parcel's total heat capacity in J/K. Water is conserved: dml/dt = Γl, dmi/dt = Γi, and dmv/dt = −Γl − Γi.
What has been checked
The browser implementation numerically reproduces the original Python parcel trajectories for steady lift, lift cessation, and pressure perturbation, with conservation and equation-identity checks. This is numerical verification, not proof that the model matches natural clouds.
For measured crystals republished by Fuchs et al. between −16 and −14°C, measured mass was a median 3.1 times our spherical prediction at ten minutes (six crystals) and 6.9 times at fifteen to thirty minutes (nine crystals). No parameters were fitted. The calculation assumes a 25 μm initial equivalent radius because the experiment did not specify starting mass. The original experiment and the AIDA chamber comparison provide context. Chamber humidity was supplied as an observed input, so that check does not independently validate our humidity prediction after lifting stops.
The crystal-growth comparison download contains the original workbook, unchanged analysis and model code, pinned requirements, expected results, and provenance. The interactive simulation, equations, and full source notes appear when JavaScript runs.
This educational model has prescribed atmospheric pressure, fixed particle counts, equivalent spherical growth, and no external heat exchange. It does not model nucleation, droplet freezing, precipitation, or when snow begins falling.
Companion: when a bubble survives
The companion page follows three illustrative moments of boiling: a small vapor pocket shrinks, a pocket at the critical radius sits at an unstable threshold, and a larger pocket grows while evaporation cools nearby water. Heating can raise the equilibrium vapor pressure; lowering surrounding pressure can reduce the opposing liquid pressure.
For an idealized spherical bubble, Δp = psat(Tinterface) − pℓ − 2γ/r. The bubble grows when this difference is positive. With positive psat(T) − pℓ, the critical radius is rc = 2γ/[psat(T) − pℓ]. The illustrations use γ = 0.06 N/m and an initial critical radius of 6 μm. The pressure-bar values are illustrative, not a measured boiling trajectory. Real nucleation often starts at surfaces or trapped gas pockets, and bubble growth involves heat transfer and fluid motion.
This threshold is separate from the cloud-parcel model, which starts with ice already present. The ideal gas law remains valid on either side of the bubble threshold. See the inertio-thermal vapor-bubble-growth analysis for the balance and thermal feedback.
Created by Mike Purvis, with ChatGPT and Codex · version 0.2.1 · 2026-10-08