CorX Labs
Training in progress Weather & hurricanes 89.18M params Probabilistic Apache-2.0 No skill claimed

NatureV1

A probabilistic model of the atmosphere whose attention works in kilometres on the real sphere, not in cells on a flat grid. Five-day global weather, a full-atmosphere rollout, and — for a tropical cyclone — track, intensity, rapid intensification and landfall, every number with an uncertainty attached.

Packages: naturev1 0.10.0 · ihelix 0.5.1 · Python ≥ 3.10 · Developer: Nathan · Origin: Jamaica


NatureV1 is an 89.18-million-parameter model of the atmosphere built from scratch by CorX Labs in Jamaica. It reads the last 30 hours of reanalysis — six frames, 89 channels, a 1.5° global grid — and forecasts global surface weather out to five days, steps the whole atmosphere forward to three, and, for a tropical cyclone, says where it will go, how strong it will get, whether it will intensify rapidly and whether it will come ashore. Every number it produces carries an uncertainty.

Two design decisions carry most of the weight. The engine underneath, iHELIX, gives every attention head a physical radius in kilometres over great-circle distance, so the parameters are spent on the atmosphere rather than on rediscovering the shape of the planet. And because best-track labels are desperately scarce, the backbone is frozen before the hurricane heads train: roughly a million parameters ever see a label, on top of a backbone that learned from about 2×1011 free values in reanalysis.

Training is in progress, and no forecast skill is claimed. The Hugging Face repository holds the live checkpoints of the first full run, mirrored while it trains. The scorecards that decide whether this model is any good are produced by the training pipeline itself and do not exist yet. Do not use NatureV1 for real decisions. For a live storm, use the National Hurricane Center.

Parameters
89.18M
Blocks
17 iHELIX
Hidden / heads
512 / 8 (4 KV)
Latent mesh
4,096 points
Head radii
120–1,600 km
History
6 frames × 6 h
Input grid
1.5°, 240 × 121
Channels
89 (11 surface, 6 × 13 levels)
Leads
6 h → 120 h
Precision
bf16 mixed
Licence
Apache-2.0
Status
First run in progress

1. What it forecasts

Three kinds of output come out of one forward pass. Leads are 6, 12, 18, 24, 36, 48, 72, 96 and 120 hours.

NatureV1 outputs, grouped by what they describe
GroupOutputForm
Global weather 2 m temperature, mean sea-level pressure, 10 m wind, precipitation Mean and 90% interval at every grid point
Weather type — clear through thunderstorm to snow A category at every grid point
Full-state rollout — all 86 prognostic channels, surface to 50 hPa Stepped 6 h at a time on its own forecast to 72 h, as an ensemble, with mass conservation
Tropical cyclone Track Six weighted scenarios, each with a tilting uncertainty ellipse per lead — the cone is drawn by the model, not looked up in a table
Consensus track Learned track, two physics-only steering tracks (frozen analysis, and the model’s own rollout) and extrapolation, blended with per-lead weights; every member reported alongside the blend
Intensity Maximum wind and minimum central pressure per lead, with intervals and the Saffir–Simpson category
Rapid intensification Probability of a 25, 30 and 35 kt gain in 24 h, plus the expected change
Landfall Probability by each lead, and the most likely window
Core structure Peak eyewall wind, radius of maximum wind, and 34/50/64 kt wind radii by quadrant
Anywhere A local forecast for any point on Earth Physical units, read off the gridded fields

The storm also reports its own environment, read out of the model's atmosphere rather than supplied from outside: deep-layer steering flow, 200–850 hPa shear, mid-level humidity and ocean temperature. Those are, deliberately, the same quantities that operational statistical-dynamical intensity schemes such as SHIPS are built on — climatology, persistence and a handful of environmental predictors. Handing them to the heads explicitly is cheaper than hoping a million parameters rediscover them from 55,000 labels.

2. The engine: attention over physical space

