Terminal app where you can explore solar systems.
- Navigate around planets with your keyboard & mouse
- Has some neat visualizations with planet information
- Can switch between different star systems (Solar System, Alpha Centauri, etc)
- Real-time orbital animations for our solar system
git clone https://github.com/furan917/go-solar-system.git
cd go-solar-system
go mod download
go buildThat should work. If it doesn't, check if you have Go installed?
Basic navigation:
- Arrow keys = move around
- Enter = see planet details
- Numbers 1-9 = jump to specific planets/sun
- S = switch between star systems
- Q = quit (or Escape, whatever)
In the system list:
- Up/Down = navigate, Enter = switch to that system
- / = filter the list, then type. Backspace edits, Escape clears the filter
- Escape/B = close the list
When looking at planet details:
- M = view moons (if the planet has any)
- B = go back
- Q = still quits
Moon stuff:
- Up/Down = navigate moon list
- Enter = moon details
- Escape/B = back to planet
- ✅ All the basic planet browsing stuff
- ✅ Multiple star systems with actual exoplanet data
- ✅ Binary system support
- ✅ Orbital animations
- ✅ Asteroid and kuiper belt represented
- ✅ Load your own systems from your config directory
- ✅ Smooth sub-cell orbit curves, so it still looks right in a smaller terminal
- Some UI components need improvement
- The help system could be better (i.e could exist)
- Probably need more error handling
- Could use more star systems
go test ./...Tests exist and they pass (usually).
Uses real data from:
- Solar System OpenData API
- NASA/JPL databases
- Various exoplanet catalogs
- Solar System: Our neighborhood (obviously)
- Alpha Centauri: Closest star system with some interesting planets
- Kepler-452: Has "Earth's cousin" planet
- TRAPPIST-1: 7 Earth-sized planets, pretty cool
Drop a JSON file into ~/.config/go-solar-system/systems/ and it shows up in the system list next time you start the app. No rebuild needed.
mkdir -p ~/.config/go-solar-system/systems
cp my-system.json ~/.config/go-solar-system/systems/The filename becomes the system id, and a file that matches a bundled system's name replaces it. Set GO_SOLAR_SYSTEM_SYSTEMS_DIR to scan an extra directory as well. See systems/README.md for the format.
Orbit paths are drawn with braille characters, which gives them 8x the resolution of the terminal grid and keeps circles smooth in smaller windows. If your font lacks braille coverage you'll see blank boxes instead of curves. Fall back to plain dots with:
GO_SOLAR_SYSTEM_SIMPLE_ORBITS=1 go-solar-systemSure, if you want to help out:
- Fork it
- Make changes
- Don't break anything
- Submit a PR
Standard stuff.
MIT License - do whatever you want with it.
Built with Go and still a work in progress but it's getting there.
