Prifina for Developers
  • Docs
  • Getting Data
  • Support
  • Slack
  • Blog
  • Prifina.com

Artificial Twitch Data for Software Development

10/31/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Twitch dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are fifty-one types of data objects: AllStreamTags, AutoModSettings, BannedUsers, BitsLeaderboard, BlockedTerms, BroadcasterSubscriptions, Categories, ChannelChatBadges, ChannelEditors, ChannelEmotes, ChannelInformation, ChannelStreamSchedule, ChannelTeams, Channels, ChatSettings, Cheermotes, Clips, CreatorGoals, CustomReward, CustomRewardRedemption, EmoteSets, ExtensionAnalytics, ExtensionLiveChannels, ExtensionTransactions, Extensions, FollowedStreams, GameAnalytics, Games, GlobalChatBadges, GlobalEmotes, HypeTrainEvents, Moderators,  Polls, Predictions, ReleasedExtensions, SoundtrackCurrentTrack, SoundtrackPlaylist, SoundtrackPlaylists, StreamKey, StreamTags, Streams, StreamsMarkers, Teams, TopGames, UserActiveExtensions, UserBlockList, UserExtensions, UserSubscription, Users, UsersFollows,
Videos.


Learn more about dynamic data generators and the benefits of artificial data in software development.
Game Directory on Twitch
Game Directory on Twitch

About the data source

 Twitch is one of the largest live-streaming platforms with at least 2.5 million average viewers at any time and approximately 8 million unique streamers each month. The content offered on the platform ranges from Gaming, Music, Sports, Talk Shows, etc. Each channel has their own live chat room where viewers can communicate with each other and the broadcaster. In certain territories, these chat rooms can run events called Predictions which allows the user to gamble channel points, earned through watchtime, on a specific outcome for more points. These points can be used in exchange for several custom channel rewards set out by the broadcaster.

Viewers can give money to the broadcaster through either subscriptions or donations (directly or with ‘bits’). Subscribing to the broadcaster grants the user the ability to watch the stream without ads, and gives the user subscriber emotes uploaded by the broadcaster that can be used in other Twitch chats.

Approach used

Twitch has an offical API that allows for the retrieval of tons of relevant data. Using the API reference, several JSON objects were created and stored from the data types recorded. The index file of the package imports these data objects and exports them as a collection called “Data”. These mockup files make up the twitch-data package
AllStreamTags
AutoModSettings
BannedUsers
BitsLeaderboard
BlockedTerms
BroadcasterSubscriptions
Categories
ChannelChatBadges
ChannelEditors
ChannelEmotes
ChannelInformation
Channels
ChannelStreamSchedule
ChannelTeams
ChatSettings
Cheermotes
Clips
CreatorGoals
CustomReward
CustomRewardRedemption
EmoteSets
ExtensionAnalytics
ExtensionLiveChannels
Extensions
ExtensionTransactions
FollowedStreams
GameAnalytics
Games
GlobalChatBadges
GlobalEmotes
HypeTrainEvents
Moderators
Polls
Predictions
ReleasedExtensions
SoundtrackCurrentTrack
SoundtrackPlaylist
SoundtrackPlaylists
StreamKey
Streams
StreamsMarkers
StreamTags
Teams
TopGames
UserActiveExtensions
UserBlockList
UserExtensions
Users
UsersFollows
UserSubscription
Videos
Models Generated With JSON Crack
The twitch-mockup package imports the file above and goes through each attribute generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the GetUsers object:
Static GetUsers Object

    
Artifical GetUsers Object

    

Use case ideas

  • Social media aggregates
  • Data visualization widgets
  • etc.

Ideas to combine with some other data sources

  • Combine Twitch user data with data collected while using other social media apps (Twitter, Youtube, etc.) for a whole perspective about content creators uploads
  • Create various playlists combining data from various social media data sources (e.g., your favorite exercise playlist, your relaxation playlist, or a playlist of content that should be skipped).
  • Combine with calendar app to showcase how much time is spent watching Twitch
  • Combine Twitch data with other data sources, e.g., your fitness data and build applications that find correlations and send nudges to app users
  • For more inspiration, explore our community’s use-cases and app ideas database.

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

General Improvements:
  • Return sensible data for performance variables (e.g. return a display name for a user that looks sensible/realistic)
  • More reliance on the Utils package
  • API methods might have been deprecated since initial creation of the library, refer to the API reference and fix or delete accordingly.
