3D Vortex Ring Collision
Smoke-ring vortices push, stretch and leapfrog each other through the Biot-Savart law, and a live panel checks ring speed against Kelvin's formula.
Loading vortex rings (WebGL 2.0)
Browser demo: educational vortex-filament model, not a research result
Watch vortex rings interact through the Biot-Savart law. Each ring is a closed polygon of filament nodes; the 1/r singularity of a filament's own velocity is handled with a finite core radius a, the standard thin-core model. This is an inviscid filament model in code units, not a Navier-Stokes solve: rings do not reconnect or diffuse.
Biot-Savart Law
Live Kelvin check
Leapfrogging
Physics Background
Vortex rings are toroidal structures of concentrated vorticity commonly seen in smoke rings, dolphin bubble rings, and jet engine exhaust. The velocity field induced by a vortex filament follows the Biot-Savart law, which has a 1/r singularity at the filament core.
What the code computes
A zero-thickness filament has infinite self-induced velocity. The demo uses the thin-core model instead: a vortex of finite core radius a moves at a finite speed. For each node:
u_i = sum over non-adjacent segments of the exact
straight-segment Biot-Savart velocity
+ (Gamma / 4 pi) kappa b ln(2 sqrt(l- l+) / (a e^(1/4)))
kappa b : curvature binormal at node i
l-, l+ : lengths of the two adjacent segments
Segments of other rings use the core radius as a
distance cutoff, so close passes stay finite.Positions advance with classical RK4 at a step below the stability limit of the shortest segment. The "Impulse" metric is the hydrodynamic impulse (1/2) Gamma times the loop integral of x cross dl, which the Euler equations conserve; it is shown as percent of the initial per-ring total. The core cutoff is a modeling choice that keeps velocities bounded; it does not remove the singularity of the zero-thickness filament.