⚡ Relative Simultaneity — Einstein's Train & Lightning Thought Experiment
Visualise Einstein's relativity of simultaneity: a train moves at adjustable fraction of light speed. Two lightning bolts strike simultaneously in the platform frame. Watch how the train observer sees them at different times — live Lorentz-transformed dual animation.
About this simulation
This simulation animates Einstein's 1905 train-and-lightning thought experiment: two lightning bolts strike the front and rear of a moving train simultaneously — but only in the platform's reference frame. A dual-panel animation plays the same two events in the platform frame and the train frame side by side, using the actual Lorentz transformation rather than an approximation, so you can watch simultaneity itself break down as β = v/c increases.
🔬 What it shows
In the platform frame, both flashes arrive at the platform observer at the same instant by construction. In the train frame, applying t′ = γ(t − vx/c²) shows the front flash arrives before the rear flash (or vice versa, depending on direction of motion) — not because light travels differently, but because "simultaneous" itself depends on the observer's frame.
🎮 How to use
Drag β = v/c to set the train's speed as a fraction of light speed and watch the Lorentz factor γ = 1/√(1−β²) and the readouts for rear-flash time, front-flash time, and time order update instantly. Adjust the animation speed slider to slow the light pulses down for easier viewing, and use Play/Pause to step through the sequence.
💡 Did you know?
The time gap between the two flashes in the train frame, Δt′ = γvL/c², grows with both speed and the separation L between the two lightning strikes — meaning relativity of simultaneity is not a subtle effect confined to near-light speeds. Even at everyday speeds it's technically nonzero, just far too small to notice; the simulation exaggerates β so the effect becomes visible.
Frequently asked questions
Why do the two lightning bolts look simultaneous in one frame but not the other?
Simultaneity in special relativity is defined by whether two events have the same time coordinate t in a given frame — and the Lorentz transformation t′ = γ(t − vx/c²) shows that time coordinates mix with position when changing frames. Since the two lightning strikes happen at different positions x, they get shifted by different amounts, breaking their simultaneity in the moving frame.
What does the Lorentz factor γ represent here?
γ = 1/√(1−β²) measures how strongly space and time mix between frames at a given speed. At β=0, γ=1 and there's no relativistic effect at all; as β approaches 1 (the speed of light), γ grows without bound, making the simultaneity gap Δt′ = γvL/c² arbitrarily large for a fixed separation L.
Does this mean the speed of light is different in the two frames?
No — the speed of light is exactly c in every inertial frame, which is precisely the postulate that forces simultaneity to become frame-dependent. If light always travels at c for every observer, and observers disagree about when two spatially separated events happened, the only way to keep both true is for time itself to transform between frames.
Which flash arrives "first" in the train frame?
For a train moving in the direction from rear to front, the front flash's light-cone event gets shifted to an earlier time coordinate in the train's frame relative to the rear flash — so a train observer concludes the front lightning struck first, even though a platform observer insists both strikes were simultaneous.
Is this just an optical illusion caused by light travel time?
No — this is not about how long light takes to reach an observer's eyes; it is a genuine disagreement about the time coordinate of distant events, built into the Lorentz transformation itself. Even correcting for light travel time, observers in relative motion still compute different orderings for spatially separated events.
Train at adjustable v/c, two lightning bolts, dual animation showing ground and train frames. Lorentz-transformed timestamps demonstrate relativity of simultaneity.
3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install