Nvidia PhysicsNemo Notes
Machine Learning, MIT EAPS, 2026
Notes on NVIDIA PhysicsNeMo, read straight from the main branch as of 2 August 2026. Everything below is grounded in the source and docstrings of examples/weather and torch-harmonics rather than in the documentation prose. The organising idea: the sphere refuses a regular grid, and every model in the package is a different way of paying that debt.
Section 1
Geometry: what the sphere costs you
Before any architecture, one structural fact determines the shape of every design in this package. It is worth stating precisely, because it explains why two apparently unrelated grids — the cubed sphere and HEALPix — carry exactly the same number of defects.
1.1 Discretization
Tile the sphere with quadrilaterals. Euler's formula gives V − E + F = 2, and every face having four edges gives 4F = 2E, hence V = F + 2. Summing the degree deficit over all vertices:
Σv (4 − deg v) = 4V − 2E = 4(F+2) − 4F = 8
No quadrilateral mesh on a sphere can have every vertex of degree four. The total deficit is always exactly 8. A cubed sphere pays it as eight three-valent corners. HEALPix, whose twelve base pixels form a rhombic-dodecahedron topology (12 faces, 24 edges, 14 vertices — 8 of degree 3 and 6 of degree 4), pays exactly the same eight. An equirectangular latitude–longitude grid dumps all eight onto the two poles, buying regular indexing at the price of unbounded anisotropy. The triangular analogue is Σ(6 − deg v) = 12, which is why every icosahedral refinement carries exactly twelve pentagonal vertices, forever.
The five discretizations that appear in PhysicsNeMo, and where each one lives in the code:
| Discretization | Property that matters | Where it lives | Reference |
|---|---|---|---|
| Equirectangular lat–lon721 x 1440 at 0.25 deg | Zonal spacing R·cosφ·Δλ collapses at the poles. A fixed 3×3 kernel covers about one sixth the physical area at 80°N that it does at the equator. | examples/weather/dataset_download, physicsnemo/datapipes/climate | ERA5 (Hersbach et al. 2020) |
| Gaussian / reduced GaussianLegendre-root latitudes | Exact quadrature for spherical-harmonic transforms up to a given degree; the reduced variant drops longitudes as cosφ for near-uniform spacing. | Grid support in torch_harmonics/quadrature.py | ECMWF IFS documentation |
| Cubed sphere6 faces x N x N | Regular inside a face, no polar singularity; 8 three-valent corners; the coordinate basis rotates across face seams, so vector fields must be re-projected. | physicsnemo/models/dlwp, remapping via TempestRemap, curation in examples/weather/dlwp/data_curation | Weyn et al. 2020, FV3 technical description |
| HEALPix12 base pixels, nside subdivision | Exactly equal area by construction, iso-latitude rings, four-fold nested subdivision (each pixel splits into exactly four children, so U-Net pooling aligns for free). Still 8 three-valent vertices. | physicsnemo/models/dlwp_healpix, layers/healpix_blocks.py, datapipe physicsnemo/datapipes/healpix | Górski et al. 2005, Karlbauer et al. 2024 |
| Icosahedral multi-meshgraph, not grid | Quasi-uniform, no poles, but 12 five-valent vertices always. Used as a message-passing graph rather than a convolution domain, so cell-area uniformity matters much less. | models/graphcast/utils/icosahedral_mesh.py, graph_cast_net.py | GraphCast (Lam et al. 2023) |
A — on the sphere (red = topological defect)
Equirectangularlat-lon
Zonal spacing goes to zero at the pole. At 80°N a 3×3 kernel spans one sixth the equatorial footprint.
Gaussian / reducedLegendre roots
Rings sit on Legendre roots so quadrature is exact; the reduced form thins longitudes as cos φ.
Cubed sphereFV3 / DLWP
Regular per face, poles ordinary, but 8 three-valent corners and a basis rotation at every seam.
HEALPix12 base pixels
Strictly equal-area with iso-latitude rings. Rhombic-dodecahedron topology, so again 8 three-valent vertices.
Icosahedralmulti-mesh
Quasi-uniform, pole-free, but always 12 five-valent vertices. GraphCast sidesteps this by treating it as a graph.
B — the memory layout the model actually sees
(721, 1440), one image. The top and bottom edges are not periodic — but an FFT assumes they are.
(nlat, nlon), unevenly spaced in latitude. The reduced grid needs ragged storage or padding.
(6, 64, 64). Convolution inside a face is a plain 2-D conv; seams need halo exchange.
(12, N, N). Nested indexing splits each pixel into exactly four, so pooling aligns for free.
(V, E) adjacency. No image at all; convolution is replaced by message passing.
Cross-check: is HEALPix consistent with GFDL X-SHiELD?
No — they are different tilings, and the mismatch is worth understanding before anyone tries to train a HEALPix model on X-SHiELD output.
SHiELD is powered by FV3, the Finite-Volume Cubed-Sphere dynamical core. Its storm-resolving configuration, X-SHiELD, runs a 3.25 km global domain on a C3072 cubed sphere with 79 hybrid-sigma-pressure layers — a figure visible even in the DYAMOND archive path, 20200120.00Z.C3072.L79x2. So X-SHiELD's geometry belongs to the same family as PhysicsNeMo's dlwp example, not its dlwp_healpix one.
What the two grids share is exactly the topology established above: both are quadrilateral tilings, and both carry precisely eight three-valent corners. What they do not share:
- Equal area. HEALPix is equal-area by construction. FV3's gnomonic cubed sphere is not — cell areas vary between face centre and corner by roughly a factor of two for the equidistant gnomonic variant, and about 1.3 to 1.5 for the equiangular one.
- Cell orientation. This is the decisive one for machine learning. Karlbauer et al. (2024) moved DLWP from the cubed sphere to HEALPix precisely because every HEALPix cell shares a consistent east–west orientation, which permits a single location-invariant convolution kernel across the whole globe. On the cubed sphere the polar faces are oriented differently from the equatorial ones, so one shared kernel does not transport patterns correctly across them.
- Iso-latitude rings. HEALPix has them, which is why it was designed for CMB spherical-harmonic analysis in the first place; the cubed sphere does not.
- Local refinement. FV3 supports stretched and nested grids — C-SHiELD, T-SHiELD and Tele-SHiELD all use nests down to 1.4 km. HEALPix has no equivalent; its refinement is globally uniform.
The practical consequence: X-SHiELD output must be conservatively remapped before a HEALPix model can consume it. That is exactly the class of operation TempestRemap exists for, and PhysicsNeMo already ships it in the DLWP pipeline (there it runs lat–lon to cubed sphere; the same tool handles cubed sphere to HEALPix).
One informative data point on what practitioners actually chose. GFDL's own collaboration with Ai2 Climate Modeling to emulate X-SHiELD did not go to HEALPix. ACE2 coarse-grains to a roughly 1° lat–lon grid and uses a Spherical Fourier Neural Operator; HiRO-ACE trains on a decade of X-SHiELD for emulation and downscaling on the same footing. The lesson generalises to the next subsection: if the operator is properly spherical, you no longer need a clever grid to fix the poles.
1.2 Operators, and which discretization each one requires
A grid is only a set of sample points. What actually determines geometric fidelity is how the operator is defined. The dividing line is whether it lives on tensor indices or on the continuous sphere, discretized by quadrature. The second kind gets two properties for free: resolution-agnosticism (change the grid without changing the architecture) and approximate SO(3) equivariance, because the Haar measure is rotation-invariant.
This pairing is what the rest of the package is built on — not every operator can run on every grid:
| Operator | Discretization it requires | Also runs on | Why the constraint |
|---|---|---|---|
| Planar 2-D convolutionU-Net, ConvNeXt, ConvGRU | Any rectangular index array | lat-lon; cubed-sphere (6,N,N); HEALPix (12,N,N) | Needs a regular index neighbourhood only. Faces need halo padding — PhysicsNeMo hides this behind enable_healpixpad. |
| AFNO / ModAFNOplanar FFT | Equirectangular only | — | A 2-D FFT needs uniform sampling and periodicity in both axes. Longitude is periodic; latitude is not, so the transform silently stitches the north pole to the south. |
| SFNO spectral convolutionSHT | Quadrature-compatible lat-lon (equiangular or Legendre–Gauss) | Any grid admitting an accurate SHT | The forward and inverse spherical-harmonic transforms need a quadrature rule. Cannot be applied to a cubed-sphere or HEALPix face array directly. |
| DISCO convolutiondiscrete-continuous | Any grid with quadrature weights | equiangular, Gaussian, HEALPix, unstructured | The filter is a compactly supported basis expansion integrated by sparse quadrature; the grid only supplies sample locations and weights. |
| AttentionS2 / NeighborhoodAttentionS2attention/attention.py | Any grid with quadrature weights | same as DISCO | Log-quadrature-weights are added to the pre-softmax scores, turning attention into a discretized continuous integral over the sphere. |
| Message-passing GNNencoder-processor-decoder | Any point set | icosahedral mesh, station networks, unstructured triangulations | Only needs an adjacency and relative-position edge features. The price is no analytic equivariance. |
| Ragged pixel cross-attentionHealDA | HEALPix padded XY plus irregular observations | — | Attends from grid pixels to a variable-length set of nearby observations; see kernels/pixel_attention.py. |
Note what this implies about the package layout. Spherical attention, SFNO, DISCO and the SHT are not in PhysicsNeMo at all. They live in torch-harmonics — attention/attention.py, disco/convolution.py, spectral_convolution.py and sht.py. PhysicsNeMo has no models/sfno directory; SFNO enters its model registry through an entry point once makani is installed, which is how the unified_recipe example trains it. The three attention modules that are in PhysicsNeMo are not spherical operators: healda/attention_layers.py is ragged local cross-attention with Triton grouped-query kernels, flare_attention.py is low-rank attention routing for Transolver, and physics_attention.py belongs to the same family.
Planar CNN (index space)DLWP, DLWP-HEALPix, U-Net
3×3 is constant in the index, not on the sphere. On lat-lon the high-latitude stencil smears into a band, so one weight learns different physical scales at different latitudes. Cubed sphere and HEALPix compress this to about 1.5×, at the cost of seams.
AFNO (planar FFT)models/afno
Global in a single layer at O(N log N), and by far the easiest to engineer. The price: the latitude FFT implicitly assumes periodicity, sewing the north pole to the south. Polar aliasing is a common source of long-rollout drift.
SFNO (spherical harmonics)spectral_convolution.py
The spectral multiplier depends only on degree ℓ and is diagonal in m, so the kernel is isotropic and the layer is exactly SO(3)-equivariant. Poles are ordinary points. Cost is about O(N3/2).
DISCO convolutiondisco/convolution.py
A compactly supported filter written as a learnable combination of fixed basis functions, integrated by sparse quadrature at O(N). Locality and equivariance together. The kernel shape is fixed after training.
NeighborhoodAttentionS2Bonev et al. 2025 · torch_harmonics/attention
The same geodesic disk d(x,x') ≤ θ in great-circle distance, but the weights inside it are set by the data rather than by a fixed basis. O(kN), and the only local operator here with an adaptive kernel.
Multi-mesh message passingmodels/graphcast
Edges from every refinement level are stacked into one graph, so a single hop can cross a hemisphere. Geometry enters through relative-position edge features; no analytic equivariance, but the least fussy about grid shape.
Equivariance
Atmospheric dynamics has no preferred longitude origin. An operator satisfying K[R·f] = R·K[f] has that symmetry written into the architecture rather than learned from data, which is a direct source of sample efficiency and rollout stability.
bias=True in SpectralConvS2 adds a spectral bias that does depend on m, which relaxes strict equivariance.The full comparison
| Scheme | Receptive field | Cost / layer | Cell uniformity | Poles | SO(3) equivariant | Resolution-agnostic | Adaptive kernel | Hierarchical pooling |
|---|---|---|---|---|---|---|---|---|
| Lat-lon CNN | local | O(N) | ~ cosφ, to 0 | singular | no | no | no | trivial |
| Cubed-sphere CNNDLWP | local | O(N) | ~1.3-2x | ordinary | no | no | no | trivial |
| HEALPix CNNDLWP-HEALPix | local | O(N) | exactly equal | ordinary | no | no | no | 4-fold nested |
| AFNOplanar FFT | global | O(N log N) | ~ cosφ | falsely stitched | no | no | gating only | needs interpolation |
| SFNOspectral conv | global | ~O(N3/2) | set by quadrature grid | ordinary | strict | yes | no (fixed) | spectral truncation |
| DISCO conv | local (geodesic disk) | O(N) | any grid | ordinary | strictisotropic basis | yes | no (fixed) | resampling |
| NeighborhoodAttentionS2 | local (geodesic disk) | O(kN) | any grid | ordinary | approximate | yes | yes | resampling |
| AttentionS2 | global | O(N²) | any grid | ordinary | approximate | yes | yes | resampling |
| Multi-mesh GNNGraphCast | multi-scale | O(E) | quasi-uniform | ordinary | noedge features soften it | graph must be rebuilt | gated | multigrid |
Does the geometry actually buy you a later blow-up?
This is testable, and it has been tested independently. Lehmann et al. (2026) roll nine models out for two years — 2,920 autoregressive six-hourly steps from a 1 January 2021 initialisation — and define blow-up as the onset of unbounded exponential growth in the spatial extremes: the first 30-day window in which the global minimum or maximum grows log-linearly with R² > 0.9. Metrics and notebooks: lehmannfa/ai-weather-stability.
| Model | Family | T2m | U10m | MSLP | Z500 |
|---|---|---|---|---|---|
| SFNO | spherical harmonics | > 730 | > 730 | > 730 | > 730 |
| Aurora | 3-D Swin, lat–lon | > 730 | > 730 | > 730 | > 730 |
| Pangu | 3-D Swin, lat–lon | > 730 | > 730 | > 730 | > 730 |
| GraphCast | icosahedral GNN | 360 | 379 | 287 | 274 |
| GenCast | diffusion, icosahedral | 76 | > 725 | 76 | 71 |
| AIFS | graph transformer | 41 | > 730 | > 730 | 16 |
| FuXi | Swin, lat–lon | 431 | 10 | > 725 | 491 |
| FourCastNet | AFNO, planar FFT | 8 | 8 | 8 | 9 |
Days until blow-up; higher is better, and > 730 means it never blew up inside the test window. The AFNO model fails at 8 to 9 days. SFNO survives the whole two years on all nine variables the study tracks. That is at least a ninety-fold gap, and it is a lower bound.
But the causal story is not "spherical geometry, therefore stable." Look at the same table again: Pangu is a 3-D Swin transformer on a plain equirectangular grid with no spherical machinery whatsoever, and it is exactly as stable as SFNO. Sphericity is evidently sufficient but not necessary. Lehmann et al. locate the mechanism elsewhere — in the treatment of small spatio-temporal scales, where unstable models amplify high-frequency energy while stable ones behave as denoisers when noise is injected into their inputs. Their ablations on window size, shifting, patch size, normalisation, vertical levels, static fields and time embedding all leave stability unchanged. Earlier work in the same direction: McCabe et al. (2023) traced autoregressive error growth partly to the Double Fourier Sphere trick creating artificial discontinuities and unphysical cross-polar communication, and reported an 800% forecast-horizon improvement on ERA5 from controlling instability-inducing operations.
Two caveats on scope. The blow-up benchmark covers no spherical-attention model, so Attention on the Sphere (which validates on shallow water, spherical segmentation and depth estimation) has no equivalent year-scale evidence yet. And FourCastNet 3, which does report 60-day rollouts with no large-scale blow-up and invariant spectral slopes, gets there with spherical convolutions, local and global, rather than attention.
Which is best for the sphere
NeighborhoodAttentionS2 on a HEALPix or Gaussian quadrature grid. Local, approximately equivariant, resolution-agnostic, O(kN), and the kernel adapts to the data — something neither SFNO nor DISCO offers. The cost is a torch-harmonics dependency, CUDA-kernel availability, and the memory for precomputed neighbourhoods.
SFNO. It survives two years of six-hourly rollout without blowing up, against 8 to 9 days for the AFNO model, and spectral truncation damps small-scale growth. Be careful with the causal claim, though: strict equivariance and the absence of polar aliasing are a sufficient route to that stability, not the only one — Pangu reaches the same result on a plain lat–lon grid. The cost is O(N3/2) and a quadrature-compatible grid.
HEALPix. The only one that is simultaneously equal-area, iso-latitude (so spherical harmonics stay cheap), four-fold nested (so U-Nets pool cleanly), and consistently oriented (so one convolution kernel works everywhere). The cost is special-casing eight three-valent vertices and the face-padding machinery.
AFNO or a lat-lon CNN. The data already arrives on this grid, no remapping, and FFTs are fast. Least faithful geometrically, but positional encodings, static fields and enough data get you a long way. Entirely adequate for prototypes, diagnostic models and downscaling.
Multi-mesh GNN. When the data is not on a regular grid at all — station observations, unstructured meshes, regional nests — a graph is the only option that skips remapping entirely. Give up analytic equivariance, gain complete indifference to geometry.
More equivariance is not strictly better. The real atmosphere has preferred axes: rotation, land–sea contrast, orography. A strictly SO(3)-equivariant operator cannot express the fact that the tropics and the poles behave differently, which is why SFNO-class models still feed static fields and cosine zenith angle back in to break the symmetry. Treat equivariance as a good prior, not a destination.
Section 2
Global medium-range emulators (autoregressive, mostly deterministic)
Six examples in examples/weather map an atmospheric state to its successor and iterate. They differ far less in "CNN versus transformer" than in which discretization from §1.1 they commit to.
fcn_afno — FourCastNet v1
A vision transformer whose self-attention is replaced by AFNO: token mixing happens in the Fourier domain with a block-diagonal MLP and soft thresholding, dropping the cost from O(N²) to O(N log N). Trained on a 20-channel ERA5 subset at 0.25°, step 6 h, autoregressive. A week-long forecast takes under two seconds. Paper: Pathak et al. 2022. Model code: models/afno/afno.py.
graphcast
A re-implementation of GraphCast. Encoder, processor, decoder over an icosahedral multi-mesh: the lat-lon grid is encoded onto a mesh built by repeated subdivision, a deep message-passing network propagates information across edges spanning several scales at once, and the decoder maps back to the grid. 73 ERA5 channels, step 6 h, with up to 12 steps of autoregressive fine-tuning. A synthetic-dataset switch (synthetic_dataset=true) lets you smoke-test without ERA5. Code: graph_cast_net.py, mesh construction in icosahedral_mesh.py, loss in graphcast_loss.py.
pangu_weather
A re-implementation of Pangu-Weather. A 3-D Earth-Specific Transformer treats pressure levels as a genuine third dimension for windowed attention and adds a position-dependent earth-specific bias per window. Inputs come in three blocks: 4 surface channels (t2m, 10u, 10v, msl), 5 upper-air variables on 13 pressure levels (65 channels), and 3 static fields (land-sea mask, soil type, topography). Requires NVIDIA Apex for the optimizer. Code: models/pangu.
dlwp — cubed sphere
A CNN mapping u(t) to u(t+6h) on a cubed sphere, 6 faces of 64×64, remapped from ERA5 with TempestRemap. U-Net with skip connections, 7 ERA5 variables, 18 input and 14 output channels in the shipped config. At 1.4° it produces 320-member six-week ensembles in minutes. Papers: Weyn et al. 2020 and Weyn et al. 2021.
dlwp_healpix — HEALPix, and a coupled ocean
The same idea on the HEALPix mesh, with a recurrent U-Net built from ConvNeXt blocks and ConvGRU cells (HEALPixRecUNet.py). The distinguishing feature is atmosphere-ocean coupling: a DLOM (Deep Learning Ocean Model) forecasts sea-surface temperature on a slower 48-hour step and is trained jointly with the 6-hour atmospheric model, configured through config_hpx32_coupled_dlwp and config_hpx32_coupled_dlom. Coupling logic in datapipes/healpix/couplers.py. Paper: Karlbauer et al. 2024; original reference implementation: CognitiveModeling/dlwp-hpx.
Data plumbing
dataset_download pulls ERA5 through the Copernicus CDS API into Zarr (a resumable checkpoint format) and then into HDF5 split across train/, test/, out_of_sample/ and stats/. Fixed at 0.25°; dt must divide 24; roughly 15 GB per variable per year. It does not handle invariant fields, so land-sea mask and orography must be sourced separately.
unified_recipe is a single training scaffold: pull from ARCO-ERA5, curate and regrid to Zarr, then swap configs to train AFNO, GraphCast or SFNO. SFNO requires makani, which registers the model through PhysicsNeMo's entry-point registry. This is the right starting point for architecture comparisons on identical data.
Section 3
Regional downscaling and generative high resolution (two-stage regression plus diffusion)
Both examples here share one design: a deterministic regression U-Net predicts the conditional mean, and a diffusion model learns only the residual. That split matters. A pure diffusion model must learn the large-scale mean and the small-scale texture at once, which trains poorly; absorbing the mean into an L2 regression leaves the diffusion model a zero-mean, much lower-variance target, cutting both sample count and instability. The price is two training runs, and the fact that regression bias propagates into the diffusion stage. Both use EDM preconditioning over SongUNet backbones (models/diffusion_unets).
corrdiff — km-scale downscaling
CorrDiff maps coarse ERA5 or GEFS onto a high-resolution regional target. Three dataset configurations, and the differences between them are easy to get wrong:
- Taiwan / CWA (
cwb.yaml): 12 input channels to a 448×448 target at 4× downscaling. The four output channels are maximum radar reflectivity, 10u, 10v and t2m — confirmed by the normalisation constants indatasets/cwb.py. There is no precipitation channel in this configuration. - GEFS-HRRR / CONUS (
gefs_hrrr.yaml): this is where precipitation lives. Outputs areu10m, v10m, t2m, precipplus four precipitation-type probabilities (snow, ice, freezing rain, rain). Hence thelt_aware_ce_regressionvariant — cross-entropy for the categorical phase, and a lead-time embedding over 9 forecast steps because the input is a GEFS forecast rather than a reanalysis. - HRRR-Mini: a deliberately small network and dataset (about 10 A100-hours) for learning the codebase; outputs only 10u and 10v. Available on NGC.
A patched_diffusion variant tiles a large domain and runs multi-diffusion with 100 learnable positional channels, which is what makes training on a 1057×1796 domain tractable.
stormcast — convection-allowing emulation
StormCast emulates NOAA's 3 km HRRR autoregressively. The regression model predicts the next HRRR step from the previous HRRR state plus an ERA5 background; the diffusion model corrects it. The crucial contrast with CorrDiff: StormCast advances in time (1-hour autoregressive rollout), CorrDiff does single-frame spatial downscaling. Domain 512×640, roughly 100 variables (u/v/t/q on many model levels plus surface fields and reflectivity). The same recipe also trains Stormscope (arXiv:2601.17268), which drops the regression stage for a diffusion-only DiT and nowcasts clouds and precipitation from GOES radiances and MRMS radar. Config: config/model/stormscope.yaml.
Section 4
Diagnostics, post-processing and ensembling
diagnostic
A diagnostic model does not advance time; it infers an extra variable from the simultaneous atmospheric state. The shipped example is an AFNO with 27 input channels — the 20 ERA5 variables from Pathak et al. 2022, plus cosine zenith angle, geopotential, land-sea mask and four lat/lon encoding channels — producing one output, tp06 (6-hour accumulated precipitation). This is FourCastNet's precipitation module as a standalone, and the template for bolting a diagnostic head onto any backbone. Config: diagnostic_precip.yaml.
temporal_interpolation
AI forecast models step natively at 6 hours; this one interpolates to 1 hour. ModAFNO takes both endpoint states plus auxiliary fields such as orography, and an embedding network converts the conditioning variable into shift and scale parameters for each AFNO block — FiLM-style modulation. It is deterministic, trained with a latitude-weighted L2 loss, and approximates the conditional expectation of the intermediate state given both endpoints and the offset. The released model used 73 variables, about 100 TB of data and 64 H100s. A pretrained wrapper exists in Earth2Studio. Code: models/afno/modafno.py.
mixture_of_experts — MoWE
Mixture of Weather Experts. Forecast fields from Aurora, Pangu-Weather and FourCastNet 3 are stacked as a multi-channel image; a Diffusion Transformer acts as the gating network, conditioned on lead time (sampled between 6 hours and 2 days during training), and emits per-expert weights and a bias so that the blended forecast is a weighted sum of the experts. A probabilistic variant additionally consumes a noise vector and trains with a CRPS loss. All expert forecasts must be generated offline first with Earth2Studio — multiple TB. DiT code: models/dit.
Section 5
Data assimilation
regen — score-based DA
The trick is that no conditional model is ever trained. An unconditional diffusion model is fit to HRRR over a 128×128 Oklahoma window with channels 10u, 10v, tp. At inference, score-based data assimilation modifies only the sampling loop: at each denoising step the current estimate is passed through an observation operator, compared against real station data, and the resulting posterior score — the prior score plus the likelihood score — steers the next update. Observations come from NOAA's Integrated Surface Database. Assimilating 40 stations lowers RMSE at held-out stations by about 10% relative to HRRR itself, the first demonstration of this at kilometre scale. Paper: Manshausen et al. 2024.
healda — stateless DA on HEALPix
Marked under active construction in the repository. The goal is stateless assimilation: no background-forecast cycle, just conventional and satellite observations (ATMS, MHS, conventional) in, one global ERA5-compatible analysis out, on a HEALPix level-6 padded XY grid. The example directory holds only a README, normalisation statistics and requirements; the model and datapipe live in experimental/models/healda and experimental/datapipes/healda. Architecturally it is a video DiT with temporal self-attention plus ragged pixel-to-observation cross-attention, backed by Triton grouped-query-attention kernels (pixel_attention.py) and adaLN conditioning. Most of the README is a guide to plugging in your own observation loader and transform.
Section 6
Hydrology
flood_modeling/hydrographnet
A physics-informed graph neural network surrogate for the shallow-water equations. Encoder, processor, decoder message passing on an unstructured mesh autoregressively predicts increments of water depth and volume with residual connections. Three design choices carry the result: a mass-conservation loss built from volume-continuity inequalities (no automatic differentiation required), the pushforward trick to suppress autoregressive error accumulation, and Kolmogorov-Arnold Networks replacing MLPs for interpretability. Node features mix static attributes (elevation, slope, roughness) with dynamic history, plus global forcings from the inflow hydrograph and precipitation. Validated on the White River near Muncie, Indiana: 4,787 nodes, ground truth from HEC-RAS, dataset auto-downloaded from Zenodo. Paper: Taghizadeh et al. 2025.
Quick reference
One line each
| Directory | Principle | What it does | Discretization |
|---|---|---|---|
| fcn_afno | ViT plus AFNO Fourier mixing | Global 0.25 deg medium-range forecast | lat-lon |
| graphcast | Multi-scale GNN on icosahedral mesh | Global 0.25 deg medium-range forecast | icosahedral |
| pangu_weather | 3-D Earth-Specific Transformer | Global 0.25 deg medium-range forecast | lat-lon |
| dlwp | CNN U-Net on cubed sphere | Global 1.4 deg large-ensemble and subseasonal | cubed sphere |
| dlwp_healpix | ConvNeXt plus ConvGRU U-Net on HEALPix | Global forecast with coupled ocean (SST) | HEALPix |
| unified_recipe | Unified data and training scaffold | Train AFNO / GraphCast / SFNO on one pipeline | configurable |
| corrdiff | Regression U-Net plus EDM diffusion residual | Spatial downscaling (Taiwan: reflectivity, wind, temperature; CONUS: wind, temperature, precipitation and phase) | regional lat-lon |
| stormcast | Regression plus diffusion, autoregressive; or DiT only | 3 km regional CAM emulation, satellite-radar nowcasting | HRRR grid |
| diagnostic | AFNO diagnostic head | Infer precipitation from atmospheric state | lat-lon |
| temporal_interpolation | ModAFNO conditional modulation | 6 h to 1 h temporal interpolation | lat-lon |
| mixture_of_experts | DiT gating network | Blend Aurora / Pangu / FCN3 forecasts | lat-lon |
| regen | Unconditional diffusion plus SDA posterior score | Assimilate sparse station observations at km scale | HRRR window |
| healda | Stateless DA, video DiT plus pixel cross-attention | Observations straight to a global analysis | HEALPix L6 |
| hydrographnet | Physics-constrained GNN plus KAN | Flood depth and volume forecasting | unstructured mesh |
| dataset_download | CDS API to Zarr to HDF5 | ERA5 data preparation | lat-lon |
Sources: NVIDIA/physicsnemo and NVIDIA/torch-harmonics main branch source and docstrings, read 2 August 2026; GFDL SHiELD configuration tables for the X-SHiELD cross-check; rollout blow-up times from Lehmann et al. 2026 (Table 1) and its companion repository lehmannfa/ai-weather-stability.
