# Patent

## Title
Personalized scaling of graphical indicators

## Abstract

Some aspects relate to reception from a user, via a sensor, first data indicative of activity of the user, determination of one or more values of a metric based on the first data, determination of a display scale based on the one or more values, reception from the user, via the sensor, second data indicative of activity of the user over a time interval, determination of a second value of the metric based on the second data, generation of a first graphical indicator representing the second value based on the display scale and the second value, and display of the first graphical indicator on a display.

## Background
BACKGROUND
1. Field
The embodiments described below relate to the generation and presentation of activity-related graphics. Some embodiments relate to the generation and presentation of graphical indicators conforming to a personalized display scale.
2. Description
The benefits of monitoring fitness-related information are well-known. A conventional stationary exercise device may include a display which graphically presents information such as time elapsed, heart rate, calories burned, etc. Wearable/portable fitness monitors also display fitness-related information to users. This information provides motivation, immediate feedback, and a better understanding of progress toward fitness goals.
Fitness-related information is typically presented using alphanumeric characters (e.g., “110 BPM”) or graphical visualizations. For example, a bar chart may present a heart rate over time. Such a bar chart may include several bars, each associated with a different time interval, where the length of a bar represents a heart rate during its associated time interval.
Graphical visualizations may provide an intuitive understanding of underlying fitness-related information. However, improvements to such graphical visualizations are desired, which may result in improved understanding of the underlying information, utilization of display screen area, and/or other benefits.
SUMMARY
Some embodiments relate to a device, method, and/or computer-readable medium storing processor-executable process steps to receive from a user, via a sensor, first data indicative of activity of the user, determine one or more values of a metric based on the first data, determine a display scale based on the one or more values, receive from the user, via the sensor, second data indicative of activity of the user over a time interval, determine a second value of the metric based on the second data, generate a graphical indicator representing the second value based on the display scale and the second value, and display the graphical indicator on a display.
Some aspects further include reception from the user, via the sensor, third data indicative of activity of the user over a second time interval, determination of a third value of the metric based on the third data, generation of a second graphical indicator representing the third value based on the display scale and the third value, and display of the second graphical indicator on the display.
In some aspects, the value of the metric associated with a respective time interval is indicative of physical activity during the respective time interval. For example, the metric may be step count, heart rate, distance traveled, activity level, altitude ascended, altitude descended, floors climbed, or calories burned.
According to some aspects, the display scale indicates a length per N units of the metric. The display scale may also or alternatively indicate a number of icons per N units of the metric.
In some aspects, a position of the displayed graphical indicator on the display indicates the time interval. The position may be along an arc of a circle, wherein arcs of the circle represent a plurality of time intervals.
According to some aspects, first data indicative of activity of a user is received, one or more values of a metric are determined based on the first data, a display scale is determined based on the one or more values, second data indicative of activity of the user over a time interval is received, a second value of the metric is determined based on the second data, a graphical indicator representing the second value is generated based on the display scale and the second value, and data representing the graphical indicator is transmitted to a display device.
Further aspects include reception of third data indicative of activity of the user over a second time interval, determination of a third value of the metric based on the third data, generation of a second graphical indicator representing the third value based on the display scale and the third value, and transmission of the second graphical indicator to the display device.
According to some aspects, the display scale indicates a length per N units of the metric. The display scale may also or alternatively indicate a number of icons per N units of the metric.
A more complete understanding of some embodiments can be obtained by referring to the following detailed description and to the drawings appended hereto.



BRIEF DESCRIPTION OF THE DRAWINGS
The construction and usage of embodiments will become readily apparent from consideration of the following specification as illustrated in the accompanying drawings, in which like reference numerals designate like parts, and wherein:
FIG. 1 illustrates operation according to some embodiments;
FIG. 2 is a block diagram of a device according to some embodiments;
FIG. 3 is a block diagram of a device according to some embodiments;
FIG. 4 is a top perspective view of a device according to some embodiments;
FIG. 5 is a bottom perspective view of a device according to some embodiments;
FIG. 6 is a flow diagram of a process according to some embodiments;
FIG. 7 illustrates operation of a system according to some embodiments;
FIG. 8 is an outward view of a displayed graphical indicator and a current time according to some embodiments;
FIG. 9 is an outward view of a displayed graphical indicator according to some embodiments;
FIG. 10 is an outward view of a displayed graphical indicator and a current time according to some embodiments;
FIG. 11 is an outward view of a displayed graphical indicator according to some embodiments;
FIG. 12 is an outward view of displayed graphical indicators and a current time according to some embodiments;
FIG. 13 is an outward view of displayed graphical indicators according to some embodiments;
FIG. 14 is an outward view of displayed graphical indicators and a current time according to some embodiments;
FIG. 15 is an outward view of displayed graphical indicators according to some embodiments;
FIGS. 16A and 16B comprise a flow diagram of a process according to some embodiments;
FIG. 17 is an outward view of displayed graphical indicators and a current time according to some embodiments;
FIG. 18 is an outward view of displayed graphical indicators and a current time according to some embodiments;
FIG. 19 is an outward view of displayed graphical indicators and a current time according to some embodiments;
FIG. 20 is an outward view of displayed graphical indicators and a current time according to some embodiments; and
FIG. 21 is an outward view of a displayed graphical indicator and a current time according to some embodiments.



