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

v = (Gamma/4pi) * integral[ dl x r / |r|^3 ]

Live Kelvin check

The panel compares ring 1's measured speed with Kelvin's thin-core formula U = Gamma/(4 pi R) (ln(8R/a) - 1/4). The single-ring preset agrees to about 2%.

Leapfrogging

The Leapfrogging preset starts two identical coaxial rings close together so the rear ring can contract, speed up and pass through the front one.

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.