At a glance
This sim draws two events, A and B, on a spacetime diagram and lets a second observer, S′, move past at any speed below c. It tests whether the time order of A and B depends on the observer, and what a faster-than-light reply would do to cause and effect.
What you'll learn
- What the interval Δs² says about two events, and how it sorts signals by speed.
- How the time order of two events depends on the observer's frame, and for which pairs.
- How the boost needed to reverse that order depends on how far apart the events are.
- How a faster-than-light reply and a reversed order combine, and what mass a tachyon would need.
What's on screen
- A (blue dot) sends the signal, from (x, ct) = (0.00, 0.00).
- B (rose dot) receives the signal, at (3.21, 4.70). Both dots drag.
- Light cone (dashed yellow): 45° lines through A.
- A → B arrow and tag: the signal speed |Δx/Δct|, green, yellow or red by interval class.
- S′ grid and axes (teal): tilt as v/c changes. The grey grid is S.
- Tags top-left: v/c and the time order each frame sees. The Readings panel holds the numbers.
- Return signal on: a dashed pink arrow from B to the amber triangle E₃, and a ⚠ LOOP tag when E₃ falls before A.
The controls
Press ⌖ on a row to see where that control sits in the sim.
| Control | What it changes | Range | |
|---|---|---|---|
| v/c (S′ relative to S) | The speed of frame S′ along x, as a fraction of c. It tilts the S′ axes and sets the times S′ gives the events. | −0.99 to 0.99 opens at 0 | |
| Return signal | Adds B's faster-than-light reply, drawn from B back to A's worldline and ending at E₃. | on / off opens off | |
| Reply speed v₂ | How fast the reply travels, measured in S′. It is available only while Return signal is on. | 1.01 to 5.00 c opens at 3.00 c | |
| S grid (Display layers) | Shows or hides the grey x and ct grid of frame S. | on / off opens on | |
| ct′ readouts (Display layers) | Labels A and B with their time ct′ in S′, using dashed lines of constant ct′ that run to the ct′ axis. | on / off opens off | |
| S′ grid (Display layers) | Shows or hides the teal grid of frame S′. | on / off opens on | |
| Light cone (at A) (Display layers) | Shows or hides the yellow 45° lines through A. | on / off opens on | |
| Drag A or B | Moves an event on the canvas. Δx, Δct, the interval and every readout follow. | x: ±7.7 ct: ±5.7 opens at A (0, 0), B (3.21, 4.70) | |
| Readings | The numbers behind the picture: γ, Δx, Δct, the interval in S and S′, the order in S′, and with the reply on, E₃ and a loop verdict. | panel opens collapsed | |
| ▶ Play / ⏸ Pause | Sweeps v/c back and forth between −0.99 and +0.99, at 0.35 per second at 1×. Moving the v/c slider pauses it. | top bar opens paused | |
| Speed | Scales that sweep. The picture and numbers at any given v/c stay the same. | 0.25× to 4× | |
| ↻ Reset | Back to the opening state: A and B at their start, v/c = 0, return signal off, layers as listed above, paused. | top bar |
Fixed: c = 1 on both axes (ct and x share units), S′ moves along x only, and the reply always heads for A's worldline.
The interval and the light cone
Frame S describes the pair by Δct = ctB − ctA and Δx = xB − xA. With time measured as ct, light runs at 45°. The interval of the pair is:
- The same in every frame. Frame S′ computes Δct′² − Δx′² for the same two events and gets the same number. The Readings panel shows both.
- It sorts the signal by speed. A signal that carries A's influence to B has average speed |Δx/Δct| in S. Δs² < 0 means that is below c, so B lies inside A's light cone. Δs² > 0 means it is above c, so B lies outside.
- On the cone, Δs² = 0 and the signal moves at c.
Which events a boost can reorder
Frame S′ moves along x at v = βc relative to S, with γ = 1/√(1 − β²). For the same two events, S′ measures the time separation:
- γ is positive, so the sign of Δct′ is the sign of Δct − βΔx.
- Inside the cone, |Δx| < |Δct|. Since |β| < 1, |βΔx| stays below |Δct|, so Δct′ keeps the sign of Δct. Every frame agrees which event comes first.
- Outside the cone, |Δx| > |Δct|. Now βΔx can exceed Δct while |β| is still below 1, so Δct′ can change sign. S′ then sees B before A.
The tags on the canvas and the Readings panel print the order each frame sees.
How much boost it takes
Setting Δct′ = 0 gives the boost at which A and B become simultaneous in S′: βflip = Δct/Δx. A boost of the same sign and larger size reverses the order.
- Farther apart, easier. βflip falls as Δx grows at fixed Δct. For Δct = 2.00 it is 0.40 at Δx = 5.00 and 0.29 at Δx = 7.00.
- Direction matters. β must have the sign of βflip. A boost the other way only makes Δct′ larger.
- Inside the cone there is none. There |Δct/Δx| exceeds 1, which no boost reaches.
This slider moves the sim too.
How a faster reply closes a loop
Turn on Return signal. B answers with a reply that moves at v₂ in S′, aimed at A's worldline x = xA. It arrives at event E₃, which the sim transforms back to S:
- A and E₃ share a worldline. A is at rest in S, so E₃ sits straight above or below A, and every frame agrees which comes first. If ct₃ < ctA, the reply arrives before A sent the message: a loop.
- The loop needs more boost than the flip. For B to the right of A, βloop is above βflip, and a faster reply lowers it toward βflip.
- Example, B = (5.00, 2.00), v₂ = 3.00 c: βloop = 11/17 ≈ 0.65. At β = 0.60, ct₃ = +0.33. At β = 0.80, ct₃ = −1.18.
- For a pair inside the cone, ct₃ stays after A at every v/c and v₂ the sim allows.
The argument assumes that if a faster-than-light signal is allowed, it is allowed in every frame.
What a tachyon would need
For a particle with mass, p = γmv and E = γmc² give v = pc²/E. Combined with E² = p²c² + m²c⁴, a speed above c forces:
- A tachyon needs a negative m². v > c means pc > E, so m²c⁴ = E² − p²c² is negative and m is not a real number.
- Speeding up an ordinary particle does not get there. E = γmc² grows without limit as v → c, so no finite energy reaches c, let alone passes it.
The sim draws signals, not particles, so it shows what any faster-than-light signal would do to cause and effect, not a tachyon itself.
Where it matters
- Accelerators. A 6.5 TeV proton in the LHC has γ ≈ 6900 and moves within about one part in 10⁸ of c. Added energy raises γ, not the speed.
- The OPERA neutrinos. In 2011 that experiment reported neutrinos arriving about 60 ns earlier than light would. The cause was traced to timing equipment, a loose fibre-optic connection and a clock fault, and the result was withdrawn. The loop argument is part of why the claim needed such a check.
- Cherenkov light. In water, light travels at about 0.75 c. A particle faster than that makes a blue glow. It is still slower than c, so no light cone is crossed.
Go deeper: tachyons in field theory
- In quantum field theory, a field with m² < 0 describes an unstable point, not particles faster than light. The field rolls down to a stable minimum, and the excitations there have positive m².
- The Higgs field is the standard example: its potential has this shape near zero field, before the electroweak symmetry breaks.
Summary
Key points
- Δs² is the same in every frame, and its sign says whether B is inside, on or outside A's light cone.
- Δct′ = γ(Δct − βΔx) can change sign for |β| < 1 only when |Δx| > |Δct|, at βflip = Δct/Δx.
- A reply at v₂ in S′ arrives before the message once β passes βloop, which is above βflip.
- A particle faster than c would need m² < 0.
Common mix-ups
- "A moving observer can reorder any two events." Only pairs outside each other's light cones. Inside, every observer agrees.
- "Anything faster than c breaks causality." Only a signal that carries influence does. A laser spot sweeping across a distant screen can move faster than c, because each position of the spot does not cause the next.
- "This sim shows tachyons cannot exist." It shows what a usable faster-than-light signal would do to cause and effect. It tests no particle.
Things to try on your own
- Drag B to (7.00, 2.00) and find where Δct′ changes sign on the v/c slider. Compare it with Δct/Δx.
- Load the outside pair, set v/c = 0.60, turn on Return signal, and raise v₂ until ct₃ drops below zero.
- Drag B well inside the cone, sweep v/c across its whole range, and watch Δct′.