Stable Fluids — Semi-Lagrangian · iterative diffusion · pressure projection

Steady inflow from the left past a cylinder → Kármán vortex street. Drag to paint dye and inject velocity. Grid 256×256. Solver is unconditionally stable — push dt to the max or hit Stress dt and it will not blow up.
Status
STABLE
Mean |∇·u|
Max |∇·u|
Dye mass ∑ρ
Mass drift
Sim time / step
FPS

Density → color
low
high
Per step: add forces → diffuse (Gauss–Seidel) → projectadvect (semi-Lagrangian backtrace) → project. Obstacle uses no-slip / no-flux (Neumann) boundaries; walls are free-slip; outlet is zero-gradient.