The C++ version of an open simulator for beyond-visual-range air combat ran faster than its Python counterpart in every configuration tested, with reported speedups ranging from 2.72 to 6.55 times. In the same arXiv preprint, a policy trained only on an F-16 reached a 45.50 percent mean win rate on four unseen aircraft when paired with aircraft-specific controller adaptation, compared with 13.21 percent without it. These are simulated, aggregate results, and the paper does not present them as evidence of operational combat performance.
What the simulator brings together
BVR Sim is presented as an open-source, Gymnasium-style environment for air-combat reinforcement learning. It brings together heterogeneous JSBSim aircraft, configurable weapons, sensors, controllers and opponents, along with a shared tactical interface, Python and C++ backends, entity-oriented observations, compositional rewards, scripted opponents, replay, visualization and adapters for multi-agent learning. The C++ JSBSim mapping includes F-15, F-16, F/A-18, F-4N, AJ/JA-37 and F-22 families. A single episode can combine different aerodynamic models and controller parameters.
At the control level, the default action is a MultiDiscrete space with 15 heading choices, 15 altitude choices, nine speed choices and two fire states. The first three indices are normalized from minus 1 to 1 and scaled to maximum command changes of 45 degrees in heading, 80 metres in altitude and 80 metres per second in speed. Alongside those actions, the environment provides structured observations, compositional rewards and the replay and visualization tools described in the paper.
The speed test
To measure throughput, the headless protocol matched the scenario, aircraft, stores, opponents, observation implementation, reward computation and transition workload across the two backends. Each reported point used a 0.4-second environment interval, 20 warm-up transitions and three repeats of 500 timed transitions. Construction, warm-up and reset time were excluded from the timed measurements.
The C++ backend was faster than Python in every tested configuration, with mean speedups between 2.72 and 6.55 times. In the 1-vs-1 setting, it reached 260.65 plus or minus 2.75 steps per second, with a reported real-time factor of 104.26. In the 10-vs-10 setting, the mean was 55.43 steps per second, with a standard deviation of 38.71 steps per second.
Transfer across aircraft
The transfer test used a fixed rule opponent in 1-vs-1 engagements. PPO-F16 was trained only on the F-16, while PPO-All was trained across the F-16, F-15, F/A-18, F-22 and F-4N. Each frozen policy was evaluated on each of the five aircraft for 960 episodes, both with and without aircraft-specific controller adaptation. In this setting, frozen means the policy was evaluated without retraining.
Without retraining, PPO-F16 recorded a 45.50 percent mean win rate on the four aircraft it had not seen during training when controller adaptation was used, versus 13.21 percent without adaptation. The detailed contrasts included 22.00 percent versus 1.88 percent for the F/A-18 and 80.11 percent versus 0.00 percent for the F-22. Across the five-aircraft evaluation, the overall mean was 46.96 percent for PPO-F16 and 55.29 percent for training over all five models with adaptation. These aggregate results do not establish a universal aircraft-invariant policy.
Useful signals, narrow claims
The multi-agent portion used archived HAPPO and MAPPO runs on the same MultipleCombat-2v2/ShootMissile task. The runs trained two aircraft with centralized training and decentralized execution, meaning the training setup was centralized while the aircraft acted through separate policies. Each trace represented approximately 22.5 million environment steps, and the two traces used different single seeds.
Both archived traces showed sustained reward improvement over approximately 22.5 million environment steps. The preprint presents this as an integration check for the environment and learning pipeline, not as evidence of relative algorithm performance, convergence or learned coordination.
One matched module-level missile case compared an AIM-120C5 launched at 16.21 NM against a straight-flying F-16. Under proportional-navigation guidance, the reported time to hit was 36 seconds and terminal speed was Mach 1.35. Under multi-stage composite guidance, the time to hit was 28 seconds and terminal speed was Mach 1.71.
That missile comparison was a qualitative sanity check rather than statistical or operational validation because the original trajectory archive was unavailable. More broadly, the study describes BVR Sim as research-oriented rather than certification-grade or operational. It also notes that public radar and missile parameters are simplified, environmental and countermeasure modeling is incomplete, MARL evidence comes from one run per algorithm, transfer evidence is aggregate-only and the missile result is a single module-level case.
An open package for replication
The simulator, configurations and documentation are reported as available under GPLv3. The exact matching code release is identified by the annotated Git tag arxiv-v1. The supplementary artifact contains paper-side scripts, configurations, aggregate evidence, a SHA-256 manifest, scenario metadata, provenance notes, extracted HARL records and source hashes. The supplied document is an arXiv preprint, arXiv:2608.25419v1, dated 26 August 2026.
Paper data and sources
Original title: BVR Sim: An Open and High-Throughput Environment for Heterogeneous Air-Combat Reinforcement Learning
Authors: Haocheng Sun, Mulai Tan
Journal/Repository: arXiv
Status: Preprint, not yet peer-reviewed
First online: 2026-08-26
DOI: Not available
Original paper · Full text