Python implementations of some OR combat models
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Combat Models

A growing collection of Python implementations of mathematical combat models used in operational research. Meant to accompany the explanations published in the blog 'Damn the Torpedoes!' at


Unless stated otherwise in the corresponding README file, the models are just single-file, mostly self-contained Python scripts which can just be run directly. Bear in mind that scripts producing a plot will most likely require Numpy and MatPlotLib to be installed.


The code for all the models is commented in some detail, so generally just follow the instructions. All models come with an example scenario that can be run directly.


The scripts here collected are merely for research, with no form or function goals other than being practical in mathematically describing combat situations according to existing OR models. That said, it is entirely possible that some of them might have mistakes in a few untested cases. Should you notice one such mistake, and be able to fix it, your contribution would be greatly appreciated! Feel free to suggest any changes you find appropriate.

Associated repositories

At the moment, two other repositories exist in my GitHub account that might be of interest to the military historian or the Military Operational Research practitioner:

  • CDB90 – hosting the CDB90 database of land battles.
  • Trafalgar – a small database of the ships and men that fought at the Battle of Trafalgar in 1805.

Feel free to use these databases for your own analysis or modelling.


All combat models in this repository were made by me to help my research.


All combat models in this repository are distributed under MIT License.