Skip to content

About

Field-artillery simulation supplement to the Coordination Tax working paper/manuscript.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

The Coordination Tax · Field Artillery Edition

Interactive simulation of fires effectiveness in modern field artillery, where the coordination tax framework parameters drive platform-specific weapon behavior. Runs locally as a Streamlit app or, via stlite, entirely in the browser as a single HTML file.

What it does

This tool composes the analytical framework (Amdahl's Law plus exponential target perishability) with current field-artillery technical reality. Adjusting the framework parameters updates the engagement diorama, timeline, decay curve, sensitivity surface, and weapon-specific outcomes in real time. Each weapon platform has a documented baseline τ_t representing its actual technical-latency floor, so HIMARS computes faster than M777, which computes faster than 2S33 Msta-SM2, all in the same simulation.

The view that does the heavy lifting is the engagement diorama — a tactical kill-chain panorama showing weapon, sensor (UAV), trajectory, target, range scale, timing badges, and outcome panel on a single canvas. Every element responds to parameter changes.

Running it

Browser (no install)

Open coordination_tax_browser.html in any modern browser. The first load takes 30-60 seconds while Pyodide and matplotlib are downloaded into the browser sandbox; subsequent loads are cached. The app then runs entirely client-side with no server.

To deploy: drop the HTML file on any static host. GitHub Pages, Netlify, S3 + CloudFront, an institutional file share, all work. No Python runtime required on the server.

Local Streamlit (faster, full performance)

cd coordination_tax_app
pip install -r requirements.txt
streamlit run app.py

Opens at http://localhost:8501. Faster than the browser version since matplotlib runs natively rather than under WebAssembly.

Streamlit Cloud (free hosting)

Push the coordination_tax_app/ folder to a GitHub repository, connect it at streamlit.io/cloud, specify app.py as the entry point. requirements.txt installs dependencies automatically. Free for public repos.

Weapons modeled

Specifications drawn from manufacturer documentation, RUSI and CEPA peer-reviewed research, US Army and DoD program documentation, and open-source technical references current as of early 2026. All open-source unclassified figures. 22 unique sources cited across the four platforms. The Sources tab in the app lists every citation with author, publisher, year, URL, and (where relevant) a note explaining what specific figure that source supports.

M777A2 Howitzer · 155mm towed, BAE Systems · Adopted 2005. 24.7 km HE, 30 km RAP, 40 km Excalibur. 2 rpm sustained / 5 rpm burst. Air-portable by V-22 Osprey. Five munition options including M982 Excalibur Ib, M1156 PGK, and BONUS sensor-fuzed.

M109A7 Paladin · 155mm tracked self-propelled, BAE Systems · Adopted 2014. 22 km HE, 30 km RAP, 40 km Excalibur. Bradley-derived chassis, 600V electric rammer, AFCS digital fire control. Four munition options. Companion M992A3 CAT carrier.

M142 HIMARS · 227mm wheeled MLRS, Lockheed Martin · Adopted 2010. 750+ delivered worldwide as of November 2025. Six munitions: GMLRS-Unitary, GMLRS-AW, ER-GMLRS (150 km), GLSDB, ATACMS, and PrSM Increment 1 (499 km, Milestone C July 2025). C-130 transportable. 6 rockets in <60 seconds, 5-10 minute reload.

2S33 Msta-SM2 · 152mm tracked self-propelled, Uraltransmash · Adopted 2013 (M2 variant). 24.7 km HE, 30 km extended, 43 km Krasnopol-M2 laser-guided. T-80 hull, T-72 powerpack. Uspekh-S AGFCS with Orlan-30 drone integration. Backbone of Russian artillery in Ukraine; 246 2S19 and 54 2S19M2 documented losses through August 2025 per Oryx OSINT.

How parameters drive behavior

The framework parameters affect more than just the abstract K coefficient.

τ_t (technical latency) — Each platform has a baseline value reflecting its actual digital fire control speed. M777 ≈ 1.5 min. M109A7 ≈ 1.0 min. HIMARS ≈ 0.75 min. Msta-SM2 ≈ 2.5 min. The user can override or use the platform default. Lower τ_t produces shorter sensing-and-FCS-compute phases in the engagement timeline.

τ_p (procedural latency) — Drives FSCM clearance phase length. The dominant term in most contemporary scenarios. Increases push the engagement past the target's decorrelation time.

T_d (decorrelation time) — Controls the perishability decay curve directly. Property of the target, not the weapon.

s (technical speedup) — Multiplier on τ_t. Models the effect of accelerating the technical component of the cycle.

P_0 (baseline kill probability) — Modified by EW environment when the selected munition is GPS-guided, laser-guided, or otherwise vulnerable. Excalibur in saturation EW becomes 10% as effective, reflecting the documented Russian EW response to Ukrainian Excalibur (70% to 6% effectiveness within 6 weeks).

Range and munition selection — Determine time of flight using a calibrated ballistic model anchored to the RUSI benchmark of 75 seconds for a 155mm shell at 25 km. Time of flight adds to the total engagement window since the target must remain at the detected position through impact.

Counter-battery window — Compares against the platform's documented displacement time. Platforms whose displacement exceeds the counter-battery window are flagged at risk.

Empirical scenario anchors

Seven presets reproduce documented operational scenarios.

  • RUSI · Russian RFC integrated (3-min cycle) — Reconnaissance-fire complex with Orlan-30 + Krasnopol. Cited by Cranny-Evans 2023 as the physical floor.
  • RUSI · Russian non-integrated (30-min cycle) — Same systems, sensor-shooter loop not closed.
  • US FSCM-bound · paper baseline — 25-minute clearance overhead per Field Artillery Association documentation.
  • Ukraine 2022 · HIMARS pre-EW saturation — Initial deployment, Excalibur 70% effective.
  • Ukraine 2024 · HIMARS post-EW adaptation — Russian EW saturation. Excalibur to 6% effective.
  • Static target · K → 0 — Hardened structure, T_d → ∞.
  • Shoot-and-scoot tube artillery · T_d 5 min — Aggressive perishability typical of Russian counter-battery posture.

Citation hierarchy

Sources are organized in three groups:

  1. Primary research and manufacturer documentation — RUSI special reports and commentaries (Cranny-Evans 2023, Zabrodskyi et al. 2022), BAE Systems and Lockheed Martin product pages, US Army JPEO program offices, DSIAC technical articles. Authoritative for ballistic, mobility, and operational-cycle data.

  2. Open-source technical references — Army Recognition, Army-Technology.com, Calibre Defence, The Defense Post, Defense Feeds, Global Military. Cross-referenced against primary sources.

  3. Cross-reference sources — Wikipedia, Oryx OSINT. Used for cross-reference and combat-loss documentation only, never as sole citation for a specification.

The Sources tab in the app exposes the full list with URLs and source notes. Reviewers can audit every figure shown in the simulation against its citation.

File structure

coordination_tax_app/
├── app.py                       Main Streamlit application (Operational Analysis Center aesthetic)
├── weapons.py                   Platform specifications, munitions, citations (Source dataclass)
├── simulation.py                Coordination tax math + platform-aware engagement engine
├── visualizations.py            Diorama, schematics, timeline, decay curve, sensitivity heatmap
├── build_browser_html.py        Bundles the four files into the standalone browser HTML
├── requirements.txt             Python dependencies (streamlit, matplotlib, numpy)
└── README.md                    This file

../coordination_tax_browser.html         The single-file browser-deployable build (118 KB)

To rebuild the browser HTML after editing the Python files:

cd coordination_tax_app
python build_browser_html.py
# overwrites coordination_tax_browser.html in the parent directory

(Or change the output path in build_browser_html.py.)

Extending the application

Adding a new weapon — Define a new Platform instance in weapons.py with a sources list pointing to the citation library at the top of the file. Add it to the PLATFORMS dict and PLATFORM_DISPLAY_ORDER. To draw it in the schematic view, add a _draw_<key> function in visualizations.py and register it in WEAPON_DRAWERS. Existing four platforms cover towed, tracked self-propelled, and wheeled MLRS templates.

Adding a new munition — Add a Munition to the platform's munitions list with its own sources. The simulation handles range, CEP, warhead mass, and EW degradation automatically based on the munition type field.

Adding a new scenario preset — Add an entry to PRESETS in simulation.py.

Programmatic batch analysis — Import simulation.compute_engagement and call it directly in a loop over parameter combinations. The EngagementResult dataclass exposes all output fields.

License

Free for non-commercial use with attribution. Contact the author for commercial licensing.

About

Field-artillery simulation supplement to the Coordination Tax working paper/manuscript.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages