Repository navigation
What's new in v0.5.0
409 commits since v0.4.0 (2026-05-30). Highlights:
New visualisation layers
- Edenhofer local dust volume — a volumetric interstellar-dust field (Edenhofer et al. 2024) baked into the local-volume render, with per-field fade bands and a clamp pass that zeroes out sub-deadband voxels (#600, #592, #595, #599).
- Analytic Milky Way — the galaxy's emission field, dust lanes, HII regions, and a fluid ISM map are now generated analytically rather than from a sprite bag, with GPU-side placement for every cloud tier (#544, #547, #541).
- EOX Earth imagery bands — deep s2cloudless tile bands over Copenhagen (z8–z13), extended to a multi-region harvest layout with per-region coverage boxes (#584, #596, #597, #601).
- MCPM workbench — an in-browser WebGPU dev tool (ported from Polyphorm) for exploring the cosmic-web scalar field (#570).
- Cosmic-flow field — a CF4++ peculiar-velocity flow-field tool, with particle advection fixed to run on real elapsed seconds instead of rendered frames (#247, #566).
- S-star orbits — Keplerian orbits for the S-stars around Sgr A* (#528).
- Pluto and Charon — added as a textured binary pair (#563).
- Zone of Avoidance — an analytic guide band with curved lettering and a pickable InfoCard (#555).
- True-3D constellation figures — figures and name captions rendered in actual 3D rather than a flat overlay (#485).
- Nearby galaxy groups — 16 Local Volume groups seeded as a new structure category, with their own marker style and focus framing.
- Famous-galaxy curator — thumbnail coverage grew past 100 galaxies, with square-preserving deproject cropping, runtime calibration placement, and thumbnails now click through to the matching sky viewer (#624, #235, #234, #229).
Solar system & Earth
- Photoreal Earth — PBR surface shading, night lights, relief, and cloud/atmosphere layers (#453), followed by a surface virtual-texture pipeline for streamed tile detail (#517) and its R2 deployment (#527).
- Earth RTC surface camera — ground-prep for per-body render slabs (#635) and a first surface foundation (#617), with the near-plane pushed down to a ~15 m altitude-keyed floor (#613), tile-plan stability fixes (#614, #594), and a deep-zoom debug cockpit for tuning it (#616).
- Planet & moon rendering — textures, sun-relative lighting, axial tilt, Saturn's rings and glints (#445); six-shell photoreal atmospherics with Minnaert limb darkening (#460), later split into physically distinct constituents and recalibrated per planet (#572, #573); physically-based Saturn ring lighting (#462); Moon-first normal-map shading (#465).
- Solar-system time control — animated ephemeris, a sim clock, a follow camera, and a TimeBar UI (#472); body positions now resolve at the live sim time rather than a hardcoded J2000 epoch (#612).
- HDR & exposure — extended-range HDR output as a Display toggle (#497) and an EV exposure slider (#524).
- Star + body picking — foreground bodies and stars became pickable, with focused-star and pick-sphere fallbacks (#448, #520, #469).
- Home means Earth — booting now lands on a sunlit Earth with a "go home" intent rather than an arbitrary seed (#483).
- Grand tour — "The Long Way Out" beats (Local Group → neighbourhood → Laniakea → M88), a progress rail, caption/nav overlay, and a deterministic 4K60 Playwright/CDP recorder (#400, #404, #414, #418, #459); standalone clip export to mp4 (#534) and a looping-clip capture mode nine times faster at full resolution (#557, #558, #564).
Engine & renderer architecture
- Engine subsystem bundles — an eight-rung refactor sequence consolidating renderer wiring behind declarative registries: a GPU-handle registry, fade-row derivation, volume-ingest folded from five copies into one upload/unload pair, wake-vote logic, debug-overlay settings, and — in rung 8 — a full label mechanism unification (#571, #575, #579, #583, #591, #598, #610, #618, #621).
- Renderer unification — a Compositor primitive, ContentLayer registry, and FrameStep program replaced the ad hoc per-pass wiring, with picking folded into the same path (#416, #420, #386).
- State migration to Redux — camera pose, selection, tour/clip control, and UI state moved off the settings-store/zustand mix and into typed RTK slices behind an Intent-centric convention (ADR 0007) (#345, #357, #350, #380, #351).
- Galaxy point renderer — three-vertex circumscribing-triangle billboards, baked PA cos/sin + absolute magnitude into the vertex record, and physical surface-brightness rendering with a radial colour gradient (#428, #411, #502).
Labels, InfoCard & settings
- Label mechanism unification — one label pipeline for structures, bodies, and stars, replacing several parallel label paths (rung 8, #618).
- InfoCard — derived star/planet cards with tooltips and search/selection UX (#471), adaptive lookback units with a blueshift distance fallback (#620), and a mobile bottom-sheet layout (#341).
- Structure search — clusters, superclusters, voids, and groups are now searchable from the command palette (#398).
- Settings panel — a compact Slider rollout with collapse/toggle cleanup (#493) and a field-of-view slider in Display (#619).
- Mobile — hover disabled on touch input, and touch orbit/pinch fixed on iOS.
Data pipeline & catalogs
- SDSS DR17 — a complete pull replaces the silently truncated 500k-row CSV (#551).
- Galaxy catalog format v9 — adds stellar masses on a hashed per-family data layout (#545).
- Gaia star catalog — a canonical Rust builder plus a new SKST runtime format, registry, loader, and renderer (#443, #434, #442).
- Local-volume distances — refined with a blueshift distance fallback for the InfoCard (#620).
- DESI deep cone — an ultra-deep patch through Corona Borealis, plus a table of drill geometries (wedge, SGW box) (#417, #421).
- fetch-prebuilt-data — a new tool that pulls the deployed catalogs straight into
public/data/, for working against real data without a full local build (#630). - Deploy — R2-synced data files now ship gzip'd, with matching edge-cache rules (#554).
Testing & tooling
- Headless GPU-timing perf harness (
npm run perf) — scannable CLI output plus tier testing and an in-panel FPS readout (#464). - ts-morph refactor CLI — rename/extract/inline/delete/refs/move across the codebase with import-safe rewrites, replacing the earlier move-files-only tool (#476, #440).
- typecheck:fast — a TypeScript 7 (
tsgo) pass over both tsconfigs, ~7x faster thantscfor the inner loop (#627). - ESLint correctness gate plus house-convention tests, now enforced in CI (#511).
- deletion-audit skill — the standing leanness counterweight, run after fix waves and at feature-done (#629).
- Dev tool pages — the galaxy, MCPM, and flow dev tools now ship as
/galaxy/,/mcpm/, and/flow/pages rather than local-only scripts (#626). - Suite pruning — 409 change-detector tests removed as part of a broader testing-conventions pass (#426).
Documentation
- README rewrite — split into a top-level README,
science.md, andDATA.md, with new capture screenshots and an updated OG image (#633). - Powers-of-ten scale ladder — a doc mapping every zoom rung to its source imagery (#401).
- Architecture decision records for intent-centric state (ADR 0007), volume-field settings (ADR 0006), and the renderer unification, plus specs for the animation system, Earth RTC surface camera, and Edenhofer dust volume.
Testing
- 7565 tests across 1149 files at this tag (up from 1831 tests across 289 files at v0.4.0).
Cite this release
DOI: https://doi.org/10.5281/zenodo.20037028 (concept DOI — always resolves to the latest version)
A versioned DOI for v0.5.0 specifically will be minted by Zenodo within minutes of this release going live.