Skip to content

Repository files navigation

Planet Viewer

A 3D experiment: the eight planets, Mercury to Neptune, rendered live in the browser from real NASA and USGS imagery. Click and drag to spin a planet, use the arrows to move between bodies, and use the panel on the right to change the lighting, clouds, weather, and atmosphere. It runs at 60 fps on a modern GPU.

Everything you see is built from public-domain science data rather than artwork. Earth uses NASA's Blue Marble and Black Marble imagery at up to 16K, with real cloud cover that can be replaced by yesterday's actual weather from NASA's satellites. A Sun built from this morning's Solar Dynamics Observatory frames is in the code but parked for now. The other planets and Saturn's rings come from NASA and USGS global maps, and the star field behind them is NASA's Deep Star Maps with the brightest stars placed from the Gaia catalog. Small scripts fetch each source and turn it into web-sized textures; the rendering is custom shaders on top of Three.js.

Run it

npm install
npm run assets     # downloads and builds every texture (~3 GB of source imagery, several minutes)
npm run dev

Open http://localhost:5173. ?body=mars opens a specific body.

Credits

NASA Earth Observatory, NASA GIBS, NASA SDO, NASA SVS, and USGS Astrogeology for the imagery (public domain). Solar System Scope for the bootstrap planet textures (CC BY 4.0). Gaia DR2 (ESA/Gaia/DPAC) for star positions. Code is MIT licensed.

About

Planet Viewer: real-time, photoreal Sun and planets in the browser. Three.js, NASA/USGS imagery.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages