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