Dual Dynamic Cores
Full-featured explicit and implicit free-surface POM cores, implemented in PyTorch with end-to-end differentiability for gradient-based optimization.
Hybrid AI-Physics ocean simulation with end-to-end differentiable training

NeuralPOM (Neural Princeton Ocean Model) is a research framework that integrates deep learning with classical ocean modeling. It wraps the Princeton Ocean Model (POM) โ a three-dimensional, primitive-equation, Boussinesq ocean circulation model โ in a fully differentiable PyTorch implementation with two complementary dynamic cores:
On top of these differentiable physics cores, NeuralPOM trains a CorrectorNet (a U-Net architecture) to predict and compensate for numerical truncation errors accumulated during multi-step integration. This hybrid AI-physics paradigm enables accurate long-term forecasts while maintaining physical consistency.
git clone https://github.com/ChiyodaMomo01/NeuralPOM.git
cd NeuralPOM
pip install -r requirements.txt
# Run a Double Gyre simulation with the explicit core
python -m neuralpom.cases.explicit.double_gyreFor detailed installation and training instructions, see the Quick Start guide.
If you use NeuralPOM in your research, please cite:
@software{neuralpom2025,
author = {Shu, Ruiqi and Liu, Guangliang},
title = {NeuralPOM: A Differentiable Princeton Ocean Model with Hybrid AI-Physics Training},
year = {2025},
url = {https://github.com/ChiyodaMomo01/NeuralPOM}
}