Most weather transformers flatten the globe into a sequence of tokens and let the model learn geography from data. iHELIX keeps the geometry instead. A domain is composed from spherical, periodic, linear and logarithmic axes: Geometry.globe() is the Earth's surface, and Geometry.atmosphere() is a spherical shell whose vertical axis is log-pressure — so 1000→500 hPa is the same distance as 500→250 hPa, which is what the atmosphere actually thinks.

iHELIX: encode onto a shared mesh, process with physical radii, decode anywhere On the left, several different source grids — ERA5's 240 by 121 latitude-longitude grid, a satellite scan's pixel footprints, and station points — are read onto one shared 4,096-point Fibonacci mesh that carries true area weights and a local east, north and up frame at every point. The mesh is processed by seventeen blocks. Within each block, geodesic attention heads attend over great-circle distance with physical radii from 120 kilometres for fronts and convection up to 1,600 kilometres for synoptic scale; an index strand uses a region tree with beam search to reach distant points for teleconnections without paying for the whole globe; and a temporal strand carries state across the six input frames through a gated delta-rule recurrence at linear cost. The processed mesh is then decoded onto any output grid. Any source grid One shared mesh Any output grid ERA5 analysis 240 × 121 · 1.5° 89 channels · 13 levels Satellite scan pixel footprints, irregular Point observations wherever they happen to be FieldGrid is data, not architecture. The same model reads all three. Geometry axes Composed, not assumed spherical · periodic · linear · log Geometry.globe() — the surface Geometry.atmosphere() — a shell on a log-pressure vertical axis encode Latent mesh 4,096 points Fibonacci sphere · 48 neighbours true area weights east / north / up at every point 17 blocks · hidden 512 · 8 heads Geodesic attention A radius in kilometres, not cells 120 km — fronts, convection 400 km — mesoscale 900 km — storm environment 1,600 km — synoptic Index strand Region tree + beam search a point reaches a teleconnection without paying for the whole globe Temporal strand Gated delta-rule recurrence carries state across the 6 frames at linear cost — inherited from HELIX decode Gridded fields + log-variance Full state 86 prognostic channels Storm heads see section 3 Every point carries a local east / north / up frame, so “20 km north” means the same thing at the equator and at 80° latitude. Attention is over great-circle distance with compact support, so a head’s radius is a physical statement about scale rather than a hyperparameter about tokens. The vertical axis is log-pressure: 1000→500 hPa is the same distance as 500→250 hPa.
Representation forward Encode → process → decode Geometry is given, not learned
iHELIX. Any source grid is read onto one shared 4,096-point mesh, processed by 17 blocks whose heads have physical radii, and decoded onto any output grid. The temporal strand is inherited from HELIX, the linear-context language architecture this engine grew out of.

The practical consequence of “FieldGrid is data, not architecture” is that the same trained model reads ERA5's regular 240 × 121 grid, a 4,096-point Fibonacci mesh, or the irregular pixel footprints of a satellite scan. The grid is an argument, not a rebuild.

3. How a storm forecast is assembled

A 1.5° grid cell is about 165 km across. It cannot see an eyewall, and it does not know how fast the storm was moving twelve hours ago. So the storm path does not ask the mesh to carry everything: it pools the mesh twice, and then hands the heads the things a coarse reanalysis cannot show.

