An interactive, GPU‑accelerated star atlas built from the Hipparcos catalog with real‑time enrichment (temperature, absolute magnitude, estimated radius) plus a provenance‑aware horoscope / ephemeris service. This page documents what data we use, how we transform it, and where to explore.

Explore

Star Atlas

Fly through 118k+ stars with adaptive labels, realistic color modes, and HIP search. Labels prioritize stars by proximity & apparent size.

Open Atlas ↗

Astrology

Horoscope Engine

Computes Sun, Moon, phase, illumination, Ascendant, and optional bright star alignments with configurable magnitude & orb limits.

Try Horoscope ↗

Accounts

Registration & Ownership

Claim a star name (purchase flow WIP), verify email with a 6‑digit code, and store ownership metadata for overlays in the atlas.

Register ↗

Data Sources

The primary stellar dataset is a normalized stars.json derived from the Hipparcos catalog (ESA). Each record includes: hip, ra, dec, apparent mag, color index bv, parallax plx, proper motion (pmRA, pmDE), and (optionally) spType.

Transformation Pipeline

1. Load & Sort

All stars are filtered for numeric magnitude, then sorted ascending (brightest first) to prioritize early instancing & label consideration.

  • Filter invalid magnitudes
  • Sort by mag
  • Index HIP → array slot

2. Enrich

Per star we derive:

  • Absolute magnitude: M = m - 5 (log10(d) - 1)
  • Temperature (Ballesteros) from B−V
  • Luminosity from M vs. Sun
  • Radius via R = sqrt(L) / (T/Tsun)^2
  • Spectral & luminosity classes (heuristics)

3. Position

We apply proper motion offset (J2000 → epoch year) and optional precession. Distance is logarithmically compressed: d' = log10(pc+1) * base * mult.

This preserves spatial feel while keeping far stars inside the camera frustum.

4. Render

Billboard atlas (animated phases) or legacy Phong spheres. Colors from B−V (table or blackbody). Sizing either magnitude/spec heuristic or physical radius compression (power 0.35).

5. Labels

Every star can have a label. Auto mode keeps ≤10 visible: scored by apparent pixel size, distance, and screen-center weight. Grid / all / proximity modes also available.

Screen‑space anchor ensures banner never covers stellar core.

6. Ownership Overlay

When backend is up, ownership & custom names patch star objects at HIP search time; otherwise local catalog values are used.

Running Locally

cd NOVA
npm install
node server/index.js   # API (stars, purchases, horoscope)
# Open index.html directly or via a static server
    

Tip: If the backend is offline, HIP searches & labels still work using stars.json; purchase & ownership fields just remain blank.

Key Features

API Snapshot

GET  /api/status
GET  /api/stars?limit=&offset=&mag_lt=&mag_gt=
GET  /api/stars/:hip
POST /api/purchase            (if DB available)
POST /api/horoscope           (returns sun, moon, ascendant, phase, optional star alignments)
    

Architecture Overview

The client bundles scene + star controller logic. A small Express server provides data overlays & optional persistence. SQLite (if present) adds purchase / ownership state. Labels & highlight effects are GPU‑friendly sprites with screen‑space placement to avoid overlap with star cores.

Next Steps