Highlights of the 2.3 release:



  • Health Risks are now available in the React Native version of the SDK
  • fix targeting memory allocation errors in the Web version of the SDK
  • minor UI fixes for translated views


  • Web SDK size reduction to 15MB (compressed) with deferred loading of additional data on-demand
  • signal quality improvements for when the face is further away from the camera
  • fix for the new CustomColorTheme not available on Native iOS
  • minor fixes




  • User onboarding is now available in the SDK
  • small progress bars now show on individual tiles of the measurement UI to better indicate measurement progress


  • fix recently added methods not exported on iOS





Highlights of the 2.2 release:

  • Multi-Tonal Sensing: makes it possible to complete Strict mode measurements in worse conditions and on a wider variety of skin tones while preserving result precision
  • Support for React Native, enabling easy cross-platform integration in that environment.



  • fix for a crash that could occur when repeatedly calling Deinitialize() on an already deinitialized SDK



  • accuracy of real-time heartbeat intervals has been improved
  • a new preset INFINITE_METRICS is available which displays HR (10s), HRV (30s) and Cardiac Stress (30s) without an end condition
  • some metrics (HR, HRV, Cardiac Stress) are now available in realtime during the measurement in addition to being available as part of the final measurement result using the new getRealtimeMetrics method


  • minor bug fixes


  • fix for a crash occurring when changing device orientation between landscape and portrait during the measurement
  • fix for a crash that could occur when immediately stopping the measurement after starting it


  • fix for the Infinite HR preset of the SDK consuming an ever increasing amount of memory
  • performance improvements concerning the new signal processing pathway
  • the SDK will now never block on deinitialization, even if there are some unresponsive dangling views that weren't destroyed


  • fixes for new signal processing in the Web version of the SDK


  • the SDK uses a new signal processing pathway, allowing Strict measurements to complete in significantly worse conditions than before while preserving precision of the results
  • the 'change camera' icon is now disabled during the measurement
  • Stress parameter has been renamed to Cardiac Stress to better reflect the nature of the parameter and avoid confusion with psychological stress


  • React Native SDK
  • SDK now enables the measurement to start in lower-FPS scenarios
  • SDK on Android will now request camera permissions if they are not already granted


The 2.1 release focuses on the web-on-mobile usage scenario, significantly increasing the SDK's performance and stability in that environment.



  • fix for initialization settings sometimes not being fully applied
  • support for some older Android devices with reduced camera capabilities
  • workaround of a WebKit issue that could prevent the Web SDK from loading on iOS browsers



  • InitializationSettings are now available in the Web SDK
  • missing initialization settings added for Android and iOS
  • fix a deinitialization issue on iOS that could arise if the embedded UI view was removed before the SDK was deinitialized



The 2.1.0 release focuses on the web-on-mobile usage scenario, significantly increasing the SDK's performance and stability in that environment.



  • a 'Device Unstable' icon now appears in the UI when the signal quality is disrupted due to the device/user movement
  • that state is also available programistically as runningSignalBadDeviceUnstable in the SDK API
  • the embedded UI scales better if the <canvas> element on which it is rendered is small
  • workaround for a bug present in Safari, increasing the amount of times the SDK can be reloaded in the same browser tab before running out of memory


  • fix for a condition with the embedded UI that could occur when deinitializing and initializing the SDK again


  • additional messages are now displayed on the default <canvas> before the Web SDK loads fully to indicate the progress
  • if the SDK cannot keep up with the real-time computations, a 'CPU on fire' icon appears, the measurement is aborted and blocked from starting for the next 5 seconds
  • the computational overload can be detected programistically as a new OperatingMode (SystemOverloaded) in the SDK API
  • performance improvements
  • bug fixes


  • Health Risks available in the Swift iOS API of the SDK


  • further performance improvements in the computational pipeline
  • fixes for some web-on-mobile specific issues
  • support for the Web version on iOS 17
  • automatic Wake Lock during the measurement in the Web version
  • web version loading progress indicator
  • fix for Camera Swap in the Web version


  • performance improvements in some parts of the computational pipeline
  • performance improvements in SDK's embedded UI rendering


The 2.0 release of the SDK brings a redesigned API surface and a fully integrated measurement UI/UX



  • further performance improvements in some parts of the pipeline
  • SDK size reduction
  • fix for iOS Flutter SDK


  • Swift/Objective-C API wrapper for the iOS SDK
  • support for Per-user (automatic) licensing model


  • performance improvements in some parts of the pipeline
  • fix for iOS camera not deinitializing properly at SDK deinitialization


  • fix new presets not available in Android Flutter plugin


  • two new unvalidated measurement presets have been added (FourtyFiveSecondsUnvalidated and ThirtySecondsUnvalidated) which allow for shorter measurements (45 and 30 seconds respectively)


  • slightly improved rPPG signal quality/rejection rate when the user is further away from the camera
  • added getSignalQualityMapPng method, which returns a PNG image with the signal quality map
  • added getFaceTexturePng method, which returns a PNG image with the region of the face used for the PPG signal extraction
  • added getFullPpgSignal method which returns a PPG signal after the measurement has concluded


  • lower signal quality threshold for the Relaxed measurement mode


  • added getCurrentSignalQualityMetric method to the SDK API
  • added average_signal_quality to the measurement results
  • updated Blood Pressure inference model
  • Fully integrated measurement UI/UX.




  • Interbeat intervals available after the measurement has concluded
  • Cardiovascular health risks calculation



  • [iOS] missing MinimumOSVersion information added to file



  • [iOS] fix for a possible crash when deinitializing the SDK and initializing it again



Initial public SDK release.