Live site: https://protonmatter.github.io/cosmos/
A landing page, three presentation decks on the solar system — the planets, the moons, and JunoCam — the JunoCam explorer and poster, and a beta iOS prototype called the Pocket Planetarium. Built as standalone HTML: no build step and nothing to install. Open any file in a browser, or serve the folder.
index.html is the interactive landing page. It links every deck, the beta
preview, and on to Sol.
| File | Format | What it covers |
|---|---|---|
index.html |
landing | Showcase page for the collection, with links to the beta and through to Sol |
solar-system.dc.html |
13 slides | The Sun, the eight planets and the Moon — one card each, with radius, mass, gravity, rotation, tilt, temperature, atmosphere and field strength |
the-moons.dc.html |
18 slides | Twenty-two moons across five systems: Mars, the Galileans, Saturn's ice moons and Titan, the Uranian five, Neptune's three |
junocam-deck.dc.html |
11 slides | JunoCam itself: the instrument, why its images arrive as raw strips, and the volunteers who process them |
junocam-explorer.dc.html |
interactive | The thirty processed Jupiter frames, filterable by region and treatment, with a zoomable viewer and a side-by-side compare mode |
junocam-poster.dc.html |
18 × 24 in | A single printable sheet on the same subject |
beta.html |
landing | Preview page for the beta, introducing the Pocket Planetarium |
pocket-planetarium.html |
beta / iOS | A scroll-driven journey from the Sun out to Neptune, with the moons and the JunoCam gallery below |
The decks are 1920 × 1080 and scale to fit the window. The poster prints at 18 × 24 inches.
The pages are plain HTML that declare their content declaratively; support.js,
deck-stage.js and deck-cinema.js provide the slide runtime, and classical.css the
shared look.
An early iOS prototype of Cosmos as a single scrollable app: the Sun, eight planets,
twenty-two moons and the thirty JunoCam photographs. beta.html introduces
it and, on a desktop browser, presents it inside a simulated 390 × 844 device frame:
On an iPhone, open pocket-planetarium.html full screen
instead for the intended experience:
Its assets live under beta/pocket-planetarium/. This is a
prototype, not a release — the decks are unaffected by anything in it.
Open a file directly, or serve the folder:
python3 -m http.server 8000
then visit localhost:8000/ for the landing page (or any file above).
Arrow keys or space advance the decks. Print to PDF gives one page per slide.
The site has no build step and never will — the pages open straight from the filesystem. The tooling below tests the site; it does not build it, and nothing it installs is served or deployed.
npm install
npm run serve # http://localhost:8000
npm test # validation, traceability, functional, e2e, regressionSubstantive changes are proposed as an RFC, specified as numbered
requirements in docs/specs/, and covered by tests that name the
requirement they discharge. docs/SDLC.md walks through the whole
path from idea to production, and CONTRIBUTING.md has the
practical detail.
.github/workflows/pages.yml deploys the repo root on
every push to main (Settings → Pages → Source: GitHub Actions), but only after the
same quality gate that guards pull requests has passed. If the gate is red the live
site is left untouched.
React, ReactDOM and Babel are vendored under vendor/, so the decks, the explorer,
the poster and the landing page carry no CDN dependency and work offline; only the
Google Fonts stylesheet is fetched remotely. The one exception is the Pocket
Planetarium prototype, which is served by a separate copy of the runtime that still
loads React and Babel from unpkg — recorded as deviation D-1 in
docs/specs/site.spec.md.
Every figure in the decks is read from the body and satellite tables in
Protonmatter/sol — apps/web/js/bodyData.js and
apps/web/js/moons.js — which cite the NASA Planetary Fact Sheets and IAU WGCCRE 2015
(Archinal et al. 2018) for radii and rotation. The descriptive text is that project's own,
unchanged.
Each deck ends with a sources slide giving per-image provenance.
Spacecraft imagery is NASA/JPL-Caltech and partner institutions, in the public domain:
- Sun and planets — SDO (Sun), MESSENGER (Mercury), Magellan (Venus), DSCOVR (Earth), Viking (Mars), JunoCam (Jupiter), Cassini (Saturn), Voyager 2 (Uranus, Neptune)
- Moons — Voyager 1 and 2, Galileo, Cassini–Huygens, Juno, Mars Reconnaissance Orbiter
- Jupiter and Io frames (
images/) — JunoCam raw data processed by volunteers, from the Mission Juno citizen-processing gallery (NASA/JPL-Caltech/SwRI/MSSS)
Two files are not public domain and are used under CC BY 4.0: textures/moon.jpg
and textures/saturn_ring.png, from Solar System
Scope, which composites NASA source data.
Some small or distant moons are shown as enlarged crops of low-resolution frames — Nereid especially, which Voyager 2 resolved to only a few dozen pixels. The sources slides say which.
Typography is Cormorant Garamond and Lora, both under the SIL Open Font License.
Deck code and layout: MIT, see LICENSE. Imagery and figures keep the terms
above; MIT does not extend to them.

