Galaxy Collision Nexus (2D)

Top-down view of the same restricted N-body encounter as the 3D page. Drag to pan, wheel or pinch to zoom.

Switch to 3D

Presets

Playback

Orbit and masses

Changing these restarts the encounter (friction applies live).

Disc orientation

Tilt 0 = disc rotates with the orbit (prograde): long tails. 180 = retrograde: short tails.

Star colours

Camera follow

Appearance

Layers

Model checks

The science

What is simulated

This is a restricted N-body encounter in the style of Toomre and Toomre (1972). Each galaxy is a heavy core (bulge plus dark halo) represented by a Plummer sphere, Φ(r) = -G M / √(r² + a²), with scale length a = 6 kpc √(M/M1) and M1 = 1.5×1011 M☉. The two cores attract each other with the combined softening a1² + a2², so the pair has a conserved energy and angular momentum. Thousands of massless disc stars (tracers) start on circular orbits vc² = G M r²/(r² + a²)3/2 around their own core; they feel both cores but not each other, which is why tidal tails and bridges come purely from the tidal field.

Setting up the orbit

The relative orbit is fixed at pericentre, vp = √(G Mtot (1 + e)/rp), and the pair is integrated backwards in time to a start separation of about 90 kpc, so the pericentre distance you set is hit exactly (with friction off). Disc orientation uses a tilt from the orbital plane and a node angle; tilt 0 spins with the orbit (prograde), 180 against it (retrograde).

Why prograde makes long tails

A star feels the difference between the pull on the near and far side of the disc, about 2 G Mp R/D³. When the disc spins in the same sense as the passing companion, stars near pericentre keep pace with it for a long time and the tidal force acts resonantly, flinging out long tails and a bridge. Retrograde discs feel a rapidly changing force and stay compact. The readout tidal strength η = (M2/M1)(Rdisc/rp)³ is a quick guide to how destructive a pass will be.

Dynamical friction

Each core moving through the other's halo is slowed by Chandrasekhar's formula, a = -4π G² M ρ lnΛ [erf(X) - 2X e-X²/√π] v̂/v², with X = v/(√2 σ) and the Plummer density of the host. It turns an unbound pass into a merger. The strength slider is a calibration factor because the true coefficient depends on the halo profile (Binney and Tremaine, 2008, section 8.1). The quoted decay time uses tDF = 1.17 r² vc/(lnΛ G Msat).

Numerical checks shown live

(1) Energy and angular momentum of the core pair over a full bound orbit with friction off, plus the exact pericentre; (2) a ring of test stars in an isolated galaxy must rotate at the analytic rate vc/r; (3) a distant fast fly-by is compared with the impulse approximation Δv = 2 G Mp R/(b² V). Each runs its own small integration and does not depend on the sliders.

Honest simplifications

Stars do not attract each other (no bars, no self-consistent spirals), there is no gas, star formation or black-hole feedback, the halos are rigid Plummer spheres that do not deform, and friction is a calibrated analytic drag rather than a measured wake. Tails are therefore qualitatively right and useful for comparing orbits, but not a fit to any observed pair. The galaxy disc images and the sky are Blender-rendered visual impostors; the disc image fades as the real tracers are disturbed and its rotation is illustrative. Units: kpc, 1010 M☉, km/s; one time unit = 977.8 Myr; fixed leapfrog step 1.17 Myr.

What to try
  1. Press Antennae-like and watch the two long tails and the bridge appear after the first pericentre.
  2. Switch to Retrograde: the same orbit gives almost no tails, because the disc spins against the encounter.
  3. Drag the pericentre slider from 5 to 50 kpc: the tidal strength readout drops as 1/r3 and the damage fades.
  4. On Fast fly-by raise the friction from 0 to 1.5: the pair either escapes or spirals into a merger.
  5. Use Initial radius colours to see which part of each disc ends up in the tails (the outskirts) and which stays in the core.
Separation of the two cores
Orbital energy (friction drains it)
Tails, transfer and escapers
Made with 🟠 Blender