FlightLang is an experimental proof of concept for a small domain-specific language focused on UAV mission logic.
The goal of this repository is to demonstrate the shape of the language, a simple parse and typecheck pipeline, Python code generation, and a deterministic simulator. It is intentionally incomplete and not intended for real flight or production use.
FlightLang models missions as readable state-based programs with unit-aware values, mission metadata, transitions, and simulation-first execution.
This POC exists to explore whether mission logic can be expressed in a way that is easier to read, validate, and simulate than ad hoc scripts.
This repository is a proof of concept. Some syntax is intentionally minimal and parts of the overall language design are still being explored.
The examples/survey.fl example is the runnable reference example for this POC.
Run a mission:
python -m flightlang.cli run examples/survey.flValidate a mission without running it:
python -m flightlang.cli check examples/survey.flBuild Python output only:
python -m flightlang.cli build examples/survey.fl -o out.py
python out.pymission HoverTest {
state Idle {
on arm -> Takeoff
}
state Takeoff {
action climb_to(10 m)
on reached_altitude -> Hover
}
state Hover {
deadline 3000 ms
on timeout -> Done
}
state Done { }
}
See examples/survey.fl.
- richer expressions and conditions.
- stronger validation and typechecking.
- additional safety-oriented checks.
- improved simulator behavior.
- future transpilation targets beyond Python.
This is a teaching and experimentation scaffold only. It is not suitable for real aircraft or flight operations.