CLAID - Closing the Loop on AI & Data Collection: Flutter Package
A Flutter plugin to use the CLAID framework. CLAID is a flexible and modular framework enabling seamless deployment of machine learning models and data collection modules across various devices and operating systems. Deploy your existing python machine learning pipelines on mobile devices and connect data streams from sensors in a plug-and-play approach using simple configuration files!
CLAID allows to build applications for mobile (Android, WearOS, iOS*) and regular (Linux, macOS) operating systems, enabling seamless communication between individual Modules implemented in different programming languages (C++, Dart, Java, Python, Objective-C) running on all these operating systems. Existing CLAID Modules allow to effortlessly implement modular machine learning and data collection applications with little-to-no coding. For more details, check out the CLAID website and our publication.
CLAID is developed and maintained by the Centre for Digital Health Interventions at ETH Zurich.
*iOS support available but not yet released
Features
- Seamless deployment of machine learning projects across mobile, edge and cloud devices
- Deploy your existing ML code in python directly on Android and even WearOS devices!
- Plug-in native Sensor Modules (accelerometer, location sensors, audio, ...) or external wearables (smartwatches, spirometer, ...) and connect the data streams directly to Python code for analysis!
- Seamless communication between Modules running on different operating systems or implemented in different programming languages, allowing various devices to be integrated into an edge-cloud system
- Support for Android, WearOS, Linux and macOS (iOS support in the making)
- Support for C++, Dart, Java, Python and Objective-C
- Pre-created Modules ready to use without programming, which can be loaded, configured and combined from simple configuration files:
- Modules for data collection on Android, WearOS and iOS
- Modules for data serialization, storage and upload
- Modules to execute machine learning models (e.g., using Python directly on-device, or alternatively using TensorFlowLite)
- Long-running and stable background operation via services on Android and WearOS (30+ days uptime without interrupt on Android 13+)
- Full device management features on Android and WearOS, enabling to control Wifi/Bluetooth from the background (without user intervention), preventing termination and uninstallation of Apps (useful for digital biomarker studies)
- Encryption in rest and in-transit (soon) of data sent via a network or stored locally
*pip package will be released separately
Getting started
Check out the CLAID tutorial series on our Website!
Our research
Source code availability
CLAID is completely open-sourced and released under the Apache2 license. You can access the code from the CLAID repo.
Contributors
Patrick Langer, ETH Zurich, 2023
Stephan Altmüller, ETH Zurich, 2023
Francesco Feher, ETH Zurich, University of Parma, 2023
Filipe Barata, ETH Zurich, 2023
Libraries
- CLAID
- claid_core_bindings_generated
- dispatcher
- generated/claidservice.pb
- generated/claidservice.pbenum
- generated/claidservice.pbgrpc
- generated/claidservice.pbjson
- generated/google/protobuf/empty.pb
- generated/google/protobuf/empty.pbenum
- generated/google/protobuf/empty.pbjson
- generated/google/protobuf/struct.pb
- generated/google/protobuf/struct.pbenum
- generated/google/protobuf/struct.pbjson
- generated/google/protobuf/timestamp.pb
- generated/google/protobuf/timestamp.pbenum
- generated/google/protobuf/timestamp.pbjson
- generated/layerdata.pb
- generated/layerdata.pbenum
- generated/layerdata.pbjson
- generated/sensor_data_types.pb
- generated/sensor_data_types.pbenum
- generated/sensor_data_types.pbjson
- logger/Logger
- middleware
- mocks
- module/channel
- module/channel_access_rights
- module/channel_data
- module/module
- module/module_factory
- module/module_manager
- module/properties
- module/type_mapping
- package/CLAIDPackage
- package/CLAIDPackageAnnotation
- package/CLAIDPackageLoader
- RemoteFunction/AbstractRPCCompleter
- RemoteFunction/FutureHandler
- RemoteFunction/FuturesTable
- RemoteFunction/FutureUniqueIdentifier
- RemoteFunction/RemoteFunction
- RemoteFunction/RemoteFunctionHandler
- RemoteFunction/RemoteFunctionRunnable
- RemoteFunction/RemoteFunctionRunnableHandler
- RemoteFunction/RemoteFunctionRunnableResult
- RemoteFunction/RPCCompleter
- ui/CLAIDModuleList
- ui/CLAIDModuleListView
- ui/CLAIDModuleView
- ui/CLAIDModuleViewToClassMap
- ui/CLAIDView
- ui/DataReceiver
- ui/EmptyDefaultDeviceView
- ui/FittedText
- ui/MappedModule
- ui/SelectableDeviceViewWidget