DETAILED DESCRIPTION
The following description is provided to enable any person in the art to make and use the described embodiments. Various modifications, however, will remain readily apparent to those in the art.
A brief example will now be described with reference to FIG. 1 in order to provide an introduction to various features. Embodiments are not limited to the features or description of this example.
Monitoring device 100 receives data 110 from user 120. Data 110 is received via sensor 105, and is indicative of activity of user 120. Data 110 may be received over any suitable time interval. According to some embodiments, sensor 105 is a heart rate sensor and data 110 comprises signals detected from user 120 by sensor 105.
One or more values of a metric are determined based on data 110. Continuing the example, sensor 105, alone or in conjunction with other elements of monitoring device 100 determines a heart rate of user 120 based on data 110. According to some embodiments, the determined heart rate may comprise an average heart rate during the time interval over which data 110 was received, a maximum heart rate over the time interval, an average heart rate over each of several sub-intervals of the time interval, and/or any other measure of heart rate.
Next, a display scale is determined based on the determined value or values. The display scale associates units (e.g., BPM) of the metric (e.g., heart rate) with a characteristic of a graphical indicators which will be used to represent future values of the metric. In a specific example, a determined maximum heart rate is 150 BPM and a display area is 3.2 cm in height. Accordingly, the determined display scale may be 50 BPM/1 cm. A corresponding graphical indicator representing 150 BPM is 3 cm in length, and is therefore able to fit in the display area. Moreover, additional display height (i.e., 0.2 cm) is available if the heart rate exceeds 150 BPM. If the determined maximum heart rate is 180 BPM, the determined display scale may be 60 BPM/1 cm.
After the display scale is determined, second data indicative of user activity is received over a time interval. Again, the second data may be received from user 120 by sensor 105. A second value of the metric is determined based on the second data, and a graphical indicator representing the second value is generated based on the display scale and the second value.
For example, it will be assumed that a value of 125 BPM is determined based on the second data. Based on the previously-determined display scale of 50 BPM/1 cm, a graphical indicator having a length of 2.5 cm is generated.
The graphical indicator is then displayed. FIG. 1 shows graphical indicators 130 displayed on display 140. Display 140 may comprise any type of display screen that is or becomes known, and may be integral with or separate from monitoring device 100. Each of graphical indicators 130 is generated based on the display scale described above, and each of graphical indicators 130 represents a value of a metric over a respective time interval. For example, each of indicators 130 may represent an average heart rate over a particular five minute interval.
As described, the display scale used to generate indicators 130 is determined based on metric values which were determined from signals received from user 120. Accordingly, the display scale may optimize a usage of a display area of display 140 based on the user's prior activity.
Embodiments are not limited to the graphical indicators of FIG. 1. Moreover, the metric may comprise any metric that is or become known. According to some embodiments, the metric is one of step count, heart rate, distance traveled, activity level, altitude changes, altitude ascended, altitude descended, floors climbed, and calories burned. The metric may be indicative of physical activity, but embodiments are not limited thereto.
In the present disclosure, the term “activity” includes sedentary and nonsedentary activities. As such, the metric may be associated with activities related to sleeping, lying, sitting, and standing stationary (for example, time asleep, the onset, duration, and number of awakenings while attempting to sleep, the time spent in various stages of sleep, sleep latency, sleep efficiency and other sleep quality parameters, the presence of sleep apnea and other diagnostic measures, time spent in a prone non-standing state, and resting heart rate).
FIG. 2 is a block diagram of system 200 according to some embodiments. System 200 may be operated to generate and display graphical indicators according to some embodiments. System 200 includes one or more processing units 210 (e.g., processor cores and/or processing threads, discrete or integrated logic, and/or one or more state machines, and/or field programmable gate arrays (or combinations thereof)). One or more processing units 210 are configured to execute processor-executable program code to cause system 200 to operate as described herein, and memory 220 for storing the program code and any other suitable data, including but not limited to values of metrics associated with respective time intervals, and user-specific display scales associated with various metrics. Memory 220 may comprise one or more fixed disks, solid-state random access memory, and/or removable media (e.g., a thumb drive) mounted in a corresponding interface (e.g., a USB port).
Display interface 230 provides communication with display 240, which may comprise any system for visual presentation of information that is or becomes known. Display 240 may comprise a touch screen for receiving user input into system 200 according to some embodiments.
One or more processing units 210 may therefore execute processor-executable program code stored in memory 220 to cause system 200 to receive first data indicative of activity of a user, to determine one or more values of a metric based on the first data, to determine a display scale based on the one or more values, to receive second data indicative of activity of the user over a time interval, to determine a second value of the metric based on the second data, to generate a graphical indicator representing the second value based on the display scale and the second value, and to display the graphical indicator on display 240.
According to some embodiments, system 200 comprises an integrated device such as, but not limited to, a wearable unit (e.g., around wrist, around neck) or an otherwise portable unit (e.g., a smartphone, a dedicated music player, a fob). In some embodiments, elements of system 200 may be embodied in separate devices, such as a server device (e.g., a desktop computer) including elements 210, 220 and 330, and a terminal device (e.g., a watch) including display 240. System 200 may perform functions other than those attributed thereto herein, and may include any elements which are necessary for the operation thereof.
Some embodiments of system 200 include a portable monitoring device having a physical size and shape adapted to couple to the body of a user, which allows the user to perform normal or typical user activities (including, for example, exercise of all kinds and type) without hindering the user from performing such activities. The portable monitoring device may include a mechanism (for example, a clip, strap and/or tie) that facilitates coupling or affixing the device to the user during such normal or typical user activities.
For example. during operation, an altitude sensor generates data which is representative of the altitude and/or changes in altitude of the user. A motion sensor generates data which is representative of motion of the user. The data which is representative of the altitude and/or changes in altitude and the data which is representative of the motion of the user, is used to determine energy and/or calorie “burn” of the user.
The data may also be used to determine other activity-related metrics including, for example, (i) in the context of running/walking on level, substantially level, or relatively level ground, (a) number of steps, which may be categorized according to the number of steps associated with a user state, for example, walking, jogging and/or running, (b) distance traveled and/or (c) pace, (ii) in the context of running/jogging/walking/jumping on stairs, hills or ground having a grade of greater than, for example, about 3%, (a) number of stair and/or hill steps, which may be categorized, correlated or organized/arranged according to the number of stair and/or hill steps pertaining to, for example, the speed, pace and/or user state of the user (for example, walking, jogging and/or running), (b) number of flights of stairs, (c) ascent/descent distance on stairs and/or hills, (d) pace, (e) ascent/descent on elevators and/or escalators, (f) number of calories burned or expended by walking/running on stairs and/or hills and/or (g) quantify/compare the additional calories expended or burnt from stairs/hills relative to, versus or over level ground, (iii) in the context of swimming, number of strokes, time between strokes, leg kicks and similar metrics (variance of stroke time, mean stroke time, etc.), depth underwater, strokes per lap, lap time, pace and/or distance, (iv) in the context of using a bicycle, wheelchair, skateboard, skis, snowboard, ladder, etc., (a) ascent/descent distance traversed, (b) number of additional calories expended, (c) time of a downward “run” or upward “climb”, (d) number of calories expended, (e) number of pedal rotations, (f) arm or wheel rotation, (g) the grade of the surface, (h) pushes, kicks and/or steps. This list of activities (if applicable to the particular embodiment) is merely exemplary and is not intended to be exhaustive or limiting.
FIG. 3 is a block diagram of device 300 according to some embodiments. Device 300 may comprise an implementation of system 200 of FIG. 2. Device 300 incorporates elements 310 through 360 into a single integrated package.
Elements 310 through 340 of device 300 may operate as described above with respect to similarly-numbered elements of system 200. Device 300 further includes sensor interface 350 for exchanging data with one or more sensors 360.
Sensors 360 may comprise any sensors for acquiring data based on which metric values may be determined. Examples of sensors 360 include, but are not limited to, an accelerometer, a light sensor, a blood oxygen sensor, a gyroscope, a magnetometer, a Global Positioning System device, a proximity sensor, an altimeter, and a heart rate sensor. One or more of sensors 360 may share common hardware and/or software components.
A value of a metric may be determined based on data acquired by one or more of sensors 360. For example, a value of a “distance traveled” metric may be determined based on the outputs of a Global Positioning System device and an altimeter. An “activity level” metric may be determined based on the outputs of a blood oxygen sensor and a heart rate sensor.
User 370 is pictured to indicate that, according to some embodiments, data received by sensors 360 is indicative of activity of user 370. For example, the one or more sensors 360 may receive data based on physical activity of user 370. Moreover, one or more of sensors 360 may receive data via direct contact with the user, for example during heart rate, skin temperature, and/or blood oxygen monitoring.
In some embodiments, calorie expenditure and activity level may be determined based on or using, partially or entirely, the ambulatory speed of user 370. The speed of the user may be calculated, determined and/or estimated as the user's step count over a time epoch multiplied by one or more step lengths of the user (which may be programmed, predetermined and/or estimated (for example, based on attributes of the user (for example, height, weight, age, leg length, and/or gender))). Representative energy expenditure rates expressed as metabolic equivalents per minute (MET/min) may then be estimated, obtained (for example, from a look-up table or database) and/or interpolated from a MET table which provides metabolic equivalents per minute for different user speeds. In some embodiments, step length may be one of two values that are indicative of a walking step length and a running step length dependent on the step frequency and/or acceleration characteristics of the user. In some embodiments, step length may be described as a linear function of step frequency: step length=A+B*step frequency, where A and B are parameters that may be associated with or calibrated to the user. Such parameters may be stored in memory in device 300.
In some embodiments, the speed value may be converted to calorie expenditure by multiplying the corresponding MET value by the user's Body Mass Ratio (BMR). BMR may be obtained through any of a number of well-known equations based on height, weight, gender, age, and/or athletic ability or through designated BMR measurement devices. For example, a user may have a running step length of 57 inches and take 180 running steps during 1 min. Using the method described above, the user's speed estimate is 9.8 miles per hour, which may be linearly interpolated to provide a BMR value of 15.8 MET from the MET table above. Assuming the user's BMR to be 1.10 kcal/MET, the calorie burn of the user in the preceding minute is 17.4 kcal.
An intermediate MET calculation step is not required in this and similar methods. Calorie expenditure may be calculated directly based on speed and one or more physiological parameters of the user such as age, gender, height, weight, and/or athletic ability. Speed may also be filtered over time rather than accepted as a “raw” measurement for a given time epoch. All forms of speed estimation, and mechanisms to implement such techniques, whether now known and/or later developed, may be implemented in some embodiments
Calorie consumption, burn and/or expenditure may be determined using data which is representative of the intensity of user motion for example, as provided or determined by one or more single axis or multi-axis accelerometers, based on a heart rate, based on altitude-related information (for example, from an altimeter disposed on the portable monitoring device), and/or based on any combination of factors described herein.
FIG. 4 is a top view of one implementation of device 300 according to some embodiments. According to the illustrated embodiment, device 400 is wearable on a user's wrist. Device 400 includes display 440, which may comprise any suitable type of display screen, and which may display graphical indicators as described herein. Buttons 480 may be manipulated by a user to provide input to device 400. Display 440 may also incorporate an input device (i.e., a touch screen). Band 490 may be wrapped around the wrist and is securable using securing elements 495 (e.g., hook and loop, clasp, shape memory elements).
FIG. 5 is a bottom view of device 400, showing sensor protrusion 510 and power interface 520. Sensor protrusion 510 may include sensors which receive data indicative of user activity and benefit from close proximity and/or contact with a user's skin. Such sensors may include heart rate, moisture and/or temperature sensors. Power interface 520 may interface with a docking station or other power source to receive electrical charge for charging of batteries located within device 400. Embodiments are not limited to device 400 in terms of function, features and/or form factor.
FIG. 6 is a flow diagram of process 600 according to some embodiments. Process 600 and the other processes described herein may be performed using any suitable combination of hardware or software, including implementations of system 200, device 300 and/or device 400. Software embodying these processes may be stored by any non-transitory tangible medium, including a fixed disk, a floppy disk, a CD, a DVD, a Flash drive, or a magnetic tape.
Initially, at S610, first data is received from a user. The first data is received via a sensor and is indicative of physical activity of the user. The first data may comprise signals acquired from any number of sensors. According to some embodiments, sensor 510 of device 400 acquires heart rate-related signals via contact with a user over a time interval. In some embodiments, an accelerometer of device 400 generates movement data due to user movement over several time intervals.
One or more values of a metric are determined at S620 based on the received data. The metric may comprise any metric described herein or that is (or becomes) known. As described with respect to FIG. 1, sensor 105, alone or in conjunction with other elements of monitoring device 100, may determine a heart rate of user 120 based on received data 110 at S620. The determined heart rate may comprise an average heart rate during the time interval over which data 110 was received, a maximum heart rate over the time interval, an average heart rate over each of several sub-intervals of the time interval, and/or any other measure of heart rate. Determination of the one or more values at S620 may also be based on stored data, such as user body characteristics, dietary information, etc.
FIG. 7 is a block diagram describing operation of system elements according to some embodiments. As shown, sensors 712, 714 and 716 receive data from user 710. Each of sensors 712, 714 and 76 may receive such data continuously or according to a respective schedule.
The received data is stored in respective ones of memory buffers 722, 724 and 726. The stored data may be raw data or data processed to any output format supported by its respective sensor. For example, according to some embodiments, sensor 714 is a heart rate sensor and outputs a current heart rate to buffer 724 at ten second intervals. Each output heart rate is stored in a memory location of buffer 724.
In some embodiments, application processors 732, 734 and 736 comprise execution threads, processor cores or other processing units for determining metric values based on the data of memory buffers 722, 724 and 726. Application processors 732, 734 and 736 may subscribe to updates of one or more of memory buffers 722, 724 and 726, and determine metric values based on data received according to the subscription. Each of application processors 732, 734 and 736 is associated with a respective metric. That is, each of application processors 732, 734 and 736 determines one or more values of a single metric and also determines a display scale associated with that metric.
In this regard, a display scale is determined at S630 based on the determined value or values. As described above, the display scale associates units of the metric with a characteristic of a graphical indicator which will be used to represent future values of the metric. Any one or more previously-determined metric values may be used to determine the display scale according to some embodiments. For example, application processor 732 may operate to determine the display scale based on metric values associated with a previous week. Values may be additionally or otherwise filtered, using any known filter, for inclusion in the determination of the display scale. Values which are several standard deviations from a mean value may be excluded, for example.
As described above, determination of the display scale may take into account a maximum display area, for example of display 750. An application processor 732, 734, and/or 736 may therefore communicate with display interface 740 at S630 to determine a size of an available display area.
According to some embodiments, a display scale may specify an area per number of units of the metric (e.g., 2 cm2/5 steps). A display scale may specify a number of icons per number of units of the metric (e.g., 2 icons/50 ft. in elevation). Embodiments of a display scale may specify any graphical characteristic per number of units of the metric
Next, at S640, second data indicative of user activity is received from the user over a time interval. According to some embodiments, any amount of time may pass between S630 and S640. For example, S610 through S630 may be executed during a calibration period, and flow may pause thereafter until a user operates input controls (e.g., buttons 480 and/or touch screen display 440) to enter a monitoring mode at S640.
With respect to the example of FIG. 7, the second data may be received by one or more of sensors 712, 714 and 716 and stored in respective ones of memory buffers 722, 724 and/or 726. A second value of the metric is determined at S650 based on the second data. One of application processors 732, 734 and 736 may determine the second value at S650 as described above with respect to S620.
A graphical indicator representing the second value is generated at S660 based on the display scale and the second value. One of application processors 722, 724 and 726 may generate the graphical indicators at S660. Reiterating an example described above, a display scale of 50 BPM/1 cm is determined at S630 and a value of 125 BPM is determined at S650 based on the second data. Accordingly, a graphical indicator having a length of 2.5 cm is generated at S660.
The graphical indicator is displayed at S670. Display of the graphical indicator may comprise transmitting a visualization including the graphical indicator to another device for display, or displaying the graphical indicators on an on-board display. According to some embodiments, one of application processors 722, 724 and 726 transmits the graphical indicator to display interface 740 at S670, and display interface 740 controls display 750 to display the graphical interface thereon.
FIGS. 8-11 each illustrate a displayed graphical indicator according to some embodiments of S670. FIGS. 8-11 are intended to demonstrate examples of visualizations which include graphical indicators according to some embodiments, but embodiments are not limited thereto.
FIG. 8 shows graphical indicator 810 consisting of three icons. Also shown is current time 820. For example, each icon of graphical indicator 810 may represent 30 BPM. Therefore, indicator 810 represents 90 BPM.
A position of graphical indicator 810 indicates the time interval associated with the graphical indicator. In the present example, graphical indicator 810 is positioned at the ‘0’ minute position of a traditional analog clock layout, therefore graphical indicator 810 is associated with the 60th minute of the prior hour. More specifically, graphical indicator 810 indicates a heart rate of 90 BPM over the 60th minute of the prior hour. Accordingly, some embodiments efficiently convey values associated with respective time intervals in an intuitive manner which can be quickly grasped by a user.
FIG. 9 shows graphical indicator 910, which is similar to graphical indicator 810 excepting that graphical indicator 910 is a solid line. The length of graphical indicator 910 represents the second value determined at S650, and is determined based on the second value and on a display scale as described above. Again, a position of graphical indicator 910 indicates the time interval associated with the graphical indicator, in this case the 60th minute of the prior hour.
FIG. 10 shows graphical indicator 1010 and current time 1020. The length of graphical indicator 1010 is determined based on the second value determined at S650 and on a display scale as described above. The position of graphical indicator 1010 may correspond to a first ten-minute time interval since an instruction was received from the user to begin monitoring the metric.
FIG. 11 shows graphical indicator 1110, which is similar to graphical indicator 1010 but is composed of icons. The number of icons of graphical indicator 1010 represents the second value determined at S650, and is determined based on the second value and on a display scale (e.g., 1 icon/10 steps). The position of graphical indicator 1110 may correspond to a first one-minute time interval since an instruction was received from the user to begin monitoring the metric.
Returning to process 600, flow continues from S670 to S640 to receive additional data from the user. Accordingly, flow cycles between S640 and S670 to receive new data indicative of physical activity, to determine new matric values based on the data, and to generate and display new graphical indicators based on the values and on the previously-determined display scale.
The new graphical indicators may be displayed along with previously-generated and displayed indicators so as to convey changes in metric values over time. FIG. 12-15 illustrate the visualizations of FIGS. 8-11 after several iterations of S640-S670 according to some embodiments.
FIG. 12 shows a plurality of graphical indicators, each of which represents a value of a metric and a time interval. As described above, the time interval associated with a graphical indicator is indicated by a position of the graphical indicator. The ends of each graphical indicator substantially trace an arc of circle 1220, and the position of an end of a graphical indicator on arc 1220 indicates the time interval associated with the graphical indicator.
More specifically, distal ends 1215 of graphical indicators 1210A through 1210D are located on arc 1220 at the :00, :01, :02 and :03 positions of an analog clock, respectively. These positions correspond to time intervals which are one minute in length. The time intervals associated with each graphical indicator may exhibit any duration. For example, each position of an end 1215 may correspond to a five minute interval, a ten minute interval, or an interval of any duration. In a case that a complete circle includes sixty graphical indicators and corresponds to twelve hours, each graphical indicator is associated with a twelve minute interval. Similarly, in a case that a complete circle includes sixty graphical indicators and corresponds to twenty-four hours, each graphical indicator is associated with a twenty-four minute interval.
FIG. 13 is an outward view of visualization 1300 according to some embodiments. Visualization 1300 is identical to FIG. 12 except that each graphical indicator is a solid. The ends of each of the graphical indicators of visualization 1300 substantially trace an arc of a circle, and a position of an end of a graphical indicator on the arc of the circle indicates the time interval associated with the graphical indicator.
FIG. 14 shows graphical indicators displayed in addition to graphical indicator 1010 of FIG. 10. Each of the graphical indicators of visualization 1400 may be generated based on a same display scale at S660. According to the illustrated embodiment, the display scale associates a length of a graphical indicator with a number of units of a metric.
Visualization 1500 of FIG. 15 shows graphical indicators displayed in addition to graphical indicator 1110 of FIG. 11. The graphical indicators of visualization 1500 may be generated based on a same display scale, which associates a number of icons of a graphical indicator with a number of units of a metric.
Embodiments are not limited to the graphical indicators described herein. A visualization according to some embodiments may include two or more types of graphical indicators. A visualization according to some embodiments may also include displayed elements in addition to the graphical indicators and other elements shown herein.
According to some embodiments, flow may occasionally return to S630 to determine a new display scale. For example, the display scale may be determined based on data which was received after the original determination of the display scale. This re-determination may occur daily, weekly, monthly, or in response to any condition, such as a determination that the determined metric values consistently meet (or fail to meet) a threshold. Such a feature may account for changes in the user's fitness and/or physiology.
Process 600 may pause or terminate at any time according to some embodiments. For example, a user may input an instruction to switch a monitoring mode, causing termination of process 600. Data may continue to be received from the user as described herein despite termination of process 600, and that data may be used to determine a display scale upon resumption of process 600.
FIGS. 16A and 16B comprise process 1600 according to some embodiments. Embodiments are not, however, limited to the features of process 1600.
Prior to process 1600, it will be assumed that a device embodying process 1600 is activated (i.e., powered on, woken from sleep, etc.) or otherwise instructed to enter a mode for displaying a visualization according to some embodiments.
S1605 through S1615 may be executed as described above with respect to S610 through S630 of process 600, but implementations are not limited thereto. After execution of S630, a display scale has been determined which associates units of a metric with a characteristic of a graphical indicator which will be used to represent future values of the metric. In the present example, the metric is step count and the display scale associates a length of a graphical indicator with a number of steps.
Next, at S1620, a value of the metric is determined for each of a plurality of time intervals of the current hour. The value for each time interval is determined based on second data indicative of physical activity of the user over that time interval. The current time may be determined from a network to which the device is connected (i.e., wired or wirelessly), from an on-board clock, or by other means. For example, if a current time of 12:43 pm is determined, so a value of the metric is determined for each completed minute of the current hour (i.e., for each of forty-two completed minutes). Time intervals are not limited to single minutes in some implementations, as described above. It will be assumed that the metric in the current example is step count, therefore forty step count values are determined at S1620.
For each of the plurality of time intervals, a graphical indicator associated with the time interval is generated at S1625. The length of a graphical indicator is determined based on the display scale and on the value of the metric for the time interval associated with the graphical indicator.
The plurality of graphical indicators are displayed at S1630. According to some embodiments, a position of each of the displayed plurality of graphical indicators indicates a time interval associated with each graphical indicator. FIG. 17 provides an illustration of such a display according to the present example. The ends of each of the displayed plurality of graphical indicators substantially trace an arc of a circle, and a position of an end of a graphical indicator on the arc indicates a time interval associated with the graphical indicator.
Next, at S1640, a signal indicative of physical activity over a next time interval is detected. In the present example, the next time interval is the forty-third minute of the hour, since values have been determined for the initial forty-two minutes of the hour. The signal may be detected by a sensor such as those already described. More than one signal from more than one sensor may be detected at S1640, depending on the information needed to determine a value of the particular metric being evaluated. In this regard, a next value of the metric is determined at S1645 and, as described with respect to S650 and S660, a graphical indicator representing the next value and associated with the next time interval is determined at S1650. The length of the graphical indicator is determined based on the display scale and on the next value of the metric.
As illustrated by graphical indicator 1810 of FIG. 18, the graphical indicator determined at S1650 is displayed at S1655. A position of a first end of graphical indicator 1810 on the arc indicates its associated time interval (i.e., the forty-third minute).
At S1660, it is then determined whether the metric of interest has changed. According to some embodiments, the metric of interest may change to another metric based on a schedule, in which case S1660 consists of confirming the schedule. In some embodiments, a user may issue a command to change the schedule. The command may be issued via buttons such as buttons 480, or by performing a touch screen gesture, such as a swipe, upon display 440. Any suitable input modality may be used to issue such a command.
If it is not determined to change the metric at S1660, it is determined whether the current time has entered a new hour. If not, flow continues to S1640 and to determine a new value, to generate a new graphical indicator based on the value and the display scale, and to display the new graphical indicator at an appropriate position on the arc of the circle.
Upon determining at S1660 that the metric is to be changed, flow returns to the beginning of process 1600 to determine a display scale, and to generate and display a plurality of graphical indicators based on the display scale and on values of the new metric for each time interval of the current hour. FIG. 19 illustrates display of such graphical indicators according to some embodiments. Each graphical indicator of visualization 1900 represents a value of the new metric (e.g., heart rate) associated with a time interval indicated by a position of the graphical indicator. Icon 1910 now indicates the new metric, signaling to the user that the metric has changed.
On the other hand, if it is determined at S1665 that a new hour has arrived, flow returns to S1620 to determine a plurality of values of the new metric for a plurality of time intervals of the new hour (S1620), to generate a graphical indicator for each of the values based on the display scale (S1625), and to display the graphical indicators (S1630), where a position of a displayed graphical indicator indicates a time interval associated with the graphical representation.
Upon returning to S1620 from S1665 during the first minute of the hour, no time intervals of the new hour will have elapsed, so the first value and graphical indicator of the current hour are determined at S1645 and S1650. The graphical indicator is displayed at S1655 as part of a new visualization, as illustrated by visualization 2100 of FIG. 21. Flow may then continue as described above to determine and display graphical indicators associated with the current metric or with another metric detected at S1660.
The foregoing diagrams represent logical architectures for describing processes according to some embodiments, and actual implementations may include more or different components arranged in other manners. Other topologies may be used in conjunction with other embodiments. Moreover, each system described herein may be implemented by any number of devices in communication via any number of other public and/or private networks. Two or more of such computing devices may be located remote from one another and may communicate with one another via any known manner of network(s) and/or a dedicated connection. Each device may include any number of hardware and/or software elements suitable to provide the functions described herein as well as any other functions. For example, any computing device used in an implementation of some embodiments may include a processor to execute program code such that the computing device operates as described herein.
All systems and processes discussed herein may be embodied in program code stored on one or more non-transitory computer-readable media. Such media may include, for example, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid state Random Access Memory (RAM) or Read Only Memory (ROM) storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
Those in the art will appreciate that various adaptations and modifications of the above-described embodiments can be configured without departing from the scope and spirit of the claims. Therefore, it is to be understood that the claims may be practiced other than as specifically described herein.

