# flybywiresim/aircraft architecture

> Architecture diagram of the GitHub repository flybywiresim/aircraft, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/flybywiresim/aircraft
- Repository: https://github.com/flybywiresim/aircraft
- Video tour (about a minute): https://gitdiagram.com/flybywiresim/aircraft/video

## Overview

FlyByWire Aircraft is a high-fidelity Microsoft Flight Simulator recreation of the A320-200N and A380-800. The principal runtime experience is the simulator running an aircraft: flight-management software builds plans and guidance, aircraft systems and engine controllers simulate behavior, and cockpit instruments present state to the user. The tree also shows engine-out handling, datalink displays, and shared simulator-data infrastructure. Source excerpts are selective, so the graph includes only evidenced relationships; unsampled capabilities are represented at subsystem level without guessed call chains.

Main entry points: [`fbw-a32nx/src/wasm/fadec_a32nx/src/Fadec/EngineControlA32NX.cpp`](https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/wasm/fadec_a32nx/src/Fadec/EngineControlA32NX.cpp) (A320 FADEC), [`fbw-a32nx/src/systems/fmgc/src/Fms.ts`](https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/Fms.ts) (Flight management), [`fbw-a32nx/src/systems/fmgc/src/modules/EngineOutMonitor.ts`](https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/modules/EngineOutMonitor.ts) (Engine-out monitor), [`fbw-common/src/wasm/systems/systems/src/simulation/mod.rs`](https://github.com/flybywiresim/aircraft/blob/master/fbw-common/src/wasm/systems/systems/src/simulation/mod.rs) (Aircraft systems model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_flight["Flight management"]
  node_fms["Flight management<br/>[Fms.ts]"]
  node_plans["Flight planning"]
  node_navdb[("Navigation database")]
  node_guidance["Flight guidance"]
  node_phases["Flight phases"]
  node_engineout["Engine-out monitor"]
end

subgraph group_systems["Aircraft simulation"]
  node_fadec320["A320 FADEC"]
  node_fadec380["A380 FADEC"]
  node_systemsmodel["Aircraft systems model<br/>[mod.rs]"]
  node_electrical["Engine generators"]
end

subgraph group_cockpit["Cockpit interfaces"]
  node_instruments["Cockpit instruments"]
  node_enginegauge["A380 engine gauge<br/>[EngineGauge.tsx]"]
  node_dcdu["Datalink display<br/>[index.tsx]"]
end

subgraph group_platform["Simulator integration"]
  node_dataframework["Simulator data framework<br/>[DataManager.h]"]
end

node_user(("Simulator user"))
node_msfs["Microsoft Flight Simulator"]
node_aircraft["A320 / A380 aircraft"]

node_user -->|"operates"| node_msfs
node_msfs -->|"runs"| node_aircraft
node_aircraft -.->|"includes"| node_fms
node_fms -->|"hosts monitor"| node_engineout
node_engineout -->|"reads phase events"| node_phases
node_engineout -->|"activates engine-out SID"| node_plans
node_plans -.->|"uses navigation data"| node_navdb
node_fms -.->|"provides flight management"| node_guidance
node_fadec320 -.->|"exchanges simulator state"| node_systemsmodel
node_fadec380 -.->|"exchanges simulator state"| node_systemsmodel
node_electrical -->|"updates simulation"| node_systemsmodel
node_fadec320 -->|"uses data services"| node_dataframework
node_fadec320 -.->|"shares engine ratios"| node_fadec380
node_enginegauge -.->|"renders cockpit state"| node_instruments
node_user -.->|"views displays"| node_instruments
node_dcdu -.->|"presents datalink"| node_user

click node_fms "https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/Fms.ts"
click node_plans "https://github.com/flybywiresim/aircraft/tree/master/fbw-a32nx/src/systems/fmgc/src/flightplanning"
click node_navdb "https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/NavigationDatabase.ts"
click node_guidance "https://github.com/flybywiresim/aircraft/tree/master/fbw-a32nx/src/systems/fmgc/src/guidance"
click node_phases "https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/flightphase/FlightPhaseManager.ts"
click node_engineout "https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/modules/EngineOutMonitor.ts"
click node_fadec320 "https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/wasm/fadec_a32nx/src/Fadec/EngineControlA32NX.cpp"
click node_fadec380 "https://github.com/flybywiresim/aircraft/blob/master/fbw-a380x/src/wasm/fadec_a380x/src/Fadec/EngineControl_A380X.cpp"
click node_systemsmodel "https://github.com/flybywiresim/aircraft/blob/master/fbw-common/src/wasm/systems/systems/src/simulation/mod.rs"
click node_electrical "https://github.com/flybywiresim/aircraft/blob/master/fbw-common/src/wasm/systems/systems/src/electrical/engine_generator.rs"
click node_instruments "https://github.com/flybywiresim/aircraft/tree/master/fbw-a32nx/src/systems/instruments/src"
click node_enginegauge "https://github.com/flybywiresim/aircraft/blob/master/fbw-a380x/src/systems/instruments/src/EWD/elements/EngineGauge.tsx"
click node_dcdu "https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/instruments/src/DCDU/index.tsx"
click node_dataframework "https://github.com/flybywiresim/aircraft/blob/master/fbw-common/src/wasm/cpp-msfs-framework/MsfsHandler/DataManager.h"

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_fms,node_plans,node_navdb,node_guidance,node_phases,node_engineout,node_user toneBlue
class node_fadec320,node_fadec380,node_systemsmodel,node_electrical toneAmber
class node_instruments,node_enginegauge,node_dcdu toneMint
class node_dataframework toneRose
class node_msfs,node_aircraft toneIndigo
```

## Components

### Flight management

- [Flight management](https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/Fms.ts): `fbw-a32nx/src/systems/fmgc/src/Fms.ts`
- [Flight planning](https://github.com/flybywiresim/aircraft/tree/master/fbw-a32nx/src/systems/fmgc/src/flightplanning): `fbw-a32nx/src/systems/fmgc/src/flightplanning`
- [Navigation database](https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/NavigationDatabase.ts): `fbw-a32nx/src/systems/fmgc/src/NavigationDatabase.ts`
- [Flight guidance](https://github.com/flybywiresim/aircraft/tree/master/fbw-a32nx/src/systems/fmgc/src/guidance): `fbw-a32nx/src/systems/fmgc/src/guidance`
- [Flight phases](https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/flightphase/FlightPhaseManager.ts): `fbw-a32nx/src/systems/fmgc/src/flightphase/FlightPhaseManager.ts`
- [Engine-out monitor](https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/fmgc/src/modules/EngineOutMonitor.ts): `fbw-a32nx/src/systems/fmgc/src/modules/EngineOutMonitor.ts`

### Aircraft simulation

- [A320 FADEC](https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/wasm/fadec_a32nx/src/Fadec/EngineControlA32NX.cpp): `fbw-a32nx/src/wasm/fadec_a32nx/src/Fadec/EngineControlA32NX.cpp`
- [A380 FADEC](https://github.com/flybywiresim/aircraft/blob/master/fbw-a380x/src/wasm/fadec_a380x/src/Fadec/EngineControl_A380X.cpp): `fbw-a380x/src/wasm/fadec_a380x/src/Fadec/EngineControl_A380X.cpp`
- [Aircraft systems model](https://github.com/flybywiresim/aircraft/blob/master/fbw-common/src/wasm/systems/systems/src/simulation/mod.rs): `fbw-common/src/wasm/systems/systems/src/simulation/mod.rs`
- [Engine generators](https://github.com/flybywiresim/aircraft/blob/master/fbw-common/src/wasm/systems/systems/src/electrical/engine_generator.rs): `fbw-common/src/wasm/systems/systems/src/electrical/engine_generator.rs`

### Cockpit interfaces

- [Cockpit instruments](https://github.com/flybywiresim/aircraft/tree/master/fbw-a32nx/src/systems/instruments/src): `fbw-a32nx/src/systems/instruments/src`
- [A380 engine gauge](https://github.com/flybywiresim/aircraft/blob/master/fbw-a380x/src/systems/instruments/src/EWD/elements/EngineGauge.tsx): `fbw-a380x/src/systems/instruments/src/EWD/elements/EngineGauge.tsx`
- [Datalink display](https://github.com/flybywiresim/aircraft/blob/master/fbw-a32nx/src/systems/instruments/src/DCDU/index.tsx): `fbw-a32nx/src/systems/instruments/src/DCDU/index.tsx`

### Simulator integration

- [Simulator data framework](https://github.com/flybywiresim/aircraft/blob/master/fbw-common/src/wasm/cpp-msfs-framework/MsfsHandler/DataManager.h): `fbw-common/src/wasm/cpp-msfs-framework/MsfsHandler/DataManager.h`

### Other components

- **Simulator user**
- **Microsoft Flight Simulator**
- **A320 / A380 aircraft**

## Connections

- Simulator user → Microsoft Flight Simulator: operates (evidence: `README.md`)
- Microsoft Flight Simulator → A320 / A380 aircraft: runs (evidence: `README.md`)
- A320 / A380 aircraft → Flight management: includes
- Flight management → Engine-out monitor: hosts monitor (evidence: `fbw-a32nx/src/systems/fmgc/src/modules/EngineOutMonitor.ts`)
- Engine-out monitor → Flight phases: reads phase events (evidence: `fbw-a32nx/src/systems/fmgc/src/modules/EngineOutMonitor.ts`)
- Engine-out monitor → Flight planning: activates engine-out SID (evidence: `fbw-a32nx/src/systems/fmgc/src/modules/EngineOutMonitor.ts`)
- Flight planning → Navigation database: uses navigation data
- Flight management → Flight guidance: provides flight management
- A320 FADEC → Aircraft systems model: exchanges simulator state
- A380 FADEC → Aircraft systems model: exchanges simulator state
- Engine generators → Aircraft systems model: updates simulation (evidence: `fbw-common/src/wasm/systems/systems/src/electrical/engine_generator.rs`)
- A320 FADEC → Simulator data framework: uses data services
- A320 FADEC → A380 FADEC: shares engine ratios
- A380 engine gauge → Cockpit instruments: renders cockpit state
- Simulator user → Cockpit instruments: views displays
- Datalink display → Simulator user: presents datalink
