Team project, Luna-7 / SE-15A · 2025
LUNACY: 3D Solar System & Planetary Visualization System
A real-scale, interactive 3D simulator for the Solar System and near-Earth asteroids. Team project for NASA Space Apps 2025, selected as a Global Nominee.
- Godot Engine 4
- C#
- Solar System Open Data API
- ESA NEO API
The problem
Near-Earth objects are tracked continuously by NASA and ESA, but the public feeds land as dense JSON. Close-approach dates, orbital elements, miss distances: most people will never parse that. Awareness of what's zipping past Earth gets lost in tables. LUNACY exists to make the data legible. A live, free-fly 3D scene where every planet and asteroid sits on its real orbit, at real scale.
What I built
A scene-based Godot 4 structure with C# scripts rendering all eight planets with accurate orbital mechanics, alongside 30,000+ individual bodies (planetary satellites plus the near-Earth asteroid catalog). A free-fly camera with WASD plus mouse plus shift-to-sprint lets you travel anywhere in the system without loading screens.
Two live data feeds run the scene. The Solar System Open Data API for planetary orbital elements, and the ESA NEO API for asteroid trajectories and miss distances. Both get normalized into a common schema the renderer can consume, with a caching layer so the scene stays usable offline during demos.
The rendering pipeline is tuned for large-scale celestial data in real time. Pooled meshes for small bodies, LOD on planets, and per-orbit trajectory integration so scrubbing the time slider evaluates motion smoothly instead of snapping between samples.
Key decisions
Godot 4 + C# over Unity or Three.js
alternative · Three.js in the browser
Godot gave the team faster iteration on physics and a single executable that jurors could run offline. Browser WebGL would have hit memory ceilings long before we reached 30,000 bodies.
Two upstream APIs instead of one
alternative · Scrape everything from a single NASA feed
The Solar System Open Data API has better planetary orbital elements. ESA NEO is authoritative on asteroid trajectories. Pulling each from its best source gave the scene consistent physics without hand-tuning.
Real-scale orbital mechanics with a perception toggle
alternative · Exaggerate every body so it's visible at default zoom
Accurate scale is the whole point, but at true scale most asteroids are sub-pixel next to Earth. A perception toggle swaps between dramatic and true-scale modes so the demo communicates both intuition and honest numbers.
Free-fly camera instead of on-rails tours
alternative · Guided camera paths that auto-pan between planets
Curiosity-first exploration matches how recruiters and students actually interact with a solar-system scene. A free-fly rig with shift-to-sprint lets anyone get where they want in seconds.
Outcomes
Bodies rendered
30,000+
Planets, satellites, and the near-Earth asteroid catalog
Live data sources
2 APIs
Solar System Open Data · ESA NEO
NASA Space Apps 2025
Global Nominee
Selected from 15,000+ teams across 160+ countries
Stack
Godot 4 + C#
100% C# codebase, GPL-3.0 licensed