With Prifina developers can use the Dynamic Data Libraries natively in the App Studio to build direct to consumer apps where individuals can run them with their own user-held data.
Join our Slack community; Liberty. Equality. Data. to brainstorm and collaborate with other app developers, designers, and our team.

Artificial Withings Data for Software Development

10/24/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Withings dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are fifty-one types of data objects: Getactivity, Getgoals, Getintradayactivity, Getmeas, HeartList, Heart, Sleep, SleepSummary, getDevice, getUser, getWorkout.

Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

Withings is a consumer electronics company that develops several products related to Health Monitoring:
  • Smartwatches
  • Scales
  • Blood Pressure Monitors
  • Sleep Tracking Mat
  • Thermometer
These devices collect metrics related to Sleep performance, Steps taken, Heart Rate, Blood Pressure, Temperature, etc. Through the use of their Health Mate (iOS|Android) app, the health data from these devices can be retrieved, analyzed, and reports can be created which can be shared with your doctor .

Approach used

Withings have released their Official Developer Documentation with access to their API. Using the API reference, several JSON objects were created and stored from the data types recorded. The index file of the package imports these data objects and exports them as a collection called Data, These mockup files make up the withings-data package.
The withings-mockup package imports the file above and goes through each attribute generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the GetMeas object:
Static GetMeas Object

    
Artifical GetMeas Object

    

Use case ideas

  • Health & Fitness applications
  • Data visualization widgets
  • etc

Ideas to combine with some other data sources

  • Combining with other Health devices to provide greater context towards some data e.g. Fitbit, Garmin, Strava, Oura.
  • Motivational quotes to your screen depending on if the user does not meet weight loss goals
  • Adjust dietary/exercise recommendations based on weight loss calculated
  • Or with some entirely different segment data, like air quality, weather, location or similar to find interesting new applications for the data.

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

General Improvements:
  • Return sensible data for performance variables (e.g. heart rate, calories, etc)
  • More reliance on the Utils package
With Prifina developers can use the Dynamic Data Libraries natively in the App Studio to build direct to consumer apps where individuals can run them with their own user-held data.
Join our Slack community; Liberty. Equality. Data. to brainstorm and collaborate with other app developers, designers, and our team.

Artificial Whoop Data for Software Development

10/17/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Whoop dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are fifty-one types of data objects: Cycle, Recovery, Sleep, User, Workout.

Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

Whoop is a wearable fitness technology company that offers the ‘Whoop band’ product that monitors the user’s sleep, recovery, heart rate, strain and workout performance. The Whoop Band comes in several different models that focus on the aesthetics and feel of the device, rather than its software or hardware. Whoop also offers some accessories such as a Portable Battery Pack and  Body Strap.

One of the most differential features about Whoop is that they do not offer the band at a flat sum, instead offering the band as part of a membership subscription, which also grants the user access to their health metrics, and provides the user with weekly and monthly performance assessment reports, community leaderboards and more.

Approach used

Whoop have recently released their Developer Platform which grants access to their official API. Using the Whoop API Reference Documentation, several JSON objects were created and stored from the data types recorded. The index file of the package imports these data objects and exports them as a collection called Data, These mockup files make up the whoop-data package.
The whoop-mockup package imports the file above and goes through each attribute generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the Cycle object
Static Cycle Object

    
​Artificial Cycle Object

    

Use case ideas

  • Health & Fitness applications correlating data from Whoop Band and other wearable sensors (such as Bosch Sensor BNO055)
  • Data visualization widgets
  • et

Ideas to combine with some other data sources

  • Combining with other Health devices to provide greater context towards some activities e.g. Fitbit, Garmin, Strava, Oura.
  • Motivational quotes to your screen depending on previous activity performance and segment ranking
  • Combine Whoop data with GPS data for movement data during running, walking jogging, etc activities
  • Or with some entirely different segment data, like air quality, weather, location or similar to find interesting new applications for the data.

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

General Improvements
  • Strain better reflects other attributes
  • Kilojoule better reflects other attributes
  • Dates are more sensible, activities don’t go on for months, there will not be year gaps between end date and creation date, etc
Workout
  • Altitude gain/change is appropriate in context
  • Distance is appropriate in context
User
  • Name generator generates a sensible name rather than a random string of characters.
Sleep
  • Sleep Performance is appropriate in context of other Sleep data
