JZ.← All projectsView GitHub ↗
02 / Case study

AeroTest Copilot

Trace a simulated fault from telemetry to a requirement finding and its evidence.

Interactive recorded-run explorer

Follow a fault into the evidence

Choose among four real saved simulator runs. Explore charts, checks, and original citations. This demo reads recorded evidence; generating new runs requires the local app.

Open the full-page dashboard ↗
RoleSoftware engineering
Year2026
StackC++20 · Python · FastAPI · SQLite · React · TypeScript · Docker

Overview

AeroTest Copilot is a simulation and test-investigation workbench for a fictional civilian research-aircraft subsystem. Deterministic C++ scenarios produce sensor, battery, and state-transition records; Python checks turn those records into scoped findings with resolvable citations.

4recorded scenarios to explore
4scoped runtime checkers
100 msfixed simulation tick
01

The challenge

A fault label alone does not explain whether a subsystem responded correctly. The workbench needs repeatable evidence, explicit timing boundaries, and findings that remain traceable to the original records without treating missing coverage as a pass.

02

The approach

A C++ state machine runs healthy, sensor-disagreement, missing-message, and battery-degradation scenarios. A bounded Python runner validates and stores executions in SQLite. Scoped checkers and a scripted investigator preserve evidence IDs. React displays telemetry, filters the event timeline, and resolves each citation to its original record.

03

The result

The local application supports new simulations and saved-run investigation. This public explorer packages actual simulator outputs and their reports for four scenarios, with no backend or model API. PASS, FAIL, INCONCLUSIVE, and unassessed requirements remain distinct. This is an educational simulation, not flight software or a validated physical model.

See the implementation, documentation, and decisions.

Explore the repository ↗