Instructor notes: Seasons: Why Tilt Matters
Overview
Navigation
- Instructor hub: /demos/_instructor/
- Student demo: /play/seasons/
- This demo: Model · Activities · Assessment · Backlog
This guide is instructor-facing Student demo:
/play/seasons/
UI markup:apps/demos/src/demos/seasons/index.html
Demo logic:apps/demos/src/demos/seasons/main.ts
Physics model:packages/physics/src/seasonsModel.ts
Where to go next
- Model + math + assumptions:
apps/site/src/content/instructor/seasons/model.md- In-class activities:
apps/site/src/content/instructor/seasons/activities.md- Assessment bank:
apps/site/src/content/instructor/seasons/assessment.md- Future enhancements:
apps/site/src/content/instructor/seasons/backlog.md
New: Station Mode + Help
- In the student demo, click Station Mode to build a data table you can print or copy as CSV.
- Click Help / Keys (or press
?) for shortcuts; pressgto open Station Mode.
Why this demo exists
Why This Matters Students can often say “tilt causes seasons,” but still picture “summer = closer to the Sun.” This demo makes the observable consequences of tilt concrete: the Sun’s declination changes, which changes day length and noon altitude, and those change the energy received per day at a location.
Learning goals (ASTR 101)
By the end of this demo, students should be able to:
- Explain why axial tilt, not Earth–Sun distance, causes opposite seasons in the two hemispheres.
- Use the ideas of solar declination, day length, and noon Sun altitude to predict what changes between summer and winter.
- Recognize that “closest to the Sun” (perihelion) occurs in early January, so distance cannot be the primary cause of seasons.
Learning goals (ASTR 201 stretch)
Students should be able to:
- Interpret declination as a geometric consequence of the obliquity and Earth’s orbital position.
- Connect the day-length formula to the sunrise/sunset hour angle condition on the celestial sphere.
10–15 minute live-teach script (projector)
-
Start at the lecture defaults (March equinox, tilt $23.5^\circ$, latitude $40^\circ$N). Ask for a prediction: “At the equinox, how many hours of daylight should we have?” Then reveal the day-length readout.
-
Click June Solstice. Ask: “At $40^\circ$N, should the Sun be higher or lower at noon than at the equinox?” Connect the change to the Sun Altitude readout and the tilted globe view.
-
Click December Solstice. Ask: “What should happen to day length and noon altitude now?” Highlight that the two hemispheres must be opposite.
-
Point at the Earth–Sun Distance readout and ask: “Are we closer in June or January?” Then explicitly surface the misconception: distance varies, but it is not aligned with Northern Hemisphere seasons.
-
Optional “counterfactual”: set Axial Tilt = $0^\circ$. Ask: “What happens to seasons and day length over the year?” Use this to cement “tilt is the driver.”
Suggested connections to the other demos
This demo sets up the shared “geometry language” used in the rest of Cosmic Playground:
- Moon phases: angles and illumination are geometry, not shadow.
- Angular size: what you see depends on size and distance; this matters for eclipse totality.
- Eclipse geometry: eclipses require both phase geometry and near-node geometry.
Activities
Navigation
- Instructor hub: /demos/_instructor/
- Back to this demo guide: Guide
- Student demo: /play/seasons/
- This demo: Model · Activities · Assessment · Backlog
Links Student demo:
/play/seasons/
Main guide:apps/site/src/content/instructor/seasons/index.md
Model deep dive:apps/site/src/content/instructor/seasons/model.md
MW Quick Exploration (3–5 min, pairs)
TPS: Distance vs tilt (fast misconception check) Think (30 s): “If Earth is closer to the Sun, should it be summer everywhere on Earth?”
Pair (60 s): Decide what the Southern Hemisphere’s season must be if the Northern Hemisphere is in summer.
Share (1–2 min): Use the demo to check the prediction:
- Click June Solstice → point out “Season (North)” vs “Season (South)”.
- Read the Earth–Sun Distance value and ask: “Is this the minimum distance of the year?”
- Click December Solstice and compare distance again.
Debrief script: “Distance changes a little, but the hemispheres are opposite. That single fact tells us distance cannot be the driver of seasons.”
MW Short Investigation (8–12 min, pairs/triads)
Investigation: What actually changes between seasons? Setup: Keep Axial Tilt = $23.5^\circ$. Assign each group a latitude (e.g., $0^\circ$, $23.5^\circ$, $40^\circ$, $66.5^\circ$, $80^\circ$).
Task: For your latitude, record these readouts at:
- March equinox
- June solstice
- September equinox
- December solstice
Record:
- Day length (hours)
- Noon Sun altitude (degrees)
Prompt: “Which of these two changes matters more for warming: longer days or higher noon altitude?”
Expected pattern: As latitude increases, the swing in both day length and noon altitude gets larger (eventually reaching 24 h / 0 h extremes).
Share-out (2–3 min) Each group reports one sentence: “At latitude $\phi$, summer vs winter changes day length by ___ and noon altitude by ___.” Then we summarize: tilt changes both “how long” and “how direct.”
Friday Astro Lab (20–30+ min, groups of 3–4)
Astro Lab: Build an evidence-based seasons explanation Deliverable: One-page CER (Claim–Evidence–Reasoning) or concept map.
Claim (given): “Axial tilt is the primary cause of seasons on Earth.”
Evidence (from the demo):
- A data table for one latitude showing day length and noon altitude at the four anchor dates (use Station Mode to export/print).
- A “tilt = $0^\circ$” control test showing the seasonal cycle collapses.
- A short note showing perihelion is in early January and therefore distance cannot explain Northern Hemisphere summer.
Reasoning: Use the model language: connect the observed changes to declination $\delta$, and connect $\delta$ to tilt $\varepsilon$.
ASTR 201 extension (optional): Explain (in words) why the sunrise/sunset condition becomes $\cos H_0 = -\tan\phi\tan\delta$, and how that produces 24 h/0 h behavior near the poles.
Station version (for the Cosmic Playground capstone rotation)
Station card: Seasons (6–8 minutes) Demo setup: defaults → then click June Solstice and December Solstice.
Tip: Click Station Mode to add anchor-date rows and print/copy your table.Your station artifact (fill in):
- Control(s): tilt $\varepsilon$, day of year, latitude $\phi$
- Observable(s): day length, noon altitude, season labels
- Governing relationship: write one sentence connecting $\varepsilon$ → $\delta$ → day length
- Sanity check: what happens when $\varepsilon=0^\circ$?
- Connection sentence: “This matters for eclipses/phases because…”
Word bank + sanity checks Word bank:
- Axial tilt $\varepsilon$ (degrees): tilt of Earth’s spin axis relative to its orbital plane.
- Solar declination $\delta$ (degrees): the Sun’s “latitude” on the sky; it sets where the noon Sun is highest.
- Noon altitude (degrees): the Sun’s height above the horizon at local noon.
- Day length (hours): total daylight time in a day at a latitude.
- Equinox: $\delta \approx 0^\circ$; day and night are about equal.
- Solstice: $|\delta|$ is largest; one hemisphere has its longest day and highest noon Sun.
Sanity checks:
- If $\varepsilon=0^\circ$, then $\delta=0^\circ$ all year → day length stays about 12 h (no seasons).
- June vs December: at the same latitude, the hemisphere facing the Sun has longer days and a higher noon Sun.
- Perihelion is in early January, so Earth–Sun distance does not line up with Northern Hemisphere summer.
Assessment
Navigation
- Instructor hub: /demos/_instructor/
- Back to this demo guide: Guide
- Student demo: /play/seasons/
- This demo: Model · Activities · Assessment · Backlog
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: If distance caused seasons… Prompt: Earth is closest to the Sun in early January. If seasons were mainly caused by distance to the Sun, what would we expect to be true?
A. Both hemispheres should have summer at the same time
B. The Northern Hemisphere should have summer in January
C. Seasons should be opposite in the two hemispheres (what we actually observe)
D. Day length should not change during the yearCorrect: A (and B would follow for the Northern Hemisphere).
Reasoning: Distance-to-Sun is a global property; it cannot make one hemisphere hotter while the other is colder.
Distractors to listen for:
- C: students describing the real world but not explaining the causal logic.
- D: confusion between “distance causes seasons” and “tilt causes day length changes.”
Demo setup: Use defaults → click June Solstice and December Solstice; point to the North/South season labels and the Earth–Sun distance readout.
Clicker 2: What happens if tilt = $0^\circ$? Prompt: In the seasons demo, set axial tilt to $0^\circ$. What happens?
A. Seasons get stronger
B. Seasons disappear (every day is like an equinox)
C. Day length becomes 24 hours everywhere
D. Earth becomes closest to the Sun in JulyCorrect: B.
Reasoning: With $\varepsilon=0^\circ$, the declination stays $\delta=0^\circ$ all year, so the seasonal geometry vanishes.
Demo setup: Set Axial Tilt = $0^\circ$ → click through the four season presets and watch day length/noon altitude stop changing.
Clicker 3: Noon Sun altitude (qualitative) Prompt: At latitude $40^\circ$N, when is the noon Sun highest in the sky?
A. March equinox
B. June solstice
C. September equinox
D. December solsticeCorrect: B.
Reasoning: The Sun’s declination is most positive at the June solstice, so $|\phi-\delta|$ is smallest and the noon altitude is largest.
Demo setup: Set latitude to $40^\circ$N → click March equinox and June solstice and compare the Sun Altitude readout.
Short answer
Short answer 1: Opposite hemispheres Prompt (2–3 sentences): Explain why the Northern and Southern Hemispheres have opposite seasons. Your explanation must mention day length and/or noon Sun altitude (not distance).
Answer key (core idea): Earth’s tilt changes the Sun’s declination through the year. When the Northern Hemisphere tilts toward the Sun, it has longer days and a higher noon Sun (more direct sunlight), while the Southern Hemisphere simultaneously has shorter days and a lower noon Sun, and vice versa.
Short answer 2: A quick calculation (noon altitude) Prompt: Use the model formula $h_\odot = 90^\circ - |\phi-\delta|$. At latitude $\phi=40^\circ$N:
- What is $h_\odot$ on an equinox ($\delta=0^\circ$)?
- What is $h_\odot$ on the June solstice ($\delta\approx +23.5^\circ$)?
Answer key:
- $h_\odot = 90^\circ - |40^\circ-0^\circ| = 50^\circ$
- $h_\odot = 90^\circ - |40^\circ-23.5^\circ| = 73.5^\circ$
Sanity check: June should be higher than the equinox at northern mid-latitudes.
Exit ticket (1 minute)
Exit ticket: The seasons sentence Prompt: Fill in the blanks: “Seasons happen mainly because Earth’s _____ changes the Sun’s _____, which changes _____ and _____.”
Expected: tilt/obliquity; declination; day length; noon altitude (or “directness of sunlight”).
Model notes (deeper)
Navigation
- Instructor hub: /demos/_instructor/
- Back to this demo guide: Guide
- Student demo: /play/seasons/
- This demo: Model · Activities · Assessment · Backlog
Links Student demo:
/play/seasons/
Model code:packages/physics/src/seasonsModel.ts
UI/visualization code:apps/demos/src/demos/seasons/main.ts
What the demo is modeling (big picture)
The core “physics” in this demo is geometric. We treat Earth as a tilted sphere and compute how the Sun’s apparent position in the sky changes through the year. The main quantities the demo computes are:
- Solar declination $\delta$ (degrees): where the Sun sits north/south of the celestial equator.
- Day length $T_{\text{day}}$ (hours): how long the Sun stays above the horizon at a latitude.
- Noon Sun altitude $h_\odot$ (degrees): how high the Sun gets at local solar noon.
- Earth–Sun distance $r$ (AU): a small, secondary seasonal effect shown mainly to confront the “distance causes seasons” misconception.
Model parameters as implemented From
packages/physics/src/seasonsModel.ts(declination/day length/noon altitude):
- March equinox anchor day:
dayOfMarchEquinox = 80(day-of-year)- Tropical year length used in the declination model:
tropicalYearDays = 365.2422(days)From
packages/physics/src/seasonsModel.ts(distance + orbit-angle toy model):
- Eccentricity:
eccentricity = 0.017(dimensionless)- Perihelion anchor day:
perihelionDay = 3(~ Jan 3)- Year length used in the periodic distance/angle functions:
yearDays = 365.2422(days)From
apps/demos/src/demos/seasons/main.ts(calendar + visualization):
- Calendar year length used for date wrapping:
YEAR_DAYS = 365(days; non-leap-year calendar)- Physics year length used for distance/orbit display:
TROPICAL_YEAR_DAYS = 365.2422(days)- Perihelion anchor (passed into the model):
PERIHELION_DAY = 3The orbit is visually exaggerated for visibility (it is not drawn to scale).
Solar declination $\delta$ (the key seasonal driver)
The demo uses the standard obliquity geometry:
$$\delta = \arcsin!\big(\sin\varepsilon ,\sin L\big)$$
Let’s unpack each piece:
- $\delta$ is solar declination (degrees). Positive means the Sun is north of the celestial equator.
- $\varepsilon$ is axial tilt / obliquity (degrees). For Earth, $\varepsilon \approx 23.5^\circ$.
- $L$ is the Sun’s ecliptic longitude measured from the March equinox (radians in the computation).
The demo approximates $L$ as uniformly increasing in time:
$$L \approx 2\pi,\frac{(\text{dayOfYear} - \text{dayOfMarchEquinox})}{\text{tropicalYearDays}}$$
What this is really saying: tilt matters because it changes the Sun’s north–south position over the year. When $\delta$ is large and positive, the Northern Hemisphere is tilted toward the Sun (more direct sunlight and longer days); when $\delta$ is large and negative, it is tilted away.
Declination sanity checks
- If $\varepsilon = 0^\circ$, then $\sin\varepsilon = 0$ and $\delta = 0^\circ$ all year → no seasons from tilt.
- If $\text{dayOfYear} = \text{dayOfMarchEquinox}$, then $L=0$ and $\delta = 0^\circ$ → equinox.
- The maximum magnitude is $|\delta| \le \varepsilon$ → solstices.
Day length $T_{\text{day}}$ (hours)
Day length comes from the hour-angle condition at sunrise/sunset (geometric horizon crossing):
$$\cos H_0 = -\tan\phi,\tan\delta$$
$$T_{\text{day}} = \frac{2H_0}{15^\circ/\text{hour}}$$
Let’s unpack each piece:
- $\phi$ is observer latitude (degrees; north positive).
- $\delta$ is solar declination (degrees).
- $H_0$ is the sunrise/sunset hour angle (degrees): the angular distance in Earth-rotation angle from local noon to sunset.
- $15^\circ/\text{hour}$ is Earth’s rotation rate in angle per time.
What this equation is really saying: when the Sun is far north (positive $\delta$), northern latitudes have the Sun above the horizon for a larger fraction of the day; when the Sun is far south, they have shorter days.
Day-length sanity checks
- At the equator ($\phi=0^\circ$), $\tan\phi=0$ so $\cos H_0 = 0$ → $H_0 = 90^\circ$ → $T_{\text{day}} = 12\text{ h}$ (always).
- Near the poles, the formula naturally saturates to 24 h (midnight sun) or 0 h (polar night) when $|\tan\phi,\tan\delta| > 1$.
Noon Sun altitude $h_\odot$ (degrees)
The demo uses the standard spherical-geometry relationship for the Sun’s altitude at local solar noon:
$$h_\odot = 90^\circ - \left|\phi - \delta\right|$$
Let’s unpack each piece:
- $h_\odot$ is the Sun’s altitude above the horizon at local noon (degrees).
- $\phi$ is latitude; $\delta$ is declination.
What this is really saying: seasons change both how long the Sun shines and how directly it shines. The noon altitude is a simple proxy for “directness.”
Noon-altitude sanity checks
- At the equator ($\phi=0^\circ$) on an equinox ($\delta=0^\circ$), $h_\odot = 90^\circ$ (Sun overhead).
- At $\phi=40^\circ$ on the equinox, $h_\odot \approx 50^\circ$.
Earth–Sun distance $r$ (AU) (secondary, shown to confront a misconception)
The demo includes a simple distance variation model with eccentricity $e\approx0.017$ and perihelion around day $\approx 3$:
$$r \approx 1 - e\cos!\left(2\pi,\frac{(\text{dayOfYear}-\text{perihelionDay})}{\text{tropicalYearDays}}\right)$$
This is not intended to be a precise orbital solution; it is there to support the key teaching move: Earth is closest to the Sun in early January, so distance cannot be the main cause of Northern Hemisphere summer.
What’s simplified / not modeled
- We treat the declination cycle as uniform in time (no equation-of-time effects).
- We do not model atmospheric refraction, solar disk size, or elevation.
- We do not compute insolation explicitly; we use day length and noon altitude as interpretable proxies.
- The globe “terminator” is schematic: it is designed for conceptual clarity, not photorealistic shading.
Backlog
Navigation
- Instructor hub: /demos/_instructor/
- Back to this demo guide: Guide
- Student demo: /play/seasons/
- This demo: Model · Activities · Assessment · Backlog
How to use this backlog This is a planning guide. Keep it honest: “Impact” is about learning value, not cleverness.
| Priority | Impact | Effort | Category | Notes | Code entrypoint |
|---|---|---|---|---|---|
| P0 | High | Low | UX | DONE (2026-01-29): Added explicit “Not to scale” label for the orbit exaggeration and distance axis. | apps/demos/src/demos/seasons/index.html |
| P0 | High | Medium | Physics | PARTIAL (2026-01-29): Distance/orbit-angle math now uses the model’s tropical-year constant, but the calendar day-of-year wrap remains 365 (non-leap-year) for date labeling. | apps/demos/src/demos/seasons/main.ts + packages/physics/src/seasonsModel.ts |
| P1 | High | Medium | Pedagogy | Add an “insolation proxy” readout (relative daily energy) built from day length $\times$ cos(zenith angle). | apps/demos/src/demos/seasons/main.ts |
| P1 | Medium | Medium | Physics | Replace distance toy model with a simple Kepler-solver (mean anomaly → eccentric anomaly → true anomaly) for $r(t)$. | packages/physics/src/seasonsModel.ts |
| P1 | Medium | Low | UX | Add a “Compare hemispheres” toggle that pins both $40^\circ$N and $40^\circ$S readouts simultaneously. | apps/demos/src/demos/seasons/main.ts |
| P2 | Medium | Medium | UX | DONE (2026-01-30): Added a shared Station Mode overlay (steps + table + CSV copy + print) and a Help/Keys panel. | apps/demos/src/demos/seasons/index.html + apps/demos/src/demos/seasons/main.ts |
| P2 | Medium | Low | Accessibility | DONE (2026-01-29): Added a reduced-motion mode that defaults animations to step mode. | apps/demos/src/demos/seasons/main.ts |
| P2 | Low | Low | Pedagogy | Add 2–3 additional clicker items directly in the instructor guide after classroom pilots. | apps/site/src/content/instructor/seasons/assessment.md |