Recovery
  • Skin temp, Recovery Score, Spo2_percentage, etc is appropriate in context
With Prifina developers can use the Dynamic Data Libraries natively in the App Studio to build direct to consumer apps where individuals can run them with their own user-held data.
Join our Slack community; Liberty. Equality. Data. to brainstorm and collaborate with other app developers, designers, and our team.

Artificial Sensor BNO055 Data for Software Development

10/7/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Sensor BNO055 dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are fifty-one types of data objects: RawSync, RawAsync

Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

The BNO055 Sensor is a smart IMU (Inertial Measurement Unit) node developed by a German technology manufacturer Bosch Sensortec. The BNO055 Sensor uses a combination of different sensors to detect movements, and measure the intensity of movements in terms of acceleration and rotational speeds. This sensor makes use of an accelerometer, gyroscope and magnetometer to capture 9-degrees-of-freedom:
  • Direction of acceleration and its force
  • Rate of rotation and direction
  • Direction and force of magnetic field
The Sensor BNO055 is a great choice for devices where the context (awareness) of the device handling is needed: Augmented Reality, Immersive Gaming, Personal Health and Fitness, Indoor Navigation, Robotics, Tablets and Ultrabooks.

Here’s a useful video illustrating the utility of BNO055 Sensor (YouTube)

The data from the individual sensors (accelerometer, magnetometer, gyroscope) are captured, processed by the MCU (Microcontroller). This data can then be fused (sensor fusion) into either quaternion data or in Euler angles (roll, pitch, and yaw angle). If the data is not fused, then any combination of the raw sensor data can be exported (e.g., ACCONLY, MAGGYRO, etc.). To export and save the data, the sensor must live stream to an external device, like a mobile phone, so that the data is stored on that device. The space required for this data export is in the range 2MB - 18MB per hour. Once the data is successfully stored, the data can be analyzed to extrapolate additional information.

Approach used

A sample data export file was provided to us containing several hundreds of records of quaternion (fused sensor) data and accelerometer data in CSV format. One such record was converted into a JSON object and stored as the RawSync mockup file. A copy of this file was converted into an array of two strings, the first being the attribute names of the JSON object and the second string being the data of those attributes. The attributes are separated by ‘\t’. This file is stored as the RawAsync. These mockup files make up the sensor-bno055-data package.
RawSync
RawAsync
The sensor-bno055-mockup package imports the file above and goes through each attribute generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the RawSync object:
Static RawSync Object

    
​Artificial RawSync Object

    

Use case ideas

  • Detecting biometric data (such as physical activity and mobility) for Augmented Reality and Virtual Reality use-cases
  • Health & Fitness applications correlating data from Bosch Sensor BNO055 and other wearable sensors
  • Navigation-related applications (smart city, mobility, hiking, sports, etc.)

Ideas to combine with some other data sources

  • Combine Bosch Sensor BNO055 data with data from heart-Monitoring devices (e.g., Fitbit, Oura ring, Movesense, etc.)
  • Combine Bosch Sensor BNO055 data with other activity data sources (e.g., Strava, Fitbit, Oura ring, Garmin, etc.)
  • Combine Bosch Sensor BNO055 data with GPS data for speed during sections of routes
  • Combine Bosch Sensor BNO055 data with photography or floor layout data for various AR/VR applications

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

General Improvements
  • Include many different combinations of data (both fused and non-fused), e.g. ACCONLY, Euler angles, ACCMAGGYRO, etc)
  • Data changes between records should be more sensible to reflect realistic changes
With Prifina developers can use the Dynamic Data Libraries natively in the App Studio to build direct to consumer apps where individuals can run them with their own user-held data.
Join our Slack community; Liberty. Equality. Data. to brainstorm and collaborate with other app developers, designers, and our team.

Artificial Movesense Data for Software Development

10/3/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Movesense dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are fifty-one types of data objects: AccConfig, AccData, AccInfo, AdvSettings, AdvState, AppInfo, BleConfig, BondList, BondingSettings, CalibrationData, CalibrationMatrix, DebugLogConfig, DebugLogResult, DebugMessage, DebugMessageConfig, DeviceInfo, ECGConfig, ECGData, ECGInfo, EepromData, EepromInfo, FaultInfo, GyroConfig, GyroData, GyroInfo, HRData, HRInfo, IMU6Data, IMU6MData, IMU9Data, IMUConfig, IMUInfo, LedState, Leds, MagnConfig, MagnData, MagnInfo, Memory, ModuleStatus, PeerChange, PeerList, ProductData, ResetReason, ScanResult, State, StateChange, StepsDone, SystemModeStatus, TempInfo, TemperatureValue, VisualIndState.

Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

