Cosmology

Hubble's Law

The universe is expanding — distant galaxies recede with velocity proportional to distance

Hubble's law (1929) — galaxies recede from us with velocity v = H₀·d, proportional to their distance. The Hubble constant H₀ ≈ 70 km/s/Mpc. Discovered through redshifts of galaxy spectra. Implies an expanding universe → Big Bang theory. Tension between different methods of measuring H₀ ("Hubble tension") is currently a major puzzle in cosmology.

  • Equationv = H₀ · d
  • Hubble constant~70 km/s/Mpc (depending on method)
  • Hubble tensionCMB methods give ~67; SNe Ia give ~73 — disagree by ~9%
  • DiscoveredEdwin Hubble, 1929 (using Cepheid variable distances + redshifts)
  • ImpliesUniverse is expanding; Big Bang theory
  • Hubble time1/H₀ ≈ 14 billion years

Interactive visualization

Press play, or step through manually. The visualization is yours to drive — try it before reading on.

Open visualization fullscreen ↗

Watch the 60-second explainer

A condensed visual walkthrough — narrated, captioned, under a minute.

Hubble's law

v = H₀ · d
SymbolMeaningUnits
vRecession velocitykm/s
dDistance to galaxyMpc (megaparsec)
H₀Hubble constantkm/s/Mpc

1 parsec = 3.086 × 10¹⁶ m ≈ 3.26 light-years. 1 Mpc = 10⁶ pc = 3.26 million light-years.

Measurement methods

MethodDistance ladder rungH₀ (km/s/Mpc)
Cepheid variables → SN Ia (SH0ES)Calibrated steps73.0 ± 1.0
CMB (Planck)Cosmological model + CMB peaks67.4 ± 0.5
BAO (galaxy clustering)Sound horizon as standard ruler~67-68
Gravitational waves (standard sirens)Strain + EM counterpart~70 (preliminary)
Lensing time delays (H0LiCOW)Time delay lensing73-74

The 4-9% discrepancy between CMB-based and local-distance-ladder methods is "Hubble tension."

JavaScript — Hubble's law

// H_0 in usable units
const H_0_kmsMpc = 70;  // km/s/Mpc
const Mpc_to_m = 3.086e22;
const H_0_per_s = H_0_kmsMpc * 1000 / Mpc_to_m;  // s⁻¹
console.log(`H_0 = ${H_0_per_s.toExponential(2)} per second`);

// Hubble time
const t_H = 1 / H_0_per_s;
console.log(`Hubble time: ${(t_H / (365.25*86400) / 1e9).toFixed(1)} Gyr`);

// Recession velocity from Hubble's law
function recessionVelocity(distance_Mpc) {
  return H_0_kmsMpc * distance_Mpc;
}

console.log(`Galaxy at 100 Mpc: v = ${recessionVelocity(100)} km/s`);
console.log(`Galaxy at 1000 Mpc: v = ${recessionVelocity(1000)} km/s`);
console.log(`Galaxy at 4000 Mpc: v = ${recessionVelocity(4000)} km/s`);
// 280,000 km/s — close to c

// Distance from redshift (small z)
function distanceFromRedshift(z) {
  // Small-z: v ≈ z·c, so d = v/H_0
  const c_kmps = 299792;
  const v = z * c_kmps;
  return v / H_0_kmsMpc;  // Mpc
}

console.log(`z=0.01: ${distanceFromRedshift(0.01).toFixed(1)} Mpc`);
console.log(`z=0.1: ${distanceFromRedshift(0.1).toFixed(0)} Mpc`);
// At z=1, full GR needed (cosmological model)

// Critical density (boundary between expanding forever and recollapsing)
function criticalDensity(H_0_per_s) {
  const G = 6.674e-11;
  return 3 * H_0_per_s * H_0_per_s / (8 * Math.PI * G);
}

console.log(`Critical density: ${criticalDensity(H_0_per_s).toExponential(2)} kg/m³`);
// ~9.5 × 10⁻²⁷ kg/m³ — about 6 H atoms per m³