How NatureV1 assembles a tropical cyclone forecast The processed mesh is pooled twice around the storm centre: a 500 kilometre Gaussian for the core, and a 1,000 kilometre pool because the ridge that steers a storm sits about a thousand kilometres from the eye. Those two pools are joined by three further inputs a 1.5 degree reanalysis cannot show — the storm's own state, meaning its wind, pressure, twelve-hour motion and twelve-hour wind change; its position, which fixes Coriolis and beta drift; and a physical environment of steering flow, shear, mid-level humidity and sea surface temperature computed directly from the state tensor. These feed the storm heads. The track head predicts a residual from a physics-only steering track rather than the track itself. Finally four tracks — the learned track, a steering track from the frozen analysis, a steering track from the model's own rolled-out atmosphere, and straight extrapolation — are blended into a consensus with per-lead weights fitted on held-out seasons, and every member is reported alongside the blend. What the heads are given What they predict Pool 1 · the core 500 km Gaussian the processed mesh, weighted around the storm centre Pool 2 · the ridge 1,000 km pool because the ridge that steers a storm sits that far from the eye Storm state What the grid cannot see wind, pressure, 12 h motion, 12 h wind change Position Coriolis & beta drift latitude is a physical input Environment Computed from the state 850–200 hPa steering flow 200–850 hPa shear 700 hPa humidity · SST vs 26.5 °C Storm heads ~1M parameters the only part that ever sees a best-track label Backbone frozen while these train Track A residual, not a track predicted as the difference from a physics-only steering track — a far easier target than the whole path Shape of the answer 6 weighted scenarios each with a tilting ellipse per lead Intensity & risk max wind, min pressure, category rapid intensification at 25/30/35 kt landfall probability by lead Core structure eyewall wind, radius of max wind, 34/50/64 kt radii by quadrant Consensus Blend of four learned track steering (frozen) steering (rollout) extrapolation per-lead weights, fitted on held-out seasons members always shown The member that needs no training at all Thickness-weighted 850–200 hPa steering over the 200–800 km ring around the centre, with the inner 200 km left out so the storm’s own circulation is not counted, plus beta drift of 1 m/s west and 1 m/s poleward, stepped every 6 h.
Into the heads, out of the heads Into the consensus The learned part only fixes what steering gets wrong
The storm path. Two pools at different radii, three explicit physical inputs, and a track head that predicts the residual from a steering track rather than the track itself. The consensus blends the learned track with three baselines, and reports every member.

Everything new starts at exactly zero effect. The state head opens as persistence, the ensemble noise as nothing, the environment inputs as nothing. That is not a detail of initialisation — it is what makes it safe to add a capability to a model that is already training. Adding one can never make an existing checkpoint worse, and uncertainties open at climatological spread rather than at a confident guess.

4. Training, and the argument behind it

There are on the order of 55,000 Atlantic best-track points in all of recorded history, and no engineering makes more. Several of the fields are far thinner than that: radius of maximum wind only entered HURDAT2 with the 2021 season, and quadrant wind radii only go back to 2004. Spending 89 million parameters on that many labels would be a way of memorising the Atlantic.

So the labels are spent on as few parameters as possible, and everything else is learned from reanalysis, which is effectively free.

The three training stages: what trains, what is frozen, and on what data
Stage What trains Data Objective
1 — Pretraining The whole backbone Years of ERA5, every surface channel at every lead Area-weighted Gaussian negative log-likelihood — roughly 2×1011 supervised values
1b — Rollout The residual state head ERA5, stepped on its own forecast Curriculum to 12 steps (72 h), 2-member CRPS ensemble, mass conserved
2 — Storm heads ~1M parameters only — the backbone is frozen HURDAT2 Atlantic best tracks, 1979 onward Early stopping on seasons never trained on; consensus weights fitted afterwards on those held-out seasons

Freezing the backbone has a second payoff that is purely practical: it can be run once per storm into a cached feature bank, after which the heads train in seconds per epoch. A design that would otherwise be slow to iterate on becomes fast to iterate on, which is how a solo project gets anywhere at all.

Splitting data so it cannot cheat

  • ERA5 is split by time — train to 2015, validate 2016–2019, test 2020–2021. A random split would put tomorrow's answer in the training set, because consecutive atmospheric states are nearly identical.
  • HURDAT2 is split by season — validate on 2017, 2019 and 2021, test on 2018 and 2020. Splitting by storm would leak, because storms in a season share an environment.
  • Labels are paired by timestamp, not row index. HURDAT2 is not strictly six-hourly: it carries off-synoptic entries for landfalls and intensity maxima. Those are dropped rather than snapped to the nearest analysis hour.
  • Scarce fields arrive as NaN and are masked, never imputed. Radius of maximum wind exists on under 5% of points; filling it in would teach the model a number nobody measured.