## Claims

1. A device, comprising:
a display
one or more sensors;
one or more processors;
a memory; and
program code, wherein the program code is stored in the memory and configured to be executed by the one or more processors, the program code including instructions for:
receiving, via the one or more sensors, first data indicative of activity of a user;
determining one or more values of a metric based on the first data;
determining a display scale based on the one or more values, the display scale associating N units of the metric with a value of a graphical characteristic;
receiving, via the one or more sensors, second data indicative of activity of the user over a first time interval;
determining a second value of the metric based on the second data;
determining a first value of the graphical characteristic based on the second value and on the display scale;
generating a first graphical indicator exhibiting the first value of the graphical characteristic;
displaying the first graphical indicator at a first position on the display, where the first position of the displayed first graphical indicator on the display indicates the first time interval, the first position is along an arc of a circle, and a first portion of the arc represents the first time interval;
after displaying the first graphical indicator at the first position on the display, receiving, via the one or more sensors, third data indicative of activity of the user over a second time interval;
determining a third value of the metric based on the third data;
determining a second value of the graphical characteristic based on the third value and on the display scale;
generating a second graphical indicator exhibiting the second value of the graphical characteristic; and
displaying the second graphical indicator at a second position on the display, where the second position of the displayed second graphical indicator on the display indicates the second time interval, the second position is along the arc of the circle, and a second portion of the arc represents the second time interval.

