Instructor notes: Binary Orbits: Dynamical Reasoning Lab

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

Exhibit: Binary Orbits: Dynamical Reasoning Lab

Overview

Navigation

This guide is instructor-facing Student demo: /play/binary-orbits/
UI markup: apps/demos/src/demos/binary-orbits/index.html
Demo logic: apps/demos/src/demos/binary-orbits/main.ts
Physics helper: packages/physics/src/twoBodyAnalytic.ts

Where to go next

  • Model + math + assumptions: apps/site/src/content/instructor/binary-orbits/model.md
  • In-class activities: apps/site/src/content/instructor/binary-orbits/activities.md
  • Assessment bank: apps/site/src/content/instructor/binary-orbits/assessment.md
  • Future enhancements: apps/site/src/content/instructor/binary-orbits/backlog.md

Why this demo exists

Why This Matters Binary orbits reveal that both bodies move. Students are often surprised to learn that the Sun wobbles due to Jupiter, and that this wobble is how we detect exoplanets. This demo makes the barycenter concept concrete and connects gravitational physics to observational astronomy.

Learning goals

ASTR 101

Students should be able to:

  • Recognize that both bodies orbit the barycenter, not one around the other
  • Explain why heavier bodies have smaller orbits (inverse mass ratio)
  • Connect stellar wobble to exoplanet detection via the radial velocity method
  • Identify the barycenter position for different mass ratios

ASTR 201

Students should also be able to:

  • Derive individual orbit sizes from the center-of-mass condition: a1/a2=M2/M1a_1/a_2 = M_2/M_1
  • Apply the generalized Kepler’s 3rd law: P2=a3/(M1+M2)P^2 = a^3/(M_1 + M_2)
  • Calculate orbital velocities using the vis-viva equation for each body
  • Explain why both bodies share the same orbital period

10-15 minute live-teach script (projector)

  1. Start at equal masses. Set m2/m1=1m_2/m_1 = 1. Ask: “Where is the barycenter?” It should sit halfway between the bodies, and the two orbits should be the same size.

  2. Make the system unequal. Set M2/M1=0.2M_2/M_1 = 0.2. Ask: “What changes, and what stays the same?” Emphasize that both bodies still move, but the secondary takes the larger/faster orbit while both bodies keep the same period.

  3. Connect to the inverse relationship. Ask students to predict whether a1/a2a_1/a_2 increases or decreases when M2/M1M_2/M_1 decreases. Connect to:

    a1a2=M2M1.\frac{a_1}{a_2}=\frac{M_2}{M_1}.
  4. Use the non-blocking prediction tool. Click Capture current state, ask students for a trend prediction, then drag the mass-ratio slider while the demo stays live. Use Compare with current system to reflect on which predictions matched without ever freezing the physics.

  5. Period scaling. Change separation aa (AU) with the log slider (0.1→1000.1\rightarrow100 AU) and observe the period readout. Emphasize that in AU/yr/M⊙M_\odot teaching units:

    P2=a3M1+M2.P^2=\frac{a^3}{M_1+M_2}.
  6. Exoplanet connection (conceptual). Ask: “If a star wobbles, how could we detect it?” Tie barycentric motion to the radial-velocity idea, using the RV and spectrum views to connect the geometry to observables.

Suggested connections to other demos

  • Kepler’s Laws: Binary orbits is the two-body extension; start with Kepler’s Laws for single-body foundations.
  • Doppler/Redshift: Connect the radial velocity method to spectral line shifts.
  • Stellar Properties: Binary stars are how we measure stellar masses directly.

When to use this demo

ContextRecommended Usage
ASTR 101 LectureAfter covering gravity and orbits; emphasize exoplanet detection angle
ASTR 201 LectureAfter covering two-body problem; use for quantitative predictions
LabStation activity with mass ratio exploration
Exam reviewClicker questions on barycenter position and period scaling

Activities

Navigation

Links Student demo: /play/binary-orbits/ Main guide: apps/site/src/content/instructor/binary-orbits/index.md Model deep dive: apps/site/src/content/instructor/binary-orbits/model.md

MW Quick Exploration (3–5 min, pairs)

TPS: Does the heavier body move? Think (30 s): “If one body is much more massive, does the heavy one still move?”

Pair (60 s): Predict what happens to the barycenter as M2/M1M_2/M_1 decreases below 1.

Share (1–2 min): Use the demo:

  1. Set M2/M1=1M_2/M_1 = 1 and note the barycenter offsets.
  2. Set M2/M1=0.2M_2/M_1 = 0.2 and compare.

Debrief: Both bodies move. The barycenter shifts toward the heavier body, and the heavier body’s orbit shrinks.

MW Short Investigation (8–12 min, pairs/triads)

Investigation: mass ratio vs orbit size

