Skip to content

Releases: SpaceEngineerSS/RadarSim

RadarSim v4.0.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 00:11

A rebuild of the simulator around a correct detection loop, a new desktop interface
and a cleaned-up package. Scenario files, the Python import path and two sign
conventions changed, so this is a major release; see Migrating from 3.x below.

Breaking changes

  • The package is now radarsim instead of src: from radarsim.simulation.engine import SimulationEngine.
  • One coordinate frame everywhere: ENU (x East, y North, z Up), azimuth clockwise from North.
  • Doppler is fd = −2·vr/λ with vr positive when opening; closing targets have negative radial velocity in every output.
  • Scenario files are validated against a schema. Unknown keys are errors with a suggestion; required_radar_preset and other unused keys were removed.
  • Removed modules that did not work or were never connected: advanced/ (except SAR/ISAR, now radarsim.signal.sar_isar), sensor fusion UI, LPI waveforms, RF spectrum view, WebGL renderer, the matplotlib 3-D view and the old Sphinx documentation.

Detection and physics

  • Detection happens only when the beam centre crosses a target (circular, sector and stare scans), giving one look per revisit.
  • Pulse-compression gain and the compressed range cell were missing (up to 26 dB of error); noise, jamming and clutter now combine after the matched filter.
  • Mean RCS in the SNR with the Swerling statistic only in Pd, removing a double-counted fluctuation.
  • Exact Swerling 1 and 2 detection probabilities, Gauss–Legendre integration for cases 3 and 4, cached; checked against a pulse-level Monte Carlo.
  • CFAR loss from the Gandhi–Kassam closed forms for CA, GO, SO and OS.
  • Clutter enters through the elevation pattern; MTI improvement factor per Skolnik with a 50 dB stability limit.
  • Rain attenuation limited to the ITU-R P.839 rain height; P.676 receives the dry-air pressure.
  • Terrain masking with Earth bulge, terrain presets and height_above_terrain_m.
  • Coordinated-turn motion, deploy times for chaff and decoys, chaff bloom and decay.
  • Every random draw goes through one seeded generator; reset() reproduces a run exactly.

Tracking

  • Track-while-scan inside the engine with continuous white-noise acceleration, two-point initiation with a velocity gate, misses only when the beam looked, revisit guard and maximum coast time.
  • Rewritten monopulse estimator (squinted Gaussian beams).

Interface

  • New desktop interface: dark console theme, IBM Plex type, own icon set, PPI, B-scope, A-scope, RHI, range–Doppler and 3-D views.
  • Simulation runs at a fixed step on its own thread; rendering adapts to the machine (16, 33 or 50 ms frames) with motion interpolation and a reduce-motion setting.
  • New: Pd–range coverage diagram, Monte Carlo panel with Wilson intervals, event log with CSV/JSON report export, scenario editor that draws on the scope and saves canonical YAML.
  • English and Turkish.

Tooling

  • radarsim --headless SCENARIO --duration --seed --out and radarsim --list; built-in scenarios ship inside the package.
  • MkDocs documentation with figures generated by tools/make_figures.py and screenshots by tools/capture_screenshots.py.
  • CI runs ruff, mypy, bandit, the translation check, tests on three systems, a wheel check outside the repository and a strict docs build; tagged releases build Windows, Linux and macOS applications.

Migrating from 3.x

  1. Replace src. with radarsim. in imports.
  2. Re-save old scenarios: load the file, fix the keys the validator reports, and check that positions and headings follow ENU with azimuth from North.
  3. If you post-process Doppler or radial velocity, flip the sign of values from 3.x.
  4. python run_gui.py still works from a checkout; radarsim is the installed command.

RadarSim v3.0.1

Choose a tag to compare

@github-actions github-actions released this 30 Sep 16:56

RadarSim 3.0.1

RadarSim 3.0.1 is a maintenance and stability release resolving scenario execution edge cases, dynamic parameter synchronization, and command-line scenario loading.

