# gayathriravi-codes/uav-engine-digital-twin architecture

> Architecture diagram of the GitHub repository gayathriravi-codes/uav-engine-digital-twin, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/gayathriravi-codes/uav-engine-digital-twin
- Repository: https://github.com/gayathriravi-codes/uav-engine-digital-twin

## Overview

AeroTwin is a UAV-engine digital twin for telemetry-based health monitoring, fault diagnosis, remaining-useful-life estimation, and predictive maintenance. Its principal workflow loads a flight in the dashboard, sends telemetry through integrated inference, and presents engine health and operator guidance; mission recommendations and counterfactual what-if estimates extend that workflow. Simulation and physics-based residual analysis provide distinct supporting capabilities. The sampled code supports the main inference and what-if links; unsampled dashboard behavior and frontend-to-backend wiring are not assumed.

Main entry points: [`dashboard/app.py`](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/dashboard/app.py) (Monitoring dashboard), [`models/classification/engine_inference.py`](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/classification/engine_inference.py) (Integrated inference), [`models/rul/whatif_engine.py`](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/rul/whatif_engine.py) (What-if analysis), [`models/rul/train_rul_ensemble.py`](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/rul/train_rul_ensemble.py) (RUL ensemble)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_operator_ui["Operator experience"]
  node_dashboard["Monitoring dashboard<br/>[app.py]"]
  node_web_scene["3D engine viewer<br/>[App.jsx]"]
end

subgraph group_inference["Engine inference"]
  node_engine_inference["Integrated inference"]
  node_fault_model["Fault diagnosis<br/>[predict.py]"]
  node_rul_ensemble["RUL ensemble"]
  node_recovery["Recovery detection"]
  node_trust["Sensor trust<br/>[sensor_trust.py]"]
  node_rul_api["RUL prediction API<br/>[app.py]"]
end

subgraph group_decision["Maintenance decisions"]
  node_mission["Mission recommendation"]
  node_whatif["What-if analysis<br/>[whatif_engine.py]"]
end

subgraph group_simulation["Simulation and physics"]
  node_physics["Physics residuals"]
  node_scenario_sim["Healthy flight simulation"]
  node_fault_injectors["Fault injection<br/>[fault_injectors.py]"]
end

node_operator(("Operator"))
node_flight_data["Flight telemetry"]

node_operator -->|"selects flight"| node_dashboard
node_flight_data -->|"loads telemetry"| node_dashboard
node_dashboard -->|"requests inference"| node_engine_inference
node_engine_inference -->|"classifies fault"| node_fault_model
node_engine_inference -->|"estimates RUL"| node_rul_ensemble
node_engine_inference -->|"checks recovery"| node_recovery
node_dashboard -->|"checks sensors"| node_trust
node_dashboard -->|"computes residuals"| node_physics
node_dashboard -->|"requests action"| node_mission
node_dashboard -->|"requests scenarios"| node_whatif
node_whatif -->|"simulates flight"| node_scenario_sim
node_whatif -->|"injects fault"| node_fault_injectors
node_whatif -->|"predicts RUL"| node_rul_ensemble
node_dashboard -->|"shows assessment"| node_operator

click node_dashboard "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/dashboard/app.py"
click node_engine_inference "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/classification/engine_inference.py"
click node_fault_model "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/classification/predict.py"
click node_rul_ensemble "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/rul/train_rul_ensemble.py"
click node_recovery "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/classification/recalibration_speed.py"
click node_trust "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/sensor_trust.py"
click node_physics "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/physics_residual.py"
click node_mission "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/mission_reliability.py"
click node_whatif "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/rul/whatif_engine.py"
click node_scenario_sim "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/simulator/simulate_healthy.py"
click node_fault_injectors "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/simulator/fault_injectors.py"
click node_rul_api "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/rul/app.py"
click node_web_scene "https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/aerotwin-frontend/src/App.jsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dashboard,node_web_scene toneBlue
class node_engine_inference,node_fault_model,node_rul_ensemble,node_recovery,node_trust,node_rul_api toneAmber
class node_mission,node_whatif toneMint
class node_physics,node_scenario_sim,node_fault_injectors toneRose
class node_operator,node_flight_data toneIndigo
```

## Components

### Operator experience

- [Monitoring dashboard](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/dashboard/app.py): `dashboard/app.py`
- [3D engine viewer](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/aerotwin-frontend/src/App.jsx): `aerotwin-frontend/src/App.jsx`

### Engine inference

- [Integrated inference](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/classification/engine_inference.py): `models/classification/engine_inference.py`
- [Fault diagnosis](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/classification/predict.py): `models/classification/predict.py`
- [RUL ensemble](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/rul/train_rul_ensemble.py): `models/rul/train_rul_ensemble.py`
- [Recovery detection](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/classification/recalibration_speed.py): `models/classification/recalibration_speed.py`
- [Sensor trust](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/sensor_trust.py): `sensor_trust.py`
- [RUL prediction API](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/rul/app.py): `models/rul/app.py`

### Maintenance decisions

- [Mission recommendation](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/mission_reliability.py): `mission_reliability.py`
- [What-if analysis](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/rul/whatif_engine.py): `models/rul/whatif_engine.py`

### Simulation and physics

- [Physics residuals](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/models/physics_residual.py): `models/physics_residual.py`
- [Healthy flight simulation](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/simulator/simulate_healthy.py): `simulator/simulate_healthy.py`
- [Fault injection](https://github.com/gayathriravi-codes/uav-engine-digital-twin/blob/main/simulator/fault_injectors.py): `simulator/fault_injectors.py`

### Other components

- **Operator**
- **Flight telemetry**

## Connections

- Operator → Monitoring dashboard: selects flight
- Flight telemetry → Monitoring dashboard: loads telemetry
- Monitoring dashboard → Integrated inference: requests inference
- Integrated inference → Fault diagnosis: classifies fault
- Integrated inference → RUL ensemble: estimates RUL
- Integrated inference → Recovery detection: checks recovery
- Monitoring dashboard → Sensor trust: checks sensors
- Monitoring dashboard → Physics residuals: computes residuals
- Monitoring dashboard → Mission recommendation: requests action
- Monitoring dashboard → What-if analysis: requests scenarios
- What-if analysis → Healthy flight simulation: simulates flight
- What-if analysis → Fault injection: injects fault
- What-if analysis → RUL ensemble: predicts RUL
- Monitoring dashboard → Operator: shows assessment