Setup: Fix separation at a=4a = 4 AU (log slider still active over 0.1→1000.1\rightarrow100 AU).

Task A (barycenter):

  1. Record a snapshot for M2/M1=1M_2/M_1 = 1.
  2. Record a snapshot for M2/M1=0.2M_2/M_1 = 0.2.
  3. Write a sentence explaining the trend using the idea “center of mass.”
  4. Use the live Physics integrity card to confirm both snapshots satisfy a1+a2=aa_1+a_2=a and M1a1=M2a2M_1a_1=M_2a_2.

Task B (period scaling):

  1. Fix M2/M1=1M_2/M_1 = 1.
  2. Compare a=0.5a = 0.5 AU vs a=8a = 8 AU.
  3. Use the readout to test the idea that period grows quickly with separation.

Key relationship (for discussion):

P2=a3M1+M2(AU/yr/M⊙ teaching units)P^2=\frac{a^3}{M_1+M_2}\qquad(\mathrm{AU}/\mathrm{yr}/M_\odot\ \text{teaching units})

Station version (rotation lab)

Use the printable station card:

  • /stations/binary-orbits/

Quick Demonstration (projector)

Demo: inverse relationship Set M2/M1=1M_2/M_1=1, click Capture current state, then move to M2/M1=0.2M_2/M_1=0.2 (same aa). Script: “The lighter body gets the larger/faster orbit, but both bodies still share one period.” Use Compare with current system after students commit to a trend prediction.

Assessment

Navigation

How to use this bank Each item includes a demo setup so you can reproduce the scenario live, plus distractors tied to common misconceptions.

Clicker questions

Clicker 1: Who orbits whom? Prompt: In a star-planet system, which statement is most accurate?

A. The planet orbits the star, which stays stationary B. Both the star and planet orbit their common center of mass C. The star orbits the planet D. Neither body moves; they are gravitationally locked in place

Correct: B.

Reasoning: Newton’s 3rd law requires both bodies to feel equal and opposite forces. Both orbit the barycenter.

Common misconception: Option A (the “stationary star” misconception). Students often think the more massive body doesn’t move.

Demo setup (current instrument): Set a small secondary ratio (try M2/M1=0.2M_2/M_1 = 0.2) so the barycenter sits close to M1M_1, then point out that M1M_1 still moves.

Clicker 2: Mass ratio and orbit size Prompt: In a binary star system, star A has twice the mass of star B (MA=2MBM_A = 2 M_B). How do their orbital radii compare?

A. aA=2aBa_A = 2 a_B (heavier star has larger orbit) B. aA=aBa_A = a_B (same orbit size) C. aA=12aBa_A = \frac{1}{2} a_B (heavier star has smaller orbit) D. Cannot determine without knowing the separation

Correct: C.

Reasoning: The barycenter divides the separation in inverse ratio to the masses. aA/aB=MB/MA=1/2a_A/a_B = M_B/M_A = 1/2.

Common misconception: Option A (heavier = larger orbit). Students may confuse orbit size with gravitational influence.

Demo setup (current instrument): Set M2/M1=0.5M_2/M_1 = 0.5 (so M1M_1 is heavier) and compare orbit sizes about the barycenter.

Clicker 3: Barycenter position Prompt: For the Sun-Jupiter system, the barycenter is located…

A. At the center of the Sun B. Between the Sun’s center and surface C. Just outside the Sun’s surface D. Halfway between the Sun and Jupiter

Correct: C.

Reasoning: Jupiter’s mass is about 10−3M⊙10^{-3} M_\odot, so the barycenter is about 10−310^{-3} of the way from the Sun to Jupiter. At 5.2 AU separation, that’s about 0.005 AU = 750,000 km, just outside the Sun’s radius (696,000 km).

Demo note: The Sun–Jupiter barycenter example is a real-world application. The current slider range is a teaching sandbox (M2/M1≤1M_2/M_1 \le 1, aa on a 0.1→1000.1\rightarrow100 AU log scale); use the ratio control to show how the barycenter shifts.

Clicker 4: Orbital period relationship Prompt: In a binary system, how do the two bodies’ orbital periods compare?

A. The heavier body has a shorter period B. The lighter body has a shorter period C. Both bodies have the same period D. The period depends only on the separation, not the masses

Correct: C.

Reasoning: Both bodies complete one orbit in the same time. They are always on opposite sides of the barycenter.

Common misconception: Options A or B (different periods for different masses). Students may confuse orbital speed with orbital period.

Demo setup: Set M2/M1=1M_2/M_1 = 1 and show both bodies completing orbits together.

Short answer

Short answer 1: Exoplanet detection Prompt (3-5 sentences): Explain how astronomers can detect an exoplanet even if they cannot see it directly. Your answer should reference the motion of the host star.