2. A device according to claim 1, wherein the one or more sensors comprises at least one of:
an accelerometer;
a light sensor;
a blood oxygen sensor;
a gyroscope;
a magnetometer;
a Global Positioning System device;
a proximity sensor,
an altimeter; and
a heart rate sensor.

3. A device according to claim 1,
wherein the display scale associates a particular length with N units of the metric.

4. A device according to claim 1,
wherein the display scale associates a particular number of icons with N units of the metric.

5. A device according to claim 1, wherein the metric comprises one of: step count, heart rate, distance traveled, activity level, altitude changes, altitude ascended, altitude descended, floors climbed, and calories burned.

6. A device according to claim 1, wherein the circle represents a twelve hour time interval.

7. A device according to claim 1, wherein the second graphical indicator is displayed one minute after display of the first graphical indicator.

8. The device according to claim 1, wherein the length of the arc increments according to a measurement of current time.

9. The device according to claim 1, wherein the length of the arc represents a measurement of a sub-time period which has passed in a current time period represented by the circle.

10. The device according to claim 1, the program code further including instructions for:
determining that a predetermined time period has elapsed since determination of the display scale; and
in response to the determination that the predetermined time period has elapsed, determining a second display scale associating M units of the metric with the value of a graphical characteristic.

11. The device according to claim 1, the program code further including instructions for:
determining a current time;
determining a value of the metric for each of a plurality of time intervals based on fourth data indicative of activity of the user over a third time interval which includes each of the plurality of time intervals, the third time interval beginning at a beginning of a specified time period and ending prior to the current time;
determining a value of the graphical characteristic for each of the plurality of time intervals based on a value of the metric for each of a plurality of time intervals and on the display scale;
for each one of the plurality of time intervals, generating a graphical indicator exhibiting the value of the graphical characteristic of the one of the plurality of time intervals; and
displaying the graphical indicators generated for each one of the plurality of time intervals at respective positions on the display, where the respective position of each one of the displayed graphical indicators generated for each one of the plurality of time intervals indicates a time interval for which the one displayed graphical indicators was generated.

