The Latest AIs, every day
AIs with the most favorites on Toolify
AIs with the highest website traffic (monthly visits)
AI Tools by Apps
Discover the Discord of AI
AI Tools by browser extensions
GPTs from GPT Store
Discover The Best Model For AI
Top AI lists by month and monthly visits.
Top AI lists by category and monthly visits.
Top AI lists by region and monthly visits.
Top AI lists by source and monthly visits.
Top AI lists by revenue and real traffic.

Given a wildfire's current active-fire mask plus terrain, weather, fuel state and land cover on a 375 m grid, the model predicts, for every pixel, the probability that it is actively burning in the next 24 hours. Input is a WildfireSpreadTS -format daily GeoTIFF; output is a probability GeoTIFF on the same grid. It is a small UNet (1.94 M parameters) trained from scratch on 258 western-US fire events. No foundation-model weights are included; the model is entirely ours and MIT-licensed.
Code, training pipeline, demo maps and every evaluation script: https://github.com/eitanlebras/fire-spread-forecast
WildfireSpreadTS test split (2021, 30 fires held out by year), 3 seeds, 95% CI. Persistence = "tomorrow's fire is today's fire".
| value | |
|---|---|
| AUC-PR | 0.552 ± 0.003 |
| Persistence baseline | 0.273 |
| Expected calibration error (15 bins) | 0.0044 |
| Growth region (pixels not burning today) | 0.243 vs persistence 0.003 |
This checkpoint is seed 0 of that run, re-trained with weight saving on: test AUC-PR 0.543, ECE 0.0051.
The decomposition is the part worth reporting. Pooled over the 30 held-out fires and 599 fire-days, we split new fire into
interior gaps
(unburned pockets enclosed by yesterday's perimeter) and
true advance
(fire reaching ground beyond the
outer boundary). Relative to each task's own chance rate, the model is
1.9× chance on interior fill (AUC-PR 0.451, chance
0.240) and 54× chance on advance (AUC-PR 0.065, chance 0.0012)
; on the strict advance definition (holes of the raw
detection mask filled) it is 123× chance (AUC-PR 0.218, chance 0.0018).
19% of all advancing fire, across every fire and
day, landed in the model's > 0.4 zone
; 83% of interior fill did. The figure above is a held-out day of outward spread on the Tamarack Fire (fire_25294746, day 12: 160 advance pixels, 68% inside the > 0.4
zone, advance AUC-PR 0.541; interior gaps 162 pixels, AUC-PR 0.755). It was chosen after the fact from 599 days, so read
it as an illustration next to the pooled numbers, not as evidence by itself. The other top advance frames are in the
GitHub repo under
demo/frames_advance_test/
.
OlmoEarth ablation (weights not published). We also post-trained a variant that adds a 16-channel projection of OlmoEarth v1.2-Small Sentinel-2 embeddings (four pre-fire monthly composites) and fine-tunes the encoder's last two transformer blocks at lr 1e-5 with the head at 1e-3, 3 seeds:
| baseline (this model) | + OlmoEarth post-trained | |
|---|---|---|
| AUC-PR | 0.552 ± 0.003 | 0.547 ± 0.006 |
| ECE | 0.0044 | 0.0062 |
| Growth region | 0.243 | 0.238 |
Post-training gave no measurable improvement : the intervals overlap and calibration is slightly worse. All three eval curves plateaued by epoch 15 while training loss kept falling, so it was overfitting rather than undertrained; at 5,576 training tiles, 3.55 M additional trainable encoder parameters cost more than the pretrained fuel representation gained. The budgets differ (baseline early-stopped at epoch 56, the OlmoEarth arm ran 20). We report it because negative results on foundation-model transfer are underreported. Those weights are a derivative of OlmoEarth under Ai2's Artifact License and are not distributed; only this baseline is published.
40 channels on the WildfireSpreadTS 375 m event grid, in this order (23 raw bands → authors' preprocessing → 40):
| # | channel | source |
|---|---|---|
| 1-3 | VIIRS bands M11, I2, I1 (surface reflectance) | VIIRS VNP09GA |
| 4-5 | NDVI, EVI2 | VIIRS VNP09GA |
| 6-12 | total precipitation, wind speed, wind direction (sin), min temperature, max temperature, energy release component, specific humidity | GRIDMET |
| 13-15 | slope, aspect (sin), elevation | SRTM-derived terrain |
| 16 | Palmer drought severity index | GRIDMET |
| 17-33 | land cover, one-hot over 17 classes (evergreen needleleaf … barren, water) | MODIS MCD12Q1 |
| 34-38 | forecast: total precipitation, wind speed, wind direction (sin), temperature, specific humidity | GFS |
| 39 | active-fire detection hour today | VIIRS VNP14 |
| 40 | binary active-fire mask today | derived from 39 |
Preprocessing (all in
inference.py
): detection time hhmm → hours; sin on the three degree features; standardize the 23
raw bands with the means and stds in
config.json
(the WildfireSpreadTS authors' 2018+2019 statistics); NaN → 0;
land-cover integer → one-hot; zero-pad to a multiple of 32. Predictions over water (land-cover class 17) are set to 0.
The normalization statistics are mandatory
:
inference.py
refuses to run if
config.json
lacks them, because the
weights produce confidently wrong output without them.
pip install torch numpy rasterio safetensors huggingface_hub
huggingface-cli download eitanlebras/fire-spread-forecast-v1-small --local-dir fire-spread-forecast-v1-small
cd fire-spread-forecast-v1-small
python inference.py --fire-dir /path/to/WildfireSpreadTS/2021/fire_25547988 --out preds/fire_25547988
(
git clone
also works if
git lfs install
has been run first; without git-lfs the clone contains a 132-byte pointer
instead of
model.safetensors
, and
inference.py
will fail to load it.)
import torch, numpy as np
from inference import load_model, predict_fire
model, cfg = load_model(".", "cuda" if torch.cuda.is_available() else "cpu")
probs, dates, profile = predict_fire(model, cfg, "/path/to/WildfireSpreadTS/2021/fire_25547988", "cpu")
# probs[i] is P(active fire on dates[i+1]) per pixel, made from the observation on dates[i]
Input directory: daily GeoTIFFs named
YYYY-MM-DD.tif
with the 23 WildfireSpreadTS bands. Output: one float32 GeoTIFF per
forecast day in the event's CRS,
probs.npy
of shape (T-1, H, W), and
dates.json
. Runs on CPU (about 4 s for an 18-day fire).
WildfireSpreadTS (Gerard et al., NeurIPS 2023 Datasets & Benchmarks), the authors' year-based fold 0: train 2018-2019 (199 fires), eval 2020 (30), test 2021 (30). 128×128 tiles, kept when the input or the target contains fire, same rule for every split: 5,576 / 1,049 / 1,605 tiles. UNet, width 32, depth 3, GroupNorm, dropout 0.1, 1.94 M parameters. Batch 32, AdamW (lr 5e-4 after linear batch scaling, weight decay 1e-4, 100 warm-up steps, cosine), positive-weighted BCE (pos_weight 3), dihedral augmentation, early stopping on eval AUC-PR (patience 10 checks, eval every 2 epochs). Padded pixels are excluded from loss and metrics. One RTX 4090, about 7 minutes per seed.
WildfireSpreadTS:
@inproceedings{gerard2023wildfirespreadts,
title={WildfireSpreadTS: A dataset of multi-modal time series for wildfire spread prediction},
author={Gerard, Sebastian and Zhao, Yu and Sullivan, Josephine},
booktitle={Thirty-seventh Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year={2023},
url={https://openreview.net/forum?id=RgdGkPRQ03}
}
This model:
@misc{lebras2026firespreadforecast,
title={fire-spread-forecast-v1-small: next-day wildfire spread as per-pixel probability},
author={Lebras, Eitan},
year={2026},
howpublished={\url{https://huggingface.co/eitanlebras/fire-spread-forecast-v1-small}}
}
fire-spread-forecast-v1-small huggingface.co is an AI model on huggingface.co that provides fire-spread-forecast-v1-small's model effect (), which can be used instantly with this eitanlebras fire-spread-forecast-v1-small model. huggingface.co supports a free trial of the fire-spread-forecast-v1-small model, and also provides paid use of the fire-spread-forecast-v1-small. Support call fire-spread-forecast-v1-small model through api, including Node.js, Python, http.
fire-spread-forecast-v1-small huggingface.co is an online trial and call api platform, which integrates fire-spread-forecast-v1-small's modeling effects, including api services, and provides a free online trial of fire-spread-forecast-v1-small, you can try fire-spread-forecast-v1-small online for free by clicking the link below.
fire-spread-forecast-v1-small is an open source model from GitHub that offers a free installation service, and any user can find fire-spread-forecast-v1-small on GitHub to install. At the same time, huggingface.co provides the effect of fire-spread-forecast-v1-small install, users can directly use fire-spread-forecast-v1-small installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