Highlights in 3.0.1

  • Scenario-Bundled Distribution: Bundled the scenarios/ directory in release ZIP/TAR.GZ archives so standalone executables have immediate access to all 10 scenario definitions.
  • Built-in Scenarios Menu: Added File > ⚡ Built-in Scenarios menu for instant one-click scenario launching without manual file browsing.
  • Rendering Performance Optimization: Pre-cached discrete brush palettes for phosphor persistence trails and affiliation markers, eliminating on-the-fly QPainter rasterization bottlenecks and dropping phosphor update latency from 117 ms to 0.5 ms (192x speedup).
  • Sub-1GHz Attenuation Safety: Guarded ITU-R P.676 atmospheric absorption and ITU-R P.838 rain attenuation for frequencies below 1.0 GHz (such as UHF/VHF early warning radars), applying negligible 0.0 dB attenuation rather than raising an out-of-domain exception. Resolves crashes in stealth_deep_penetration.yaml.
  • Terrain Type Normalization: Added "mountain" alias and normalization in ClutterModel.ground_clutter_sigma0 to match scenario specifications. Resolves crash in mountain_ambush.yaml.
  • Dynamic Radar Parameter Synchronization: Converted SimulationEngine._radar_params to a real-time property synchronized with self.radar, ensuring GUI frequency/power slider changes immediately affect SNR and detection calculations.
  • Command-Line Scenario Loading: python run_gui.py [scenario_path] and radarsim [scenario_path] now accept a scenario YAML/JSON file path directly on startup.
  • GUI File Filter: Added *.json to QFileDialog scenario open filter alongside *.yaml/*.yml.
  • Public Scenario API: Added MainWindow.load_scenario(filepath) for modular and programmatic scenario loading.
  • Windows Console Encoding: Replaced Unicode arrow and lambda characters in console logging to prevent UnicodeEncodeError on CP1252/CP1254 environments.
  • Automated Verification: Added regression tests executing multi-step simulation on all distributed scenarios. Full test suite: 343 passing tests.

Full Changelog: v3.0.0...v3.0.1

RadarSim v3.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 20:11

RadarSim 3.0.0

RadarSim 3.0 is a scientific-model and signal-chain revision. The release focuses on traceable equations, calibrated statistical processing, explicit timing/covariance semantics, and honest model boundaries.

The pulse-Doppler path now starts with delayed complex LFM echoes and performs linear matched filtering, optional MTI, windowed Doppler processing, physical range/velocity axes, and ambiguity reporting. CFAR thresholds are calibrated separately for CA, GO, SO, and OS detectors; two-dimensional CA-CFAR uses a true rectangular reference ring.

Tracking now uses chi-square innovation gating and Hungarian global assignment with exact confirmation/coasting rules. Network estimates are timestamp-aligned before fusion. Independent measurements and unknown-correlated tracks use separate information-fusion and covariance-intersection paths.

The physics engine includes corrected link/noise accounting, ITU-R gas and rain loss, Oh bare-soil and NRL sea-clutter reflectivity, statistical clutter, DRFM pull-off, and receiver hard-limiting diagnostics. SAR raw data and range-Doppler focusing now use actual phase history, range gating, and non-circular RCMC; ISAR uses compressed, aligned profiles and a rotation-rate-derived cross-range axis.

Obsolete optional modules and binary assets have been removed. RadarSim has no telemetry or remote-service dependency.

This release intentionally reports omega-k and chirp-scaling SAR processing as unimplemented. It also does not claim hardware-certified performance, real-platform signatures, refractive ray tracing, multipath, CAD electromagnetic scattering, or classified equipment behaviour. See docs/MODEL_FIDELITY.md before interpreting simulation results.

Verification for the source release: 341 automated tests, strict Ruff checks, offscreen PySide6 smoke tests, Bandit medium/high-severity scan, Sphinx warnings-as-errors build, and wheel/source-distribution build.

Breaking changes include removal of obsolete modules/assets, corrected signal calibration and axes, stricter input validation, and revised fusion/tracking lifecycle semantics. Existing scripts should pin 2.4.0 until their assumptions are checked against the 3.0 documentation.

Full Changelog: v2.4.0...v3.0.0

RadarSim v2.4.0

Choose a tag to compare

@github-actions github-actions released this 11 May 18:27

🚀 RadarSim v2.4.0 Official Release

Automated cross-platform build for Windows, Linux, and macOS.

📦 Installation:

  1. Download the archive for your operating system.
  2. Extract the contents.
  3. Run the RadarSim executable.

Scientifically accurate radar simulation engine.

RadarSim v1.0.1

Choose a tag to compare

@github-actions github-actions released this 23 Dec 19:30

🚀 RadarSim v1.0.1 Official Release

Automated cross-platform build for Windows, Linux, and macOS.

📦 Installation:

  1. Download the archive for your operating system.
  2. Extract the contents.
  3. Run the RadarSim executable.

Scientifically accurate radar simulation engine.