12. A method, comprising:
receiving, via one or more sensors, first data indicative of activity of the user;
determining one or more values of a metric based on the first data;
determining a display scale based on the one or more values, the display scale associating N units of the metric with a value of a graphical characteristic;
receiving, via the one or more sensors, second data indicative of activity of the user over a first time interval;
determining a second value of the metric based on the second data;
determining a first value of the graphical characteristic based on the second value and on the display scale;
generating a first graphical indicator exhibiting the first value of the graphical characteristic;
displaying the first graphical indicator at a first position on a display, where the first position of the displayed first graphical indicator on the display indicates the first time interval, the first position is along an arc of a circle, and a first portion of the arc represents the first time interval;
after displaying the first graphical indicator at the first position on the display, receiving, via the one or more sensors, third data indicative of activity of the user over a second time interval;
determining a third value of the metric based on the third data;
determining a second value of the graphical characteristic based on the third value and on the display scale;
generating a second graphical indicator exhibiting the second value of the graphical characteristic; and
displaying the second graphical indicator at a second position on the display, where the second position of the displayed second graphical indicator on the display indicates the second time interval, the second position is along the arc of the circle, and a second portion of the arc represents the second time interval.

13. A method according to claim 12, wherein the one or more sensors comprises at least one of:
an accelerometer;
a light sensor;
a blood oxygen sensor;
a gyroscope;
a magnetometer;
a Global Positioning System device;
a proximity sensor,
an altimeter; and
a heart rate sensor.

