aesop_simulation (AESOP Wargame)

Military wargame simulation microservice — belligerent modeling, tactical hex-grid combat, TABORD order system, C2 chain management, Monte Carlo resolution, and INFOPS influence operations.

AESOP SIMULATION — INTERNAL ARCHITECTURE BELLIGERENT MODEL BELLIGERENT A (RED FORCE) WILL (0-200) Gov. Will Mil. Morale Public Op. CAPABILITY (7 SECTORS) POL MIL* INFRA FIN AGR HLT MED * MIL = computed | INFRA = from MIDAS War Objectives: Secure northern corridor, deny sea access... BELLIGERENT B (BLUE FORCE) WILL (0-200) Gov. Will Mil. Morale Public Op. CAPABILITY (7 SECTORS) POL MIL* INFRA FIN AGR HLT MED * MIL = computed | INFRA = from MIDAS War Objectives: Defend territorial integrity, maintain sea lanes... OUTPUTS — 8 WORKSTATIONS Strategic Command Full belligerent overview INFOPS Station Influence op. control Theater 1 Land forces tactical Theater 2 Naval forces tactical Theater 3 Air forces tactical Supervisor Scenario control panel Large Display Shared situational map Zoom Display Detail / zoom view WebSocket + HTMX push Each workstation receives: - Real-time hex map updates - Unit status changes - Will/Capability deltas - TABORD confirmations - Monte Carlo results - INFOPS effects reports TACTICAL LAYER HEX GRID (H3) 3RIMA FNS-21 Esc.12 2REP Land Sea Air UNIT: 3RIMA (type 22) VE — Essential Values (6) Material Human C2 conn LOG conn C2 stock LOG stock Group C laws VC — Combat Values (8) Detect Identify Attack Defense Command Move Regen Special VE → VC (configurable) TABORD ORDER SYSTEM Movement Order S 1 2 D Start → WP1 → WP2 → Dest Establishment Order ZONE 3-hex establishment zone Units dig in + fortify Tactical Behavior Code 24 Digit 1 = "2" : Engage if superior Digit 2 = "4" : Counterattack TABORD = Tableau d'Ordres (structured order table) SUPPORT SYSTEMS C2 Chain (Apache AGE Graph) HQ Div 1 Div 2 Bde1 Bde2 Bde3 Bde4 Units Monte Carlo Engine 100 simulation runs Gaussian distribution of outcomes INFOPS (Influence Operations) Content Narrative / msg + Vector Channel / medium Target Will Component Gov. will | Mil. morale | Public op. Content + Vector = Effect on belligerent WILL gauge

Simulation Apps (11 Django Applications)

# App Name Purpose Key Models
1 belligerents Define opposing forces, their will gauges, capability sectors, and war objectives Belligerent, Will, CapabilitySector, WarObjective
2 units Military unit registry with type encoding, VE/VC values, and organizational links Unit, UnitType, EssentialValue, CombatValue
3 hexgrid H3-based hexagonal terrain grid, terrain types, and positional indexing HexCell, Terrain, UnitPosition
4 tabord Structured order table (TABORD) for movement, establishment, and engagement orders Order, Waypoint, EstablishmentZone, TacticalBehavior
5 combat Combat resolution engine using VC comparisons and Monte Carlo probability Engagement, CombatResult, Attrition
6 c2chain Command and control hierarchy stored as Apache AGE graph edges C2Node, C2Edge, CommandRelation
7 montecarlo Stochastic simulation engine running N iterations per engagement for probability distributions SimulationRun, RunResult, Distribution
8 infops Information operations: content authoring, vector selection, and will-component targeting InfoContent, InfoVector, WillEffect
9 ooda OODA loop turn engine controlling Observe-Orient-Decide-Act cycle phases Turn, Phase, OODAState
10 workstations Eight player workstation types with role-based views and WebSocket feeds Workstation, WorkstationRole, DisplayConfig
11 grouplaws Configurable Group C conversion laws mapping VE inputs to VC combat outputs ConversionLaw, VEWeight, VCOutput

Simulation Modes

Manual Mode

Timescale: Days

Full OODA cycle executed by human players. Each phase (Observe, Orient, Decide, Act) requires explicit player input and validation. Maximum realism for training exercises.

  • All 4 OODA phases: player-driven
  • TABORDs authored manually
  • Full deliberation time

Semi-Automatic Mode

Timescale: Hours

Orient and Decide phases require human input. Observe and Act phases are automated by the engine. Balances speed with meaningful decision-making.

  • Observe: automated sensor feeds
  • Orient + Decide: human players
  • Act: automated execution

Automatic Mode

Timescale: Minutes

All OODA phases automated. Engine runs at maximum speed using AI-driven decisions and Monte Carlo resolution. Used for scenario stress-testing and what-if analysis.

  • All 4 OODA phases: engine-driven
  • Monte Carlo batch runs
  • Hundreds of iterations possible

Unit Type Encoding

Two-Digit Type Code

Each unit is assigned a 2-digit type code. The first digit encodes the echelon level, the second digit encodes the domain.

First Digit (Echelon) Meaning Second Digit (Domain) Meaning
1 HQ / Command 1 Joint / Combined
2 Tactical 2 Land
3 Specialized 3 Sea / Naval
4 Air
5 Cyber
6 Space
7 Special Forces
8 Logistics
Example: Type 22 = Tactical + Land (e.g., 3RIMA infantry regiment). Type 14 = HQ + Air (e.g., Air Command). Type 37 = Specialized + Special Forces.

Tactical Behavior Matrix

Detection Reaction (1st digit) x Engaged Reaction (2nd digit) = 12 Combinations

The two-digit tactical behavior code encodes how a unit reacts when it detects an enemy (first digit) and when it is engaged in combat (second digit).

1 — Withdraw 2 — Hold position 3 — Delay & fall back 4 — Counterattack
1 — Evade 11 Evade + Withdraw 12 Evade + Hold 13 Evade + Delay 14 Evade + Counter
2 — Engage if superior 21 Engage + Withdraw 22 Engage + Hold 23 Engage + Delay 24 Engage + Counter
3 — Engage always 31 Always + Withdraw 32 Always + Hold 33 Always + Delay 34 Always + Counter
Example: Behavior code 24 means the unit will engage if it has force superiority upon detection, and counterattack if engaged by the enemy. This is a typical posture for offensive mechanized units.