Pre-release docs for SmartSpectra SDK 3.3.0-rc.7. This RC channel may describe APIs or install commands that differ from the latest stable release.

SmartSpectra SDK
C++

C++ SDK

Get started with SmartSpectra C++ across Linux, macOS, and Windows.

Cross-platform C++ SDK for measuring vitals and waveform shapes (pulse, breathing, relative blood pressure, and more) from a camera. Headless by default with optional preview frames; runs on Linux, macOS, and Windows.

Supported Platforms

PlatformStatusNotes
Ubuntu 22.04 / Mint 21 (amd64)ExperimentalDebian package available
Ubuntu 22.04 / Mint 21 (arm64)ExperimentalDebian package available
Ubuntu 24.04 / Mint 22 (amd64)ExperimentalDebian package available via packages.presagetech.com apt channel
Ubuntu 24.04 / Mint 22 (arm64)ExperimentalDebian package available via packages.presagetech.com apt channel
macOS Apple Silicon (14.0+)SupportedHomebrew package available
Windows 10 / 11 (x64)ExperimentalZIP distribution available
macOS IntelNot supported
Debian 12Not supported
RHEL 9 / Fedora 41Not supported

For platforms marked "Not supported" or anything not listed above, contact support@presagetech.com if you have a specific need.

Common Prerequisites

All platforms need:

The SDK package is self-contained — you do not need to install protobuf, curl, or OpenSSL separately on any platform.

Pick your platform

Each guide is self-contained: prerequisites → install → first running build.

Scope

The quickstarts intentionally request only the breathing and cardio metric bundles, which is enough to see live values on the console. See the C++ API reference for the full requested_metrics catalog and custom-input pipeline.

If you need to redistribute a Linux desktop app without requiring end users to configure the Presage apt source, see Redistribute SmartSpectra on Linux.

Going further

Once your first build runs:

Logging

SDK log verbosity defaults to warnings and errors only. To change it, set log_level on the config before constructing SmartSpectra:

SmartSpectraConfig config;
config.api_key = "...";
config.log_level = presage::smartspectra::SmartSpectraLogLevel::kInfo;
SmartSpectra spectra(config);

Levels are cumulative — kDebug, kInfo, kWarning (default), kError, kNone. kDebug also enables verbose diagnostics where they exist, but it cannot restore debug-only statements compiled out of release binaries. A GLOG_minloglevel environment variable always takes precedence — when it is set, the SDK leaves logging untouched.

Bugs & Troubleshooting

On this page