How do thunderstorms happen?
A hot, sticky afternoon can build a cloud taller than Everest in half an hour. Grow one over an Indian town, follow a bubble of warm air to the top, cut a hailstone open, step through a lightning flash and count the seconds to the thunder.
▶ Play with it · Read the 60-second explainer · Watch the 40-second video
- A cloud that grows upward. A thunderstorm is a cumulonimbus: a cloud that climbs from a flat base 1 to 2 km up to the tropopause, about 12 to 16 km in the tropics. One ordinary cell lives about an hour, in three stages: growing (updraft only), mature (updraft and downdraft, heavy rain) and dying (downdraft only). It dies because its own cold downdraft cuts off the warm air that feeds it.
- Why warm air rises, and keeps rising. Warm, moist air is lighter than the air around it, so it floats up. Rising air expands and cools by 9.8 °C per km. At its dew point the vapour condenses, which is the flat cloud base, about 125 m up for every °C between temperature and dew point. Condensing releases latent heat, so the air inside the cloud stays warmer than its surroundings and keeps accelerating. That stored push is called CAPE.
- Rain, hail and the cold wind. About a million cloud droplets make one raindrop. Hail grows when an ice pellet sweeps up supercooled water while the updraft holds it aloft; clear and milky rings record its trips through the cloud. Big hail needs a violent updraft. Falling rain drags and chills the air beneath the cloud, which sinks, hits the ground and spreads as a gust front: the cool wind before the rain.
- Lightning, step by step. In the leading explanation, colliding graupel and ice crystals separate charge: negative in the middle of the cloud, positive at the top. A stepped leader works down in 50 m jumps, an upward streamer rises to meet it, and a return stroke of about 30,000 amperes surges up the channel, heating it to about 30,000 °C. Most flashes stay inside the cloud.
- Thunder: count the seconds. The channel heats so fast that the air explodes outward as a shock wave. Sound travels at about 343 m/s, so thunder lags the flash by about 3 seconds per kilometre. It rumbles because sound from different parts of a channel several kilometres long arrives at different times.
- India's storms and staying safe. Kalbaishakhi (nor'westers) hit eastern India from March to May; andhi dust storms hit the north-west. National Crime Records Bureau reports list roughly 2,300 to 3,300 lightning deaths a year in 2015 to 2022, mostly people in open fields or under trees. When you hear thunder, go indoors or into a hard-topped vehicle, never shelter under a lone tree, crouch with feet together only as a last resort, and wait 30 minutes after the last thunder.
| Term | Meaning |
|---|---|
| Cumulonimbus | The towering thunderstorm cloud, with a flat base, a tall column and an anvil-shaped top. |
| Updraft and downdraft | The rising current of warm, moist air that builds a storm, and the sinking current of rain-cooled air that ends it. |
| Dew point | The temperature at which air's water vapour starts to condense. It sets the height of the cloud base. |
| Latent heat | Heat released when vapour condenses into droplets, about 2,500 kJ per kilogram. It is the fuel of a storm. |
| CAPE | Convective available potential energy: the total upward push on a rising parcel of air, in joules per kilogram. |
| Supercooled water | Liquid droplets colder than 0 °C. They freeze onto ice on contact and make hail grow. |
| Gust front | The leading edge of cold air spreading out from a storm's downdraft. |
| Return stroke | The bright surge of current, typically about 30,000 amperes, that runs up a lightning channel from the ground. |
| 30-30 rule | Under 30 seconds from flash to bang, take shelter. Stay there for 30 minutes after the last thunder. |
3,000 years from the thunderbolts of the gods to lightning alerts on a farmer's phone.
- 1752 · Sparks from a storm cloud (Thomas-François Dalibard, Marly-la-Ville, France)
- 1752 · Franklin's kite (Benjamin Franklin, Philadelphia, USA)
- 1802 · The clouds get names (Luke Howard, London, England)
- 1841 · Latent heat drives the storm (James Pollard Espy, Philadelphia, USA)
- 1920 · The cloud as a battery (C. T. R. Wilson, Cambridge, England)
- 1934 · The leader and the return stroke, photographed (Basil Schonland and colleagues, South Africa)
- 1946 · The Thunderstorm Project (Horace Byers, Roscoe Braham and team, Florida and Ohio, USA)
- 1975 · Fujita finds the microburst (Tetsuya Theodore Fujita, Chicago, USA)
The full story, with 29 moments, charts, people and 44 sources: glassbox.how/e/stormclear/history. The data lives in history.json.
Made with the Glassbox studio from this box's storyboard (window.glassbox.director). Free to reuse under CC BY 4.0.
| File | What | Size |
|---|---|---|
glassbox/reel.mp4 |
Reel / Short, with captions and soundtrack | 1080×1920 |
glassbox/video.mp4 |
YouTube video, with captions and soundtrack | 1920×1080 |
glassbox/slide-1…10.jpg |
Instagram carousel | 1080×1350 |
glassbox/thumb.jpg |
YouTube thumbnail | 1280×720 |
glassbox/cover.jpg |
Share card and repo social preview | 1200×630 |
glassbox/history-reel.mp4 |
“History in 10 moments” Reel / Short | 1080×1920 |
glassbox/history-slide-*.jpg |
History carousel | 1080×1350 |
glassbox/post.json |
Post copy and schedule used by the publish kit |
This box has no accounts and no ads, and it ships its own fonts and libraries. When you run it yourself it sends nothing anywhere. On glassbox.how, the site's /bar.js also loads Glassbox's analytics: Google Analytics to count visits (it asks first in the EU, UK and Switzerland, and stays off when your browser sends Global Privacy Control or Do Not Track) and ClickTrust to detect bots.
It remembers a few things in your own browser only, and never sends them anywhere:
| Browser storage key | What it holds |
|---|---|
stormclear.v1 |
Which chapters you have opened, your best quiz scores, and sound on or off. |
Exactly what each one sees is at glassbox.how/privacy.
- Code: MIT. Use it, change it, ship it.
- Explanations, text, images and videos (
glassbox.json,glassbox/): CC BY 4.0. Credit “Glassbox, glassbox.how/e/stormclear”. - Third-party parts keep their own licences: three.js (MIT), Geist, Instrument Serif (SIL OFL 1.1).
- The Glassbox name and logo aren't covered by either licence. See the terms.
Found a mistake? Open an issue. Corrections happen in public.
It's plain HTML, CSS and JavaScript. No build step and no dependencies. Run locally, it contacts no other website.
python3 -m http.server 8000Three.js and the fonts ship in vendor/ and fonts/, so it also works offline.
Then open http://localhost:8000.
| File | What |
|---|---|
index.html, css/app.css |
The page and its styles |
js/app.js, js/stage.js, js/ui.js, js/kit.js |
The shared Glassbox 3D engine: chapters, 3D stage, controls, quiz, video director |
js/stormphys.js |
The physics, with sources: the rising-parcel sounding (cloud base, CAPE), the storm cell's life, hail growth, the downdraft, lightning figures, step voltage and thunder |
js/storm.js |
Shared drawing helpers: the puff-built cumulonimbus, the town, chart boards, lightning channels and the thunder sound |
js/chapters/*.js |
One file per chapter: the 3D model, controls, text, key terms, quiz and video scenes |
glassbox.json |
Title, question, explainer beats, key terms, browser storage and credits shown on glassbox.how |
reel in each chapter |
The storyboard the Glassbox studio records into short videos |
glassbox/ |
The published video, slides, thumbnail and post copy |
fonts/, vendor/three/ |
Self-hosted Geist and Instrument Serif (SIL OFL 1.1) and three.js (MIT) |




