Storm Cell Simulator
A 2D Boussinesq convection model. Adjust the environment below, then hit Run.
Red = warm air | Blue (lower) = cold pool outflow |
Blue (upper, with vectors) = cloud/rain |
Dashed line = lifting condensation level.
Simplified 2D physics: vorticity-streamfunction, semi-Lagrangian advection,
basic warm-rain microphysics, entrainment damping — not a research-grade CFD solver.
Environment
Trigger
Numerics
Resolution
Higher = slower. Apply & Reset to change.
About this simulator
This tool simulates the life cycle of a single convective cell — from initiation, through cloud growth and rain formation, to the formation of a surface cold pool — using a simplified version of the physics that drive real thunderstorms. It's built for clarity and interactivity rather than research-grade accuracy; the section below explains what's modelled, what's simplified, and why.
The physical story
A thunderstorm cell's life cycle follows a fairly well-understood chain of events:
- A pocket of warm, buoyant air (a "thermal") rises from the surface or boundary layer.
- As it rises and cools, it reaches its lifting condensation level (LCL) — the height at which it becomes saturated and a cloud forms.
- If the environment is unstable enough, the rising air continues to accelerate upward, producing an updraft and eventually precipitation.
- Rain falling into drier air below the cloud partially evaporates, cooling that air sharply (evaporative cooling).
- This cooled, denser air sinks and spreads out along the surface as a cold pool — visible as the leading edge of outflow ahead of a storm, sometimes called a gust front.
- The lifting along the leading edge of that cold pool can trigger new convective cells, which is how single storms organize into longer-lived multicell clusters.
This simulator reproduces that chain directly, rather than animating it artificially.
The atmospheric environment
The background atmosphere ("sounding") the simulated cell grows in is built from standard meteorological quantities, adjustable via the sliders:
- Surface temperature and dewpoint set the available moisture and buoyancy at the surface.
- Lapse rate (rate of temperature decrease with height) controls atmospheric instability — steeper lapse rates between cloud base and roughly 6 km altitude generate more CAPE (Convective Available Potential Energy), the standard measure of how much energy is available to a rising parcel of air.
- Capping inversion strength represents a layer of warm air aloft that resists upward motion. Meteorologists call the energy needed to overcome this layer CIN (Convective Inhibition). A stronger cap requires a stronger initial trigger before convection can break through.
These same concepts — CAPE, CIN, lapse rates, capping inversions — are exactly what forecasters evaluate from real weather balloon soundings every day to assess thunderstorm potential.
The trigger
Real storms need an initial lifting mechanism — a front, a sea breeze, terrain, or daytime heating. This simulator uses the standard idealized-modelling stand-in: a warm bubble, a localized region of artificially warmed air introduced at the start of the simulation, shaped with a smooth cosine-squared profile so it has no artificial sharp edges. Its strength can be tuned to test whether it's enough to overcome the capping inversion above it.
The governing physics
Underneath the visuals, the simulator numerically solves a simplified form of the Navier–Stokes equations governing fluid motion, adapted for atmospheric convection. The equations below are solved at every grid point, at every timestep.
The first term is buoyancy — warmer air to one side than the other generates rotation, which turns a temperature contrast into actual rising and sinking motion. The second term is precipitation loading: suspended cloud and rain water add weight to the air, helping turn a saturated updraft into a downdraft once enough rain has formed. Velocity is then recovered from a streamfunction \(\psi\), obtained by solving a Poisson equation:
Potential temperature \(\theta\) evolves via advection plus latent heating and cooling from condensation and evaporation.
Water vapour \(q_v\), cloud water \(q_c\), and rainwater \(q_r\) are tracked separately, exchanging mass through simplified warm-rain microphysics. Here \(C\) is condensation, \(E\) is evaporation, \(A\) is autoconversion of cloud droplets into raindrops, \(K\) is accretion, and \(V_T\) is the rain terminal fall speed.
The \(0.61\,q_v'\) term reflects that moist air is slightly less dense than dry air at the same temperature; the \(-q_c - q_r\) term is precipitation loading. Buoyancy ultimately drives everything above. This is the same family of equations used in real research-grade cloud models — just solved on a coarser grid, in two dimensions, and with several deliberate simplifications below.
Simplifications, and why they're there
| Simplification | Why |
|---|---|
| Two-dimensional (height + one horizontal direction) | A full 3D fluid solve is far too computationally expensive for a browser. 2D captures the essential rise-rain-cold pool chain, though it can't represent storm-scale rotation or wind-shear-driven asymmetry. |
| Warm-rain microphysics only (no ice, snow, or hail) | Ice processes add substantial complexity without changing the core cold-pool story for a typical warm-season cell. |
| No background wind or Coriolis effect | Isolates the basic single-cell life cycle. Wind shear mainly matters for how multiple cells organize relative to each other, not for the fundamental rise-rain-cold pool mechanism. |
| Entrainment damping | Real clouds continuously mix in surrounding air, which dilutes and limits updraft intensity. Represented here as a simple relaxation term, which also keeps the simulation numerically well-behaved over long run times. |
| Coarse grid (90 × 55) | Chosen so the simulation runs at interactive speed in a browser. Finer detail — like the turbulent structure of the cold pool's leading edge — would require a much finer grid than the browser can handle in real time. |
In short
Every element on screen — the rising thermal, the cloud, the rain, the spreading cold pool — comes directly out of solving simplified fluid and thermodynamic equations driven by the sliders you control, not a scripted animation. The simplifications above trade some real-world fidelity for stability, speed, and clarity, while preserving the actual physical mechanism that drives this behaviour in real storms.