An interactive 3D map of the Milky Way rendered in the browser. Fly through 119,614 real stars from the HYG stellar catalog, inspect individual stars, and pull live exoplanet data straight from the NASA Exoplanet Archive.
Built by Oskari Kaile
- 119,614 real stars — positions, magnitudes, and spectral types from the HYG v4.2 database
- First-person flight controls — WASD + mouse look, boost, cruise speed adjustment
- Star inspector — click any star to see its distance, magnitude, spectral class, and constellation
- Live exoplanet data — queries the NASA Exoplanet Archive TAP service on demand
- Exoplanet filter — toggle to highlight only stars with confirmed exoplanets
- Render modes — High / Med / Low point-count tiers with auto-downshift below 30 fps
- No build step — pure ES modules via import map, runs straight from the file system
| Input | Action |
|---|---|
W A S D |
Move forward / left / backward / right |
Space / Ctrl |
Move up / down |
Shift |
Speed boost ×8 |
+ / − |
Adjust cruise speed |
Mouse |
Look around (click canvas to capture) |
Click star |
Open inspector panel |
Esc |
Release cursor |
- Three.js r160 — WebGL rendering via ES module import map
- HYG Database v4.2 — stellar catalog (astronexus)
- NASA Exoplanet Archive TAP — live exoplanet records
- Vanilla JS, no framework, no bundler
├── index.html # Shell, HUD markup, import map
├── styles.css # All styles — observatory aesthetic
├── src/
│ ├── main.js # Entry point, boot sequence
│ ├── starData.js # CSV parser, HYG catalog loader
│ ├── galaxy.js # Three.js scene, star geometry, render tiers
│ ├── controls.js # First-person flight controls
│ ├── ui.js # HUD updates, inspector panel, sol label
│ ├── exoplanetAPI.js # NASA TAP queries
│ └── performance.js # FPS monitor, auto-downshift logic
└── data/
│ └── hyg_v42.csv # HYG stellar catalog
└── assets/
└── O-logo.png # Logo
└── O.png # Mini Logo
└── screenshot.png # screenshot of the project
| Dataset | Source | License |
|---|---|---|
| HYG v4.2 stellar catalog | astronexus/HYG-Database | CC BY-SA 2.5 |
| Exoplanet records | NASA Exoplanet Archive | Public domain |
No install needed — just serve the directory over HTTP (required for ES modules and the CSV fetch):
npx serve .
# or
python -m http.server 8000Then open http://localhost:8000.
MIT — see LICENSE for details.
