What is Synheart Behavior?
Synheart Behavior is a multi-platform SDK for inferring behavioral signals from digital interactions (scroll, tap, swipe, typing, notifications, calls) directly on device, ensuring privacy and real-time performance. Supported Motion States:- 🛌 LAYING:
- 🚶 MOVING:
- 🪑 SITTING:
- 🧍 STANDING:
Key Features
On-Device Processing
- All inference happens locally on your device
- No network calls required
- No raw interaction data leaves the device
- Privacy-first by design
On-Demand Metrics Calculation
- Calculate behavioral metrics for custom time ranges within sessions
- Query metrics for specific time periods without ending the session
- Supports both active and ended sessions
- Automatic validation ensures time ranges are within session bounds
Privacy-First Design
- No PII: No names, contacts, or user-identifying data
- No content capture: No text, images, or semantic data
- No keystroke logging: Text input captured only as abstract tap events
- Event-level metadata only: Timing and physical metrics only
Multi-Platform
| Platform | SDK | Installation | Version | Status |
|---|---|---|---|---|
| Dart/Flutter | synheart_behavior | flutter pub add synheart_behavior | 0.1.4 | ✅ Ready |
Architecture
All SDKs implement the same architecture with synheart-flux (Rust library) for HSI-compliant metric computation:- Event Collectors: Capture scroll, tap, swipe, typing, notification, and call events
- Event Conversion: Converts events to Flux-compatible JSON format
- synheart-flux: Rust library for HSI-compliant behavioral and typing metric computation (required)
- Session Aggregator: Aggregates events into session-level summaries
- Motion State Inference: ML model for activity recognition (LAYING, MOVING, SITTING, STANDING)
- Behavioral Metrics: Focus hint, distraction score, interaction intensity (computed by Flux)
Quick Start Examples
Use Cases
Focus and Distraction Apps
Monitor user focus in real-time:Digital Wellness Analytics
Track behavioral patterns throughout the day:On-Demand Metrics for Time Ranges
Calculate metrics for specific time periods within a session:Cognitive Load Estimation
Estimate cognitive load from interaction patterns:Behavioral Metrics
Session-level outputs include:- interactionIntensity: Overall interaction rate and engagement (0-1)
- distractionScore: Behavioral proxy for distraction (0-1)
- focusHint: Behavioral proxy for focus quality (0-1)
- deepFocusBlocks: Periods of sustained, uninterrupted engagement
- taskSwitchRate: Frequency of app switching
- idleRatio: Proportion of idle time vs active interaction
- fragmentedIdleRatio: Ratio of fragmented vs continuous idle periods
- burstiness: Temporal clustering of interaction events
- notificationLoad: Notification pressure and response patterns
- scrollJitterRate: Scroll pattern irregularity
- typingSpeed: Average typing speed (taps per second)
- typingCadenceStability: Consistency of typing rhythm (0-1)
- typingCadenceVariability: Variability in timing between taps
- typingActivityRatio: Fraction of session with active typing (0-1)
- typingGapRatio: Proportion of intervals that are gaps (0-1)
- typingBurstiness: Temporal clustering of typing events
- typingInteractionIntensity: Overall typing engagement (0-1)
Motion State Inference
WhenenableMotionLite is enabled, the SDK uses an on-device ML model to predict motion states:
- Model Type: Linear SVM (One-vs-Rest)
- Input Features: Device motion signals (accelerometer, gyroscope)
- Output: Motion state probabilities with confidence scores
- Latency: < 5ms on modern mid-range devices
API Features
The SDK provides the following functionality:| Feature | Dart/Flutter |
|---|---|
| BehaviorConfig | ✅ |
| SynheartBehavior | ✅ |
| BehaviorEvent | ✅ |
| BehaviorSession | ✅ |
| Motion State Inference | ✅ |
| Real-Time Event Streaming | ✅ |
| Session Management | ✅ |
| On-Demand Metrics Calculation | ✅ |
| Thread-Safe | ✅ |
| Automatic Session Ending | ✅ |
Available SDKs
Privacy & Security
- On-Device Processing: All behavioral inference happens locally
- No Data Retention: Raw interaction events are 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
- No Content Capture: No text, images, or semantic data collected
- Event-Level Metadata Only: Only timing and physical metrics
Resources
- GitHub: synheart-ai/synheart-behavior-dart
- pub.dev: synheart_behavior
- Issues: Report Bugs
Citation
If you use this SDK in your research:Author: Yoseph Gebeyehu Made with ❤️ by the Synheart AI Team