Skip to content
CARP Docs
Ask AISystemLightDark
On this page

Introduction

What CARP is, what data it collects, and how its components fit together.

Copy MarkdownOpen inOpen in GitHubView as MarkdownOpen in Scira AIOpen in ChatGPTOpen in ClaudeOpen in Cursor

CARP (Copenhagen Research Platform) is a free, open-source toolkit for building mobile apps that collect data for research and health studies. CARP apps are Flutter apps: you add CARP packages from pub.dev, describe what to collect and when in a study protocol, and CARP Mobile Sensing runs that protocol on the phone and stores or uploads the measurements.

Data sources

Phone sensors

Steps, location, activity (walking, running, still), screen on/off (Android only), battery, light and noise.

Wearables

Heart rate and more from devices such as Apple Watch, Polar and Movesense.

Surveys

Surveys and questionnaires the participant fills in, and short cognitive tests.

Health apps

Data already stored in Apple Health or Google Health Connect.

How CARP works

flowchart LR
    A["<b>Study protocol</b><br/>what to collect and when"] --> B["<b>The app</b><br/>runs the protocol<br/>on the phone"]
    B --> C["<b>Storage</b><br/>where the data ends up"]
  1. The study protocol defines what to collect, from which device, and when. For example: collect steps and screen events continuously, or show a survey every morning at 8:00.
  2. The app runs on the participant's phone and executes the protocol. The CARP framework that does this is CARP Mobile Sensing (CAMS).
  3. Storage is where the data goes: kept on the phone, uploaded to CARP's own server (CAWS), or sent to a server you already run. See Storing data.

Components

ComponentPackagesRole
carp_corecarp_corePlatform-independent domain model.
CARP Mobile Sensing (CAMS)carp_mobile_sensingClient framework that runs studies on the phone and collects the data.
Sampling packagesFor example carp_context_package, carp_polar_packagePluggable packages that add new kinds of data and devices to CAMS.
CARP Web Services (CAWS)carp_webservices, carp_backendBackend that deploys studies and stores data. The packages connect a CAMS app to CAWS.
CARP web portalNoneWeb portal where researchers set up studies on CAWS, invite participants and download data.

See Architecture for how the components interact, and the API reference for every package.

Next steps

Quickstart

Build a Flutter app that collects steps, battery and app lifecycle data.

Terminology

Protocols, measures, triggers, tasks, deployments and data endpoints.

Architecture

How the CARP components fit together, from study protocol to data upload.

Storing data

Keep data on the phone, upload it to CAWS, or send it to your own server.

Quick links

Page · DocumentationCARP DocumentationPage · DocumentationIntroductionPage · DocumentationQuickstartPage · DocumentationTerminologyPage · DocumentationArchitecture