SDK - Introduction


The Binah.AI Software Development Kit (SDK) supplies a tool to measure a person’s photoplethysmography (PPG) and extract heart rate, respiration rate, oxygen saturation, heart rate variability (HRV), and stress index measurements - using the camera of a mobile device. The signal is extracted either remotely from a video stream of a person’s face (using rPPG methodology), or from a video feed of a person's finger (using PPG methodology). The HRV is calculated utilizing statistical modeling of heart rate interval variability.

The SDK controls the device camera for the video stream and performs the measurement calculations.

There is a high-level SDK appropriate for either Android-based mobile devices or iOS mobile devices. 


Photoplethysmography detects the optical absorption variations in the skin due to blood volume variations during the cardiac cycle [1]. There are two categories of devices based on PPG: contact-based and remote. Herein we refer to them as PPG and rPPG, respectively.

The heart rate is measured from the light intensity fluctuations due to the cardiac cycle [2]. The local peaks of the light intensity yield the instantaneous heart rate and the RR interval. The fluctuations indicate how the cardiovascular system is adjusted to sudden physical and psychological challenges to homeostasis. The measure of these fluctuations is referred to as HRV, and corresponds to a collection of statistical data [3]. The calculated parameters relate to the status of the sympathetic nervous system (SNS) and parasympathetic nervous system (PNS) activities. The SNS and PNS are indicators for the individual stress level, allowing the estimate of the stress index.

The respiration operation modulates the PPG signal [4]. The slow varying modulation is used to measure the respiration rate.

Oxygen saturation (SpO2) is measured from the light absorption difference of oxygenated hemoglobin (HbO2) and deoxygenated hemoglobin (Hb) at different wavelengths [5]. In the SDK we use the different camera colors to perform this calculation.

The API consists of two levels: video camera data processor and frame rendering; A message handling protocol is responsible for data exchange between mathematical engine (that is responsible for all measurements computation) and hosting application.

The mathematical engine is a collection of algorithms that compute the various parameters. The message handling protocol is used to transfer the heart rate, Oxygen saturation, respiration rate, heart rate variability and stress index by standard technique. has prepared a sample ios and Android application using the SDK. This app's purpose is to ease the development process of a new Android-based or iOS-based application. The application code is written in Kotlin and Swift, the underlying calculations are written in C++.


    1. W. Verkruysse, L. O. Svaasand, and J. S. Nelson, ”Remote plethysmographic imaging using ambient light”, Opt. Express 16(26), pp. 21434-21445 (2008); G. de Haan, and V. Jeanne, IEEE Trans. Biomed. Eng. 60, 2878-2886 (2013).
    2. D. McDuff, S. Gontarek, R. W. Picard, “Remote detection of photoplethysmographic systolic and diastolic peaks using a digital camera”, IEEE Trans. Biomed. Eng. 61, 2948–2954 (2014).
    3. F. Shaffer, J. P. Ginsberg , “An Overview of Heart Rate Variability Metrics and Norms”, Frontiers in Public Health 5, 258 (2017).
    4. W. Karlen, S. Raman, J. Mark Ansermino, and G. A. Dumont, “Multiparameter Respiratory Rate Estimation From the Photoplethysmogram”, IEEE Trans. Biomed. Eng. 60, 1946-1953 (2013).
    5. L. Kong, Y. Zhao, L. Dong, Y. Jian, X. Jin, B. Li, Y. Feng, M. Liu, X. Liu, and H. Wu, “Non-contact detection of oxygen saturation based on visible light imaging device using ambient light”, Optics Express, 21, 17464-17471 (2013)
Was this article helpful?
0 out of 0 found this helpful



Please sign in to leave a comment.