Instructor notes: Galaxy Rotation Curves

Teaching notes for this exhibit. Free to adapt for your own course.

Exhibit: Galaxy Rotation Curves

Overview

Navigation

This guide is instructor-facing Student demo: /play/galaxy-rotation/
Main code: apps/demos/src/demos/galaxy-rotation/main.ts
UI logic: apps/demos/src/demos/galaxy-rotation/logic.ts
Physics model: packages/physics/src/galaxyRotationModel.ts

Why this demo exists

This instrument makes one central inference visible: measured orbital speed in galaxy outskirts stays too high for visible matter alone, so either extra gravitating mass or modified dynamics is required.

Learning goals

  • Read V(R)V(R) as the primary observable inferred from Doppler shifts.
  • Compare total and visible-only Keplerian predictions at fixed radius.
  • Interpret where MdarkM_{\rm dark} exceeds MvisM_{\rm vis} and how fb(R)f_b(R) evolves.
  • Distinguish “fits galaxy curves” from “explains all dark-matter evidence across scales.”
  1. Start with No dark matter and establish the Keplerian decline baseline.
  2. Switch to Milky Way-like and emphasize the persistent outer velocity.
  3. Increase halo mass while narrating how curve shape and Mdark/MvisM_{\rm dark}/M_{\rm vis} respond.
  4. Toggle mass mode and locate the dark-dominance crossing.
  5. Show MOND overlay and close with scale-comparison caveat (clusters/CMB).

Misconceptions to target

  • “Flat curve means constant enclosed mass.” (It means enclosed mass keeps rising with RR.)
  • “Face-on schematic means face-on observations.” (Real measurements require inclination correction.)
  • “One MOND-like fit in galaxies falsifies dark matter everywhere.” (Cluster/lensing/CMB evidence still constrains alternatives.)

Activities

Navigation

MW Quick (6-8 min)

Goal: make the mismatch visible in one pass.

  1. Compare No dark matter vs Milky Way-like at R=30R=30 and 50 kpc50\,{\rm kpc}.
  2. Ask: “Which curve looks solar-system-like?”
  3. Toggle halo contribution and narrate mechanism.

MW Short (10-14 min)

Goal: connect shape to mass decomposition.

  1. Keep Milky Way-like preset.
  2. Add radial profile rows (R=2R=2 to 50 kpc50\,{\rm kpc}).
  3. Identify first radius where Mdark>MvisM_{\rm dark}>M_{\rm vis}.
  4. Compare fb(50 kpc)f_b(50\,{\rm kpc}) to 0.1570.157 and discuss interpretation.

Friday Lab (20-30 min)

Goal: argumentation from evidence.

  1. Each team runs one mystery challenge and writes claim + evidence + mechanism.
  2. Teams compare dark-halo and MOND overlays for same profile.
  3. Whole-class debrief: where alternatives succeed and where they struggle.

Station version (12-15 min)

Use apps/site/src/content/stations/galaxy-rotation.md as the printable student artifact.

Assessment

Navigation

Clicker prompts

  1. If V(R)V(R) stays nearly constant from 2020 to 50 kpc50\,{\rm kpc}, then M(<R)M(<R) must:
    A. stay constant
    B. decrease
    C. continue increasing
    D. be undefined
    Correct: C

  2. A visible-matter-only Keplerian expectation at large RR scales as:
    A. R+1/2R^{+1/2}
    B. R−1/2R^{-1/2}
    C. R0R^0
    D. R−2R^{-2}
    Correct: B

  3. Which statement is most accurate?
    A. MOND matching one galaxy curve falsifies dark matter at all scales.
    B. Dark matter and MOND are identical theories.
    C. MOND can match some galaxy curves, but cluster/lensing/CMB constraints still matter.
    D. Rotation curves are unrelated to Doppler measurements.
    Correct: C

Short-answer checks

  • Why does a flat outer rotation curve imply continued growth in enclosed mass?
  • What is the observational role of the 21-cm line in this demo?
  • Why does the interface show a face-on schematic but still discuss inclination correction?

Exit ticket

  1. Report one radius where your run transitioned to dark-matter dominance.
  2. Give your measured fb(50 kpc)f_b(50\,{\rm kpc}) and compare to 0.1570.157.
  3. Write one sentence claim supported by two readouts.

Model notes (deeper)

Navigation

Core model

Component quadrature:

Vtotal(R)=Vbulge2+Vdisk2+Vhalo2V_{\rm total}(R)=\sqrt{V_{\rm bulge}^2+V_{\rm disk}^2+V_{\rm halo}^2}

Dark-matter inference:

Mdark(<R)=Vobs2RG−Mvis(<R)M_{\rm dark}(<R)=\frac{V_{\rm obs}^2R}{G}-M_{\rm vis}(<R)

Keplerian benchmark:

VKep(R)∝R−1/2(R≫Rd)V_{\rm Kep}(R)\propto R^{-1/2} \quad (R\gg R_d)

MOND comparison (asymptotic form):

VMOND≈(G Mvis a0)1/4V_{\rm MOND}\approx\left(G\,M_{\rm vis}\,a_0\right)^{1/4}

Implementation notes

  • Shared physics API: packages/physics/src/galaxyRotationModel.ts
  • Mass components:
    • bulge: Hernquist enclosed mass
    • disk: exact exponential-disk rotation using modified Bessel I0,I1,K0,K1I_0,I_1,K_0,K_1
    • halo: NFW enclosed mass with derived RvirR_{\rm vir} and concentration cc
  • Units are explicit in API naming (radiusKpc, velocityKmS, mass10).
  • G_{\\rm galaxy}=4.3009\\times10^4\\,\\text{kpc}\\,(\\text{km/s})^2\\,(10^{10}M_\\odot)^{-1}.
  • NFW derived values use internal cosmology defaults (H0=67.4 km s−1 Mpc−1H_0=67.4\,{\rm km\,s^{-1}\,Mpc^{-1}}, Ωm=0.315\Omega_m=0.315).
  • The 21-cm readout ties rotation speed to directly measurable wavelength shift:
Δλ21=λ0Vc,λ0=21.106 cm\Delta\lambda_{21}=\lambda_0\frac{V}{c},\qquad \lambda_0=21.106\,{\rm cm}

Pedagogical clarifications

  • Face-on panel is schematic: real observations use inclined disks and recover intrinsic V(R)V(R) with inclination corrections.
  • Solar-system comparison inset: gives students a familiar Keplerian baseline before comparing galaxy behavior.
  • MOND framing: useful comparison at galaxy scale, but not presented as a full replacement workflow in this instrument.
  • Across-scale context matters: cluster dynamics, Bullet Cluster lensing offsets, and CMB constraints remain part of the interpretation story.

Backlog

Navigation

P0 (blocking for launch-ready)

  • Attach classroom validation notes (timing, confusion points, misconception outcomes).
  • Attach manual screen-reader smoke notes (VoiceOver + NVDA) for controls, challenge flow, and live-region messaging.

P1 (candidate-friendly improvements)

  • Add optional uncertainty bands for observational velocity scatter.
  • Add optional “inclination correction toy slider” in understand mode for advanced sections.

P2 (nice to have)

  • Add downloadable station CSV packet with auto-generated row-set labels.
  • Add challenge-attempt history panel for repeated class rounds.