14. A method according to claim 12, wherein the metric comprises one of: step count, heart rate, distance traveled, activity level, altitude changes, altitude ascended, altitude descended, floors climbed, and calories burned.

15. A method according to claim 12, wherein the circle represents a twelve hour time interval.

16. A method according to claim 12, wherein the second graphical indicator is displayed one minute after display of the first graphical indicator.

17. A method according to claim 12, wherein the length of the arc increments according to a measurement of current time.

18. A method according to claim 12, wherein the length of the arc represents a measurement of a sub-time period which has passed in a current time period represented by the circle.

19. A method according to claim 12, further comprising:
determining that a predetermined time period has elapsed since determination of the display scale; and
in response to the determination that the predetermined time period has elapsed, determining a second display scale associating M units of the metric with the value of a graphical characteristic.

20. A method according to claim 12, further comprising:
determining a current time;
determining a value of the metric for each of a plurality of time intervals based on fourth data indicative of activity of the user over a third time interval which includes each of the plurality of time intervals, the third time interval beginning at a beginning of a specified time period and ending prior to the current time;
determining a value of the graphical characteristic for each of the plurality of time intervals based on a value of the metric for each of a plurality of time intervals and on the display scale;
for each one of the plurality of time intervals, generating a graphical indicator exhibiting the value of the graphical characteristic of the one of the plurality of time intervals; and
displaying the graphical indicators generated for each one of the plurality of time intervals at respective positions on the display, where the respective position of each one of the displayed graphical indicators generated for each one of the plurality of time intervals indicates a time interval for which the one displayed graphical indicators was generated.

