Radar Simulation
for Python
A powerful Python library for radar transceiver modeling, baseband simulation from point targets and 3D meshes, and advanced signal processing — including Range-Doppler, DoA estimation, CFAR, and beamforming.
from radarsimpy import Radar, Transmitter, Receiver from radarsimpy.simulator import sim_radar # Define FMCW transmitter tx = Transmitter( f=(77e9, 81e9), t=80e-6, tx_power=15, prp=100e-6, pulses=128, ) # Define receiver rx = Receiver( fs=6e6, noise_figure=8, rf_gain=20, ) # Build radar and run simulation radar = Radar(transmitter=tx, receiver=rx) data = sim_radar(radar, targets=[{ "location": (50, 0, 0), "rcs": 10, }])
Everything You Need for Radar Simulation
Four integrated capability areas covering the full radar simulation workflow.
Radar Modeling
- Transceiver modeling with multiple Tx/Rx channels
- Arbitrary waveform — CW, FMCW, PMCW, Pulse, and custom
- Phase noise modeling
- Modulation — CDM, FDM, DDM, TDM (fast-time & slow-time)
- Antenna pattern definition per channel
Simulation
- Baseband data from point targets
- Baseband data from 3D modeled objects & environments (ray tracing)
- Interference simulation
- Target RCS simulation
- LiDAR point cloud from 3D models
Signal Processing
- Range / Doppler processing
- DoA estimation — MUSIC, Root-MUSIC, ESPRIT, IAA
- Beamforming — Capon, Bartlett
- 1D/2D CA-CFAR & OS-CFAR
Characterization
- Radar detection characteristics (ROC curves)
- Swerling target models (0–4)
- Radar link budget analysis
- Phase noise characterization
CPU & GPU Parallelization
Designed for performance — from a laptop to a CUDA workstation.
Multi-threaded simulation via OpenMP. Available on Windows, Linux, and macOS.
Massive parallelization on NVIDIA GPUs. Available on Windows and Linux.
Native ARM64 build for M-series Macs. CPU-only, no extra dependencies.
| Platform | CPU (OpenMP) | GPU (CUDA) |
|---|---|---|
| Windows | ✓ | ✓ |
| Linux (Ubuntu 22.04 / 24.04) | ✓ | ✓ |
| macOS (Intel) | ✓ | — |
| macOS (Apple Silicon) | ✓ | — |
Dependencies & Setup
No compilation needed — download the pre-built module and place it in your project.
Python Packages
Python>= 3.9NumPy>= 2.0SciPyPyMeshLab/PyVista/trimesh/meshio(for 3D mesh targets)
Platform Requirements
- Windows — Visual C++ Runtime; CUDA driver for GPU build
- Ubuntu 22.04 — GCC 11 (default); CUDA driver for GPU build
- Ubuntu 24.04 — GCC 13 (default); CUDA driver for GPU build
- macOS Intel — GCC 14 (
brew install gcc@14) - macOS Apple Silicon — Default Clang, no extra dependencies
Installation
Download the pre-built module and place the radarsimpy folder in your project directory:
your_project.py your_project.ipynb radarsimpy/ ├── __init__.py ├── radar.py ├── processing.py ├── [platform-specific binaries] └── ...
Learn by Example
All source files available in the radarsimnb repository.
MIMO & Angle Estimation
Ray Tracing
Radar Cross Section
CFAR & Interference
System Characterization
LiDAR
Free to Try, Licensed to Unlock
Already have a RadarSimPy license? You can use your existing license file to unlock all RadarSimApp capabilities — no new purchase required.
Fully functional for learning and exploring radar simulation concepts.
- Max 2 targets
- 1 Tx / 1 Rx channel
- Max 8 meshes
- Email support for installation
- No bug fixes & updates
Activate with your existing RadarSimPy license — all limits removed.
- Unlimited targets
- Unlimited Tx / Rx channels
- Unlimited meshes
- Email support within license term
- Bug fixes & updates within license term