Movesense is an open development platform for wearables and sensor products for fitness and health. They offer two types of sensors: Movesense Active and Movesense Medical. These technologies contain data from several sensors:
  • Accelerometer
  • Gyroscope
  • Magnetic Orientation
  • Temperature Sensor
  • ECG Sensor
The main difference between the Active and Medical sensors is that the Medical Sensor has been adjusted to adhere to its EU Certification as a Class IIa medical device. A great deal of developer resources is granted to those who wish to utilize the sensor for various purposes, such as data analysis, dedicated apps and services, etc. The ultimate aim of these sensors is to be used as an all-encompassing wearable technology that third party developers can utilize in their applications, as opposed to those developers having to create their own.

Approach used

Movesense provides an API to download and upload data to each Movesense module, provider and application. These APIs can be inspected through either the API reference or a more detailed view can be seen on their BitBucket. By combining the two resources, data objects could be constructed and then converted into JSON format to create a mockup file. A simple data model of these objects can be seen below. This mockup file makes up the movesense-data package.
Acc Data Objects: AccConfig, AccData, AccInfo
Ble Data Objects: BleConfig, AdvState, AdvSettings, ScanResult, PeerList, PeerChange, BondSettings, BondList
Debug Data Objects: DebugLogConfig, DebugLogResult, DebugMessage, DebugMessageConfig, FaultInfo, ResetReason
ECG Data Objects: ECGConfig, ECGData, ECGInfo
Eeprom Data Objects: EepromData, EepromInfo
Gyro Data Objects: GyroConfig, GyroData, GyroInfo
HR Data Objects: HRData, HRInfo
IMU Data Objects: IMUInfo, IMUConfig, IMU9Data, IMU6MData, IMU6Data
Ind Data Objects: VisualIndState
Info Data Objects: AppInfo, DeviceInfo, ModuleStatus
LED Data Objects: Leds, LedState
MAGN Data Objects: MagnConfig, MagnData, MagnInfo
Manufactoring Data Objects: CalibrationData, CalibrationMatrix, ProductData, StepsData
Memory Data Objects: Memory
Mode Data Objects: SystemModeStatus
State Data Objects: StateChange
Temperature Data Objects: TemperatureValue, TempInfo
The Above Images are grouped into the files that can be seen in the package. The captions can correspond to the images top to bottom. 
The movesense-mockup package imports the file above and goes through each attribute generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the SystemModeStatus object:
Static SystemModeStatus Object

    
​Artificial SystemModeStatus Object

    

Use case ideas

  • Health and wellness apps
  • Diet Apps
  • Behavioral apps that nudge people to change their habits or lifestyle
  • Utilizing Movesense data with other data sources (e.g., sleep data, mobility data, social media data, financial data, or open data sources such as weather or traffic, etc.).
  • Etc.

Explore entirely new use cases

  • Monitoring Fitness/Fatigue Levels during activities
  • HeartRate Monitoring
  • Get insights by correlating data from different data sources 
  • Etc.

Ideas to combine with some other data sources

  • Using 23andMe or Ancestry data to get insights or recommendations to adjust personal habits to prevent certain conditions from occurring or treat certain conditions,
  • Construct a life-like Avatar of the user based on user-generated health and wellness data, social media profiles and other data,
  • If the user has been struggling completing a workout or exercise, the application could recommend taking a rest day or adjusting the exercise for their current level. Similarly, the user isn’t struggling with the workouts, the application could recommend skipping rest days or adjusting the workouts for better gains
  • Based on historical activity levels, the use of a dietary application could be used to recommend food and drinks to increase their performance, if the user is showing significant 

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

General considerations:
  • A lot of the data fakers currently do not provide new data, only returns static strings. Faker methods need to be expanded.
  • Better utilization of the ‘utils’ package

Specific considerations:
  • ProductData
    • Provide better methods that can fake the specific product data requested
  • SystemModeStatus
    • Provide reasonable changes in the system mode. One mode may be impossible to lead into another, this needs to be known and changed. 
With Prifina developers can use the Dynamic Data Libraries natively in the App Studio to build direct to consumer apps where individuals can run them with their own user-held data.
Join our Slack community; Liberty. Equality. Data. to brainstorm and collaborate with other app developers, designers, and our team.