// Density parameter Ω
function omega(actualDensity, H_0_per_s) {
  return actualDensity / criticalDensity(H_0_per_s);
}

// Hubble tension: compare two values
function hubbleTension(H_planck, H_local) {
  const sigma = Math.sqrt(0.5 * 0.5 + 1.0 * 1.0);  // combined uncertainty
  return (H_local - H_planck) / sigma;  // sigmas
}

console.log(`Tension: ${hubbleTension(67.4, 73.0).toFixed(1)} σ`);  // ~5 σ

Where Hubble's law matters

  • Cosmology. Foundation of expanding universe, Big Bang theory.
  • Distance estimation. Redshift → distance for galaxies (with caveats for high z).
  • Age of universe. Hubble time gives rough estimate; full calculation requires cosmological model.
  • Dark energy detection. Acceleration discovered via SNe Ia at high z (1998 Nobel).
  • Standard sirens. Gravitational waves provide independent H₀ measurement.
  • Hubble tension. Major puzzle in modern cosmology; potential new physics signal.
  • JWST observations. Extending observations to highest redshift galaxies.

Common mistakes

  • Treating recession velocity as motion through space. It's space itself expanding; galaxies are approximately at rest locally.
  • Believing Hubble's law applies to local objects. Within galaxy clusters, gravity dominates; Hubble's law applies on supercluster scales.
  • Assuming v = H₀·d holds for very distant objects. At high z, full general relativistic cosmology needed; simple linear law breaks down.
  • Confusing Hubble time with universe age. Hubble time is 1/H₀ — universe age depends on full expansion history. Currently ~13.8 Gyr, close to but different from Hubble time.
  • Treating Hubble constant as truly constant. "Constant" in space (uniform expansion), not in time. H_0 is current value; H(t) varies with cosmic time.
  • Confusing Hubble tension with measurement error. Tension is statistically significant (5+ σ); not just imprecision but apparently real disagreement.

Frequently asked questions

What is Hubble's law?

v = H₀·d. Galaxy recession velocity proportional to distance. Closer galaxies recede slower; distant ones faster. H₀ (Hubble constant) ≈ 70 km/s/Mpc — galaxy at 1 Mpc recedes at 70 km/s; at 100 Mpc, 7000 km/s. Holds for galaxies far enough that local motion is small.

How was it discovered?

Edwin Hubble (1929) measured distances to nearby galaxies (using Cepheid variables) and their redshifts. Plotted v vs d — linear relationship. Confirmed independent observations of expansion. Won him fame; Hubble Space Telescope named in honor.

What's the "Hubble tension"?

Different methods disagree on H₀. CMB-based (Planck satellite): 67.4 ± 0.5 km/s/Mpc. Supernova-based (SH0ES): 73.0 ± 1.0 km/s/Mpc. Disagreement is ~9% — much larger than uncertainties. Either systematic error somewhere or new physics. Active research area.

Does Hubble's law violate special relativity?

No. Galaxy "recession velocity" isn't peculiar motion through space — it's space itself expanding. Distant galaxies have v > c (per Hubble's law), but they're not moving FASTER than light through space; space between us is stretching. SR's "no FTL through space" still holds for objects at single locations.

How does H₀ relate to age of universe?

Inverse of Hubble constant gives "Hubble time" τ = 1/H₀. For H₀ = 70 km/s/Mpc, τ ≈ 14 billion years — close to actual universe age (~13.8 billion). True age depends on detailed expansion history (matter and dark energy contributions) — Hubble time is approximate.

What's redshift?

Light from receding galaxy stretched to longer wavelengths. z = (λ_observed - λ_emitted) / λ_emitted. For small v, z ≈ v/c. For large z, fully relativistic Doppler formula needed. Highest galaxy redshifts (z ~ 10+) — JWST observing galaxies as they were ~13 billion years ago.

Are galaxies actually moving away from us?

From general relativity perspective: galaxies are at rest in their own location; SPACE between is expanding. From special relativity perspective: not strictly correct since SR doesn't handle cosmic expansion. The distinction matters for very distant galaxies. Practically — galaxies are getting further from us; that's all observed.