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.
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.
RadarSimM
The MATLAB interface — transceiver modeling and baseband simulation in a familiar MATLAB workflow, powered by the same engine.