5. What it refuses to do

This is as much a part of the model as anything above it. A forecast that cannot say I don't know is not a cautious forecast — it is a dangerous one.

  • An untrained head is never shown. An output whose head has received zero training steps is replaced by {"available": false, "reason": …}. The training record travels inside the checkpoint, so this survives being loaded somewhere else.
  • An untrained input path is marked untrustworthy. A forecast run from a path the model was never trained on — today, the satellite path — comes back with trustworthy: false, and the live satellite forecast is refused outright.
  • Every number is bounds-checked before it is shown or saved. No 400 kt hurricane, no pressure outside 850–1100 hPa, no cone wider than an ocean, no probabilities that do not sum to one.
  • It is published only if it earned it. The pipeline publishes a checkpoint only if it beats persistence on held-out data by a margin, and only if it demonstrably changes its answer when the weather changes.

The scoring follows what operational centres actually do: area-weighted RMSE and anomaly correlation against persistence and climatology on identical batches, in physical units, with a 1% margin before anything is called skill. The storm scorecard adds the baselines a forecaster would really reach for — a storm that stays put, straight extrapolation, and the physics-only steering track — and scores the consensus leave-one-season-out.

Beating extrapolation and persistence is the bar. Beating steering is what the learned part is for.

6. What has been measured

Nothing that establishes skill. The first full training run is in progress. What has been verified end to end is the mechanism: staging, all three training stages, the scorecards and the hindcast run on real ERA5 and HURDAT2 data at reduced scale, with 236 tests covering the physics, the label pairing, the resilience paths and the honesty rules. One hindcast has been run, below. It is one storm, and one storm proves nothing on its own. When the run finishes, the scorecards go here verbatim.

The Dorian hindcast

Forecast issued at 18Z on 30 August 2019, from the 1.5° ERA5 analysis at that moment. Dorian is a hard case for anyone: it stalled over the Bahamas and then turned north.

The short version: the physics-only steering track got the overall drift of the storm roughly right with no learning involved. It beat straight-line extrapolation from 48 hours onward and kept its error flat at long range. It is still a crude forecast — about three times the error of an official NHC forecast.

How the steering forecast is made

  1. Measure the flow around the storm. Average the deep-layer wind, 850–200 hPa, over a ring 200–800 km from the centre. The inner 200 km is left out so the storm’s own circulation does not count as steering.
  2. Add beta drift. The usual push storms get from the Earth’s rotation: 1 m/s westward and 1 m/s poleward.
  3. Move the storm. Step it along that flow every 6 hours, out to 120 hours.

The steering column holds that flow frozen at the issue-time analysis for all five days, so it never sees how the atmosphere actually changed. It has no trained parameters, so its score does not depend on how training is going.

Steering
Frozen analysis flow, above
Extrapolation
Current motion, straight on
Rollout-steer
Same, on the model’s own forecast weather
Model
Its top-rated of six scenarios, given 17%
Consensus
Blend of the four, unweighted

Track error

Great-circle track error in kilometres on Hurricane Dorian, issued 18Z 30 August 2019, for five forecasts; the lowest error in each row is in bold
Lead Steering Extrapolation Rollout-steer Model, top scenario (17%) Consensus
6 h1417141816
24 h177161180186182
36 h279268283278278
48 h382397389384390
72 h546651554550619
96 h650920656650824
120 h5311,012569528921

Kilometres, great-circle distance from the best track. Lowest error in each row in bold; ties both bold.

Intensity

Forecast against actual maximum sustained wind on Hurricane Dorian, in knots
LeadForecastActualMissed by
6 h62 kt115 kt53 kt
24 h62 kt130 kt68 kt
36 h62 kt145 kt83 kt
48 h63 kt160 kt97 kt
72 h65 kt125 kt60 kt
96 h63 kt95 kt32 kt
120 h61 kt95 kt34 kt

