SolarApp

A real-time solar system simulator using Keplerian orbital mechanics and modern game development

Game Premise

SolarApp is a sophisticated .NET 8.0 + MonoGame Framework 3.8.1 desktop application that simulates our solar system in real-time. Using actual orbital-element data and Keplerian orbital mechanics, it positions and renders:

🌍 8 Planets

Complete planetary orbits with accurate orbital mechanics, positions updated dynamically based on date/time.

🌙 400+ Moons

Planetary satellites with hierarchical orbital calculations relative to their parent planets.

⭐ 10,000+ Asteroids

Dwarf planets and minor bodies rendered from MPC orbital element databases.

☄️ 1,700+ Comets

Periodic and long-period comets with precise orbital trajectories.

Architecture Overview

SolarApp is built on a layered, dependency-injection-driven architecture with clear separation of concerns:

Three Major Components:
  • Domain Layer (libraries/) — Keplerian physics, spacecraft mechanics, orbital calculations, game state management
  • Rendering Layer (SolarApp.Rendering/) — MonoGame-agnostic rendering abstraction with pluggable decorators
  • UI Hosts (SolarApp.Game, SolarApp.Sandbox) — MonoGame Game class, composition root, user interfaces

Technology Stack

Key Features

Dynamic Orbital Mechanics

Every celestial body's position is calculated in real-time using Keplerian orbital elements (eccentricity, semi-major axis, inclination, etc.). The system updates planetary orbital elements over time to maintain accuracy across decades or centuries of simulation.

Layered Rendering Pipeline

SolarApp uses a flexible rendering architecture with pluggable decorators:

Data-Driven Design

The simulation loads orbital data from generated JSON files built from authoritative sources (MPC, JPL). This allows easy updates and integration of new celestial bodies as data becomes available.

Learn More

Explore the deep dives into specific aspects of the project:

Astrial API & Physics

Understand how Kepler's equations power accurate orbital calculations and gravitational influence modeling.

Read Article →

UX Architecture

Explore the MVVM pattern, SOLID principles, and the blend of modern UI design with MonoGame.

Read Article →

Data Creation Pipeline

Discover how we built the solar system database using Python, Jupyter notebooks, and sprite generation.

Read Article →

AI-First Development

Learn how MemPalace and Claude.md files enforce standards and enable AI-assisted development.

Read Article →

Getting Started

To run SolarApp locally:

# Build the solution
dotnet build SolarApp.sln

# Run the production UI
dotnet run --project SolarApp.Game/SolarApp.Game.csproj

# Run the sandbox (development/experimental)
dotnet run --project SolarApp.Sandbox/SolarApp.Sandbox.csproj

# Run all tests
dotnet test SolarApp.sln

Requirements: .NET 8.0 SDK, Windows 10+ (MonoGame WindowsDX backend)