Skip to content

RadarSimLib

Open Source · C Interface

C Wrapper for
RadarSimCpp

RadarSimLib exposes the RadarSimCpp engine through a clean C API — including GPU parallelization — making it straightforward to integrate radar simulation into any language or environment that can call C libraries.

// Architecture
RadarSimCpp C++ / CUDA core engine
↓ wrapped by
RadarSimLib C interface · radarsim.h
↓ consumed by
RadarSimMMATLAB
RadarSimAppDesktop GUI

A Portable C Interface to the Simulation Engine

Bring the full RadarSimCpp engine to any language that supports C FFI.

C API via radarsim.h

All core functionality is exposed through a single header file. Call the engine from Python (ctypes/cffi), Julia, Rust, C#, MATLAB MEX, or any language with C interop.

Full GPU Support

CPU (OpenMP) and GPU (CUDA) parallelization is accessible through the same C API. No need to link against CUDA headers directly — the library handles it.

Used internally by RadarSimM and RadarSimApp. RadarSimPy links directly to RadarSimCpp without going through RadarSimLib. If you’re working in Python or MATLAB, use those interfaces directly. RadarSimLib is intended for custom integrations into other languages or build systems.

Getting Started

The primary reference is the radarsim.h header, which documents all available functions. For complete usage examples, refer to the RadarSimM source code, which wraps RadarSimLib as its MATLAB MEX interface.

Example: Loading the library in Python (ctypes)

import ctypes

# Load the RadarSimLib shared library
lib = ctypes.CDLL("./libradarsimcpp.so")  # Linux
# lib = ctypes.CDLL("./radarsimcpp.dll")  # Windows

# Declare function signatures from radarsim.h
lib.Create_Transmitter.restype  = ctypes.c_void_p
lib.Create_Transmitter.argtypes = [
    ctypes.c_double,   # start frequency
    ctypes.c_double,   # end frequency
    ctypes.c_double,   # sweep time
    ctypes.c_double,   # tx power (dBm)
    ctypes.c_int,      # number of pulses
]

For the full function reference, see radarsim.h on GitHub.

Use a Higher-Level Interface

For most users, one of these interfaces is the right starting point.

RadarSimPy

The full-featured Python interface — simulation, signal processing, DoA, CFAR, beamforming, and more. The recommended choice for research and prototyping.

Learn more →

RadarSimM

The MATLAB interface — transceiver modeling and baseband simulation in a familiar MATLAB workflow, powered by the same engine.

Learn more →