What this shows

  • Before 48 hours, extrapolation wins — 161 against 177 km at 24 h, 268 against 279 at 36 h. Over a day or so a storm’s own momentum is the best guess, and frozen steering adds nothing.
  • From 48 hours onward, steering pulls ahead fast — 546 against 651 km at 72 h, 650 against 920 at 96 h, and 531 against 1,012 at 120 h, nearly half the error. Extrapolation runs the storm off in a straight line; steering keeps it in the flow it is actually sitting in.
  • Steering error at 120 h is lower than at 96 h (531 against 650 km). Dorian stalled over the Bahamas and then turned north, and forecast and storm ended up closer together after the turn. That is partly luck of timing, not skill.
  • Rollout-steer did slightly worse than steering (569 against 531 km at 120 h). It steers with the model’s own forecast weather instead of the frozen analysis, and in principle it should do better. It does not here, because the weather it steered with came from a partly trained model.
  • The model’s track barely departs from steering — within 10 km at every lead: 550 against 546 km at 72 h, 528 against 531 at 120 h. That is the design working as intended. Every scenario starts from the steering track and the head adds a learned correction on top; at this point the corrections were tiny, so most of the “model” track was still the physics.
  • The consensus did worse than steering at long range (921 against 531 km at 120 h). That is expected: the blend weights had not been fitted, so it was an unweighted mix dragged down by extrapolation.
  • Intensity was a failure. The model forecast about 62 kt flat while Dorian peaked at 160 kt. At 1.5° the model cannot resolve an eyewall. This is the known weak point, and the limits section below says so.

The number to watch: 17%

The model never gives one track for a hurricane. It proposes six scenarios and puts a probability on each, and the model column above is the one it rated most likely. The 17% in that column’s header is the probability it gave that track — not how far training had got.

With six scenarios, an even split is 100 ÷ 6 = 16.7%. So the model’s favourite track carried exactly the share it would get if all six were rated equally likely: it did not yet favour any path over another. That fits the rest of the table. Corrections this small leave six scenarios that are all nearly the steering track, with nothing to choose between them.

What a trained model should look like. The top scenario should carry clearly more than 17% — for a storm with an obvious path, perhaps 40–60%. Where the path genuinely splits, as with Dorian’s stall or a turn north against a run straight into Florida, two scenarios should both carry real weight.

When the run finishes, this is the first number to check. If the top scenario is still sitting near 17%, the hurricane heads have learned nothing beyond steering. If it has moved, the heads are telling paths apart — and whether they tell them apart correctly is what the storm scorecard measures.

Against the National Hurricane Center

NHC’s five-year Atlantic average is about 66 km at 24 h and 168 km at 72 h. Steering was 177 and 546 km on this storm — roughly three times worse. That is an average over many storms set against a single difficult case, so it is not a fair head-to-head, and the stall made Dorian an unusually hard track for everyone. It is there for scale.

Bottom line. The steering track is a solid floor: it is what physics alone can do from one snapshot. The learned model’s job is to cut those 382, 546 and 531 km numbers. Whether it does will show in the final storm scorecard across every held-out storm — not in this one hindcast.

What else the pipeline checks

  • A training watchdog raises on a non-finite loss and warns on divergence and collapse; held-out validation runs every 500 steps with an explicit over-fitting flag.
  • Preflight checks grid alignment, normalisation spikes, grid weights and device agreement before step one, and halts the run if anything fails.
  • A response probe confirms that different inputs actually give different outputs — the test that catches a model which has quietly collapsed to climatology.
  • Resilience is treated as a safety property for a multi-day run: atomic checkpoint writes every minute, optimizer and schedule state travelling with the weights, damaged checkpoints falling back to older ones, incompatible ones quarantined rather than force-loaded, and a supervised process that restarts on crash, out-of-memory or stall.

7. Limits, stated plainly

