Back to Physical Sciences

Part 3: Special Relativity

April 30, 2026 Wasil Zafar 22 min read

Einstein's two simple postulates lead to extraordinary consequences — time slows down, space contracts, and mass becomes energy. Welcome to the physics of high speeds.

Table of Contents

  1. Einstein's Two Postulates
  2. Relativity of Simultaneity
  3. Time Dilation
  4. Length Contraction
  5. Lorentz Transformations
  6. Mass-Energy Equivalence
  7. Relativistic Momentum & Energy
  8. The Twin Paradox
  9. Exercises
  10. Conclusion & Next Steps

Einstein's Two Postulates

In June 1905, Albert Einstein published "On the Electrodynamics of Moving Bodies" — a paper that would redefine our understanding of space and time. Its foundation rests on just two postulates, both seemingly innocuous, yet together producing revolutionary consequences.

First Postulate: The Principle of Relativity

Postulate 1: The laws of physics are the same in all inertial reference frames. No experiment can distinguish one inertial frame from another.

This means there's no "absolute rest" — a physics experiment performed on a smoothly moving train gives identical results to one on the ground. You cannot determine your absolute velocity through space — only your velocity relative to other objects.

Second Postulate: Constancy of the Speed of Light

Postulate 2: The speed of light in vacuum is the same for all inertial observers, regardless of the motion of the light source or observer. c = 299{,}792{,}458 m/s.

This is the radical departure from Newton. Whether you run toward a light beam or away from it, you measure exactly the same speed c. This seems impossible if you're thinking in Newtonian terms — but it's experimentally verified to extraordinary precision.