Artificial Ancestry Data for Software Development

9/26/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Ancestry dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there is one type of data file: RawDataObject

Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

Ancestry is a genealogy website that offers several services such as:
  • Family Tree Creation - Users can create a family tree with linked data sources
  • Historical Records Search - Users can browse collected Birth, Death, Marriage, Census, and War Records
  • AncestryDNA - Analyses the user's DNA to discover their heritage and personal traits 

Approach used

Ancestry provides a data exporting service that allows users to download their raw genotype data. A subset of such data was converted into JSON format to create a mockup file. A simple data model of these objects can be seen below. This mockup file makes up the ancestry-data package.
Picture
The ancestry-mockup package imports the file above and goes through each attribute generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the RawDataObject object:
Static RawDataObject Object

    
​Artificial RawDataObject Object

    

Use case ideas

  • Health/Diet Apps
  • Avatar Visualization
  • etc.

Explore entirely new use cases

  • Biomarkers of concern, through database lookup or machine learning efforts, to encourage a professional medical diagnosis
  • Using your genetic data, construct an avatar with realistic similarities to the user
  • Ancestry Journey - shows your ancestry through a timeline with a stylized person from the earliest recorded time to now. 
  • Recommend food that works best with a genetic profile
  • Educational App which helps to reduce the complexity of the data and make it accessible to the user

Ideas to combine with some other data sources

Combine with similar Raw Genetic Data exports, like from 23andMe, to gain a greater scope of genetic data. Look at any discrepancies for further analysis. 

Combine with photo applications to generate a life-like model of the user. For instance, genetic data can help provide data about hair (texture, baldness, etc.) but cannot tell your hairstyle.

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

With Prifina developers can use the Dynamic Data Libraries natively in the App Studio to build direct to consumer apps where individuals can run them with their own user-held data.
Join our Slack community; Liberty. Equality. Data. to brainstorm and collaborate with other app developers, designers, and our team.

Artificial Runkeeper Data for Software Development

9/19/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Runkeeper dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there is one type of data file: CardioActivity

Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

Runkeeper is a GPS fitness-tracking application available on smart devices (iPhone, Apple Watch, Android, etc.) track the user's progress against their running and training goals. Data can also be manually input into their browser platform. Their platform provides other services: training plans, guided workouts, monthly running challenges, etc. The application allows the user to record the type of activity or equipment used, (when applicable) plot a GPS route, and other details, such as date, duration, start time, calories burned, distance (if no map), average heart rate, and a descriptive note. The user can also connect and integrate their data with several other health sources: Fitbit, Garmin, MyFitnessPal, Apple Health, etc.

​Approach used

Runkeeper allows for the user to export their data, which downloads a copy of their master CSV files for all activities and the individual GPX activity files associated with GPS activities. The CSV files can be converted into JSON objects to create the data mockups. A simple data model of these objects can be seen below. This mockup file makes up the runkeeper-data package.
Picture
The runkeeper-mockups package imports the aforementioned file and goes through each attribute of it, generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the CardioActivity object:
Static CardioActivity Object

    
Artificial CardioActivity Object

    

Use case ideas

  • Health/Fitness Apps
  • Data Visualization Widgets
  • etc.

Explore entirely new use cases

  • An app that provides to-do lists of workout activities that need completing and strikes them off once the activity of the correct type has been recorded.
  • An app that recommends activities and diet based on current fitness progression.
  • An app that could warn the user if the app thinks they are spending too much attention on a particular activity, e.g., too much upper body workouts and not enough leg workouts.
  • An app that displays information about the route taken: e.g., any noticeable landmarks, history of nearby places, weather at the time, and forecast for coming days of route.

Ideas to combine with some other data sources

Combing with other Health devices to provide greater context towards some activities e.g., Fitbit, Garmin, Oura, or Strava.

Combine route information with destination, trivia, or weather apps to provide greater context to route taken. 

Open-source data library

We welcome contributions and forks to this data set and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

General Improvements
  • While the CSV files are faked, there could be a desire to fake the GPX files. However, these are XML files so they would require conversion to a JSON object and reverting back to an XML file after faking. 
  • Another file that needs to be faked is the Measurements CSV file which records the user's weight and fat percentage
  • Greater reliance on the utils package where appropriate

