A full-stack application that predicts potential satellite collisions by fetching live orbital data (TLEs), simulating future orbits using orbital mechanics, and detecting near-miss events. This project uses modern tools like FastAPI, Skyfield, and soon CesiumJS for 3D visualization.
๐ Currently in active development. Phase 1 (live TLE fetch) and Phase 2 (collision detection engine) are complete.
With thousands of satellites in orbit and more being launched every month, the risk of accidental collisions is growing. This project aims to:
- Fetch live orbital data from public sources
- Simulate satellite trajectories using real physics
- Detect close-approach scenarios
- Raise collision alerts
- Visualize orbits and alerts in a 3D dashboard (coming soon)
| Area | Tool | Description |
|---|---|---|
| Backend API | FastAPI | High-performance async API framework |
| Orbit Propagation | Skyfield, sgp4 | TLE parsing & orbital mechanics |
| Database | SQLite (PostgreSQL ready) | Stores satellites + alerts |
| ORM | SQLAlchemy | Manages DB models + queries |
| Scheduling | APScheduler | Background tasks for periodic updates |
| Frontend (WIP) | React + Tailwind | Collision dashboard & search interface |
| 3D Visualization | CesiumJS (Planned) | Orbit rendering engine |
- FastAPI app with modular structure
- SQLite + SQLAlchemy ORM
- CORS support for frontend access
- Pulls TLEs from Celestrak's active satellite feed
- Stores satellite name, TLE line 1, and TLE line 2
- Skips unnecessary re-fetching via
TLEMetadatatimestamp - Auto-fetches on app startup
- Re-fetches automatically every 6 hours using APScheduler
- Simulates orbits using Skyfield
- Compares ISS against all satellites
- Ignores docked modules (e.g., NAUKA, PROGRESS)
- Stores close approaches in
collision_alertstable - Identifies top 5 closest encounters
- Background scans run on startup and periodically
-
๐ Automated Data Ingestion & Orbital Tracking Ingests multi-source orbital elements (TLEs) from public sources via Azure Data Factory and Azure Functions, storing and processing raw data in Azure Blob Storage for precise orbital paths and conjunction detection.
-
๐ฎ Advanced Predictive Analytics & Risk Assessment Leverages Azure Machine Learning with a hybrid (Physics + ML) model to accurately predict orbital paths, calculate collision probabilities, and assign critical risk scores for timely alerts.
-
โ๏ธ AI-Driven Maneuver Recommendation Utilizes Reinforcement Learning within Azure Machine Learning to recommend optimal avoidance maneuvers, balancing safety and fuel efficiency. Supports comprehensive Azure Batch simulations for validation.
-
๐ค Collaborative Operations & Secure Communication Enables real-time collaboration among satellite operators through an intuitive, serverless dashboard, enhancing decision-making and coordination.
-
โ Responsible AI & Robust Governance Applies the Microsoft Responsible AI Toolkit to ensure model transparency and trustworthiness. Enforces data privacy with Azure Key Vault, and maintains comprehensive audit trails.
Satellite collisions generate thousands of debris fragments, threatening critical global servicesโfrom emergency response to financial systems. Orryx AI ensures Clarity in Every Orbit, powering Safer Space, promoting safer space operations, sustainable orbital environments, and scalable integration for mega-constellation networks.
- โก Performance: Near real-time risk detection and rapid maneuver planning, ensuring proactive identification of critical conjunctions for timely decision-making.
- โจ Innovation: AI-powered hybrid (Physics + ML) models, Reinforcement Learning for maneuver optimization, and unique integration with CesiumJS for enhanced atmospheric drag calculations.
- โ๏ธ Azure Coverage: Extensive use of Azure Machine Learning, Azure Functions, Azure Blob Storage, Azure Cosmos DB, Azure Functions, Azure OpenAI., Microsoft Teams
- ๐ Responsible AI: Robust bias control, model explainability, data drift detection, privacy compliance, and full auditability.
sat-collision-predictor/
โโโ app/
โ โโโ main.py # FastAPI app + lifespan + scheduler
โ โโโ database.py # DB engine + session
โ โโโ models.py # Satellite + collisionAlert + TLEMetadata
โ โโโ tle_fetcher.py # Fetches & stores TLEs (with 6h cooldown)
โ โโโ collision_detector.py # Skyfield-based close approach detector
โ โโโ routes/
โ โ โโโ collision.py # /collision endpoint (manual check)
โ โ โโโ collisionScan.py # ISS vs all scan + background insert
โ โ โโโ dashboard.py # /summary, /top-collision endpoints
โ โ โโโ orbit.py # Orbit simulation (coming UI support)
โ
โโโ satellites.db # Local SQLite DB
โโโ requirements.txt
โโโ README.md
- TLEs fetched from:
https://celestrak.com/NORAD/elements/gp.php?GROUP=active&FORMAT=tle - Each set parsed and inserted or updated
- Fetch skipped if already done within 6 hours
TLEMetadatatracks last fetch timestamp
- ISS orbit is simulated using TLE data
- Compared against all satellites except:
- ISS modules
- Docked vehicles
- Objects too far apart in altitude
- Approaches < 100 km are recorded
- Top 5 closest events served to frontend
git clone https://github.com/shivarag200701/sat-collision-predictor.git
cd sat-collision-predictor
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtuvicorn app.main:app --reloadThis will:
- Auto-fetch TLEs (if not fetched recently)
- Auto-run ISS collision scan in background
- Start API at:
http://localhost:8000
| Endpoint | Description |
|---|---|
/api/summary |
Total satellites + last TLE fetch time |
/api/top-collision |
Top 5 closest approach records |
/api/collision?norad1=... |
Manual collision check between 2 sats |
/api/collision-scan |
Runs ISS-vs-all scan and stores alerts |
/api/orbit/{norad_id} |
Simulates orbit path (24h) |
- Live TLE fetching from CelesTrak
- Satellite DB population
- 6-hour cooldown logic
- Orbit propagation using Skyfield
- ISS-vs-all satellite scanning
- Database alert storage
- Search by NORAD ID
- Show latest alerts + predictions
- Add severity badges + filtering
- CesiumJS + satellite paths
- Interactive altitude/time explorer
- TLE (Two-Line Element): Compact orbital data format
- Skyfield: Computes precise satellite positions over time
- Collision Alerts: Triggered when two orbits come within ~100km
- Background Tasks: Run scan jobs without blocking requests
For more information about Orryx AI, visit our website: Orryx AI Official Website
If you find this project valuable or interesting, consider giving it a star!
It helps others discover the project and motivates future work โจ
MIT License. Free to use with credit.