Consequences of the Two Postulates
flowchart TD
    A["Postulate 1:
Laws same in all
inertial frames"] --> D["Relativity of
Simultaneity"] B["Postulate 2:
Speed of light
is constant"] --> D D --> E["Time Dilation"] D --> F["Length Contraction"] E --> G["Lorentz
Transformations"] F --> G G --> H["Relativistic
Momentum"] G --> I["Mass-Energy
Equivalence"] H --> J["Nothing exceeds c"] I --> K["E = mc²"]

Relativity of Simultaneity

The first shocking consequence: events that are simultaneous in one frame may not be simultaneous in another. This is not an illusion or measurement error — it's a fundamental property of spacetime.

Thought Experiment

Einstein's Train

A train moves at high speed. Lightning strikes both ends simultaneously (as seen by a trackside observer). A passenger in the middle of the train sees the front flash before the rear flash — because they're moving toward the front light and away from the rear light, and both flashes travel at c regardless of the train's motion.

Both observers are correct! Simultaneity is relative — it depends on your reference frame.

SimultaneityReference Frames1905

Time Dilation

Moving clocks run slower. This isn't a mechanical effect — time itself passes more slowly for a moving observer. This is one of relativity's most startling and experimentally verified predictions.

The Light Clock Derivation

Consider a "light clock" — a photon bouncing vertically between two mirrors separated by distance d. For the stationary clock, one tick takes:

$$\Delta t_0 = \frac{2d}{c}$$

Now observe this clock from a frame where it moves horizontally at speed v. The photon travels a diagonal path (longer distance), but still at speed c. By the Pythagorean theorem:

$$\left(\frac{c\Delta t}{2}\right)^2 = d^2 + \left(\frac{v\Delta t}{2}\right)^2$$

The Time Dilation Formula

Solving for \Delta t:

$$\Delta t = \frac{\Delta t_0}{\sqrt{1 - v^2/c^2}} = \gamma \Delta t_0$$

Since \gamma > 1 for any v > 0, the moving clock always takes longer per tick — it runs slow. The proper time \Delta t_0 (measured by the clock at rest) is always the shortest.

Interactive: The Light Clock — Time Dilation Visualized
0.0

At v=0, the photon bounces straight up and down. Increase velocity to see the photon's diagonal path (longer!) — demonstrating why moving clocks tick slower.

import numpy as np
import matplotlib.pyplot as plt

# Time dilation visualization
c = 1  # natural units
speeds = np.linspace(0, 0.99, 500)
gamma = 1 / np.sqrt(1 - speeds**2)

# For 1 year of proper time, how much time passes for stationary observer?
proper_time = 1  # year
dilated_time = gamma * proper_time

# Print key values
print("Time Dilation: 1 year of proper time")
print("=" * 45)
print(f"{'Speed (v/c)':<12} {'γ':<10} {'Stationary time':<18}")
print("-" * 45)
for v in [0.1, 0.5, 0.8, 0.9, 0.95, 0.99, 0.999]:
    g = 1 / np.sqrt(1 - v**2)
    print(f"{v:<12.3f} {g:<10.4f} {g*proper_time:<18.4f} years")

Length Contraction

Objects are shorter in the direction of motion — as measured by an observer they pass. The contracted length is:

$$L = \frac{L_0}{\gamma} = L_0\sqrt{1 - \frac{v^2}{c^2}}$$

where L_0 is the proper length (measured in the object's rest frame). Since \gamma > 1, the measured length L is always less than L_0.

Important: Length contraction only occurs in the direction of motion. A spaceship moving at 0.9c appears squished along its direction of travel, but its height and width remain unchanged. And the contraction is reciprocal — each observer sees the other's objects as contracted.
import numpy as np

# Length contraction examples
c = 3e8  # m/s
L0 = 100  # proper length in meters (e.g., a spacecraft)

print("Length Contraction of a 100-meter spacecraft")
print("=" * 50)
print(f"{'Speed (v/c)':<12} {'γ':<10} {'Observed Length (m)':<20} {'% Contracted':<12}")
print("-" * 50)

for beta in [0.1, 0.3, 0.5, 0.7, 0.8, 0.9, 0.95, 0.99]:
    gamma = 1 / np.sqrt(1 - beta**2)
    L = L0 / gamma
    contraction = (1 - L/L0) * 100
    print(f"{beta:<12.2f} {gamma:<10.4f} {L:<20.2f} {contraction:<12.1f}%")

# Muon example
print("\n\nReal Example: Cosmic Ray Muons")
print("=" * 50)
muon_lifetime = 2.2e-6  # seconds (proper time)
v_muon = 0.998 * c  # typical cosmic ray muon speed
gamma_muon = 1 / np.sqrt(1 - (0.998)**2)

# Classical prediction: distance muon can travel
d_classical = v_muon * muon_lifetime
# Relativistic prediction: dilated lifetime
d_relativistic = v_muon * (gamma_muon * muon_lifetime)

print(f"Muon proper lifetime: {muon_lifetime*1e6:.1f} μs")
print(f"Muon speed: 0.998c")
print(f"Lorentz factor: γ = {gamma_muon:.1f}")
print(f"Classical travel distance: {d_classical:.0f} m = {d_classical/1000:.2f} km")
print(f"Relativistic travel distance: {d_relativistic:.0f} m = {d_relativistic/1000:.1f} km")
print(f"Muons created at ~15 km altitude DO reach Earth's surface!")

Lorentz Transformations

The Lorentz transformations replace the Galilean transformations, correctly relating coordinates between two inertial frames in relative motion at velocity v along the x-axis:

$$x' = \gamma(x - vt)$$
$$t' = \gamma\left(t - \frac{vx}{c^2}\right)$$
$$y' = y, \quad z' = z$$

The inverse transformations (solving for unprimed from primed) simply replace v with -v:

$$x = \gamma(x' + vt')$$
$$t = \gamma\left(t' + \frac{vx'}{c^2}\right)$$
The Key Difference: Notice the time transformation includes a term \frac{vx}{c^2}. This means time depends on position — clocks at different locations in a moving frame show different times. This is the mathematical expression of the relativity of simultaneity.

Mass-Energy Equivalence: E = mc²

The most famous equation in physics states that mass and energy are interchangeable:

$$E_0 = mc^2$$

This is the rest energy — the energy contained in an object simply by virtue of having mass. Since c^2 \approx 9 \times 10^{16} m²/s², even a tiny amount of mass contains enormous energy.

import numpy as np

# E = mc² calculations — energy content of everyday objects
c = 3e8  # m/s
c_squared = c**2

print("E = mc² — Energy Content of Everyday Objects")
print("=" * 55)
print(f"c² = {c_squared:.2e} m²/s² = {c_squared:.2e} J/kg")
print()

objects = [
    ("Grain of sand", 0.001e-3),      # 1 mg
    ("Penny (US)", 2.5e-3),            # 2.5 g
    ("Apple", 0.2),                     # 200 g
    ("Human (70 kg)", 70),
    ("Car (1500 kg)", 1500),
]

for name, mass in objects:
    energy_joules = mass * c_squared
    energy_kilotons = energy_joules / 4.184e12  # 1 kiloton TNT = 4.184e12 J
    print(f"{name:<20} mass={mass:.3e} kg → E = {energy_joules:.2e} J ({energy_kilotons:.1f} kilotons TNT)")

print(f"\nComparison: Hiroshima bomb ≈ 15 kilotons TNT")
print(f"A single kilogram fully converted = {1*c_squared/4.184e12:.0f} kilotons = {1*c_squared/4.184e15:.1f} megatons")

Relativistic Momentum & Energy

The total energy of a particle includes both rest energy and kinetic energy:

$$E = \gamma mc^2$$

The relativistic momentum is:

$$p = \gamma mv$$

These combine into the energy-momentum relation:

$$E^2 = (pc)^2 + (mc^2)^2$$

For massless particles (photons): E = pc. For particles at rest: E = mc^2.

Why Nothing Can Exceed c: As v \to c, \gamma \to \infty, so momentum and energy approach infinity. You'd need infinite energy to accelerate a massive object to the speed of light. Only massless particles (like photons) can travel at exactly c.

The Twin Paradox

Perhaps the most famous "paradox" in relativity: one twin stays on Earth while the other makes a high-speed round trip to a distant star. When the traveler returns, they've aged less than the stay-at-home twin.

Thought Experiment

The Twin Paradox

Setup: Twin A stays on Earth. Twin B travels to Alpha Centauri (4.37 light-years away) at 0.9c and returns.

Earth time: Round trip = 2 × 4.37/0.9 = 9.71 years

Traveler's time: 9.71/γ = 9.71/2.294 = 4.23 years

Result: Twin B is 5.48 years younger than Twin A upon return!

Resolution: This isn't a true paradox. The situation is NOT symmetric — Twin B accelerates (turns around), breaking the symmetry. The twin who changes direction experiences less time.

Twin ParadoxTime DilationAcceleration
import numpy as np

# Twin Paradox calculation
c = 1  # natural units (c = 1 light-year/year)
distance = 4.37  # light-years to Alpha Centauri
v = 0.9  # speed as fraction of c

# Earth frame calculations
travel_time_one_way = distance / v  # years
total_earth_time = 2 * travel_time_one_way

# Traveler frame calculations
gamma = 1 / np.sqrt(1 - v**2)
total_traveler_time = total_earth_time / gamma

# Age difference
age_difference = total_earth_time - total_traveler_time

print("Twin Paradox: Trip to Alpha Centauri at 0.9c")
print("=" * 50)
print(f"Distance: {distance} light-years")
print(f"Speed: {v}c")
print(f"Lorentz factor γ: {gamma:.4f}")
print(f"\nEarth twin (stays home):")
print(f"  Time elapsed: {total_earth_time:.2f} years")
print(f"\nTraveling twin:")
print(f"  Time elapsed: {total_traveler_time:.2f} years")
print(f"\nAge difference: {age_difference:.2f} years")
print(f"The traveler is {age_difference:.2f} years YOUNGER!")

# Multiple speeds comparison
print(f"\n{'Speed':<8} {'Earth Time':<13} {'Traveler Time':<15} {'Age Gap':<10}")
print("-" * 46)
for v in [0.5, 0.7, 0.9, 0.95, 0.99, 0.999]:
    t_earth = 2 * distance / v
    g = 1 / np.sqrt(1 - v**2)
    t_traveler = t_earth / g
    gap = t_earth - t_traveler
    print(f"{v:<8.3f} {t_earth:<13.2f} {t_traveler:<15.2f} {gap:<10.2f} years")

Practice Exercises

Exercise Set

Exercises: Special Relativity

1. A muon has a proper lifetime of 2.2 μs. If it travels at 0.995c, what is its observed lifetime in the lab frame? How far can it travel?

2. A spaceship is 200 meters long in its rest frame. An observer sees it pass at 0.8c. What length does the observer measure?

3. Using the Lorentz transformation, find the spacetime coordinates of an event at (x=100m, t=0) as seen from a frame moving at 0.6c.

4. Calculate the rest energy (in Joules) of a proton (mass = 1.67 × 10⁻²⁷ kg). Convert to MeV.

5. Two spaceships approach each other, each moving at 0.7c relative to Earth. What is their speed relative to each other?

Time DilationLorentz TransformE=mc²

Conclusion & Next Steps

Special relativity emerges from two simple postulates and reshapes our understanding of reality:

  • Time dilation: moving clocks run slow by factor \gamma
  • Length contraction: moving objects are shorter by factor 1/\gamma
  • Simultaneity is relative: events can be simultaneous in one frame but not another
  • Mass-energy equivalence: E = mc^2 — mass IS energy
  • Speed limit: nothing with mass can reach or exceed c

But special relativity only handles inertial (non-accelerating) frames. To properly unify these effects into a geometric framework, we need Minkowski spacetime.

Next in the Series

In Part 4: Spacetime & Geometry, we'll discover how Minkowski unified space and time into a single 4-dimensional manifold, learn to read spacetime diagrams, and understand why the spacetime interval is the fundamental invariant of relativity.