Recast WOOF
Weather Observations and Open Forecasting: a GPU-native weather model you run on your own card.
WOOF is a regional weather model with WRF-class physics that runs on one NVIDIA GPU, with its own preprocessing, data assimilation and plots. One install carries three models:
| Model | Command | Status |
|---|---|---|
| Regional (WRF-ARW class, nests, DA) | woof |
Production |
| Hex (MPAS-style unstructured mesh) | woof hex |
Preview |
| Global (spectral, with ensemble DA) | woof global |
Preview |
Preview means the model is in the package, documented and tested on CPU, and its command says preview each time it runs; its config and checkpoint formats may change in a minor release. The major-version promise covers the regional model.
Install
Linux on x86_64, Python 3.11 or newer, an NVIDIA GPU and driver. 1.0.0 has no Windows build of the native tools.
python3 -m venv ~/woof-env
~/woof-env/bin/python -m pip install 'recast-woof[all-cu12]'
~/woof-env/bin/woof fetch-tables
~/woof-env/bin/woof fetch-geog --datasets wrf
~/woof-env/bin/woof doctor
For a CUDA 13 setup use all-cu13. The hex model runs only on CUDA 13, so
install all-cu13 to use it. Install one CuPy/CUDA major per environment.
The Linux wheel carries the native tools (GRIB and NetCDF decoding, the
WPS-equivalent preprocessor, the renderer).
fetch-geog downloads the global geography every forecast builds its
terrain, land use and soil from: about 1.3 GB, 17 GB unpacked, once per
computer. fetch-tables adds two Thompson microphysics tables (about 314 MiB).
Reference tables and map assets arrive with the recast-woof-data package.
Run a forecast
woof domain --point 35.3,-97.5 --source hrrr --cycle latest --hours 3 \
--root-dx 3 --point-extent-km 300 --out forecast.toml
woof go forecast.toml --dry-run
woof go forecast.toml
--dry-run reviews the route, sizes it for your card and names anything
missing; the second line fetches, prepares, runs and draws. Pictures are drawn
as each history frame lands, beside the running forecast.
Compare two runs, any product, as run A minus run B:
woof render --diff runA/ runB/ --out diff/
The pair must share the grid and the valid times; a mismatch is refused by name.
Documentation
docs/public/: the CLI manual, physics, verification record, hardware guidance and data sources.components/hex/andcomponents/globe/: the hex and global models' manuals, tests and tools.woof --help-alllists every command;woof hex --helpandwoof global --helplist the preview models' commands.
Science and limits
WOOF implements a WRF-ARW-class regional model and WRF-derived physics on the GPU. Its numerical comparisons apply to documented configurations and test cases; they do not establish general equivalence with WRF or forecast skill for every combination of physics, input data and hardware. The hex model is a port of the MPAS-A v8.4.1 dynamical core with this engine's physics; it is not MPAS and is not endorsed by UCAR. Use official meteorological services for forecasts and warnings.
WOOF 1.0.0 continues an engine released before under another name: it is
that engine's release 2.8.0 and the fixes made since, under the WOOF name,
with the hex and global models inside it. Settings spelled GPUWM_* keep
working beside the new WOOF_* spelling.
Licence
Apache License 2.0. Third-party code, tables and datasets keep their own terms; see NOTICE and licenses/.
Metadata
Release files for recast-woof 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| recast_woof-1.0.0.tar.gz | 43.5 MB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| recast_woof-1.0.0-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| recast_woof-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 164.8 MB
Release files / recast_woof-1.0.0.tar.gz
| Download URL | recast_woof-1.0.0.tar.gz |
|---|---|
| Size | 43.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1fcfd1d5f2ee7cfe451198cba3b1d0a6eae98f9726f8ca44a9a80a74c52a01df
|
|
BLAKE2b-256 checksum How to use checksums |
1b3cb468c8dd9e8a271c34bd518be4f346a8bf81b9f6f1a0af4fc265221da2f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / recast_woof-1.0.0-py3-none-manylinux_2_28_x86_64.whl
| Download URL | recast_woof-1.0.0-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 84.3 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
a0986b59b85dad73c8822069dd57d0a7025ed03f3c3cc7a972c49c2bf7adf594
|
|
BLAKE2b-256 checksum How to use checksums |
31c55c586dec56545339814d6a44318870ca38e44e84942feab44c5ed7d1f524
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / recast_woof-1.0.0-py3-none-any.whl
| Download URL | recast_woof-1.0.0-py3-none-any.whl |
|---|---|
| Size | 37.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe71652a948f1c8eb5adba9a115eb64af8a640723acc1fda537c4081797c5ea0
|
|
BLAKE2b-256 checksum How to use checksums |
7e5b12f63ce30fd295a15b149c4f00cbefd522fa812078273bd48c1b33fde749
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency log