Complete multi-modal mobile sensing for academic research.
Built for AWS. Open source.
OSRP combines screenshots, sensors, and wearables into one comprehensive platform for digital phenotyping and behavioral research.
# Install OSRP
pip install osrp
# Initialize study
osrp init my-study
# Deploy to AWS
osrp deploy --aws
# Start analyzing
osrp notebooks
Behavioral observation - see what apps participants use and what content they view
Accelerometer, GPS, gyroscope, activity recognition, device state monitoring
Google Fit, Bluetooth heart rate monitors, fitness trackers
Context-aware surveys and EMAs delivered at the right moment
DynamoDB, S3, Lambda, SageMaker - enterprise-grade infrastructure
Reactive, reproducible notebooks better than Jupyter
OSRP is the only platform with all modalities + AWS + integrated analysis
| AWARE | Screenomics | Centralive | LAMP | Beiwe | OSRP | |
|---|---|---|---|---|---|---|
| Screenshots | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
| Sensors | ✅ | ❌ | ⚠️ | ✅ | ✅ | ✅ |
| Wearables | ❌ | ❌ | ✅ | ⚠️ | ❌ | ✅ |
| EMA System | ⚠️ | ❌ | ✅ | ✅ | ✅ | ✅ |
| AWS Native | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Analysis Tools | ❌ | ⚠️ | ⚠️ | ⚠️ | ❌ | ✅✅ |
| Marimo Notebooks | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Open Source | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
from osrp import OSRPData
# Initialize
data = OSRPData(region='us-west-2')
# Get complete daily summary
daily = data.get_daily_summary('participant001', date)
# Access individual streams
screenshots = daily['screenshots']
heart_rate = daily['heart_rate']
activity = daily['activity']
# Align multi-modal data
aligned = data.align_multi_modal({
'screenshots': screenshots,
'hr': heart_rate,
'activity': activity
}, freq='5min')
Join leading research institutions using OSRP for digital phenotyping studies