Answer key (core idea): The gravitational pull of an orbiting planet causes the host star to wobble around the system’s barycenter. This wobble produces a periodic Doppler shift in the star’s spectral lines as the star moves toward and away from us. By measuring this radial velocity variation, astronomers can infer the presence of an unseen planet and estimate its minimum mass and orbital period.

Short answer 2: Mass determination in binary stars Prompt: Astronomers observe a binary star system and measure both stars’ orbital radii: aA=2a_A = 2 AU and aB=3a_B = 3 AU. What is the mass ratio MA/MBM_A/M_B?

Expected: From aA/aB=MB/MAa_A/a_B = M_B/M_A, we get MA/MB=aB/aA=3/2=1.5M_A/M_B = a_B/a_A = 3/2 = 1.5. Star A is 1.5 times more massive than star B.

Short answer 3: Period scaling (ASTR 201) Prompt: A binary system has M1=2M⊙M_1 = 2 M_\odot, M2=1M⊙M_2 = 1 M_\odot, and separation a=1a = 1 AU. Calculate the orbital period using P2=a3/(M1+M2)P^2 = a^3/(M_1 + M_2).

Expected: P2=13/(2+1)=1/3P^2 = 1^3/(2 + 1) = 1/3, so P=1/3=0.577P = \sqrt{1/3} = 0.577 years ≈\approx 211 days.

Demo verification (current instrument): Use M1=1 M⊙M_1=1\,M_\odot and set M2/M1M_2/M_1 to match the desired M2M_2 value (within the slider range), then compare to the period readout.

Exit ticket (1 minute)

Exit ticket: Why does the Sun wobble? Prompt: In one sentence, explain why the Sun wobbles slightly due to Jupiter.

Expected: Jupiter’s gravitational pull causes the Sun to orbit the Sun-Jupiter barycenter, which lies just outside the Sun’s surface.

Exit ticket: Inverse relationship Prompt: Complete this sentence: “In a binary system, the more massive body has the ______ orbit because…”

Expected: “…smaller orbit because the barycenter is closer to the heavier body” or “…the masses are in inverse ratio to the orbit sizes.”

Misconception diagnosis questions

Diagnosis: Where is the barycenter? Prompt: A student says, “The barycenter is always at the center of the larger body.” How would you use the demo to address this misconception?

Suggested approach: Show M2/M1=1M_2/M_1 = 1 where the barycenter sits between the two bodies, then show a small ratio (e.g. M2/M1=0.2M_2/M_1 = 0.2) where the barycenter shifts close to M1M_1.

Diagnosis: Different periods? Prompt: A student predicts that in a binary system, the lighter star will have a shorter period because it moves faster. Use the demo and physics reasoning to address this.

Suggested approach: Show M2/M1=1M_2/M_1 = 1 and point out that both bodies complete orbits together. Explain that both bodies must stay on opposite sides of the barycenter, so they must share the same period.

Model notes (deeper)

Navigation

Links Student demo: /play/binary-orbits/ Demo source: apps/demos/src/demos/binary-orbits/
Physics helper: packages/physics/src/twoBodyAnalytic.ts

What the demo is modeling (big picture)

This instrument is a circular, coplanar two-body teaching model. It exists to make barycentric motion concrete:

  • Both bodies move: neither mass stays perfectly fixed.
  • The barycenter shifts with mass ratio: the more massive body has the smaller orbit about the barycenter.
  • The period scales with separation and total mass: in AU/yr/M⊙M_\odot teaching units, P2=a3/(M1+M2)P^2 = a^3/(M_1+M_2).

What the student controls (current instrument)

  • Secondary mass ratio M2/M1M_2/M_1 (dimensionless, constrained to ≤1\le 1)
  • Separation aa (AU, log scale 0.1→1000.1\rightarrow100)
  • Motion mode (normalized 20 s cycle vs physical Kepler rate)

In this demo, we hold M1=1 M⊙M_1 = 1\,M_\odot fixed and set M2M_2 via the secondary-ratio slider.

What the demo reads out

  • Barycenter offsets a1a_1 and a2a_2 (AU)
  • Orbital speeds v1v_1 and v2v_2 (AU/yr)
  • Orbital period PP (yr)
  • Shared-period cue (P1=P2P_1=P_2)

Core relationships (units explicit)

Barycenter geometry

For masses M1M_1 and M2M_2 separated by aa:

a1=a⋅M2M1+M2,a2=a⋅M1M1+M2a_1 = a \cdot \frac{M_2}{M_1+M_2}, \qquad a_2 = a \cdot \frac{M_1}{M_1+M_2}

Sanity checks:

  • If M1=M2M_1=M_2, then a1=a2=a/2a_1=a_2=a/2.
  • If M2≪M1M_2 \ll M_1, then a1≈0a_1 \approx 0 and a2≈aa_2 \approx a.

