Put the four views in the README, and correct what one of them showed

The README described the app without showing it. Adds a screenshot to each
of the four sections it describes, captured from a real run at the current
state of the code rather than assembled or touched up.

Capturing them caught a claim that had gone stale. The galactic view's
readout still said everything inside 50 pc was real, which was true when
that string was written and has been wrong since the catalogue reached
250 pc. It now quotes the catalogue's own size and reach, so it cannot
drift again — and, usefully, that makes a stale screenshot self-evident:
the numbers are in the picture.

JPEG rather than PNG, at 1.1 MB for all four instead of about five. These
are dark scenes with fine gradients, where JPEG can band, so they were
checked at quality 88 rather than assumed to be fine.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WaySiNst4HhDXBHnMy8p5G
This commit is contained in:
Claude
2026-08-05 09:35:19 +00:00
parent efa9e4084a
commit 8191254b3c
6 changed files with 21 additions and 8 deletions
+17 -5
View File
@@ -7,6 +7,8 @@ NASA figures behind it.
This repo also hosts a small Claude Code plugin marketplace — see [Plugins](#plugins) below.
![The solar neighbourhood: 68 388 catalogued stars within 250 parsecs, on a polar grid lying in the galactic plane](docs/screenshots/galaxy-view.jpg)
## Running it
```bash
@@ -29,11 +31,13 @@ npm run e2e:typecheck
**Galaxy view** — the HYG catalogue out to 250 parsecs, 68 388 stars, as instanced
camera-facing billboards positioned from real RA/Dec/parallax, coloured by spectral index and
sized by magnitude. The field draws a budget of the most visible of them rather than all — see
"On how many stars" below. A polar grid in the galactic plane runs under them with a drop line
from each of the brightest, and names label the most prominent stars near whatever the camera is
looking at.
Behind them sits a backdrop of notable deep-sky objects and a Milky Way panorama.
sized by magnitude — all of them drawn, in one instanced call, with a budget in reserve for
catalogues larger than a GPU should be asked to hold at once (see "On how many stars" below). A
polar grid in the galactic plane runs under them with a drop line from each of the brightest,
and names label the most prominent stars near whatever the camera is looking at. Behind them
sits a backdrop of notable deep-sky objects and a Milky Way panorama.
![The galactic scale: the Milky Way's bar, bulge and five spiral arms, with the Sun on the Orion Spur](docs/screenshots/galactic-view.jpg)
**Galactic view** — keep pulling back and the neighbourhood becomes a point inside the Milky
Way: the bar and bulge, five spiral arms, the disc and a thin halo, with the arms and the
@@ -42,6 +46,8 @@ camera distance rather than switched, so the Sun stays where it really is — 8.
Orion Spur, between the Sagittarius and Perseus arms. See "On the Galaxy model" below for what
in it is measured and what is not.
![The solar system: orbit ellipses over a dashed reference grid marking 5 AU rings out to 35 AU](docs/screenshots/system-view.jpg)
**System view** — selecting a star flies the camera continuously into its system rather than
cutting to a new scene. The Sun gets the real solar-system bodies from JPL Horizons; other
stars get their confirmed exoplanets. Orbits are drawn as ellipses and bodies are propagated
@@ -62,6 +68,8 @@ bright rather than that it is large. That floor is bounded from both sides — l
the star reads at a glance, small enough that Venus's and Earth's orbits stay legible as rings
around it. Mercury's, three pixels wide at that range, does not survive either way.
![51 Pegasi b: a surface derived from its measured mass, orbit and host-star luminosity, beside the figures it was derived from](docs/screenshots/body-detail.jpg)
**Body detail** — a dedicated close-up scene and info panel for one planet, moon or exoplanet,
with real photography where NASA/ESA/USGS imagery exists, and a surface derived from the body's
own measurements where it does not. See "On surfaces that were never photographed" below.
@@ -69,6 +77,10 @@ own measurements where it does not. See "On surfaces that were never photographe
**Search** — name search across stars, solar-system bodies and exoplanets, navigating to the
same place an in-scene click would.
Screenshots are captured from a real run of the app at `docs/screenshots/`, and are regenerated
when the views they show change — the galactic one above records the catalogue size and reach in
its own readout, so a stale image is visible as one.
### Architecture notes
- **Rendering** runs on Three.js `WebGPURenderer`, which falls back to a WebGL2 backend
Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

@@ -421,8 +421,8 @@ export class GalaxySystemSceneComponent implements AfterViewInit, OnDestroy {
}
/**
* Blends between the two things that share parsec space: the catalogued 50 pc star field with
* its local grid, and the Milky Way model with its galactic one. Driven by how far the camera
* Blends between the two things that share parsec space: the catalogued star field with its
* local grid, and the Milky Way model with its galactic one. Driven by how far the camera
* has pulled back from the Sun, so the scale ladder reports where the view already is instead
* of switching it.
*/
@@ -572,7 +572,8 @@ export class GalaxySystemSceneComponent implements AfterViewInit, OnDestroy {
{ label: 'Arms modelled', value: `${MILKY_WAY_ARMS.length}` },
{ label: 'Catalogued', value: `${this.stars.length} stars` }
]);
this.hudNote.set('Galactic structure is an illustrative model built on measured arm geometry — no catalogue holds the Galaxy’s stars. Everything inside 50 pc is real.');
// Quotes the catalogue's own reach rather than a figure that has already been raised once.
this.hudNote.set(`Galactic structure is an illustrative model built on measured arm geometry — no catalogue holds the Galaxy’s stars. The ${this.stars.length} catalogued stars within ${LOCAL_GRID_RINGS_PC[LOCAL_GRID_RINGS_PC.length - 1]} pc are real.`);
return;
}