Do not use NatureV1 for real decisions. Training is unfinished, no scorecard exists, and no independent party has verified anything. For a live storm, the National Hurricane Center is the authority.

  • Resolution, and therefore intensity. 1.5° is about 165 km, which cannot resolve an eyewall. On the Dorian hindcast the model forecast about 62 kt flat while the storm peaked at 160 kt. The explicit environment inputs exist to compensate, and the final scorecard will say how far they get.
  • Not operational. It runs on reanalysis, which is published days after the fact. There is no real-time analysis feed, and the satellite input path exists but is untrained.
  • Verification is internal. Three validation seasons, scored by the pipeline's own scorecards. Calibration of the landfall and rapid-intensification probabilities has not been measured at all yet.
  • Atlantic only for the storm heads, 1979 onward.
  • Tornadoes, hail and flash floods are far below this resolution and out of scope.

8. Using it

The whole pipeline — install, staging, three training stages, scorecards, and publishing only if it earned it — is one cell, colab_naturev1.py, shipped with the package. Every setting is at the top. It runs in marimo, Colab, Jupyter or a plain script.

pip install "naturev1[all]"

Load a checkpoint and ask it what it has actually been trained to do:

import torch
from huggingface_hub import hf_hub_download
from ihelix import fibonacci_sphere
from naturev1 import NatureV1, NatureConfig, build_forecast

path = hf_hub_download("Sigmandndnns/NatureV1-500", "checkpoints/stage1/latest.pt")
payload = torch.load(path, map_location="cpu", weights_only=False)
config = NatureConfig.from_dict(payload["config"])

model = NatureV1(config, fibonacci_sphere(config.latent_points,
                                          num_neighbours=config.latent_neighbours,
                                          cluster_size=config.latent_cluster))
model.load_state_dict(payload["model"])

print(model.trained_heads())   # steps each output has received; 0 = never trained, never shown

build_forecast turns a forward pass into the forecast bundle — track scenarios with cones, the consensus and its members, landfall, intensity, rapid intensification, eyewall structure and a point forecast — in physical units with 90% intervals, with every untrained section marked unavailable:

bundle = build_forecast(
    outputs,
    config.lead_times_hours,
    issued,
    storm_center=(lat, lon),
    trained=model.trained_heads(),
)

What is in the repository

Files published in the NatureV1-500 Hugging Face repository
PathWhat it is
checkpoints/stage1/latest.ptStage one, pushed every 10 minutes while training
checkpoints/rollout/latest.ptStage 1b, once it starts
checkpoints/stage2/latest.ptHurricane heads, once they start
checkpoints/storm_bank_*.ptCached frozen-backbone features for the storm heads
staging/era5*.npyNormalised ERA5 staging, mirrored so a new session needs no re-download
staging/stats.json, batch.jsonNormalisation statistics and the measured batch size

Licence. Apache-2.0, for both naturev1 and ihelix. The data it trains on has its own terms: ERA5 via WeatherBench 2 and HURDAT2 from the National Hurricane Center.

9. Why it is built this way

Three convictions run through the whole stack, and each one is a bet about where the parameters should go.

Geometry is not something to learn

Distances, areas, the sphere, the vertical: these are known. Giving attention physical radii and true area weights spends the parameters on the atmosphere instead of on rediscovering the globe.

Scarce labels buy few parameters

About 55,000 Atlantic best-track points exist and no engineering makes more. The backbone learns from free reanalysis; a million parameters learn from the labels, with the physics handed to them explicitly.

A forecast must be able to say “I don't know”

Every output carries an uncertainty, every untrained head is hidden, every number is bounds-checked, and nothing is believed until it beats persistence.

The engine is not a one-off either. iHELIX grew out of HELIX, the linear-context language architecture published as helix-lm — the temporal strand that carries state across the six input frames is the same gated delta-rule recurrence, applied to time instead of to text.

10. Questions

What is NatureV1, in one paragraph?