Object-Specific improvements
  • CardioActivity
    • Have averageHeartRate be context sensitive (makes sense with the rest of the object)
    • friendsTagged needs to return faked data
Join our Slack community; Liberty. Equality. Data. - to ideate and collaborate with other app developers, designers, and our team.

Artificial 23andMe Data for Software Development

9/9/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the 23andMe dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are one type of data files: RawDataObject
Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

23andMe is a biotechnology company that provides an Ancestry, Health and Traits service that requires the customer to send their DNA for analysis. 23andMe also provides a paid-for membership which grants ongoing access to enhanced premium features and reports. 
Ancestry Service:
  • Automatic Family Tree
  • Connect with DNA relatives
  • Ancestry Composition - where user's DNA comes from
  • A detailed granular view of ancestry over the world 
  • Neanderthal Ancestry
Health Service: 
  • Health Predisposition Reports
  • Carrier Status Reports
  • Wellness Reports
  • ​Family Health History Tree
Traits Service:
  • Disposition to Male Bald Spot
  • Whether the user prefers sweet or salty
  • Disposition to Widow’s Peak Hairline 
  • Likelihood for fear of public speaking
  • etc

Approach used

23andMe provides a data exporting services that allows the user to download their raw genotype data. A subset of such data was converted into JSON format to create a mockup file. A simple data model of these objects can be seen below. This mockup file makes up the 23andme-data package.
Picture
The 23andme-mockup package imports the aforementioned file and goes through each attribute of them generating artificial (new) data using proprietary functions, such as those found in the utils package.

For example, with the RawDataObject object:
Static RawDataObject Object

    
Artificial RawDataObject Object

    

Use Case Ideas

  • Health/Diet Apps
  • Avatar Visualization
  • etc

Explore entirely new use cases

  • Biomarkers of concern, through database lookup or machine learning efforts, to encourage a professional medical diagnosis
  • Using your genetic data, construct an avatar with realistic similarities to the user
  • Ancestry Journey - shows your ancestry through a timeline with a stylised person through the earliest recorded time to now. 
  • Recommend food that works best with genetic profile
  • Educational App which helps to reduce the complexity of the data and make it accessible to the user

Ideas to combine with some other data sources

Combine with similar Raw Genetic Data exports, like from Ancestry, to gain a greater scope at genetic data. Look at any discrepancies for further analysis. 

Combine with photo applications to generate a life-like model of the user, for instance genetic data can help provide data about hair (texture, baldness, etc) but cannot tell your hairstyle

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

  • Ensure that the rsid attribute only generates valid Reference SNP cluster ID (RSID) values that 23andMe works with
  • Ensure that the position attribute generates valid values
  • Ensure that the chromosome attribute generates valid values
Join our Slack community; Liberty. Equality. Data. - to ideate and collaborate with other app developers, designers, and our team.

Artificial Strava Data for Software Development

9/5/2022

 
In this post, we are going deeper into the Dynamic Data project, looking at the Strava dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are twenty-five different types of data files: Activity, ActivityComments, ActivityKudoers, ActivityLaps, ActivityStream, ActivityZones, AthleteActivities, AthleteClubs, AthleteRoute, AthleteStats, AuthenticatedAthlete, Club, ClubActivities, ClubAdministrators, ClubMembers, Equipment, Route, RouteStream, SegmentEfforts, SegmentEffortsStream, Segments, SegmentsStreams, StarredSegments, Upload, and Zones.

Learn more about dynamic data generators and the benefits of artificial data in software development.
Picture

About the data source

Strava is a fitness tracking application freely available on Android and iOS devices, and web browsers.   Some of the many things you can do are:
  • Record Activities manually, through several supported applications or the Official Strava application on supported devices  
    • Each Activity has several supported attributes:
      • Distance
      • Type of Sport
      • Duration
      • Elevation
      • Title
      • Description
    • See Detailed Analysis of Activity (GPS map, calories burnt, etc.)
  • Create or follow a route 
  • Routes can be broken down into segments, allowing for competition in leaderboards
  • Compete against fellow users in a segment to get Achievement Medals 
It is also a social media network allowing for posting updates, following friends, creation and participation in clubs, sharing activity, commenting, leaving a kudo (liking), etc. ​

Approach used

Using the Strava API v3, a mockup file was created for each data object. A simple data model of these objects can be seen below. These mockup files make up the strava-data package.
Picture
The strava-mockups package imports the aforementioned files and goes through them generating (artificial) new data using proprietary functions, such as those found in the utils package.