21. A method, comprising:
receiving first data indicative of activity of a user;
determining one or more values of a metric based on the first data;
determining a display scale based on the one or more values, the display scale associating N units of the metric with a value of a graphical characteristic;
receiving second data indicative of activity of the user over a first time interval;
determining a second value of the metric based on the second data;
determining a first value of the graphical characteristic based on the second value and on the display scale;
generating a first graphical indicator exhibiting the first value of the graphical characteristic;
transmitting data representing the first graphical indicator and a first position at which to display the graphical indicator to a display device, where the first position indicates the first time interval, the first position is along an arc of a circle, and a first portion of the arc represents the first time interval;
after transmitting the data representing the first graphical indicator and the first position at which to display the graphical indicator, receiving third data indicative of activity of the user over a second time interval;
determining a third value of the metric based on the third data;
determining a second value of the graphical characteristic based on the third value and on the display scale;
generating a second graphical indicator exhibiting the second value of the graphical characteristic; and
transmitting data representing the second graphical indicator and a second position at which to display the graphical indicator to the display device, where the second position indicates the second time interval, the second position is along the arc of the circle, and a second portion of the arc represents the second time interval.

22. A method according to claim 21,
wherein the display scale associates a particular length with N units of the metric.

23. A method according to claim 21, wherein the metric comprises one of: step count, heart rate, distance traveled, activity level, altitude increase, floors gained, and calories burned.

