I’ve been building a real-time 2D CFD framework in JAX called AeroJAX.
The goal is to make fluid simulation more interactive, so you can explore flow behaviour in real time instead of waiting for batch simulation runs.
Most CFD tools are batch oriented. You set up a case, run it, and analyse results afterwards. If you change geometry or parameters, you usually restart the simulation.
AeroJAX is built around a different idea: you modify the simulation while it is running.
👉 GitHub Repository: https://github.com/arriemeijer-creator/AeroJAX
What it does
- GPU-accelerated CFD using JAX and XLA
- Image-based SDF geometry input (white = fluid, non-white = solid)
- Real-time flow field updates during execution
- Wake and separation visualisation as the simulation evolves
- Swappable solver components (pressure solvers, LES models, etc.)
- Optional neural operator experiments inside the loop with in-program training
You can draw or move obstacles during the simulation and immediately see the flow respond.
Example use case
A simple comparison like sedan vs hatchback geometry shows different wake structures:
- Sedans tend to have delayed separation and a narrower wake
- Hatchbacks separate earlier and form a larger recirculation region behind the rear surface
These differences also relate to real effects like rear window soiling and why rear wipers are common on hatchbacks.
Important context
This is an experimental research framework, not a replacement for industrial CFD tools.
Force coefficients like Cd and Cl are useful for showing trends inside the simulation, but they are not intended to represent fully validated engineering values.
The focus is on:
- Flow intuition
- Real-time exploration
- Testing solver ideas
- Differentiable and interactive CFD workflows
What I’ll share next
- Solver structure and numerics
- SDF-based geometry pipeline
- Performance design choices in JAX
- Real-time CFD tradeoffs

Top comments (0)