For example, with the ActivityStream object:
Static ActivityStream Object

    
Artificial ActivityStream Object

    

Use Case Ideas

  • Health/Fitness Apps
  • Data visualization widgets
  • etc.

Explore entirely new use cases

  • Recommends new/similar routes that highlight certain places, such as a scenery route
  • Notifications when the user is not burning a similar number of calories within a range of deviation over some time (e.g., a week)
  • Motivational quotes to your screen depending on previous activity performance and segment ranking

Ideas to combine with some other data sources

Combing with data sources of other health devices (e.g., Oura, Garmin, Fitbit, or Whoop) could be useful to provide greater context for some activities.

It is also possible to combine Strava data with some entirely different segment data, like air quality, weather, location or similar to find interesting new applications for the data.

Open-source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data. Slack channel.

Considerations for next version/improvements

General Improvements
  • Make objects internally consistent, e.g., calories burnt reflect heart rate and distance traveled
  • Greater usage/reliance on the utils package
  • URLs could use a dedicated random image service, so they return actual images instead of 404 links currently
  • Map polyline data returns actual polyline data

Object-Specific improvements
  • StreamModel
    • Data in data must have functions for heart rate, cadence, watts, temp, moving and grade smoothness 
Join our Slack community; Liberty. Equality. Data. - to ideate and collaborate with other app developers, designers, and our team.

Artificial Fitbit Data for Software Development

8/29/2022

 
In this post we are going deeper in the Dynamic Data project, looking at the Fitbit dynamic data (library available here on GitHub and at NPM). Opening the library, you’ll see there are seven different types of data files: ActivitiesData, ActivitiesSummary, HeartRateData, HeartRateSummary, SleepData, SleepQuality and SleepSummary

Learn more about dynamic data generators and benefits of artificial data in software development.
Picture

About the data source?

Fitbit is a brand of smart watch that focuses on fitness tracking, allowing for the monitoring of several metrics:
  • Time spent in the different stages (deep, light, rem) of sleep
  • Quality of Sleep
  • Time spent
  • Heart rate data, calories burnt, distance traveled during an activity

Approach used

7 separate mockup files were created for the 3 different data objects:
  • ActivitiesData
  • ActivitiesSummary
  • HeartRateData
  • HeartRateSummary
  • SleepData
  • SleepQuality
  • SleepSummary
The data model of the above objects can be seen below. These mockup files make up the fitbit-data package.
Picture
The fitbit-mockups package imports the aforementioned files and goes through them generating (artificial) new data using proprietary functions, such as those found in the utils package.

For example, with the SleepSummary object:
Static SleepSummary Object

    
Artifical SleepSummary Object

    

Use Case Ideas

  • Health/Fitness Apps
  • data visualization widgets
  • etc.

Explore entirely new use cases

  • Create a to-do app that hides non-important or not urgent tasks, if your readiness score is low.
  • Avatar that reacts to your readiness
  • Motivational quotes to you screen depending on your energy level

Ideas to combine with some other data sources

Combing with other Health devices to provide greater context towards some activities e.g. Oura, Garmin, Strava, Whoop.

Or with some entirely different segment data, like air quality, weather, location or similar to find interesting new applications for the data.

Open Source data library

We welcome contributions and forks to this data set, and look forward to seeing what developers build in our Liberty. Equality. Data Slack channel.

Considerations for next version/improvements

General Improvements
  • Currently does not reflect the completeness of either the Fitbit Data Export or API
  • Make calories burnet better reflect the actual cardio performance
Object-Specific improvements
  • ActivitiesData
    • Allow activityName to be any activity Fitbit allows
Join our Slack community; Liberty. Equality. Data. - to ideate and collaborate with other app developers, designers, and our team.
<<Previous
Forward>>

    Categories

    All
    23andme
    Ancestry
    Apple
    Dynamic Data
    Fitbit
    Google
    Ios
    Movesense
    Open Source
    Oura
    Peloton
    Polar
    Runkeeper
    Sensor BNO055
    Spotify
    Strava
    Twitch
    Uber
    Use Case
    Veri
    Whoop
    Withings

    RSS Feed

© 2023 PRIFINA INC. ​
Terms of Service
Privacy Policy
About Prifina
  • Docs
  • Getting Data
  • Support
  • Slack
  • Blog
  • Prifina.com