The Functional Generative Network (FGN), developed by Google DeepMind in 2025, is the processing backbone of WeatherNext 2 — Google's state-of-the-art ensemble weather forecasting model. It succeeds GraphCast (GNN-based) and GenCast (diffusion-based) from the first WeatherNext. FGN generates each ensemble member in a single forward pass — faster than GenCast, and with greater accuracy.
FGN expresses forecast uncertainty as functional variability — rather than perturbing the inputs or running an iterative denoiser, it reparameterises its weights with a perturbation vector $\Delta\mathbf{z}$, with each sample yielding a different ensemble member.
$$ \mathbf{X}^{(t+1)} = f_{\boldsymbol{\theta}}\left(\mathbf{X}^{(t-1:t)}\right), \qquad \boldsymbol{\theta} = \boldsymbol{\theta}^{*} + \mathbf{\Delta}\mathbf{z}, \qquad \mathbf{z} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}_{32}) $$
The two sources of uncertainty are handled separately — aleatoric (the atmosphere's intrinsic randomness) by sampling a fresh $\mathbf{z}$ each time step, and epistemic (uncertainty about the model itself) by ensembling the $J = 4$ models.
FGN is trained entirely on marginals. It uses the two-sample fair CRPS estimator to evaluate each location and weather variable individually, completely ignoring how different regions interact.
$$ \text{CRPS} = \frac{1}{2}\left(\lvert \hat{y}_1 - y \rvert + \lvert \hat{y}_2 - y \rvert\right) - \frac{1}{2}\lvert \hat{y}_1 - \hat{y}_2 \rvert $$
The first term enforces accuracy, the second term ensures a realistic spread of possibilities, and together they calibrate the ensemble.
Interestingly, even though the model is not explicitly trained on spatial connections, realistic cross-location correlations still emerge. Because the weather variations for every location are driven by the same perturbation vector $\mathbf{z}$, the most efficient way for the model to minimise its overall error is to generate physically consistent, map-wide patterns.
FGN follows the encode–process–decode design of GraphCast and GenCast, standard for mesh-based simulation. It runs on a single icosahedral mesh that has been refined six times, and the near-uniform nodes give consistent resolution across the globe. The equations below track one grid node — a single physical location — through all three stages.

The icosahedral mesh approximating the globe, its near-equilateral faces giving each node roughly equidistant neighbours.
The encoder is a graph neural network that lifts the 0.25° physical grid onto the computational mesh in a single message-passing step. Connections follow proximity — a grid node links to a mesh node when the two lie within $0.6\ell$ of each other, where $\ell$ is the shortest mesh edge.