Project
Defence: Modelling & Simulation and Visualisation

- Defence
- Modelling and Simulation
- Distributed Simulation
- Systems Integration
- Real-Time Visualisation
- GIS and Mapping
- Research and Development
- C / C++
- C# / .NET Framework
- Web Technologies
Eight years on one thing: an in-house modelling and simulation capability, joined as a research and development engineer and left as a senior software engineer, having spent the whole period building it and then evolving it in service. It was built inside a defence business, but what it modelled was not exclusively military — the same capability was put to civil problems as well. Simulation, integration and visualisation ran alongside one another on the same capability, and each one set the terms for the other two.
Modelling and Simulation
2007 — 2015
At the centre was an advanced distributed modelling and simulation product, driven by a visual programming component and built from the start for multithreaded, multi-core and multi-processor hardware. It became a cornerstone of the business's modelling and simulation capability, and the team behind it won a company-wide innovation award in 2010.
What it modelled was military activity at several levels of aggregation and detail at once — friendly flanking forces and the hostile resistance they met, held in the same scenario whether the question being asked was a broad one or a close one. Entities were accurately geo-located, units could be injected into a scenario already running, and situational awareness and route planning sat on top, among a good deal else. From a customer's point of view that made one system useful in several directions: mission planning, training in which synthetic units operate alongside real ones, scenario testing, and maintaining a live picture of a situation. From 2010 the capability was extended past the land domain to take in air and sea, and to model civil authorities alongside military ones. That version was used to build scenarios for asymmetric engagements, offshore raids, incursions and civil disturbance.

Crowd Simulation
The largest single piece of work inside all this was a crowd simulation system: large-scale, highly parallel crowd modelling, control and high-definition visualisation, delivered for an international customer as a CCTV and crowd management training environment. An operator worked from a virtual control room with 7,500 cameras available to them, any of which could be selected, and watched a city-scale crowd behave — assessing crowd dynamics, reading behaviours, and interacting with the situation as it developed rather than reviewing it after the fact.
The scale is what made it unusual. Comparable products at the time were an order of magnitude short of these figures, and both halves of the problem had to hold at once: a crowd model that stays coherent at half a million people, and a renderer that can put the resulting crowd on screen fast enough to be interacted with.
- 2.25M+
- realistic-looking individuals rendered at over 30 frames per second, on a consumer graphics card
- 500,000+
- individuals simulated moving through a complex, dynamic environment, faster than real time
- 7,500
- CCTV cameras in the virtual environment, any of them available to the operator
My part in it ran through both halves. I was one of four engineers on the heavily multithreaded core framework underneath, taking it from proof of concept to programme acceptance in a month; I helped architect the distributed system the crowd model ran on, scalable across multi-threaded and multi-core hardware, designed with technical colleagues and then built by us; and I worked on the 3D rendering technology that drew the environment, alongside designing and implementing the system's 2D mapping and 3D environment views.
It won an innovation award of its own in 2012, and in 2014 it was named innovative product of the year by ESTnet, the technology network for Wales, as well as reaching the finals of the Welsh Quality Awards.


Work included:
- Design, development and evolution of a distributed modelling and simulation product, as a member of a small research and development team.
- Architecture and implementation of a scalable, highly parallel crowd simulation and control system.
- Extension of the simulation beyond the land domain into air, sea and civil authority modelling.
- Development of core framework components, and of the applications built on top of them.
- Production of efficient, stable code for deployment on multithreaded, multi-core and multi-processor architectures.
Technology Integration
2007 — 2015
Much of what made the simulation capability valuable was its flexibility in interfacing with other entities: real equipment, other simulations, and to software built by other people entirely.
Integrated with real military equipment, it produced training environments in which the equipment being trained on was genuine and the world around it was not. Synthetic units operated alongside real ones, and the simulation generated the background activity and information traffic that makes an exercise feel populated rather than staged.
The same ability, pointed at engineering rather than training, produced synthetic wrappers around laboratory experiments and acceptance testing environments: a system under test could be surrounded by a world it believed in, without any of that world having to exist. It was also integrated with a commercial off-the-shelf virtual training environment, increasing its usefulness further for training and playing out scenarios.
The work ran with internal and external teams against requirements that moved as the technology did, and it came with the customer-facing part of the job: direct support, advice and guidance to customers in the UK and in Europe, and demonstrations given for bid proposals and proofs of concept.
Work included:
- Integration of the simulation with real military equipment, producing mixed real-and-synthetic training environments.
- Synthetic wrappers around laboratory experiments and acceptance testing environments.
- Integration with a third-party, commercial off-the-shelf virtual training environment.
- Delivery alongside internal and external teams, across a broad and changing range of requirements.
- Customer support, advice and guidance in the UK and in Europe, and customer-facing demonstrations for bid proposals and proof of concept.
Visualisation
Throughout, and the primary role from 2012
Visualisation ran across the whole period rather than sitting in one stretch of it. The work was the design, implementation and evolution of the 2D and 3D visualisation components that formed a core part of the capability, built to run efficiently on modern system architectures and to take real advantage of the graphics hardware available.
Two pieces of it stand out. One was a map data display system built for speed: the map is what every other part of the picture is drawn on top of, and sets the frame that everything else has to live within. The other was an in-house 3D graphics engine, developed against what was then current graphics technology, which gave the capability a 3D environment view to sit alongside its 2D counterpart.
Underneath both sat GIS and mapping — production, processing and management of map data, both for the capability itself and for other programmes across the business, including custom mapping produced to order. That ran on commercial GIS tooling plus an application I wrote to generate optimised map data sets for the capability: the general-purpose tools produced correct data, but not data shaped for the way the capability needed to read it.
Nine years of game development is nine years of making a machine draw a convincing world at a fixed frame budget, and that turns out to be the same problem as rendering a synthetic environment convincingly and interactively. The domain changed; the constraint did not.
Work included:
- Design and implementation of the 2D and 3D visualisation components at the core of the capability.
- A highly efficient, fast map data display system.
- Development of an in-house 3D graphics engine, using current graphics technologies and methods.
- 2D mapping and 3D environment visualisation for the crowd simulation system, including high-definition output.
- GIS and map data production, processing and management, for the capability and for other programmes across the business.
- A custom application generating optimised map data sets, used alongside commercial GIS tooling.


Technologies and tools used included:
- C++, including MFC on Windows
- C# and WPF
- Direct3D and HLSL
- Multithreaded, multi-core and multi-processor architectures
- Microsoft Visual Studio and Subversion
- PHP, JavaScript, HTML, CSS, XML and XSLT
- SQLite and MySQL
- Java and Android, with Eclipse
- ASP and SharePoint
- Maya, Blender and Adobe Photoshop
- Commercial GIS tooling, alongside in-house map data tooling
From 2016 the work changed shape rather than changed field: the same industry, but delivering applications to clients under contract instead of building a capability from inside one organisation. That decade is covered on its own page.
This was full-time employment rather than client work, and the organisations behind it are former employers. They are unnamed here by choice rather than by obligation — nothing described on this page is classified or otherwise restricted — and nothing on this page should be read as a statement on their behalf or as their endorsement.
These roles also appear on the career timeline.