Skip to main content

What is Synheart Focus?

Synheart Focus is a multi-platform SDK for inferring cognitive load states from biosignals (heart rate and RR intervals) directly on device, ensuring privacy and real-time performance. Supported Focus States:
  • 🎯 Focused: Optimal cognitive state, high attention and productivity (Score: 70-100)
  • 😴 Bored: Low engagement, reduced attention (Score: 30-50)
  • 😰 Anxious: Heightened arousal, reduced efficiency (Score: 20-40)
  • 🔥 Overload: Cognitive overload, information processing difficulty (Score: 0-20)

Key Features

On-Device Processing

  • All inference happens locally on your device
  • No network calls required
  • No raw biometric data leaves the device
  • Privacy-first by design

Real-Time Performance

  • < 10ms inference latency per inference (ONNX models)
  • >2 MB model size (Gradient Boosting ONNX)
  • 60-second sliding window with 5-second steps

Research-Based

  • Trained on SWELL dataset (stress and workload detection)
  • 4-class Gradient Boosting classifier
  • 24 HRV features (time-domain, frequency-domain, statistical)
  • ONNX format optimized for on-device inference
  • Subject-specific z-score normalization

Multi-Platform

PlatformSDKInstallationVersionStatus
Dart/Fluttersynheart_focusflutter pub add synheart_focus0.0.1✅ Ready

Architecture

All SDKs implement the same architecture:
Wearable / Sensor
   └─(HR bpm, RR ms)──► Your App


                   Synheart Focus SDK
            [Ring Buffer] → [HR→IBI] → [Z-Score Normalize]

                              [24 HRV Features]

                                  [Model]

                              FocusResult
Components:
  • Ring Buffer: Holds last 60s of HR/RR data (configurable, default: 60s window, 5s step)
  • HR→IBI Converter: Converts heart rate (BPM) to inter-beat intervals (ms)
  • Z-Score Normalizer: Subject-specific normalization using adaptive baseline
  • Feature Extractor: Computes 24 HRV features (time-domain, frequency-domain, statistical)
  • Model: Gradient Boosting classifier (4-class: Focused, Bored, Anxious, Overload)
  • Scorer: Maps probabilities to focus scores (0-100)

Quick Start Examples

import 'package:synheart_focus/synheart_focus.dart';

// Initialize the focus engine
final engine = FocusEngine(
  config: const FocusConfig(
    windowSeconds: 60,
    stepSeconds: 5,
    minRrCount: 30,
  ),
);

// Initialize with ONNX model
await engine.initialize(
  modelPath: 'assets/models/Gradient_Boosting.onnx',
  backend: 'onnx',
);

// Subscribe to focus updates
engine.onUpdate.listen((result) {
  print('Focus Score: ${result.focusScore}');
  print('Focus State: ${result.focusState}');
});

// Provide HR data (BPM)
await engine.inferFromHrData(
  hrBpm: 72.0,
  timestamp: DateTime.now(),
);
Full Dart SDK Guide →

Use Cases

Productivity Apps

Monitor focus levels in real-time:
final focusEngine = FocusEngine(
  config: const FocusConfig(),
);
await focusEngine.initialize(
  modelPath: 'assets/models/Gradient_Boosting.onnx',
);

// Stream from wearable
synheartWear.streamHR(interval: const Duration(seconds: 1))
  .listen((metrics) {
    final hr = metrics.getMetric(MetricType.hr);
    if (hr != null) {
      focusEngine.inferFromHrData(
        hrBpm: hr.toDouble(),
        timestamp: DateTime.now(),
      ).then((result) {
        if (result != null && result.focusScore < 50) {
          sendNotification("Consider taking a break");
        }
      });
    }
  });

Wellness Coaching

Track cognitive patterns throughout the day:
// In your Flutter wellness app
final focusEngine = FocusEngine(
  config: const FocusConfig(
    windowSeconds: 60,
    stepSeconds: 5,
  ),
);

// Integrate with Synheart Wear
synheartWear.streamHR(interval: const Duration(seconds: 1))
  .listen((metrics) {
    final hr = metrics.getMetric(MetricType.hr);
    if (hr != null) {
      focusEngine.inferFromHrData(
        hrBpm: hr.toDouble(),
        timestamp: DateTime.now(),
      ).then((result) {
        if (result != null) {
          updateDashboard(result);
        }
      });
    }
  });

Research Applications

Collect focus data for scientific studies:
// Flutter research app
final focusEngine = FocusEngine(
  config: const FocusConfig(
    windowSeconds: 60,
    stepSeconds: 5,
    minRrCount: 30,
  ),
);

// Log all results for analysis
focusEngine.onUpdate.listen((result) {
  database.insert(
    timestamp: result.timestamp,
    focusState: result.focusState,
    focusScore: result.focusScore,
    confidence: result.confidence,
    features: result.features,
  );
});

Model Details

Model Type: Gradient Boosting (4-class classifier) Task: Cognitive load recognition from HR/RR (Focused, Bored, Anxious, Overload) Input Features: 24 HRV features over a 60-second rolling window (default: 60s window, 5s step) 24 HRV Features:
  • Time-domain (9): mean_rr, std_rr, min_rr, max_rr, range_rr, rmssd, sdnn, nn50, pnn50
  • Frequency-domain (11): VLF, LF, HF, UHF powers, total_power, lf_hf_ratio, normalized powers
  • Statistical (4): skewness, kurtosis, median_rr, iqr
Processing Pipeline:
  1. Stream HR data (1 Hz) from wearable device
  2. Buffer in 60-second sliding window
  3. Convert HR (BPM) → IBI (ms)
  4. Apply subject-specific z-score normalization
  5. Extract 24 HRV features
  6. Run ONNX model inference (Gradient Boosting)
  7. Calculate focus score from 4-class probabilities
  8. Return result with all features and probabilities
Performance:
  • Latency: < 10ms per inference (ONNX models)
  • Model Size: >2 MB (Gradient Boosting ONNX)
  • Accuracy: Validated on SWELL dataset
The model uses subject-specific z-score normalization and artifact filtering for robust inference.

API Parity

All SDKs expose identical functionality:
FeatureDart
FocusConfig
FocusEngine
FocusResult
HR→IBI Conversion
Z-Score Normalization
24 HRV Features
Gradient Boosting/ONNX Model
Thread-Safe
Sliding Window

Available SDKs

Privacy & Security

  • On-Device Processing: All focus inference happens locally
  • No Data Retention: Raw biometric data is not retained after processing
  • No Network Calls: No data is sent to external servers
  • Privacy-First Design: No built-in storage - you control what gets persisted
  • Not a Medical Device: This library is for wellness and research purposes only

Resources

Citation

If you use this SDK in your research:
@software{synheart_focus,
  title = {Synheart Focus},
  author = {Synheart AI Team},
  year = {2025},
  version = {0.0.1},
  url = {https://github.com/synheart-ai/synheart-focus}
}

Author: Synheart AI Team
Made with ❤️ by the Synheart AI Team