The Funf Open Sensing Framework is an extensible sensing and data processing framework for mobile devices, supported and maintained by Behavio. The core concept is to provide an open source, reusable set of functionalities, enabling the collection, uploading, and configuration of a wide range of data signals accessible via mobile phones.

Who is Funf for?

API-Level Developers

Develop Android applications that leverage the capabilities and services of the Funf framework through its 3rd-party developer API, without the need to go into the Funf internals.

Save time and focus on your app while Funf takes care of logging and uploading proprietary app data and generic phone-sensor data.

 

Study Managers/Researchers

Use Funf as a ready-made platform for conducting data collection experiments ranging from health and wellness, social and psychological studies, tracing tracing what apps users are running on their phones, or testing the battery effects of your Android app.

Install Funf as a pre-compiled app on the phones you want to test. Set up the data-collection back-end server, remotely configure the desired sensors and data collection behavior, and set up optional components like user surveys.

Core-Level Developers

Go under the hood and use features that are outside the scope of the 3rd-party API.

Leverage the Funf framework's modular architecture and implemented features to focus on the new innovations that you care about.

Contribute new features and capabilities to the framework. Add new sensor probes and improve performance of existing ones.

Self-Trackers

Use Funf Journal as a pre-compiled app and configure the sensors and data collection parameters to your desire. Then analyze the data directly or input to your favorite Quantified Self data-store or analyiss app.

Key features include:

  • Remote configuration.
  • Many built-in data "probes" (see below).
  • Automatic or manual data upload.
  • Delay tolerant implementation - When internet connection is not available, caches data locally until server connection is restored.
  • One-way hashing and encryption for sensitive data: Does not save any textual data or phone numbers in human-readable format.
  • Encryption of locally stored database files.
  • 3rd-party data input API allowing any app to leverage the Funf framework for collecting and storing arbitrary app data.
  • Modular probe architecture allows for adding core data probes and modifying existing probe behavior.
  • Basic survey system for manual data collection.
  • Various optimizations for prolongig battery life and dealing with everyday use-cases (e.g. when SD card is not available because user is copying music files to it)
  • Field proven - Deployed for over 15 months with over 100 users in an MIT living laboratory experiment.

Funf Probes

Probes are the basic data collection objects used by the Funf framework. Each probe is a contained unit responsible for collecting a specific type of information. These include data collected by on-phone sensors, like acceleromter or GPS location scans, but also many other types of data that can be collected through the phone - from information on the media files stored on the device to call-logs, application usage, or browsing history. Each probe can be remotely configured to be enabled/disabled, what scan intervals or triggers should be used, as well as other parameters.

Funf includes a set of built-in probes, as well as a modular architecture allowing the addition of new probes by 3rd party developers. For example, you might be developing an app and would like to log what screens users are spending time on, and other information that might help you debug and improve the app. One option to do that would be to develop your own code modules for logging the data, saving it to disk, and then sending it back to your severs, and dealing with a whole range of issues such as protecting user privacy, added battery consumption, memory storage and so on. Alternatively, you could write a simple Funf probe that logs all information you need, and leverages the Funf framework's existing modules and experience in dealing with all these issues. In addition, you could leverage other sensors already collected by Funffor improving your analysis.

As Funf was originally developed for academic research, its features have been approved by MIT's Internal Review Board to make sure it adhered to strict protocol guidelines for protection of experiment participants. One of the key concerns in the design of the study was the protection of participant privacy and sensitive information. All of the built-in probes include privacy protection measure - For example, data is linked to coded identifiers of phone users, and not their real world personal identifiers. All human readable text, like phone numbers and text messages are captured as hashed identifiers, and never saved in clear text.

Examples of implemented probes currently part of Funf:

  • GPS
  • Location
  • WLAN
  • Accelerometer
  • Bluetooth
  • Cell tower ID
  • Call log
  • SMS log
  • Browser history
  • Contacts
  • Running apps
  • Installed apps
  • Screen on/off state
  • Music/Image/Video file scan
  • Battery status

The Behavio Team