Reproducible weather experiments in Python: fork a forecast, change one thing, and measure what moved.
What would Hurricane Sandy have done if it had started 300 km further east? Stormfork edits a storm's starting state, runs an AI weather model forward and compares the result with a control, so you can tell an effect from the model's own noise.
Not a forecast. For decisions follow the National Hurricane Center (nhc.noaa.gov) and your local NWS office.
| Run | Starting state | Random seeds |
|---|---|---|
| baseline | unedited | seed S |
| fork | edited | the baseline's seeds |
| control | unedited | different seeds |
The fork shares the baseline's seeds, so the two differ only by the edit. The control differs only by its seeds, and shows how far the model's own variability moves a forecast. An edit is read against the control, not against zero.
The Sandy example runs a WeatherNext Cyclones Mini checkpoint from ERA5 reanalysis. Sandy is inside the model's training period, so the example shows how the model responds to an edit, not what the real storm would have done. Method says what each comparison can and cannot support.
Python 3.12 and uv 0.13.7. No credentials are needed.
uv sync --frozen
make check
uv run stormfork --helpTo explore the bundled sample in a browser, run pnpm install --frozen-lockfile in site/, then pnpm dev, and open /#/e/demo-fixture.
- Run your own fork.
stormfork runruns baseline, fork and control. Perturbations describes the four kinds of edit and their limits, and recipes shows how to write and propose an experiment. - Check a published one.
stormfork verifychecks an experiment's evidence, andstormfork rerunreproduces it. - Export the evidence.
stormfork exportwrites the tracks, the divergence file and an atlas the site can show. - Benchmark a hindcast against the National Hurricane Center's aids: docs/hindcast.md. No hindcast score is published yet.
- Score public forecasts.
stormfork scorescollects WeatherNext 2 runs for coastal stations and scores them against observations: docs/scores.md.
Architecture, reproducibility, publication notes and contributing. The code is under the MIT licence; data and model terms are listed in LICENSES.md.