A radar simulator that runs the physics one look at a time and shows the result the way a radar console would. I use it to answer questions like: when is this fighter first detected, how far does a self-screening jammer push that out, why does the track break in a 5 g turn, and what does sea clutter do to a missile at 5 m altitude.
Documentation: https://spaceengineerss.github.io/RadarSim/
- Detection. The radar equation with pulse compression, Swerling 0–4 targets, non-coherent integration and CFAR loss. A target is only looked at when the beam crosses it, so detections and tracks arrive at the real revisit rate.
- Environment. ITU-R P.676 gases, P.838 rain with the P.839 rain height, terrain masking on a 4/3 Earth, land, sea and rain clutter through the elevation beam, MTI.
- Electronic attack. Noise jamming with burn-through, DRFM range and velocity gate pull-off, chaff and decoys released during the run.
- Tracking. Track-while-scan, Hungarian assignment with χ² gates, two-point initiation, Kalman and EKF filters, monopulse angles.
- Signal level. A coherent pulse-Doppler chain (LFM matched filter, MTI, Doppler FFT, CA/GO/SO/OS CFAR) and range-Doppler SAR focusing.
- Tools. Pd–range coverage diagram, Monte Carlo runs with confidence intervals, an event log with report export, and a scenario editor that draws on the scope.
Every model names its source and validity range, and each one is tested against a closed-form result or published values. The suite has 421 tests.
![]() |
![]() |
![]() |
![]() |
Python 3.9 to 3.12.
pip install "radarsim[gui] @ git+https://github.com/SpaceEngineerSS/RadarSim.git"
radarsimReady-to-run builds for Windows, Linux and macOS are attached to each release. From a checkout:
git clone https://github.com/SpaceEngineerSS/RadarSim.git
cd RadarSim
python -m venv .venv
.venv/bin/pip install -e ".[gui]" # .venv\Scripts\pip on Windows
.venv/bin/radarsimradarsim f16_vs_sa6opens the SEAD scenario. Press Space.- Watch F-16 Alpha stay hidden behind its jammer while Bravo is tracked from the start.
- Click a contact: the inspector shows its SNR, Pd and every loss term at the last look.
- Turn Jammers off in the settings panel and see Alpha appear on the next sweep.
- Open Coverage to see the Pd–range curve for the radar you just changed.
Without the interface:
$ radarsim --headless f16_vs_sa6 --duration 120 --seed 3
F-16 vs SA-6 Air Defense (120 s simulated in 0.70 s)
object looks det Pd first det [s] median SNR [dB]
F-16 Alpha 12 0 0.00 - -9.7
F-16 Bravo 12 12 1.00 7.4 39.6
Chaff 1 6 6 1.00 67.7 51.9
ADM-160 MALD 9 9 1.00 37.7 42.2
tracks: 3 (3 confirmed)
From Python:
from radarsim.io.scenario_loader import ScenarioLoader, resolve_scenario
engine = ScenarioLoader(resolve_scenario("naval_battlegroup")).create_simulation_engine()
engine.seed = 7
log = engine.run(60.0)| Scenario | What it shows |
|---|---|
basic_tracking |
three targets of different RCS and Swerling case, track life cycle |
close_air_combat |
fighter AESA sector scan, a 4.7 g break with a DRFM |
drone_swarm_saturation |
thirty small drones and the limits of data association |
ecm_environment |
barrage jamming and DRFM deception over the sea |
f16_vs_sa6 |
SEAD package: escort jammer, chaff and a MALD decoy |
ground_clutter_filtering |
land clutter sectors and the MTI canceller |
hypersonic_interception |
a staring Ka-band seeker against a glide vehicle |
mountain_ambush |
terrain masking and pop-up detection |
naval_battlegroup |
sea clutter against sea-skimming missiles |
stealth_deep_penetration |
a 0.01 m² bomber against a UHF early-warning radar |
Scenarios are YAML or JSON files with a checked schema; the format reference covers every key.
RadarSim is an engineering and teaching tool, not a certified performance predictor, and none of its parameters are real equipment data. Propagation has no ducting or multipath, targets are point scatterers, tracks are two-dimensional and the filters are single-model. Each model page in the documentation lists its own limits.
pip install -e ".[gui,dev,docs]"
pytest && ruff check . && mkdocs serveSee CONTRIBUTING.md and the development notes.
MIT, see LICENSE. The bundled IBM Plex fonts are under the SIL Open Font Licence. If RadarSim contributes to published work, please cite it using CITATION.cff and give the version, scenario file and seed.




