helio
ArchivedSolar system renderer built on Three.js with accurate orbital mechanics, real ephemeris data, and a time-scrubbing UI.
helio renders the solar system in real time using actual NASA JPL ephemeris data for planetary positions. It was originally built to learn Three.js but ended up being a fairly complete implementation of the gravitational n-body problem.
Technical details
Orbital mechanics
Planetary positions are computed using the VSOP87 analytical series, giving sub-arcsecond accuracy for dates within a few thousand years of J2000.
Rendering
Each body is rendered with a physically-based material. The sun uses a custom shader with animated surface turbulence. Atmospheres are done with a scattering shader based on Sean O'Neil's GPU Gems 2 article.
Time scrubbing
The timeline UI lets you scrub through any date from 3000 BCE to 3000 CE. At real-time speed it tracks actual planetary positions.
Controls
- Drag to orbit
- Scroll to zoom
- Click any body to lock the camera to it
Tto open the time scrubberLto toggle orbital path lines
Status
Feature-complete. Not actively developed but occasionally updated for dependency security.