Edge command-and-control simulator
Multi-domain battlefield simulator with a 3D common operating picture — built to feed multiple downstream C2 prototypes during evaluation, without coupling to any of them.

Sector
Defence
Scale
~16,000 source-tree entries; 226+ unit and integration tests; six operational scenarios across four domains
Role
Architect, technical lead
Timeframe
2024 – 2025
Challenge
A defence research client needed a multi-domain simulator capable of generating maritime, air, ground, and personnel activity, presented through a 3D common operating picture rather than the dated 2D map clients available off the shelf. The simulator also needed to feed multiple downstream C2 prototypes during a comparative evaluation — so no transport coupling, no protocol assumptions baked into the simulation core.
The maritime domain in particular was awkward: pure great-circle routing ignores coastlines, pure mesh routing collapses on long legs, and neither handles depth-aware ship behaviour. Most simulators punt on this and use straight-line maritime tracks. The customer wasn't going to accept that.
Approach
A clean separation between simulation core and presentation. The core generates entity activity in MIL-STD-2525D-symbolised form; the presentation layer renders it through a CesiumJS 3D common operating picture; a pluggable transport module shovels the same simulated stream to whichever downstream C2 prototype is being evaluated.
Maritime routing was solved by a hybrid: a searoute trunk for long-haul legs, a Constrained Delaunay triangulation mesh for coastal manoeuvre, and GEBCO bathymetry data for depth-aware track behaviour. The combination gave plausible shipping behaviour at every scale from harbour to ocean crossing.
Six operational scenarios spanned the four domains, with comprehensive testing — 226+ unit and integration tests, including geographic correctness checks against known-good waypoint sets. The MIL-STD-2525D symbology layer was tested for spec compliance, not just visual plausibility.
Key Decisions
- 1CesiumJS for the 3D COP — operational maturity, the alternative was a custom WebGL stack with no track record
- 2Hybrid maritime router — pure searoute and pure mesh both failed at realistic edge cases
- 3Pluggable transport — tested against multiple downstream C2 prototypes during evaluation, no coupling to any
- 4MIL-STD-2525D spec-compliance tests, not just rendering tests
Outcome
Delivered to the client. Used in evaluation runs against multiple downstream C2 systems. Performance and correctness gates met on first audit.
Stack
Technologies
Python 3.12 · Vite · CesiumJS 1.138 · Searoute · Constrained Delaunay triangulation · GEBCO bathymetry · pytest · pluggable transport adapters
Standards & Methodologies
MIL-STD-2525D symbology · AIS NMEA Type 1/2/3/5 · ADS-B SBS · ISO/IEC/IEEE 29119 (testing) · OpenAPI 3.0
Related Projects
Have a simulation problem where 'good enough for a demo' isn't going to survive customer evaluation?
Book a discovery call