typhoon-predict is an open-weight model from Euler, released under MIT License. Its published files total 170.5 MB.
Trackformer 1.2 is a research-only Western Pacific tropical-cyclone forecast model. It evolves a sea-level-pressure (MSLP) field and a moving storm-centred pressure core every six hours through +120 h.
Model Card
By Euler, published under mit, revision 7cbcfd5b577b.
Trackformer 1.2 is a research-only Western Pacific tropical-cyclone forecast model. It evolves a sea-level-pressure (MSLP) field and a moving storm-centred pressure core every six hours through +120 h. A track and central-pressure estimate are extracted from the evolving core, not independently drawn on top of a pressure image. The prior Trackformer 1.1 release remains available and unchanged. Not an operational warning system. Do not use these forecasts for evacuation, aviation, maritime, or other safety-critical decisions. The public 1.2 name identifies one selected development checkpoint; a genuinely untouched storm-level holdout has not yet established generalization. The two models use…
Read Euler's full model card
Trackformer 1.2
Trackformer 1.2 is a research-only Western Pacific tropical-cyclone forecast model. It evolves a sea-level-pressure (MSLP) field and a moving storm-centred pressure core every six hours through +120 h. A track and central-pressure estimate are extracted from the evolving core, not independently drawn on top of a pressure image. The prior Trackformer 1.1 release remains available and unchanged.
Not an operational warning system. Do not use these forecasts for evacuation, aviation, maritime, or other safety-critical decisions. The public 1.2 name identifies one selected development checkpoint; a genuinely untouched storm-level holdout has not yet established generalization.
What changed from 1.1
| Trackformer 1.1 | Trackformer 1.2 | |
|---|---|---|
| Main representation | Observed history and weather features to track/intensity/structure outputs | Autoregressive basin MSLP plus storm-centred moving pressure core |
| Six-hour outputs | Track, maximum wind, central pressure, RMW, R34/R50/R64 | Track, central pressure, basin and regional MSLP; auxiliary maximum-wind scalar |
| Pressure-map capability | No native evolving MSLP forecast field in released model | Model-generated MSLP fields at every lead |
| Forecast horizon | +6 to +120 h | +6 to +120 h |
| Meaning of “50-member mean” | Not part of the 1.1 comparison | Same weights on 50 distinct, smoothly perturbed causal input histories; separately averaged routes, pressures and common-grid fields. Not 50 trained networks or learned latent members. |
The two models use different input pipelines. A direct chart is therefore a forecast-output comparison on common cases and leads, not a controlled architecture ablation.
How the 1.2 model works
- Causal initialization. Nine six-hour analyses ending at issue time provide eight basin channels on a 25×33 grid: MSLP, 500-hPa height, and 850/500/200-hPa winds. Where stored native detail exists, nine 121×121 regional MSLP patches supplement the coarse field. Static geography, current observed centre, recent motion, current intensity and masks are issue-time inputs. A compact pressure correction initializes the regional core from current observations; it is a reconstruction, not future weather.
- Environmental transport. A convolutional recurrent state evolves the basin field. Estimated steering flow and a departure grid advect it, with learned pressure tendencies. Two pooled spatial scales feed a two-block transformer encoder; cross-attention conditions the environmental memory. Its output starts at zero so the added component initially matches its warm-start baseline.
- Moving pressure core. A 65×65 storm-centred internal grid at approximately 20-km spacing moves with the storm. Its pressure anomaly is transported relative to the environmental flow and updated by learned tendencies. The displayed 121×121 regional field is a resampled composite; the moving core is authoritative for centre and central pressure.
- Coupled outputs. A local low-pressure association within 300 km identifies the forecast centre. Central pressure is sampled from the predicted core at that centre. Maximum wind is an auxiliary scalar, not a resolved wind field or wind radii.
- Autoregression. The transition runs 20 times for +6, +12, …, +120 h. Training combines basin-field, regional/core-field, track, central-pressure and auxiliary-wind losses, plus masked pressure-change and displacement losses. Future truth is a training/evaluation target only, never an inference input.
The implementation is in models/trackformer_1_2_field/; its manifest.json records exact grids, normalization, architecture and SHA-256 provenance. Internally the selected checkpoint came from experiment version 1.2.73, epoch 4. The public model is Trackformer 1.2; that internal identifier is retained only for reproducibility.
270-case comparison: direction, route shape and position
This comparison uses 270 forecast cases from 90 storms, with the same issue rows, observed routes and 20 six-hour leads through +120 h. The number 270 counts forecast cases. The 1.2 prediction for each case is a mean of 50 causal input-perturbation members; 1.1 uses its archived causal route pipeline.
| Metric | 1.1 | 1.2 · mean of 50 | Preferred |
|---|---|---|---|
| Mean six-hour direction error | 56.22° | 44.82° | Lower |
| Route-shape similarity | 0.7273 | 0.8249 | Higher |
| Path similarity (Fréchet) | 0.4983 | 0.5727 | Higher |
| Mean track error, +6 to +120 h | 902.3 km | 714.4 km | Lower |
| Track error at +120 h | 1,833.2 km | 1,433.4 km | Lower |
What “similarity” means: direction error compares the heading of each six-hour step, on 5,382 common valid case-leads where truth and both models move more than 1 km. Shape similarity compares the centred route curves after removing overall scale, while preserving their orientation; a score of 1 means identical shape under that comparison. Path similarity uses Fréchet distance and the observed route length, so it also responds to geographic displacement. These scores measure different aspects of the forecast and are reported separately.
The saved 1.1 archive had a coordinate-label bug: its v11_local array held absolute latitude/longitude, while the original scorer interpreted it as east/north kilometres. The new comparison converts those coordinates to the same local projection used by 1.2 and verifies a round trip back to the original coordinates. The old 1,036.3 km score is superseded by 902.3 km. Original forecast archives are preserved. The published metrics, small plot-data arrays and reproduction script record the correction.
What the routes look like
These are six selected best-performing examples from six distinct storms, not a representative sample. Among in-domain cases with at least 300 km of observed travel, shape similarity ≥0.90 and direction error ≤30° on at least 18 common valid leads, we select the lowest 1.2 mean track errors, with one case per storm. Every curve starts at the same issue-time origin. The selection manifest and all 270 case scores make the choice auditable; the aggregate bars above still include every case, including poor forecasts.
The 1.2 mean has better aggregate direction, shape and position scores on this previously inspected development cohort. That does not establish an overall win on every storm or pressure metric. A same-270 1.1 central-pressure prediction array was not verified in these route artifacts, so it is not assigned a pressure-error bar. The separate 1.2 report gives 15.73 hPa central-pressure MAE and 2.54 hPa area-weighted regional MSLP MAE. TIP remains a separate diagnostic: its pressure error was worse for 1.2 (30.7 vs 20.1 hPa). See metric definitions and limitations.
Expanded daily-issue benchmark: 270 distinct typhoons
A new 1,473-case / 270-storm benchmark is in progress; it is not the completed 270-case result above. Each storm contributes at most one forecast per UTC day, through +120 h. Daily errors are averaged within each storm, then the 270 storm scores receive equal weight. Selection was frozen before new inference, without filtering on forecast quality. See the protocol and frozen cohort. Results are pending; no improvement is claimed from the partial run.
Recent pressure forecast with isobars
The archived Surigae forecast issued 27 September 2026 at 12:00 UTC shows the model's regional pressure field at +6, +24 and +36 h. Thin lines are isobars every 4 hPa, with selected labels every 12 hPa; magenta shows the forecast track and centre. Coastlines provide geographic context. These panels use the actual saved model values.
This recent example is one deterministic forecast, separate from the benchmark's mean of 50. Its input uses nine GFS analyses ending at 06 UTC, six hours before issue time; issue-time JMA central pressure was provided, while wind, prior motion and native regional history were unavailable. This transfer from the training data contract is experimental. The fixed regional map ends at 144°E; the selected leads keep the forecast centre inside it. The pressure-field provenance records the input limitations and checkpoint hash.
Get the model and run it
- GitHub release and source
- Hugging Face weights and model card
- Input schema and inference instructions
The inference-only weights.pt is hosted in the release/Hugging Face model folder, not committed to GitHub source. The manifest records its SHA-256 and the original training-checkpoint SHA-256. The three source modules are copied unchanged from the verified training implementation. The root-level trackformer_1_2.py and older examples/predict_trackformer_1_2.py are legacy artifacts from a withdrawn, unrelated 1.2 candidate; do not use them with these field weights.
Only issue-time and earlier analyses are permitted. The prediction wrapper rejects future-dated history and unexpected input keys, but cannot certify an externally built packet's data provenance. The operator must verify source timestamps and training-only normalization. The included wrapper runs one unperturbed forecast; it does not reproduce the saved 50-member mean automatically.
Identity and Version
- Repository
- euler314/typhoon-predict
- Publisher
- Euler
- Task
- Not stated by the source
- Modality
- Other
- Library
- Not stated by the source
- Parameters
- Not stated by the source
- Languages
- Not stated by the source
- Revision
- 7cbcfd5b577b937e260686170a6339922a205488
- First published
- 2026-07-10
- Last updated
- 2026-09-29
Files and Weights
46 files, 170.5 MB in total. The weights are 13 files totalling 168.3 MB in npz, pt.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| models/trackformer_1_1/trackformer_1_1_intensity_seed0.pt | Weights | 8.9 MB | f26a55bb3db6 |
| models/trackformer_1_1/trackformer_1_1_intensity_seed1.pt | Weights | 8.9 MB | 74c379bda87d |
| models/trackformer_1_1/trackformer_1_1_intensity_seed2.pt | Weights | 8.9 MB | 7023a827ebc1 |
| models/trackformer_1_1/trackformer_1_1_norm_stats.npz | Weights | 1.5 KB | 98041bbffbfa |
| models/trackformer_1_1/trackformer_1_1_structure_seed0.pt | Weights | 8.9 MB | 46a2d38cae5c |
| models/trackformer_1_1/trackformer_1_1_structure_seed1.pt | Weights | 8.9 MB | 13d1840bc8f4 |
| models/trackformer_1_1/trackformer_1_1_structure_seed2.pt | Weights | 8.9 MB | f46a8f03b472 |
| models/trackformer_1_1/trackformer_1_1_temporal_seed0.pt | Weights | 9.5 MB | 251ae6880625 |
| models/trackformer_1_1/trackformer_1_1_temporal_seed1.pt | Weights | 9.5 MB | 9c705fea9bc7 |
| models/trackformer_1_1/trackformer_1_1_temporal_seed2.pt | Weights | 9.5 MB | c90ce4dc0a40 |
| models/trackformer_1_2_field/weights.pt | Weights | 86.0 MB | db49f36e85a3 |
| paper/release_data/routes_270.npz | Weights | 191.6 KB | 1f40f85b2ef2 |
| paper/release_data/surigae_pressure.npz | Weights | 126.1 KB | c92c76dbc833 |
| models/trackformer_1_1/manifest.json | Configuration | 1.3 KB | — |
| models/trackformer_1_1/trackformer_1_1_calibration.json | Configuration | 50.2 KB | — |
| models/trackformer_1_2_field/baseline_model.py | Configuration | 10.0 KB | — |
| models/trackformer_1_2_field/manifest.json | Configuration | 5.5 KB | — |
| models/trackformer_1_2_field/model.py | Configuration | 3.4 KB | — |
| models/trackformer_1_2_field/predict.py | Configuration | 3.9 KB | — |
| models/trackformer_1_2_field/v165_base.py | Configuration | 39.0 KB | — |
| paper/release_data/cohort_270.json | Configuration | 34.5 KB | — |
| paper/release_data/daily_storm_cohort.json | Configuration | 522.9 KB | — |
| paper/release_data/map_boundaries.json | Configuration | 9.8 KB | — |
| paper/release_data/surigae_provenance.json | Configuration | 1.1 KB | — |
| paper/trackformer_1_2_showcase_selection.json | Configuration | 231.9 KB | — |
| paper/trackformer_1_2_vs_1_1_270_metrics.json | Configuration | 38.2 KB | — |
| paper/trackformer_1_2_vs_1_1_tip_metrics.json | Configuration | 1.3 KB | — |
| release_tools/plot_release_270.py | Configuration | 18.6 KB | — |
| trackformer_1_1.py | Configuration | 927 B | — |
| trackformer_1_1_base_route.py | Configuration | 19.6 KB | — |
| trackformer_1_1_intensity.py | Configuration | 37.5 KB | — |
| trackformer_1_1_route.py | Configuration | 8.7 KB | — |
| trackformer_1_1_temporal.py | Configuration | 3.8 KB | — |
| LICENSE | Documentation | 1.1 KB | — |
| README.md | Documentation | 10.4 KB | — |
| RELEASE_NOTES_TRACKFORMER_1_2.md | Documentation | 2.4 KB | — |
| docs/daily_storm_benchmark.md | Documentation | 4.5 KB | — |
| docs/trackformer_1_2_evaluation.md | Documentation | 8.3 KB | — |
| models/trackformer_1_2_field/README.md | Documentation | 2.9 KB | — |
| paper/trackformer_1_2_pressure_map_example.png | Other | 96.9 KB | — |
| paper/trackformer_1_2_surigae_isobars.png | Other | 387.8 KB | 4a0df5689499 |
| paper/trackformer_1_2_vs_1_1_270_bars.png | Other | 200.0 KB | 1e1094ade209 |
| paper/trackformer_1_2_vs_1_1_route_examples.png | Other | 379.2 KB | 463df86fa2e6 |
| paper/trackformer_1_2_vs_1_1_tip_bars.png | Other | 57.9 KB | — |
| requirements.txt | Other | 69 B | — |
| .gitattributes | Repository | 861 B | — |
License and Download
- License
- mit
- Access
- Open weights, no gate
- Download size
- 168.3 MB
Released by Euler through its official repository on Hugging Face. Read the license.
Memory Requirements
| Precision | Weights in memory |
|---|---|
| As published | 168.3 MB |
Weights only, from the published parameter count; the key-value cache and runtime add to this.
Questions About typhoon-predict
Can I use typhoon-predict commercially?
Yes. typhoon-predict is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.