An outer space / gravity sim with missions and a systems gallery
6
stars
9
commits
TypeScript
primary language
Sep 6, 2026
updated
A serverless web app for building and viewing realistic solar systems in 3D: N-body gravity simulation, time scrubbing, and full control over planet creation (name, color, type, mass, radius, spin, axial tilt, orbit).
Svelte 5 + Vite + TypeScript + Three.js.
npm i
npm run dev
Other scripts: npm run build, npm run preview, npm run check (type checking),
npm test.
Distances are true to scale; body radii are exaggerated for visibility, since at true scale an Earth radius is ~4e-5 of its orbit.
The current system autosaves to localStorage and restores on reload. Only body
definitions and the current time are stored — the trajectory is deterministic, so
everything else is recomputed on load. Named save slots and JSON export/import
live in the System menu; exported files are pretty-printed and hand-editable, and
imports are validated with errors that name the offending field.
The build is a static dist/ directory with no backend, so any static host works.
npm run build
npm run preview # serve dist/ locally at http://localhost:5317
Vercel. vercel.json is checked in and configures the build,
output directory, and an SPA rewrite. Either import the repo at
vercel.com/new or run npx vercel --prod.
GitHub Pages. Pages serves from a subpath, so the build needs a matching base path, otherwise every asset 404s:
npx vite build --base=/<repo-name>/
Then publish dist/ to the gh-pages branch (npx gh-pages -d dist) and point
Pages at that branch. A user/organization site served from the domain root needs
no --base.
Netlify / Cloudflare Pages. Build command npm run build, publish directory
dist. Add a catch-all redirect to /index.html if you add routing later; the
app currently has none.
This is a personal project. No support is provided. The repo is public, and while issues and PRs are welcome, you may not receive a response.
9 commits
TypeScript
75.6%
Svelte
20.3%
JavaScript
2.4%
Python
1.4%
An outer space / gravity sim with missions and a systems gallery
6
stars
9
commits
TypeScript
primary language
Sep 6, 2026
updated
A serverless web app for building and viewing realistic solar systems in 3D: N-body gravity simulation, time scrubbing, and full control over planet creation (name, color, type, mass, radius, spin, axial tilt, orbit).
Svelte 5 + Vite + TypeScript + Three.js.
npm i
npm run dev
Other scripts: npm run build, npm run preview, npm run check (type checking),
npm test.
Distances are true to scale; body radii are exaggerated for visibility, since at true scale an Earth radius is ~4e-5 of its orbit.
The current system autosaves to localStorage and restores on reload. Only body
definitions and the current time are stored — the trajectory is deterministic, so
everything else is recomputed on load. Named save slots and JSON export/import
live in the System menu; exported files are pretty-printed and hand-editable, and
imports are validated with errors that name the offending field.
The build is a static dist/ directory with no backend, so any static host works.
npm run build
npm run preview # serve dist/ locally at http://localhost:5317
Vercel. vercel.json is checked in and configures the build,
output directory, and an SPA rewrite. Either import the repo at
vercel.com/new or run npx vercel --prod.
GitHub Pages. Pages serves from a subpath, so the build needs a matching base path, otherwise every asset 404s:
npx vite build --base=/<repo-name>/
Then publish dist/ to the gh-pages branch (npx gh-pages -d dist) and point
Pages at that branch. A user/organization site served from the domain root needs
no --base.
Netlify / Cloudflare Pages. Build command npm run build, publish directory
dist. Add a catch-all redirect to /index.html if you add routing later; the
app currently has none.
This is a personal project. No support is provided. The repo is public, and while issues and PRs are welcome, you may not receive a response.
9 commits
TypeScript
75.6%
Svelte
20.3%
JavaScript
2.4%
Python
1.4%