Open curriculum · No prior knowledge assumed

Moonfield teaches the sky by running code you fully understand.

Astronomy, maths and physics from a standing start. You predict first, run second, and then go outside and find out whether reality agreed with you.

$ moonfield phase Moon phase for 2026-08-16 22:00 BST (2026-08-16 21:00 UTC) Phase: Waxing Crescent Illuminated: 19.9% of the visible disc Age: 4 days 3 hours 22 minutes since new Moon Trend: waxing (growing) Distance: 387,412 km ........## .............### ...............### ................#### ..................#### ..................#### ..................#### ................#### ...............### .............### ........##

The method

Observe, predict, run, validate, explain

Every lesson makes you commit to an answer before it shows you one. Then it makes you check that answer against the actual sky, and explain the gap.

The gap is the point. A model that agrees with reality teaches you one thing; a model that disagrees, and tells you why, teaches you how modelling works.

No AI required

Nothing here assumes an assistant. The struggle is not an obstacle in front of the learning; it is the learning.

No dependencies

Standard library only. Every formula is readable, and installation almost cannot fail.

Global by default

No assumed hemisphere, country, daylight saving, or access to a coastline.

Limits stated

Every model says what it assumes and where it breaks. The tide model is deliberately inadequate, and explains why.

Curriculum

Thirteen modules, six written

Every written module is readable here, in full, with nothing to install. Start at the beginning, or pick a module.

  1. 00Start hereReady
  2. 01Time and placeReady
  3. 02Moon phasesReady
  4. 03The Earth–Moon systemReady
  5. 04TidesReady
  6. 05Your local skyReady
  7. 06SeasonsReady
  8. 07PlanetsPlanned
  9. 08ConstellationsPlanned
  10. 09The physics underneathPlanned
  11. 10Orbital mechanicsPlanned
  12. 11RocketryPlanned
  13. 12VisualisationPlanned

Try it without installing anything

The Longitude Game

Latitude is a morning's work. Longitude took two centuries and cost thousands of lives. Find out why, and then set a clock that drifts four seconds a day, sail for two months, and see which coast you hit.

Play the Longitude Game →

Start

Five minutes to your first prediction

git clone https://github.com/Protonmatter/moonfield.git cd moonfield python3 -m venv .venv && source .venv/bin/activate pip install -e ".[dev]" moonfield doctor

Then open your first command and make a prediction before you run it. If you would rather read before installing anything, the whole curriculum is here in your browser.

Not for navigation. Moonfield is a teaching tool. Its tide model in particular is wrong by hours and metres, on purpose, and the curriculum explains exactly why.