24. A method according to claim 21, further comprising:
determining that a predetermined time period has elapsed since determination of the display scale; and
in response to the determination that the predetermined time period has elapsed, determining a second display scale associating M units of the metric with the value of a graphical characteristic.

25. A method according to claim 21, further comprising:
determining a current time;
determining a value of the metric for each of a plurality of time intervals based on fourth data indicative of activity of the user over a third time interval which includes each of the plurality of time intervals, the third time interval beginning at a beginning of a specified time period and ending prior to the current time;
determining a value of the graphical characteristic for each of the plurality of time intervals based on a value of the metric for each of a plurality of time intervals and on the display scale;
for each one of the plurality of time intervals, generating a graphical indicator exhibiting the value of the graphical characteristic of the one of the plurality of time intervals; and
displaying the graphical indicators generated for each one of the plurality of time intervals at respective positions on the display, where the respective position of each one of the displayed graphical indicators generated for each one of the plurality of time intervals indicates a time interval for which the one displayed graphical indicators was generated.

26. A device, comprising:
one or more processors;
a memory; and
program code, wherein the program code is stored in the memory and configured to be executed by the one or more processors, the program code including instructions for:
receiving first data indicative of activity of a user;
determining one or more values of a metric based on the first data;
determining a display scale based on the one or more values, the display scale associating N units of the metric with a value of a graphical characteristic;
receiving second data indicative of activity of the user over a first time interval;
determining a second value of the metric based on the second data;
determining a first value of the graphical characteristic based on the second value and on the display scale;
generating a first graphical indicator exhibiting the first value of the graphical characteristic;
transmitting data representing the first graphical indicator and a first position at which to display the graphical indicator to a display device, where the first position indicates the first time interval, the first position is along an arc of a circle, and a first portion of the arc represents the first time interval;
after transmitting the data representing the first graphical indicator and the first position at which to display the graphical indicator, receiving third data indicative of activity of the user over a second time interval;
determining a third value of the metric based on the third data;
determining a second value of the graphical characteristic based on the third value and on the display scale;
generating a second graphical indicator exhibiting the second value of the graphical characteristic; and
transmitting data representing the second graphical indicator and a second position at which to display the graphical indicator to the display device, where the second position indicates the second time interval, the second position is along the arc of the circle, and a second portion of the arc represents the second time interval.

27. A device according to claim 26,
wherein the display scale associates a particular length with N units of the metric.

28. A device according to claim 26,
wherein the display scale associates a particular number of icons with N units of the metric.

29. A device according to claim 26, wherein the metric comprises one of: step count, heart rate, distance traveled, activity level, altitude increase, floors gained, and calories burned.

30. A device according to claim 26, the program code further including instructions for:
determining that a predetermined time period has elapsed since determination of the display scale; and
in response to the determination that the predetermined time period has elapsed, determining a second display scale associating M units of the metric with the value of a graphical characteristic.