AODAP — Autonomous Orbital Debris Avoidance & Prediction
A real-time satellite collision prediction system that combines a Machine Learning backend with a 3D Unity simulation frontend to detect, assess, and visualize orbital debris collision risks.
| Home Screen | High Risk Alert |
|---|---|
![]() |
![]() |
| Warning State | Safe State |
|---|---|
![]() |
![]() |
| Backend API | Unity Editor |
|---|---|
![]() |
![]() |
┌─────────────────────────────┐ HTTP POST ┌──────────────────────────────┐
│ Unity 3D Simulation │ ──── /predict_batch ───▶ │ FastAPI ML Backend │
│ (Frontend) │ │ │
│ │ ◀── { max_risk, │ • Logistic Regression │
│ • Real-time orbital viz │ danger_index } ──── │ • StandardScaler │
│ • Debris tracking │ │ • 230K training samples │
│ • Risk-level color coding │ │ │
└─────────────────────────────┘ └──────────────────────────────┘
-
Data Collection — The system uses a dataset of 230,000+ simulated orbital encounters with features:
distance— Distance between satellite and debris (km)rel_speed— Relative speed (km/s)approach_rate— Rate of approach (km/s)tca— Time to Closest Approach (seconds)d_cpa— Distance at Closest Point of Approach (km)
-
ML Model — A Logistic Regression classifier (with class-weight balancing) is trained to predict collision danger labels. Features are normalized using
StandardScaler. -
Real-Time Prediction — The Unity frontend sends batches of debris orbital parameters to the FastAPI
/predict_batchendpoint, which returns the maximum collision probability and the index of the most dangerous object. -
Visualization — The Unity 3D simulation renders risk levels in real-time with color-coded alerts (Safe → Warning → High Risk).
- Python 3.9+
- Unity (for building/modifying the simulation)
cd AODAP-ML-Backend
# Create virtual environment
python -m venv .venv
# Activate it
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate
# Install dependencies
pip install fastapi uvicorn joblib numpy scikit-learn pandas
# Run the server
uvicorn main:app --host 0.0.0.0 --port 8000The API will be available at http://localhost:8000.
cd AODAP-ML-Backend
python train_model.pyThis regenerates satellite_collision_predictor.pkl and orbital_scaler_v1.pkl.
| Method | Endpoint | Description |
|---|---|---|
GET |
/ |
Health check — returns {"status": "online"} |
GET |
/health |
Health check — returns {"status": "online"} |
POST |
/predict_batch |
Batch collision prediction |
{
"objects": [
{
"distance": 50.0,
"rel_speed": 7.5,
"approach_rate": -6.2,
"tca": 5.0,
"d_cpa": 2.1
}
]
}{
"max_risk": 0.92,
"danger_index": 0
}KesslerNET/
├── AODAP-ML-Backend/
│ ├── main.py # FastAPI prediction server
│ ├── train_model.py # Model training script
│ ├── satellite_collision_predictor.pkl # Trained ML model
│ ├── orbital_scaler_v1.pkl # Feature scaler
│ └── dataset.csv # 230K orbital encounter records
├── ScreenShots/ # Application screenshots
│ ├── HomeScreen.png
│ ├── High Risk.png
│ ├── Warning.png
│ ├── Safe.png
│ ├── Backend.png
│ └── Unity Editor.png
├── .gitignore
└── README.md
Note: The Unity simulation frontend is a compiled build and is not included in this repository due to file size constraints. Contact the maintainer for the Unity source project.
| Component | Technology |
|---|---|
| ML Model | Scikit-learn (Logistic Regression) |
| Backend API | FastAPI + Uvicorn |
| Data Processing | Pandas, NumPy |
| Model Serialization | Joblib |
| 3D Simulation | Unity Engine |
| Language | Python 3.x, C# (Unity) |
The model is trained on 230,000+ synthetic orbital encounter samples using:
- Algorithm: Logistic Regression with balanced class weights
- Features: 5 orbital mechanics parameters
- Scaling: StandardScaler normalization
- Split: 80/20 train/test
Run python train_model.py to see the full classification report.
This project is open source. See the LICENSE file for details.
Yash Sahare — @yashsahare05
Protecting satellites from the Kessler Syndrome, one prediction at a time. 🚀





