This project is a high-performance, production-grade 3D web application that visualizes 32,001 NASA Near-Earth Objects (NEOs) and classifies them as hazardous or non-hazardous. It combines a sophisticated Three.js 3D simulation with a robust MLOps pipeline automated via GitHub Actions, DVC, and FastAPI.
- Interactive Universe: A cinematic 3D simulation (Orrery) of the solar system featuring 32,000+ real-time tracked asteroids.
- AI-Driven Prediction: Real-time hazard classification using ML models trained with NASA orbital data.
- 3D Scale Comparator: High-fidelity visual tool to compare asteroid sizes against Earth in real-time.
- Full-Stack Architecture: Modern split-module design with a specialized FastAPI backend and a glassmorphic Vanilla JS frontend.
- End-to-End MLOps: Automated data ingestion, preprocessing (SMOTE), drift detection, and monitoring via MLflow and Grafana.
- 3D Engine: Three.js (WebGL)
- Styling: Vanilla CSS with Glassmorphism
- State Management: Asynchronous JS with custom state-driven components
- Framework: FastAPI (Asynchronous)
- Database: Neon (Serverless PostgreSQL)
- Real-time: WebSockets for live asteroid tracking
- Data Versioning: DVC (Data Version Control)
- ML Engine: Scikit-Learn, XGBoost, CatBoost
- Pipeline: GitHub Actions (Scheduled Workflows)
- Experiment Tracking: MLflow (hosted on DAGsHub)
- Monitoring: Grafana Dashboards
- Real-time visualization of 32,001 unique NASA asteroids.
- Cinematic camera controls with zoom-to-asteroid functionality.
- Procedural textures for celestial bodies and starfield environments.
- Dynamic 3D model scaling based on real physical diameters.
- Synchronized zoom effects for precise scale perception.
- Targeting reticle and AI-driven risk indicators.
- Name-based asteroid search and advanced filtering.
- AI risk assessment scoring displayed in real-time.
- WebSocket-powered "Recent Discoveries" live feed.
- Visual documentation of the end-to-end data pipeline.
- DVC-driven data flow visualization.
- Real-time backend health monitoring.
├── 📁 .github/ # GitHub Actions Workflows (CI/CD, Ingestion, Drift)
├── 📁 backend/ # FastAPI Application (API v2.0)
│ ├── 🐍 main.py # API Entry Point
│ ├── 🐍 models.py # SQLAlchemy/Neon Models
│ ├── 🐍 database.py # NeonDB Connection Pool & Watcher
├── 📁 frontend/ # High-Fidelity Web Interface
│ ├── 📁 src/ # Specialized 3D & UI Components
│ │ ├── 💎 orrery.js # 3D Solar System Engine
│ │ ├── 💎 comparator.js # 3D Scale Comparison
│ │ ├── 📂 mlops.js # Technical Dashboard
├── 📁 src/ # ML Pipeline Source Code (V1)
│ ├── 📁 custom/ # Data Transformation & Model Training
├── 📁 Data/ # Local data storage (DVC tracked)
├── 📁 Notebook/ # Research & Exploratory Analysis
├── 🐍 app.py # Legacy Flask Gateway
├── 🧊 dvc.yaml # Data Pipeline Orchestration
└── 📖 README.md # This documentation
- Grafana Dashboards: Publicly accessible dashboards tracking ingestion, performance, and drift.
- Data Drift Detection: Automated weekly checks with email notifications via GitHub Actions.
- Real-time Watcher: Background service polling for new unique asteroid discoveries.
Subrat Mishra