Orrery is an animated view of the Solar System's minor planets, shown in the order they were discovered. Each dot is an asteroid on its orbit; new discoveries appear green, then settle to grey, or to their group's color, as the date advances. One app offers a 3D (Three.js) and a 2D (Pixi.js) renderer; switch in the options panel. Without WebGL2 the app opens the 2D view and says so.
| 3D (Three.js) | 2D (Pixi.js) |
|---|---|
![]() |
![]() |
Open [+] options (top left) for renderer and resolution, playback speed and
real time, then planet labels, orbit lines and minor-planet groups.
Speed 0 pauses, negative values reverse, and speed 1 advances 60 days per second.
Real time starts off and is remembered in this browser; a shared date still opens paused.
Scroll to zoom; in 3D, drag to orbit the camera. The date and on-screen count sit at
the bottom left (the active group at the committed date), and Orrery in the footer
reopens the introduction, which also links the source on GitHub.
Copy the address bar to share the current renderer and a jumped or paused UTC date
(?date=2005-05-03 for 3D, ?renderer=pixi&date=2005-05-03 for 2D). Three.js and the
1980 beginning are omitted, so / stays the default visit. Playing does not rewrite
the date every frame.
Use Node.js 24.15 or later in the 24.x line (see .tool-versions), then:
npm ci # install
npm run serve # dev server on port 3000 (or CONDUCTOR_PORT)
npm run build # production build in dist/
npx playwright install chrome firefox webkit
npm run test:pr # everyday checks
npm test # complete regression matrixSee development for setup details, test scopes, Conductor and the pull request template.
Orbital elements and discovery circumstances come from The Minor Planet Center (MPC): the MPCORB database and NumberedMPs.txt. Only numbered minor planets with a known discovery date are included, and orbits are drawn as fixed ellipses from those elements, so positions are approximate.
The app loads the catalogue published by orrery-data. Tests use an immutable historical 100k fixture that is never deployed.
- Rendering and options: playback clock, GPU asteroid rendering, resolution, benchmarks and measurements.
- Catalogue loading: chunked delivery, buffering and configured sources.
- Architecture: application/renderer ownership, state and switching.
- Three adapter: 3D presentation, graphics commitment and recovery.
- Browser tests: scopes, groups and CI budget.
- Deployment and release/rollback:
GitHub Pages publishes
masterafter checks pass.