Period scaling (teaching normalization)

Using G=4π2 AU3/(yr2 M⊙)G = 4\pi^2\,\mathrm{AU}^3/(\mathrm{yr}^2\,M_\odot):

P2=a3M1+M2P^2 = \frac{a^3}{M_1 + M_2}

What’s simplified / not modeled (by design)

  • Circular orbits only (no eccentricity control).
  • Coplanar geometry only (no inclination/precession).
  • Not an N-body integrator; this is a conceptual instrument.

Backlog

Navigation

How to use this backlog This is a planning guide. Prefer changes that increase correctness and reduce cognitive friction before adding new features.

Completed Items

PriorityImpactEffortCategoryNotesCode entrypoint
P0HighMediumPhysicsDONE (2026-01-28): Extract physics model to shared, testable module with UMD pattern.demos/_assets/binary-orbits-model.js + tests/binary-orbits-physics.test.js
P0HighLowPhysicsDONE (2026-01-28): Document invariants in model file header.demos/_assets/binary-orbits-model.js
P0HighLowBugDONE (2026-01-28): Fix missing model script tag in index.html.demos/binary-orbits/index.html
P1HighMediumDocsDONE (2026-01-28): Expand README with pedagogical notes and future features.demos/binary-orbits/README.md
P1HighHighDocsDONE (2026-01-28): Create instructor resources (index, model, activities, assessment, backlog).demos/_instructor/binary-orbits/
P1MediumLowUXDONE (2026-01-28): Add preset for 51 Pegasi b + barycenter distance readout with inside/outside star indicator.demos/binary-orbits/

Active Backlog

PriorityImpactEffortCategoryNotesCode entrypoint
P1HighMediumPhysicsDONE (2026-02-24): Added RV view with dual-body radial-velocity curves, inclination control, and K1/K2K_1/K_2 readouts.apps/demos/src/demos/binary-orbits/
P2MediumMediumPedagogyDONE (2026-03-15): Upgraded prediction into a non-blocking predict-and-compare workflow so the live physics always stays synchronized while students still capture and test predictions.apps/demos/src/demos/binary-orbits/
P1HighMediumPhysics + PedagogyDONE (2026-02-25): Added Energy view (decomposition + virial residual) and gated RV inversion challenge (q=K1/K2q=K_1/K_2) with lock-safe export/snapshot semantics.apps/demos/src/demos/binary-orbits/
P1HighMediumPhysicsAdd light curve overlay for edge-on systems (transit/eclipse dips).demos/binary-orbits/binary-orbits.js
P2MediumMediumPhysicsAdd 3D inclination control to show projection effects (why RV gives minimum mass).demos/binary-orbits/binary-orbits.js
P2LowLowAccessibilityAdd on-screen keyboard shortcuts help panel.demos/binary-orbits/index.html
P2LowMediumPhysicsAdd tidal distortion visualization for close binaries (Roche geometry).demos/binary-orbits/binary-orbits.js
P3LowMediumPhysicsAdd mass transfer animation for semi-detached binaries.demos/binary-orbits/binary-orbits.js
P3LowMediumPhysicsAdd GR precession for close, eccentric orbits (post-Newtonian correction).demos/_assets/binary-orbits-model.js

Priority Definitions

  • P0: Correctness or critical functionality (must fix before use)
  • P1: High-impact pedagogy or usability (should add soon)
  • P2: Nice-to-have enhancements (add when time permits)
  • P3: Future extensions (research-level or specialized topics)

Feature Notes

Doppler RV Curve (P1)

The radial velocity curve is the primary observable for spectroscopic binaries and exoplanet detection. Implementation notes:

  • Plot vr=vsin⁡icos⁡(θ+ω)v_r = v \sin i \cos(\theta + \omega) where ii is inclination and ω\omega is argument of perihelion
  • For edge-on systems (i=90∘i = 90^\circ), this simplifies to vr=vcos⁡θv_r = v \cos\theta
  • Show both curves (for binaries) or just the star curve (for exoplanets)
  • Sync with orbital animation so students see the connection

Light Curve (P1)

For edge-on systems, show brightness dips during transits/eclipses. Implementation notes:

  • Primary eclipse: smaller body in front of larger (deeper dip if smaller body is hotter)
  • Secondary eclipse: larger body in front of smaller
  • For star+planet: transit of planet causes small dip; secondary eclipse (planet behind star) may be undetectable
  • Requires inclination control (or assume edge-on)

3D Inclination (P2)

Critical for understanding why RV gives minimum mass (Msin⁡iM \sin i). Implementation notes:

  • Add inclination slider (0∘0^\circ = face-on, 90∘90^\circ = edge-on)
  • Show that face-on systems have no RV signal
  • Explain that we measure vsin⁡iv \sin i, hence Mpsin⁡iM_p \sin i