Wearable Signal Tools · PPG
Open-Source PPG Signal Processing Tools
51 open-source tools for photoplethysmography (PPG) data, most often in Python, MATLAB and Kotlin. Each listing shows its licence, commercial use and last commit.
What open-source tools can process PPG signals in Python or MATLAB?
Photoplethysmography (PPG) measures changes in blood volume with light. It is the optical pulse signal recorded by pulse oximeters and most smartwatches and rings.
- ADI SpO2 Watch SDKPython device and mobile SDK for PPG signalsPPGMobile and device SDKPythonLicence: BSD-3-ClauseCommercial use: yesLast commit Aug 28, 2024
- Benchmarking PPG peak detection with reference ECGPython benchmark and evaluation code for PPG and ECG signalsPPGECGBenchmark harnessPythonLicence: MITCommercial use: yesLast commit Sep 21, 2021
- BIOBSSPython signal processing toolbox for PPG, ECG, EDA and respiration signalsPPGECGEDARespirationSignal processingPythonLicence: MITCommercial use: yesLast commit May 17, 2023
- biopeaksPython signal processing toolbox for ECG, respiration and PPG signalsECGRespirationPPGSignal processingPythonLicence: GPL-3.0Commercial use: yesLast commit Aug 12, 2024
- BioSPPyPython signal processing toolbox for ECG, PPG, EDA, respiration and EEG signalsECGPPGEDARespirationEEGSignal processingPythonLicence: BSD-3-ClauseCommercial use: yesLast commit Sep 17, 2026
- BleakHeartPython data collection platform for ECG, PPG and accelerometer/IMU signalsECGPPGIMUData collection platformPythonLicence: MPL-2.0Commercial use: yesLast commit Oct 19, 2025
- BP benchmarkPython benchmark and evaluation code for PPG and ECG signalsPPGECGBenchmark harnessPythonLicence: MITCommercial use: yesLast commit May 14, 2025
- BrainBeatsMATLAB signal processing toolbox for EEG, ECG and PPG signalsEEGECGPPGSignal processingMATLABLicence: GPL-3.0Commercial use: yesLast commit Oct 9, 2026
- E2E-PPGPython signal processing toolbox for PPG signalsPPGSignal processingPythonLicence: MITCommercial use: yesLast commit Jan 16, 2024
- ECG and PPG simulator with arrhythmia episodessignal simulator for ECG and PPG signalsECGPPGSimulation and synthetic dataLanguage not statedLicence: GPL-3.0Commercial use: yesLast commit May 2, 2022
- empatica-e4-localPython data collection platform for PPG, EDA, accelerometer/IMU and skin temperature signalsPPGEDAIMUTemperatureData collection platformPythonLicence: MITCommercial use: yesLast commit May 17, 2026
- GalaxyPPG-LoggerGalaxy Watch + phone data loggerPPGData collection platformKotlinLicence: MITCommercial use: yesLast commit Jul 1, 2025
- HeartPyPython signal processing toolbox for PPG and ECG signalsPPGECGSignal processingPythonLicence: MITCommercial use: yesLast commit Dec 30, 2025
- KID-PPGPython signal processing toolbox for PPG and accelerometer/IMU signalsPPGIMUSignal processingPythonLicence: GPL-3.0Commercial use: yesLast commit May 8, 2024
- NeuroKit2Python signal processing toolbox for PPG, ECG, EDA, EEG and respiration signalsPPGECGEDAEEGRespirationSignal processingPythonLicence: MITCommercial use: yesLast commit Mar 1, 2026
- O2Ring analyzerPython signal processing toolbox for PPG signalsPPGSignal processingPythonLicence: MITCommercial use: yesLast commit Jul 20, 2026
- OpenEarable PythonPython data reader and loader for PPG and accelerometer/IMU signalsPPGIMUDataset loaderPythonLicence: MITCommercial use: yesLast commit May 29, 2026
- ParaDigMaPython signal processing toolbox for PPG and accelerometer/IMU signalsPPGIMUSignal processingPythonLicence: Apache-2.0Commercial use: yesLast commit Oct 2, 2026
- peak-detector (multimodal)MATLAB signal processing toolbox for ECG and PPG signalsECGPPGSignal processingMATLABLicence: GPL-2.0Commercial use: yesLast commit Aug 22, 2017
- physioKITPython signal processing toolbox for ECG, PPG, respiration and accelerometer/IMU signalsECGPPGRespirationIMUSignal processingPythonLicence: BSD-3-ClauseCommercial use: yesLast commit Oct 7, 2026
- PhysioKitPython data collection platform for PPG and EDA signalsPPGEDAData collection platformPythonLicence: MITCommercial use: yesLast commit Jun 26, 2024
- PhysioNet Cardiovascular Signal ToolboxMATLAB signal processing toolbox for ECG and PPG signalsECGPPGSignal processingMATLABLicence: BSD-3-ClauseCommercial use: yesLast commit Oct 27, 2022
- PhysioViewPython signal quality tool for EDA, PPG and ECG signalsEDAPPGECGSignal qualityPythonLicence: GPL-3.0Commercial use: yesLast commit Jul 4, 2026
- pobm (Oximetry Toolbox)Python signal processing toolbox for PPG signalsPPGSignal processingPythonLicence: GPL-3.0Commercial use: yesLast commit Jan 30, 2024
- Polar BLE SDKSwift device and mobile SDK for ECG, PPG and accelerometer/IMU signalsECGPPGIMUMobile and device SDKSwiftLicence: Not statedCommercial use: Not statedLast commit Oct 1, 2026
- PPG and BP transfer functionsMATLAB signal processing toolbox for PPG signalsPPGSignal processingMATLABLicence: MITCommercial use: yesLast commit Nov 29, 2023
- PPG SQA (energy-efficient)Python signal quality tool for PPG signalsPPGSignal qualityPythonLicence: Not statedCommercial use: Not statedLast commit Mar 5, 2021
- PPG-beatsMATLAB signal processing toolbox for PPG signalsPPGSignal processingMATLABLicence: Not statedCommercial use: yesLast commit Apr 14, 2025
- PPG-qualityMATLAB signal quality tool for PPG signalsPPGSignal qualityMATLABLicence: MITCommercial use: yesLast commit Jan 25, 2026
- PPGFeatsignal processing toolbox for PPG signalsPPGSignal processingLanguage not statedLicence: MITCommercial use: yesLast commit May 10, 2024
- PPGI-ToolboxMATLAB signal processing toolbox for PPG signalsPPGSignal processingMATLABLicence: LGPL-3.0Commercial use: yesLast commit Oct 20, 2022
- PPGrawPython viewer and plotting tool for PPG signalsPPGVisualizationPythonLicence: Not statedCommercial use: Not statedLast commit Feb 12, 2021
- PPGSynthMATLAB signal simulator for PPG signalsPPGSimulation and synthetic dataMATLABLicence: GPL-3.0Commercial use: yesLast commit Oct 12, 2024
- Pulse Wave Database (PWDB) toolboxMATLAB signal simulator for PPG signalsPPGSimulation and synthetic dataMATLABLicence: MITCommercial use: yesLast commit Sep 26, 2019
- PulseAnalyseMATLAB signal processing toolbox for PPG signalsPPGSignal processingMATLABLicence: GPL-3.0Commercial use: yesLast commit May 25, 2021
- PulseDB codePython data reader and loader for PPG and ECG signalsPPGECGDataset loaderPythonLicence: CC-BY-NC-SA-4.0Commercial use: noLast commit Jun 12, 2024
- PulseLabMATLAB signal processing toolbox for PPG and ECG signalsPPGECGSignal processingMATLABLicence: GPL-3.0Commercial use: yesLast commit Jun 16, 2022
- pyHRVPython signal processing toolbox for ECG and PPG signalsECGPPGSignal processingPythonLicence: BSD-3-ClauseCommercial use: yesLast commit Jun 17, 2026
- pyPPGPython toolbox for PPG fiducials, features and signal qualityPPGSignal processingPythonLicence: GPL-3.0Commercial use: noLast commit Apr 28, 2025
- pyPPGqaPython signal quality tool for PPG signalsPPGSignal qualityPythonLicence: MITCommercial use: yesLast commit Sep 20, 2020
- pyVHRPython signal processing toolbox for PPG signalsPPGSignal processingPythonLicence: GPL-3.0Commercial use: yesLast commit Nov 20, 2024
- Respiratory-Rate-PPG-ECGPython signal processing toolbox for PPG and ECG signalsPPGECGSignal processingPythonLicence: GPL-3.0Commercial use: Not statedLast commit Oct 16, 2026
- RingToolPython benchmark and evaluation code for PPG and accelerometer/IMU signalsPPGIMUBenchmark harnessPythonLicence: Not statedCommercial use: noLast commit Jul 25, 2026
- rppg (remotebiosensing)Python benchmark and evaluation code for PPG signalsPPGBenchmark harnessPythonLicence: Apache-2.0Commercial use: yesLast commit Nov 21, 2023
- rPPG-ToolboxPython benchmark and evaluation code for PPG signalsPPGBenchmark harnessPythonLicence: Not statedCommercial use: Not statedLast commit Sep 15, 2025
- RRestMATLAB signal processing toolbox for PPG and ECG signalsPPGECGSignal processingMATLABLicence: GPL-3.0Commercial use: yesLast commit Mar 29, 2022
- SystolePython signal processing toolbox for PPG and ECG signalsPPGECGSignal processingPythonLicence: Apache-2.0Commercial use: yesLast commit Oct 14, 2026
- TEAPMATLAB signal processing toolbox for PPG, ECG, EDA, EEG, respiration and skin temperature signalsPPGECGEDAEEGRespirationTemperatureSignal processingMATLABLicence: GPL-3.0Commercial use: yesLast commit Oct 28, 2022
- viatom-blePython data collection platform for PPG signalsPPGData collection platformPythonLicence: MITCommercial use: yesLast commit Aug 7, 2026
- vital_sqiPython signal quality tool for PPG and ECG signalsPPGECGSignal qualityPythonLicence: MITCommercial use: yesLast commit May 2, 2023
Questions about open-source PPG tools
What is PPG?
Photoplethysmography (PPG) measures changes in blood volume with light. It is the optical pulse signal recorded by pulse oximeters and most smartwatches and rings.
How many open-source PPG tools are listed?
51. The most common categories are signal processing (27), benchmark harness (5) and data collection platform (5).
Which programming languages do open-source PPG tools use?
Python (34), MATLAB (13), Kotlin (1) and Swift (1); 2 do not state a language. A tool that names more than one language is counted under each.
Can I use these PPG tools in a commercial product?
It depends on each licence. Of the 51 tools, 43 list commercial use as yes, 3 as no and 5 do not state it. Each tool page shows the licence exactly as the project publishes it; read the licence in the project repository before you build on it.
Listings, summaries, licences and commercial-use fields are shown as recorded for each project, as of Oct 21, 2026. Maintenance is computed from the date of the last commit. Check the licence in each project’s repository before you use it.






























