Flow
Solve
View
Readout
- Renderer
- —
- Sim grid
- —
- Dye grid
- —
- Cells
- —
- Frame rate
- — fps
Semi-Lagrangian advection, 20 Jacobi iterations per frame, vorticity confinement after Fedkiw. Drag to stir, click to release dye. Press space to burst, C to clear.
A real solver, a deliberately small one.
This is Jos Stam's Stable Fluids scheme in its GPU form: each frame computes curl, applies vorticity confinement, takes the divergence, runs a Jacobi pressure solve, subtracts the pressure gradient to make the field divergence-free, then advects velocity and dye backwards along the flow. It runs at a few hundred by a couple of hundred cells.
It is unconditionally stable, which is why it feels good under a cursor, and for the same reason it is numerically dissipative — energy leaks out of the small scales at a rate the physics did not choose. It will not give you a Kolmogorov spectrum. What it will give you is an honest feel for how strain, vorticity and dissipation trade against each other, which is the thing that is hard to convey on a slide.
The camera input is block-wise Lucas–Kanade optical flow on a mirrored, downsampled webcam frame: motion anywhere in view becomes a velocity splat. It is the same interaction model intended for the exhibit wall, where a depth camera would replace the webcam.