PULSE is a comprehensive Python library for synthetic sensor data generation, developed jointly by Zenteiq Aitech Innovations Private Limited and the AiREX (AI for Research and Engineering eXcellence) Lab at Indian Institute of Science, Bangalore. It provides a unified interface for simulating realistic datasets from various sensors and radars across multiple domains.
PULSE enables developers, data scientists, and researchers to generate realistic sensor data for:
- Testing algorithms
- Validating data pipelines
- Prototyping IoT applications
- Simulating sensor networks
- Training and testing ML models
without the need for physical hardware.
- Comprehensive Sensor Coverage: Simulate data from dozens of sensor types across multiple domains
- Configurable Parameters: Adjustable settings for noise levels, ranges, and frequencies
- Time-Series Generation: Generate continuous or burst-based time-series data
- Synthetic Anomalies: Inject realistic anomalies for testing
- Easy Integration: Simple Python API for quick implementation
- Error Modeling: Support for various error models including Constant, Linear, Sinusoidal, Gaussian, and Uniform
- High-Performance Computing: Optimized numerical computations using JAX and NumPy
pulse_pdw/
├── src/
│ └── pulse/
│ ├── __init__.py
│ ├── core/
│ │ └── pdw_simulator/
│ │ ├── __init__.py
│ │ ├── main.py # Core simulation execution
│ │ ├── models.py # Core classes (Scenario, Radar, Sensor)
│ │ ├── radar_properties.py # Radar-specific functions
│ │ ├── sensor_properties.py # Sensor-specific functions
│ │ └── scenario_geometry.py # Geometry calculations
│ └── sensors/
│ ├── air/
│ ├── sea/
│ ├── ground/
│ └── infrastructure/
│
├── tests/
│ ├── __init__.py
│ ├── conftest.py # Test fixtures and configuration
│ ├── test_models.py # Tests for core classes
│ ├── test_integration.py # Integration tests
│ └── fixtures/
│ └── test_config.yaml # Test configuration data
│
├── apps/
│ └── app.py # Streamlit web interface
│
├── docs/
│ ├── README.md # Package documentation
│ ├── API.md # API documentation
│ └── examples/
│ └── simulations.md # Usage examples
│
├── examples/
│ └── basic_simulation.py # Example scripts
│
├── LICENSE
├── README.md
├── pyproject.toml
├── pytest.ini
└── requirements.txt
The current version includes:
The PDW Simulator is a sophisticated module for modeling radar-sensor interactions. It includes:
- Scenario Management: Controls simulation environment and time progression
- Radar Properties:
- Pulse generation patterns (Fixed, Stagger, Switched, Jitter)
- Frequency management
- Pulse width control
- Antenna lobe patterns
- Rotation patterns
- Sensor Properties:
- Detection probability models
- Measurement error models
- Parameter measurements (TOA, Frequency, Amplitude, etc.)
- Geometry Calculations:
- Position and trajectory calculations
- Unit management using Pint
- Create a new conda environment:
conda create -n pulse_env python=3.12
conda activate pulse_env
- Install core dependencies:
conda install numpy scipy pandas streamlit pyyaml h5py plotly
conda install -c conda-forge pint
- Install in development mode:
pip install -e .
streamlit run apps/app.py
To set custom Parameters,create a config.yaml
file in your working directory:
scenario:
start_time: 0
end_time: 10
time_step: 0.1
radars:
- name: "Radar1"
start_position: [0, 0]
rotation_type: "constant"
rotation_params:
t0: 0
alpha0: 0
T_rot: 4
pri_type: "fixed"
pri_params:
pri: 0.001
sensors:
- name: "Sensor1"
start_position: [1000, 1000]
error_model: "gaussian"
error_params:
mean: 0
std: 0.1
The simulator generates data with the following fields:
- Time: Simulation time
- SensorID: Identifier of the detecting sensor
- RadarID: Identifier of the detected radar
- TOA: Time of Arrival
- Amplitude: Signal amplitude
- Frequency: Signal frequency
- PulseWidth: Pulse width
- AOA: Angle of Arrival
Detailed documentation is available at [docs link placeholder]. This includes:
- API Reference
- Usage Examples
- Parameter Configuration
- Simulation Tutorials
We welcome contributions! Please see our Contributing Guidelines for details on:
- Code of Conduct
- Development Process
- Pull Request Protocol
- Testing Requirements
To contribute:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
pytest tests/
- Improved Visualization using plotly
- Support for HDF5 data format
- Doppler Shift & Enhanced Frequency Measurement using FFT Interpolation
- Valid Data Ranges
- GPU Support & High Performance Computing
- Additional sensor types and domains
- Real-time simulation capabilities
- Distributed computing support
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
If you use PULSE in your research, please cite:
@software{pulse2025,
title = {PULSE: Python Unified Library for Sensor Emulation},
author = {{Zenteiq Aitech Innovations} and {AiREX Lab}},
year = {2025},
url = {https://github.com/zenoxml/pulse}
}
- ARTPARK (AI & Robotics Technology Park) at IISc
- GitHub Issues: https://github.com/zenoxml/pulse/issues
- Email: contact@scirex.org
- Zenteiq Aitech Innovations Private Limited
- AiREX Lab at Indian Institute of Science, Bangalore