An 89.18M-parameter probabilistic model of the atmosphere. Given the last 30 hours of ERA5 reanalysis it forecasts global surface weather to five days, rolls the whole atmosphere forward to 72 hours, and — for a tropical cyclone — predicts where it goes, how strong it gets, whether it intensifies rapidly and whether it makes landfall, every number with an uncertainty. The first full training run is in progress and no forecast skill is claimed yet.

Can I use it to forecast a real storm?

No. Training has not finished, no scorecard exists, and nothing about its skill has been established. It also runs on reanalysis, which is published days after the fact, so there is no real-time path even once it is trained. For a live storm, use the National Hurricane Center.

What is geodesic attention, and why does it matter here?

Most weather transformers flatten the globe into tokens and leave the model to work out geography from data. Here every head is given a physical radius in kilometres, with compact support, and attends over great-circle distance — 120 km for fronts and convection, up to 1,600 km for synoptic scale. Points carry true area weights and a local east/north/up frame, so “20 km north” means the same thing at the equator and at 80° latitude.

Why freeze the backbone before training the hurricane heads?

Because the labels are scarce in a way no engineering fixes. The whole Atlantic best-track record is on the order of 55,000 points, and the rarest fields are far thinner — radius of maximum wind only entered HURDAT2 with the 2021 season, quadrant wind radii only go back to 2004. So the backbone learns from roughly 2×1011 free values in reanalysis, then freezes, and only about a million parameters ever see a label. It also makes iteration fast: the frozen backbone runs once per storm into a cached feature bank, after which the heads train in seconds per epoch.

Why does the track head predict a residual?

Because the difference from a steering track is a much easier target than the track itself. A physics-only steering track — the path a storm takes if it is simply carried by the thickness-weighted 850–200 hPa flow around it, plus climatological beta drift — needs no training at all. The learned part is then only responsible for what steering gets wrong: beta drift anomalies, trough interactions, recurvature timing. It also means the model has a sensible answer before it has learned much.

What is the consensus track, and why four members?

Four tracks are blended with per-lead weights fitted on held-out seasons: the learned track; a steering track from the issue-time analysis, held frozen; the same steering calculation run on the model’s own rolled-out atmosphere; and straight extrapolation. This copies something operational forecasting established long ago: consensus aids routinely beat every individual model that goes into them. Every member is reported alongside the blend, so you can see what the consensus was made of rather than taking one number on trust.

Until the weights are fitted the blend is unweighted — and on the Dorian hindcast that made it worse than steering alone at long range, dragged down by extrapolation.

What does the model refuse to do?

An output whose head has never received a training step is not shown at all — it comes back as unavailable, and the training record travels inside the checkpoint. A forecast from an input path that was never trained on, such as the satellite path today, is flagged untrustworthy, and the live satellite forecast is refused outright. Every number is bounds-checked first: no 400 kt hurricane, no pressure outside 850–1100 hPa, no probabilities that fail to sum to one. And a checkpoint is published only if it beats persistence on held-out data by a margin.

Has anything been measured yet?

Nothing that establishes skill. One hindcast has been run, on Hurricane Dorian from 18Z on 30 August 2019. The physics-only steering track had errors of 177 km at 24 h, 382 at 48, 546 at 72 and 531 at 120. Straight extrapolation was better before 48 h (161 km at 24) and far worse after (651 at 72, 1,012 at 120).

The model’s own track — the most likely of the six scenarios it proposes — stayed within 10 km of steering at every lead, and the model gave it 17%: exactly the share each of six scenarios gets under an even split. It did not yet favour any path, and its corrections to steering were still tiny. Intensity failed: about 62 kt flat against a 160 kt peak. For scale, NHC’s five-year Atlantic average is about 66 km at 24 h and 168 km at 72, so steering was roughly three times worse on this storm — one hard storm against an average over many, which is not a fair head-to-head. The full tables are above.

Watch it train

The checkpoints are public while the run is still going.

Stage one is mirrored to Hugging Face every ten minutes. The scorecards that decide whether any of this works are produced by the pipeline itself, and will be published here whether they are flattering or not.