A Radar Simulator for Python
RadarSimPy is a powerful and versatile Python-based Radar Simulator that models radar transceivers and simulates baseband data from point targets and 3D models. Its signal processing tools offer range/Doppler processing, direction of arrival estimation, and beamforming using various cutting-edge techniques, and you can even characterize radar detection using Swerling’s models. Whether you’re a beginner or an advanced user, RadarSimPy is the perfect tool for anyone looking to develop new radar technologies or expand their knowledge of radar systems.
-
- Radar transceiver modeling
- Arbitrary waveform (CW, FMCW, PMCW, Pulse, ...)
- Phase noise
- Phase/amplitude modulation (CDM, FDM, DDM, TDM, ...)
- Fast-time/slow-time modulation
-
- Simulation of radar baseband data from point targets
- Simulation of radar baseband data from 3D modeled objects/environment
- Simulation of interference
- Simulation of target's RCS
- Simulation of LiDAR point cloud from 3D modeled objects/environment
-
- Range/Doppler processing
- Direction of arrival (DoA) estimation
- MUltiple SIgnal Classification (MUSIC) DoA estimations for a uniform linear array (ULA)
- Root-MUSIC DoA estimation for a ULA
- Estimation of Signal Parameters via Rational Invariance Techniques (ESPRIT) DoA estimation for a ULA
- Iterative Adaptive Approach (IAA) for amplitude and phase estimation
- Beamformer
- Capon beamformer
- Bartlett beamformer
- Constant false alarm rate (CFAR)
- 1D/2D cell-averaging CFAR (CA-CFAR)
- 1D/2D ordered-statistic CFAR (OS-CFAR)
-
- Radar detection characteristics based on Swerling's models
-
Python
>= 3.9 -
NumPy
>= 2.0 -
SciPy
-
PyMeshLab
(preferred) ormeshio
-
Visual C++ Runtime
- GPU version (CUDA12) - Check Minimum Required Driver Versions
-
GCC 11
(Included by default, no additional installation required)- GPU version (CUDA12) - Check Minimum Required Driver Versions
-
GCC 13
(Included by default, no additional installation required)- GPU version (CUDA12) - Check Minimum Required Driver Versions
-
- Try the module for Ubuntu 22.04 or Ubuntu 24.04
- Request a Custom Build if it doesn't work
-
-
GCC 13
brew install gcc@13
-
-
-
GCC 14
brew install gcc@14
-
Download the pre-built module, and put the radarsimpy folder within your project folder as shown below:
-
- your_project.py
- your_project.ipynb
- radarsimpy
- __init__.py
- radarsimcpp.dll
- simulator.xxx.pyd
- rt.xxx.pyd
- radar.py
- processing.py
- ...
-
- your_project.py
- your_project.ipynb
- radarsimpy
- __init__.py
- libradarsimcpp.so
- simulator.xxx.so
- rt.xxx.so
- radar.py
- processing.py
- ...
-
- your_project.py
- your_project.ipynb
- radarsimpy
- __init__.py
- libradarsimcpp.dylib
- simulator.xxx.so
- rt.xxx.so
- radar.py
- processing.py
- ...
This module supports CPU/GPU parallelization. CPU parallelization is implemented through OpenMP. GPU parallelization (CUDA) has been added since v6.0.0.
CPU (x86-64) | CPU (ARM64) | GPU (CUDA) | |
---|---|---|---|
Windows | ✔️ | ❌️ | ✔️ |
Linux | ✔️ | ❌️ | ✔️ |
MacOS | ✔️ | ✔️ | ❌️ |
- axis (m):
[x, y, z]
- phi (deg): angle on the x-y plane. 0 deg is the positive x-axis, 90 deg is the positive y-axis
- theta (deg): angle on the z-x plane. 0 deg is the positive z-axis, 90 deg is the x-y plane
- yaw (deg): rotation along the z-axis. Positive yaw rotates the object from the positive x-axis to the positive y-axis
- pitch (deg): rotation along the y-axis. Positive pitch rotates the object from the positive x-axis to the positive z-axis
- roll (deg): rotation along the x-axis. Positive roll rotates the object from the positive y-axis to the positive z-axis
- origin (m):
[x, y, z]
, the motion (rotation and translation) centor of the object. Radar's origin is always at[0, 0, 0]
- azimuth (deg): azimuth -90 ~ 90 deg equal to phi -90 ~ 90 deg
- elevation (deg): elevation -90 ~ 90 deg equal to theta 180 ~ 0 deg
Check all the usage examples on radarsimx.com. The source files of these examples are available at radarsimnb repository.
Building
radarsimpy
requires to access the source code ofradarsimcpp
. If you don't have access toradarsimcpp
, please use the pre-built module. For organizations seeking full source code access for customization or advanced integration, please submit Quote for Source Code.
-
build_win.bat --arch cpu --test on
Build for GPU (CUDA)
build_win.bat --arch gpu --test on
-
./build_linux.sh --arch=cpu --test=on
Build for GPU (CUDA)
./build_linux.sh --arch=gpu --test=on
-
./build_macos.sh --arch=cpu --test=on
Please check the Documentation