Skip to content

RadarSimPy

Python Radar Simulator

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.

simulation.py
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.

CPU (OpenMP)

Multi-threaded simulation via OpenMP. Available on Windows, Linux, and macOS.

🚀
GPU (CUDA 13)

Massive parallelization on NVIDIA GPUs. Available on Windows and Linux.

🍎
Apple Silicon

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.9
  • NumPy >= 2.0
  • SciPy
  • PyMeshLab / 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]
  └── ...
Windows: radarsimcpp.dll · simulator.pyd Linux: libradarsimcpp.so · simulator.so macOS: libradarsimcpp.dylib · simulator.so

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.

Free TrialFREE

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
LicensedLICENSED

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
Get a License →