https://github.com/muichi-mon/dragonfly
A Java-based space mission simulator, from Earth to Titan, that models the Solar System with N-body physics.
https://github.com/muichi-mon/dragonfly
dynamic-system-modeling n-body-problem n-body-simulation ode-model ode-solver space-exploration space-mission space-mission-design
Last synced: 28 days ago
JSON representation
A Java-based space mission simulator, from Earth to Titan, that models the Solar System with N-body physics.
- Host: GitHub
- URL: https://github.com/muichi-mon/dragonfly
- Owner: muichi-mon
- License: mit
- Created: 2025-07-30T12:36:52.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-17T16:58:22.000Z (10 months ago)
- Last Synced: 2025-08-17T18:29:29.568Z (10 months ago)
- Topics: dynamic-system-modeling, n-body-problem, n-body-simulation, ode-model, ode-solver, space-exploration, space-mission, space-mission-design
- Language: Java
- Homepage:
- Size: 6.73 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π Space Odyssey to Titan
A Java-based simulation of an interplanetary mission from Earth to Titan, Saturnβs largest moon β complete with **n-body simulation**, **ODE solvers**, **dynamic systems**, and **trajectory optimization** using **gradient descent**.
## π Overview
This project models a naive space mission scenario where a probe is launched from Earth and navigates the Solar System to reach Titan. The system simulates gravitational interactions between multiple celestial bodies and computes the spacecraft's trajectory using various numerical ODE solvers.
The project also implements **random-restart finite-difference gradient descent** to search for the optimal initial probe state vector (position and velocity) that results in a successful Titan rendezvous.
---
## β¨ Features
- **3D N-body Simulation** of planets, moons, and spacecraft
- **Numerical ODE Solvers**: Euler, RK4, and more
- **Dynamic Solar System Model** with configurable bodies
- **Trajectory Optimization** using gradient descent
- **Random Initial State Exploration** for broad search space coverage
- **JavaFX 3D Visualization** of the Solar System and probe path
---
## π Tech Stack
- **Language**: Java 17+
- **UI**: JavaFX 3D Visualization
- **Math Libraries**: Custom vector and matrix utilities
- **ODE Solvers**: Custom implementations of Euler and RK4
- **Optimization**: Gradient descent with random restarts
---
## π Project Structure
```bash
dragonfly/
βββ src/main/java/io/github/rajveer/dragonfly/
β βββ gui/ # GUI setup and controller
β βββ missions/ # Mission planning & optimization
β βββ ode/ # ODE solver implementations (Euler, RK4, etc.)
β βββ simulation/ # Example simulations for other dynamic systems
β βββ systems/ # System models (e.g., Solar System)
β βββ utils/ # Math & helper utilities
β βββ SolarSystem3D.java # JavaFX 3D visualization entry point
βββ src/main/resources/ # Textures, configs, assets
βββ pom.xml # Maven project file
```
## βοΈ Getting Started
### Prerequisites
- Java 17 or later
- Maven or Gradle build system
### Running the Simulation
```bash
# Clone the repository
git clone https://github.com/muichi-mon/dragonfly.git
cd dragonfly
```
```bash
# Compile and run
mvn clean install
mvn clean javafx:run
```
---
## π Example Interface
### GUI Solar System Simulation
