Aerovant ← All work

Simulation engineering

UAS simulation engine

A from-scratch tactical UAS simulation engine, built so that navigation degrades the way it does in the field — and so that real defence tooling can ingest its output unmodified.

Layered architecture diagram of the UAS simulation engine
Role
Sole engineer
Engagement
Internal R&D
Year
2026
Platform
Python engine + Unity front end

The problem

Most simulators model the happy path. GPS works, the datalink holds, the sensor sees what it is pointed at. But the situations worth training for are exactly the ones where those assumptions fail — degraded satellite geometry, terrain blocking the link, navigation quietly drifting away from truth. A simulator that never degrades teaches operators to trust instruments that will eventually lie to them.

What we built

A layered simulation engine where degradation is modelled rather than scripted. Radio-frequency propagation and terrain masking produce a carrier-to-noise ratio; that ratio drives per-satellite tracking, which produces dilution of precision, which walks the receiver down a graded fix ladder. An inertial model with a realistic error budget takes over as satellite quality falls, drifting the way real inertial systems drift. An integrity monitor cross-checks the result against visual odometry. Nothing in that chain is a lookup table — each stage is the physical consequence of the one before it.

How it was engineered

The architecture holds four rules in code, not convention. There is exactly one clock: no module calls the system time, so replaying a seed reproduces a trace byte for byte. Publishers never block and a faulty subscriber cannot take down the simulation — the message bus uses bounded rings with counted drops and wrapped callbacks. Ground truth and reported position are deliberately separate quantities, so when navigation is being deceived the two diverge, which is the training point rather than a bug. And simulation marking is mandatory on every outbound message, enforced by tests, so simulated traffic can never be mistaken for live.

Interoperability

The protocol adapters are written against the published standards and validated by an independent decoder, so output is not merely plausible but conformant: MISB ST 0601 metadata that motion-imagery tools parse, Cursor-on-Target events that a TAK server accepts, and IEEE 1278 distributed-simulation packets with dead-reckoning that other federates can follow. The interface control document is generated directly from the bus topic definitions, so it cannot drift away from the code.

Outcome

162 automated tests covering every implemented module, with no stubbed placeholders. The engine is the technical foundation the training products build on.

Working on something similar?

Start a project