Flow

30
1.00
0.20
0.25
6k

Solve

20
144

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.

Regime Energy injected at large scales breaks down toward small ones. Low damping, strong confinement — the closest this toy gets to an inertial range.
What this is

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.