Expertise
Geospatial, GIS & mission systems (C2)
Mission simulation, Order-of-Battle and command-and-control visualisation, 3D terrain, symbology, viewshed, and GeoLibre and QGIS workflows.
What problems look like here
- Maps, terrain and search that must work with no network at all.
- Operators draw in 2D and expect to see the result in 3D, at frame rate.
- Symbology and coordinate systems operators already use, working in the browser.
- Several users on one scenario, each seeing only what their clearance allows.
What I built
Case studies
-
Air-gapped mission simulation and ORBAT platform
A country-scale, fully offline mission simulation and command-and-control platform that generates its 3D scene at runtime from what operators draw on a 2D tactical map, so formations drawn in 2D play out as those formations in 3D, on a timeline.
-
UAV mission command and control on ROS2 and DDS
A custom command-and-control and ground-control system for multi-UAV missions, built on ROS2 with Fast-DDS, with encrypted links, imagery intelligence and an Electron ground-control station.
-
Country-scale geospatial data pipeline
Nationwide ETL for terrain, imagery, roads and urban data, feeding an offline mission platform, with place search and route navigation that work with no network, and map tiles packed into each delivery.
More work
- Event and location analytics platform (MVP) High-volume analytics with geospatial correlation: vendor data arrives as Parquet, is processed and loaded into ClickHouse, then feeds the analytics. Stack: Parquet, Apache Spark, ClickHouse, PostGIS
- Incident-reporting analytics platform Incident reporting with map-based analytics. Stack: Vue, OpenLayers, Redis, PostgreSQL, Python, Node.js
- 2D/3D air-defence engagement proof of concept Engagements simulated on a timeline in 2D and 3D. Stack: OpenLayers, CesiumJS
Terrain MISSION SCENARIO
- VIEWSHED
- DRAWN AREA
- DRAWN ROAD
- GENERATED AT RUNTIME
- UNIT FRAMES
- MAP GRID
Illustrative concept, not a product screenshot. Terrain: public Terrarium elevation tiles over the Karakoram, chosen for relief.
Patterns I use
-
Generate 3D from the 2D drawing at runtime, so there is no separate modelling step.
-
Make symbology executable, so a symbol on the map becomes entities that move on a timeline.
-
Pre-build map tiles, place search and routing, and ship them inside the delivery package.
-
Attribute every drawing to its author and share scenarios by clearance.
Geospatial tooling
- MapLibre drawing and measuring
- On-the-fly MGRS and H3 grid tiles
- DEM contours
- MIL-STD-2525 / APP-6 symbology
- Offline tile and terrain sources
- Built in Vue 3 and TypeScript
Stack for this domain
Each links to its entry on the stack page.
Ask about this
What has he built in geospatial and C2?
Answers come from the content on this site.
The chat needs JavaScript. Without it, ask through the contact page.