Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
INTELLIGENT VESSEL
Document Type and Number:
WIPO Patent Application WO/2015/175969
Kind Code:
A1
Abstract:
In general, one aspect of the subject matter described in this specification can be embodied in a vessel (100) configured to identify a substance therein. The vessel (100) can also track a user (808)'s behaviors and provide information to the user (808) regarding their hydration level and nutritional intake. There are several outlets for receiving this information, including directly on the vessel (100) and/or through a mobile application.

Inventors:
LEE JUSTIN (CA)
JOUNG EUNICE (US)
BRAND MICHAEL (US)
BERMAN MARK ALAN (US)
BARNES NICHOLAS (US)
BEHAR YVES (US)
BESHCHERER-NACHTMANN KLAUS (CA)
VISSER AARON (CA)
MURPHY-REINHERTZ NOAH (US)
KREIDER ERIK (US)
IHRIG MIRKO (US)
NANGIA NIKITA (US)
SHYR ERIC (US)
HUMPHREYS GRAHAM (US)
KARNIK RYNA (US)
PEACH JOHN (US)
KELNER ILYA (US)
LENYOUN HANSON (US)
PEARCE CHARLES (US)
Application Number:
PCT/US2015/031136
Publication Date:
November 19, 2015
Filing Date:
May 15, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MARK ONE LIFESTYLE INC (US)
International Classes:
A47G19/22; A47G23/16; B65D47/26; G01F23/26; G01G19/414; G01N21/31; G01N21/3577; G01N21/359; G06Q50/00
Domestic Patent References:
WO2011004319A12011-01-13
Foreign References:
US20060261233A12006-11-23
US20130103463A12013-04-25
US20100125417A12010-05-20
CN203369693U2014-01-01
Other References:
None
Attorney, Agent or Firm:
GOMEZ, Martin et al. (Exchange PlaceBoston, MA, US)
Download PDF:
Claims:
What is claimed is:

1. A vessel comprising:

a main body defining an interior cavity with an opening at an upper end of the main body and a base portion disposed at a lower end of the main body and opposite the opening, wherein the interior cavity has an interior surface, and wherein the exterior of the main body has an exterior surface;

a first sensor disposed in a space between the interior surface and the exterior surface wherein the first sensor is configured to take one or more readings of a substance placed into the interior cavity through a substantially transparent portion of the interior surface;

a processor housed in the vessel wherein the processor is programmed to process the readings and identify one or more properties of the substance;

an electronic display housed in the vessel and visible through a portion of the exterior surface wherein the display is configured to display information regarding one or more of the properties; and

a battery housed in the vessel and configured to supply power to the first sensor, the processor, and the display.

2. The vessel of claim 1, wherein the first sensor comprises:

a plurality of light sources each configured to emit light at a different respective small wavelength range;

a light detector configured to measure intensity; and

wherein the first sensor is configured to activate each light source in series while activating the light sensor to detect a respective measure of intensity from the light of the activated light source as reflected off of the substance.

3. The vessel of claim 1 wherein a particular reading comprises a plurality of intensity measures, each intensity measure being for a different respective small wavelength range of light.

4. The vessel of claim 1 wherein a diameter of the main body is suitable for grasping by a human hand.

5. The vessel of claim 1 wherein the main body is substantially cylindrical in shape. 6. The vessel of claim 1 wherein the battery is housed in the base portion.

7. The vessel of claim 1 wherein the substantially transparent portion of the interior surface is a window that is integrated with the interior surface.

8. The vessel of claim 1 wherein a particular property is one of: a beverage name, a beverage category, and nutritional information.

9. The vessel of claim 8 wherein nutritional information is calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, or alcohol content.

10. The vessel of claim 1 wherein the information comprises one or more of: a beverage name, beverage category nutritional information, and information for a user of the vessel. 1 1. The vessel of claim 10 wherein the information for the user of the vessel comprises a measure of user hydration and nutritional intake of the user over a period of time.

12. The vessel of claim 1 further comprising:

a second sensor disposed in space between the interior surface and the exterior surface, wherein the second sensor is configured to measure a volume of the substance;

wherein the battery is further configured to supply power to the second sensor; and wherein the processor is further programmed to use the volume measurement to identify one or more of the properties of the substance.

13. The vessel of claim 1 further comprising:

a second sensor housed in the vessel and configured to measure at least one of orientation and orientation's derivative of the vessel;

wherein the battery is further configured to supply power to the second sensor; and wherein the vessel is configured to activate the display based on the measure of at least one of orientation and orientation's derivative.

14. The vessel of claim 1 further comprising:

a lid detachably coupled to the upper end of the main body; and

a cover coupled to the lid and configured to move in a first direction to seal the vessel and move a second direction to unseal the vessel.

15. The vessel of claim 1 wherein the processor is further programmed to communicate the readings wirelessly to an external device.

16. The vessel of claim 15 wherein the processor is further programmed to wirelessly receive identification of one or more of the properties of the substance from the external device. 17. The vessel of claim 1 wherein the processor is further programmed to wirelessly receive configuration information from an external device and use the configuration information to configure the display information.

18. A lid comprising:

a cover comprising:

a lower arcuate surface; and

at least one cover magnet proximate the lower arcuate surface; and a base comprising:

an upper arcuate surface;

an opening extending through the base; and at least two base magnets proximate the upper surface,

wherein the lower arcuate surface of the cover and the upper arcuate surface of the base are adapted to be maintained in sliding contact.

19. The lid of claim 18, wherein the lower arcuate surface further comprises a protrusion adapted to mate with a slot formed in the base.

20. The lid of claim 18, wherein the at least one cover magnet is embedded within the cover.

21. The lid of claim 18, wherein the at least one cover magnet is adapted to magnetically couple with at least one of the base magnets to cover the opening.

22. The lid of claim 18, wherein the at least one cover magnet is adapted to magnetically couple with at least one of the base magnets to expose the opening.

23. The lid of claim 18 further comprising two cover magnets.

24. The lid of claim 18 further comprising a ridge on an upper lid surface.

25. The lid of claim 18, wherein the base magnets are embedded within the base.

26. The lid of claim 18 further comprising four base magnets.

27. A method implemented by one or more processors housed in a vessel wherein the vessel comprises an interior cavity and a plurality of sensors, the method comprising:

detecting the presence of a substance in a vessel using a first sensor of the sensors; based on the detecting, taking one or more readings of the substance using a second sensor of the sensors wherein each reading comprises a plurality of intensity measures, each intensity measure being for a different respective small wavelength range;

processing the readings to identify one or more properties of the substance; and displaying information regarding one or more of the properties on an exterior surface of the vessel.

28. The method of claim 27 wherein the first sensor comprises a capacitance sensor, wherein detecting the presence of the substance in the vessel comprises:

using the first sensor to measure capacitance; and

determining a volume of the substance based on the capacitance measure.

29. The method of claim 27 wherein the second sensor comprises a plurality of light sources each configured to emit light at a different respective small wavelength range and a light detector configured to measure intensity, wherein taking a particular reading of the substance comprises:

activating each light source in series while activating the light sensor to detect a respective measure of intensity from the light of the activated light source as reflected off of the substance.

30. The method of claim 27 wherein a third sensor of the sensors is configured to measure inertial changes of the vessel, inertial changes comprising at least one of accelerations and rotations about an axis.

31. The method of claim 27 wherein a diameter of the main body is suitable for grasping by a human hand.

32. The method of claim 27 wherein the main body is substantially cylindrical in shape. 33. The method of claim 27 wherein a particular property is one of: a beverage name, a beverage category, and nutritional information.

34. The method of claim 33 wherein nutritional information is calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, or alcohol content.

35. The method of claim 27 wherein the information comprises one or more of: a beverage category, a beverage name, beverage nutritional information, and other information for a user of the vessel.

36. The method of claim 35 wherein the information for the user of the vessel comprises a measure of user hydration and nutritional intake of the user over a period of time.

37. The method of claim 27, further comprising:

wirelessly communicating the readings to an external device.

38. The method of claim 37, further comprising:

wirelessly receiving identification of one or more of the properties of the substance from the external device.

39. The method of claim 27, further comprising:

wirelessly receiving configuration information from an external device and using the configuration information to configure the display information.

40. A method for determining properties of a substance, the method comprising the steps of:

i) controlling at least one light source to emit light sequentially at different small wavelength ranges toward a substance;

ii) measuring an intensity of light reflected from the substance at the different small wavelength ranges; and

iii) processing the measurements to determine properties of the substance.

41. The method of claim 40, wherein the at least one light source is disposed in an apparatus.

42. The method of claim 41, wherein the apparatus comprises a vessel.

43. The method of claim 41, wherein the apparatus comprises an eating utensil.

44. The method of claim 40, wherein the at least one light source is adapted to be placed adjacent the substance.

45. The method of claim 40, wherein the at least one light source is adapted to be placed remote from the substance.

46. The method of claim 45 further comprising a communication for transmitting light from the at least one light source to the substance.

47. The method of claim 46, wherein the communication comprises a fiber optic cable. 48. The method of claim 40, wherein the at least one light source comprises a single light source controllable to emit different small wavelength ranges at different times.

49. The method of claim 40, wherein the at least one light source comprises a plurality of light sources.

50. The method of claim 49, wherein the plurality of light sources are configured to emit light at different small wavelength ranges.

51. The method of claim 40, wherein the plurality of light sources comprise light emitting diodes.

52. The method of claim 40, wherein the different small wavelength ranges comprise at least one of infrared, near-infrared, visible, and ultraviolet small wavelength ranges.

53. The method of claim 40, measuring intensity comprises using at least one light detector. 54. The method of claim 40, wherein the at least one light detector comprises a single light detector.

55. The method of claim 40, wherein processing the measurements comprises applying an algorithm to compare the measurements with property values stored in a database.

56. The method of claim 55, wherein the algorithm performs a statistically significant similarity measure.

57. A computer-implemented method comprising:

receiving user input comprising one or more components of a substance; and communicating the user input to a vessel, wherein the vessel is configured to

contain substances for which the one or more components can be measured, determine an amount of each substance consumed from the vessel, analyze each substance contained within the vessel to determine a value for the one or more components consumed from the vessel,

track a cumulative total comprising a sum of the values for the one or more components consumed from the vessel over one or more time periods, and

display the cumulative total.

58. The computer-implemented method of claim 57, wherein the one or more components comprise at least one of calories, sugar, caffeine, protein, sodium, fat, and alcohol.

59. The computer-implemented method of claim 57, wherein the user input further comprises the one or more time periods over which the vessel is configured to track and display the cumulative total.

60. The computer-implemented method of claim 59, wherein the one or more time periods comprise at least one of a day, a week, a year, and a lifetime of the vessel.

61. The computer- implemented method of claim 57, wherein the user input further comprises one or more characteristics of the user, and wherein the vessel is further configured to

calculate a parameter based on the one or more characteristics and its analysis of the substances consumed from the vessel, and

display the parameter.

62. The computer-implemented method of claim 61, wherein the one or more

characteristics comprise at least one of height, weight, and age.

63. The computer- implemented method of claim 61, wherein the parameter comprises a measure of a user's hydration.

64. The computer- implemented method of claim 57 further comprising:

receiving the user input by the vessel;

analyzing each substance contained within the vessel to determine the value for the one or more components consumed from the vessel;

tracking the cumulative total; and

displaying the cumulative total.

65. The computer-implemented method of claim 57, wherein the user input is

communicated to the vessel using at least one of WiFi, Bluetooth, and a cellular network. 66. A system comprising:

one or more data processing apparatus programmed to perform operations comprising: receiving user input comprising one or more components of a substance; and communicating the user input to a vessel, wherein the vessel is configured to contain substances for which the one or more components can be measured,

determine an amount of each substance consumed from the vessel, analyze each substance contained within the vessel to determine a value for the one or more components consumed from the vessel,

track a cumulative total comprising a sum of the values for the one or more components consumed from the vessel over one or more time periods, and

display the cumulative total.

67. The system of claim 66, wherein the one or more components comprise at least one of calories, sugar, caffeine, protein, sodium, fat, and alcohol.

68. The system of claim 66, wherein the user input further comprises the one or more time periods over which the vessel is configured to track and display the cumulative total.

69. The system of claim 68, wherein the one or more time periods comprise at least one of a day, a week, a year, and a lifetime of the vessel.

70. The system of claim 66, wherein the user input further comprises one or more characteristics of the user, and wherein the vessel is further configured to

calculate a parameter based on the one or more characteristics and its analysis of the substances consumed from the vessel, and

display the parameter.

71. The system of claim 70, wherein the one or more characteristics comprise at least one of height, weight, and age.

72. The system of claim 70, wherein the parameter comprises a measure of a user's hydration.

73. The system of claim 66, wherein the operations further comprise:

receiving the user input by the vessel;

analyzing each substance contained within the vessel to determine the value for the one or more components consumed from the vessel;

tracking the cumulative total; and

displaying the cumulative total.

74. The system of claim 66, wherein the user input is communicated to the vessel using at least one of WiFi, Bluetooth, and a cellular network.

75. A computer-readable storage medium having instructions stored thereon that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:

receiving user input comprising one or more components of a substance; and communicating the user input to a vessel, wherein the vessel is configured to

contain substances for which the one or more components can be measured, determine an amount of each substance consumed from the vessel, analyze each substance contained within the vessel to determine a value for the one or more components consumed from the vessel,

track a cumulative total comprising a sum of the values for the one or more components consumed from the vessel over one or more time periods, and

display the cumulative total.

76. The computer-readable storage medium of claim 75, wherein the one or more components comprise at least one of calories, sugar, caffeine, protein, sodium, fat, and alcohol. 77. The computer-readable storage medium of claim 75, wherein the user input further comprises the one or more time periods over which the vessel is configured to track and display the cumulative total.

78. The computer-readable storage medium of claim 77, wherein the one or more time periods comprise at least one of a day, a week, a year, and a lifetime of the vessel.

79. The computer-readable storage medium of claim 75, wherein the user input further comprises one or more characteristics of the user, and wherein the vessel is further configured to

calculate a parameter based on the one or more characteristics and its analysis of the substances consumed from the vessel, and display the parameter.

80. The computer-readable storage medium of claim 79, wherein the one or more characteristics comprise at least one of height, weight, and age.

81. The computer-readable storage medium of claim 79, wherein the parameter comprises a measure of a user's hydration.

82. The computer-readable storage medium of claim 75, wherein the operations further comprise:

receiving the user input by the vessel;

analyzing each substance contained within the vessel to determine the value for the one or more components consumed from the vessel;

tracking the cumulative total; and

displaying the cumulative total.

83. The computer-readable storage medium of claim 75, wherein the user input is communicated to the vessel using at least one of WiFi, Bluetooth, and a cellular network. 84. A computer-implemented method comprising:

presenting a shape in a graphical user interface; and

incrementally varying a filler of the shape based upon a user's consumption of a component of a substance over a particular time period,

wherein an outer boundary of the shape relates to at least one of a baseline and target amount of consumption of the component, such that when the filler fills the entire shape the user has consumed that amount.

85. The computer- implemented method of claim 84 further comprising:

determining a user's consumption of the component by communicating with a vessel configured to contain substances for which the component can be measured, determine an amount of each substance consumed from the vessel, analyze each substance contained within the vessel to determine a value for the component consumed from the vessel, and

track a cumulative total comprising a sum of the values of the component consumed from the vessel over the particular time period.

86. The computer-implemented method of claim 84, wherein the component comprises at least one of calories, sugar, caffeine, protein, sodium, fat, and alcohol.

87. The computer-implemented method of claim 84, wherein the particular time period comprises at least one of a day, a week, a year, and a lifetime of the vessel.

88. The computer-implemented method of claim 84, wherein the shape is a circle, and wherein the filler comprises concentric rings of varying diameter.

89. The computer- implemented method of claim 84 further comprising:

presenting a comparison item in the graphical user interface, wherein the comparison item comprises an item that contains approximately the same amount of the component as the user has consumed.

90. A system comprising:

one or more data processing apparatus programmed to perform operations comprising: presenting a shape in a graphical user interface; and

incrementally varying a filler of the shape based upon a user's consumption of a component of a substance over a particular time period,

wherein an outer boundary of the shape relates to at least one of a baseline and a target amount of consumption of the component, such that when the filler fills the entire shape the user has consumed that amount.

91. The system of claim 90, wherein the operations further comprise:

determining a user's consumption of the component by communicating with a vessel configured to

contain substances for which the component can be measured, determine an amount of each substance consumed from the vessel, analyze each substance contained within the vessel to determine a value for the component consumed from the vessel, and

track a cumulative total comprising a sum of the values of the component consumed from the vessel over the particular time period.

92. The system of claim 90, wherein the component comprises at least one of calories, sugar, caffeine, protein, sodium, fat, and alcohol.

93. The system of claim 90, wherein the particular time period comprises at least one of a day, a week, a year, and a lifetime of the vessel.

94. The system of claim 90, wherein the shape is a circle, and wherein the filler comprises concentric rings of varying diameter.

95. The system of claim 90, wherein the operations further comprise:

presenting a comparison item in the graphical user interface, wherein the comparison item comprises an item that contains approximately the same amount of the component as the user has consumed.

96. A computer-readable storage medium having instructions stored thereon that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:

presenting a shape in a graphical user interface; and incrementally varying a filler of the shape based upon a user's consumption of a component of a substance over a particular time period,

wherein an outer boundary of the shape relates to at least one of a baseline and a target amount of consumption of the component, such that when the filler fills the entire shape the user has consumed that amount.

97. The computer-readable storage medium of claim 96, wherein the operations further comprise:

determining a user's consumption of the component by communicating with a vessel configured to

contain substances for which the component can be measured, determine an amount of each substance consumed from the vessel, analyze each substance contained within the vessel to determine a value for the component consumed from the vessel, and

track a cumulative total comprising a sum of the values of the component consumed from the vessel over the particular time period.

98. The computer-readable storage medium claim 96, wherein the component comprises at least one of calories, sugar, caffeine, protein, sodium, fat, and alcohol.

99. The computer-readable storage of claim 96, wherein the particular time period comprises at least one of a day, a week, a year, and a lifetime of the vessel.

100. The computer-readable storage medium of claim 96, wherein the shape is a circle, and wherein the filler comprises concentric rings of varying diameter.

101. The computer-readable storage medium of claim 96, wherein the operations further comprise: presenting a comparison item in the graphical user interface, wherein the comparison item comprises an item that contains approximately the same amount of the component as the user has consumed.

102. A computer-implemented method comprising:

communicating at least one parameter of consumption data to a central server system adapted to store consumption data for a plurality of individuals;

receiving from the central server system consumption data meeting the at least one parameter; and

displaying the received consumption data to a user.

103. The computer-implemented method of claim 102 further comprising:

converting the received consumption data into an interpretable metric.

104. The computer-implemented method of claim 103, wherein the interpretable metric comprises at least one of an average, a median, a maximum, and a minimum of the received consumption data.

105. The computer-implemented method of claim 102, wherein the at least one parameter comprises a characteristic of the consuming individual comprising at least one of sex, age, height, weight, and interests.

106. The computer-implemented method of claim 102, wherein displaying the received consumption data to a user comprises overlaying the received consumption data against the user's consumption data.

107. A system comprising:

one or more data processing apparatus programmed to perform operations comprising: communicating at least one parameter of consumption data to a central server system adapted to store consumption data for a plurality of individuals; receiving from the central server system consumption data meeting the at least one parameter; and

displaying the received consumption data to a user.

The system of claim 107, wherein the operations further comprise:

converting the received consumption data into an interpretable metric.

109. The system of claim 108, wherein the interpretable metric comprises at least one of an average, a median, a maximum, and a minimum of the received consumption data.

1 10. The system of claim 107, wherein the at least one parameter comprises a characteristic of the consuming individual comprising at least one of sex, age, height, weight, and interests. 1 11. The system of claim 107, wherein displaying the received consumption data to a user comprises overlaying the received consumption data against the user's consumption data. 1 12. A computer-readable storage medium having instructions stored thereon that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:

communicating at least one parameter of consumption data to a central server system adapted to store consumption data for a plurality of individuals;

receiving from the central server system consumption data meeting the at least one parameter; and

displaying the received consumption data to a user.

1 13. The computer-readable storage medium of claim 1 12, wherein the operations further comprise:

converting the received consumption data into an interpretable metric.

1 14. The computer-readable storage medium of claim 1 13, wherein the interpretable metric comprises at least one of an average, a median, a maximum, and a minimum of the received consumption data.

1 15. The computer-readable storage medium of claim 1 12, wherein the at least one parameter comprises a characteristic of the consuming individual comprising at least one of sex, age, height, weight, and interests.

1 16. The computer-readable storage medium of claim 1 12, wherein displaying the received consumption data to a user comprises overlaying the received consumption data against the user's consumption data.

1 17. A computer-implemented method comprising:

receiving from a vessel a reading of a substance contained within the vessel;

receiving corresponding user-input information about the substance;

communicating the reading and the corresponding user-input information to a central server system, wherein the central server system is adapted to store the reading and the corresponding user-input information.

1 18. The computer-implemented method of claim 1 17, wherein the reading comprises a plurality of intensity measures, each intensity measure being for a different respective small wavelength range of light.

1 19. The computer-implemented method of claim 117, wherein the corresponding user-input information comprises at least one of the substance's name, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, and alcohol content.

120. A system comprising:

one or more data processing apparatus programmed to perform operations comprising: receiving from a vessel a reading of a substance contained within the vessel; receiving corresponding user-input information about the substance;

communicating the reading and the corresponding user-input information to a central server system, wherein the central server system is adapted to store the reading and the corresponding user-input information.

121. The system of claim 120, wherein the reading comprises a plurality of intensity measures, each intensity measure being for a different respective small wavelength range of light.

122. The system of claim 120, wherein the corresponding user-input information comprises at least one of the substance's name, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, and alcohol content.

123. A computer-readable storage medium having instructions stored thereon that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:

receiving from a vessel a reading of a substance contained within the vessel;

receiving corresponding user-input information about the substance;

communicating the reading and the corresponding user-input information to a central server system, wherein the central server system is adapted to store the reading and the corresponding user-input information.

124. The computer-readable storage medium of claim 123, wherein the reading comprises a plurality of intensity measures, each intensity measure being for a different respective small wavelength range of light.

125. The computer-readable storage medium of claim 123, wherein the corresponding user- input information comprises at least one of the substance's name, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, and alcohol content.

126. A computer-implemented method comprising:

communicating a reading of a substance contained within a vessel to a central server system, wherein the central server system is adapted to

receive readings of substances and corresponding user-input information about the substances,

store the received readings and corresponding user-input information, locate the stored readings that are substantially the same as the communicated reading, and

communicate the corresponding user-input information for the stored readings that are substantially the same as the communicated reading; and

receiving from the central server system the corresponding user-input information for the stored readings that are substantially the same as the communicated reading.

127. The computer-implemented method of claim 126, wherein the reading is communicated to the central server system from at least one of a mobile device and a vessel adapted to take the reading.

128. The computer-implemented method of claim 126, wherein the reading comprises a plurality of intensity measures, each intensity measure being for a different respective small wavelength range of light.

129. The computer-implemented method of claim 126, wherein the corresponding user-input information comprises at least one of the substance's name, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, and alcohol content.

130. The computer-implemented method of claim 126, wherein the corresponding user-input information is only received from the central server system if the central server system stores a predetermined number of readings that are substantially the same as the communicated reading. 131. A system comprising:

one or more data processing apparatus programmed to perform operations comprising: communicating a reading of a substance contained within a vessel to a central server system, wherein the central server system is adapted to

receive readings of substances and corresponding user- input information about the substances,

store the received readings and corresponding user-input information, locate the stored readings that are substantially the same as the communicated reading, and

communicate the corresponding user- input information for the stored readings that are substantially the same as the communicated reading; and

receiving from the central server system the corresponding user-input information for the stored readings that are substantially the same as the communicated reading.

132. The system of claim 131, wherein the reading is communicated to the central server system from at least one of a mobile device and a vessel adapted to take the reading.

133. The system of claim 131, wherein the reading comprises a plurality of intensity measures, each intensity measure being for a different respective small wavelength range of light.

134. The system of claim 131, wherein the corresponding user- input information comprises at least one of the substance's name, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, and alcohol content.

135. The system of claim 131, wherein the corresponding user-input information is only received from the central server system if the central server system stores a predetermined number of readings that are substantially the same as the communicated reading.

136. A computer-readable storage medium having instructions stored thereon that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:

communicating a reading of a substance contained within a vessel to a central server system, wherein the central server system is adapted to

receive readings of substances and corresponding user-input information about the substances,

store the received readings and corresponding user-input information, locate the stored readings that are substantially the same as the communicated reading, and

communicate the corresponding user-input information for the stored readings that are substantially the same as the communicated reading; and

receiving from the central server system the corresponding user- input information for the stored readings that are substantially the same as the communicated reading.

137. The computer-readable method of claim 136, wherein the reading is communicated to the central server system from at least one of a mobile device and a vessel adapted to take the reading.

138. The computer-readable storage medium of claim 136, wherein the reading comprises a plurality of intensity measures, each intensity measure being for a different respective small wavelength range of light.

139. The computer-readable storage medium of claim 136, wherein the corresponding user- input information comprises at least one of the substance's name, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, and alcohol content.

140. The computer-readable storage medium of claim 136, wherein the corresponding user- input information is only received from the central server system if the central server system stores a predetermined number of readings that are substantially the same as the communicated reading.

141. The method of claim 56, wherein the statistically significant similarity measure comprises a Bregman distance calculation.

142. The method of claim 141, wherein the Bregman distance calculation comprises a Mahalanobis distance calculation.

143. The method of claim 141, wherein the Bregman distance calculation comprises a Euclidean distance calculation.

144. The method of claim 55, wherein the algorithm comprises a signal conditioning process. 145. The method of claim 144, wherein the signal conditioning process is fulfilled at least in part by at least one of a Finite-Impulse-Response and an Infinite-Impulse-Response.

146. The method of claim 144, wherein the signal conditioning process is fulfilled at least in part by an Unscented Kalman digital filter.

Description:
INTELLIGENT VESSEL

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of provisional patent application number 61/993,802, filed May 15, 2014, and 62/010,583, filed June 11, 2014, the disclosures of which are hereby incorporated by reference as if set forth herein in their entireties.

TECHNICAL FIELD

[0002] This disclosure relates generally to self-tracking devices for quantifying various behaviors and, more specifically, to systems and methods for identifying a substance and indicating to a user information regarding their consumption behaviors.

BACKGROUND

[0003] Quantifying personal behaviors has been employed in a variety of methods over time. Initially, this involved monitoring behaviors and recording those behaviors in a notebook. Further calculations (often by hand) tended to be required to numerically quantify those behaviors. Advances in electronics have led to many of these behaviors being tracked automatically, such as applications for runners that can track how far they ran, where they ran, and at what pace they ran. However, when it comes to consumption behaviors, a user is typically required to manually enter the particular substance. This step can be frequently skipped or completed improperly (e.g., entering the wrong consumable information), leading to less accurate, and possibly even misleading, results. [0004] It is therefore desirable to provide an apparatus and methods for automatically identifying a substance, such as food and liquid products for consumption. It is also desirable to track a user's behaviors and consumption with respect to these products.

SUMMARY OF THE INVENTION

[0005] In general, one aspect of the subject matter described in this specification can be embodied in a vessel comprising a main body defining an interior cavity with an opening at an upper end of the main body and a base portion disposed at a lower end of the main body and opposite the opening, where the interior cavity has an interior surface, and where the exterior of the main body has an exterior surface; a first sensor disposed in a space between the interior surface and the exterior surface where the first sensor is configured to take one or more readings of a substance placed into the interior cavity through a substantially transparent portion of the interior surface; a processor housed in the vessel where the processor is programmed to process the readings and identify one or more properties of the substance; an electronic display housed in the vessel and visible through a portion of the exterior surface where the display is configured to display information regarding one or more of the properties; and a battery housed in the vessel and configured to supply power to the first sensor, the processor, and the display.

[0006] These and other aspects can optionally include one or more of the following features. The first sensor can include a plurality of light sources each configured to emit light at a different respective small wavelength range; and a light detector configured to measure intensity, where the first sensor is configured to activate each light source in series while activating the light sensor to detect a respective measure of intensity from the light of the activated light source as reflected off of the substance. A particular reading can include a plurality of intensity measures, each intensity measure being for a different respective small wavelength range of light. A diameter of the main body can be suitable for grasping by a human hand, and in some cases the main body can be substantially cylindrical in shape. The battery can be housed in the base portion. The substantially transparent portion of the interior surface can be a window that is integrated with the interior surface. A particular property of a substance can include at least one of: a beverage name, a beverage category, and nutritional information. The nutritional information can include, for example, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, or alcohol content. The information displayed by the display can include, for example, a beverage name, beverage category nutritional information, and information for a user of the vessel (e.g., a measure of user hydration and nutritional intake of the user over a period of time). In some instances, the vessel can further comprise a second sensor disposed in space between the interior surface and the exterior surface, where the second sensor is configured to measure a volume of the substance, the battery is further configured to supply power to the second sensor, and the processor is further programmed to use the volume measurement to identify one or more of the properties of the substance. In some instances, the vessel can include a third sensor housed in the vessel and configured to measure the orientation and/or the orientation's derivative(s) (e.g., velocity and acceleration) of the vessel, where the battery is further configured to supply power to the second sensor; and vessel is configured to activate the display based on the measure of orientation and/or orientation's derivative(s). In some instances, the vessel can further comprise a lid detachably coupled to the upper end of the main body; and a cover coupled to the lid and configured to move in a first direction to seal the vessel and move a second direction to unseal the vessel. In some instances, the processor can be further programmed to communicate the readings wirelessly to an external device, and in some cases can be further programmed to wirelessly receive identification of one or more properties of the substance from the external device. The processor can be further programmed to wirelessly receive configuration information from an external device and use the

configuration information to configure the display information.

[0007] In general, one aspect of the subject matter described in this specification can be embodied in a lid (e.g., to be used on a vessel) comprising a cover that includes a lower arcuate surface, and at least one cover magnet proximate the lower arcuate surface; and a base that includes an upper arcuate surface, an opening extending through the base, and at least two base magnets proximate the upper surface, where the lower arcuate surface of the cover and the upper arcuate surface of the base are adapted to be maintained in sliding contact.

[0008] These and other aspects can optionally include one or more of the following features. The lower arcuate surface can further comprise a protrusion adapted to mate with a slot formed in the base. The at least one cover magnet can be embedded within the cover. In some cases the at least one cover magnet can be adapted to magnetically couple with at least one of the base magnets to cover the opening. In some cases, the at least one cover magnet can be adapted to magnetically couple with at least one of the base magnets to expose the opening. The lid can further include two cover magnets, or in some cases a ridge on an upper lid surface. The base magnets can be embedded within the based. In some instances, the lid can include four base magnets.

[0009] In general, one aspect of the subject matter described in this specification can be embodied in methods that can, for example, be implemented by one or more processors housed in a vessel that comprises an interior cavity and a number of sensors. The methods can include the actions of detecting the presence of a substance in a vessel using a first sensor of the sensors; based on the detecting, taking one or more readings of the substance using a second sensor of the sensors where each reading comprises a plurality of intensity measures, each intensity measure being for a different respective small wavelength range; processing the readings to identify one or more properties of the substance; and displaying information regarding one or more of the properties on an exterior surface of the vessel. Other

embodiments of this aspect include corresponding systems, apparatus, and computer programs.

[0010] These and other aspects can optionally include one or more of the following features. The first sensor can include a capacitance sensor, that can be used for detecting the presence of the substance in the vessel, determining a volume of the substance based on the capacitance measure, and/or detecting the presence of a hand on the body of the vessel. The second sensor can include at least one light source each configured to emit light at a different respective small wavelength range and one or more light detectors configured to measure light intensity, where taking a particular reading of the substance comprises activating each light source in sequence while activating the light sensor to detect a respective measure of intensity from the light of the activated light source as reflected off of the substance. The second sensor may include a second light detector placed on the opposite side of the interior surface of the vessel as the first. The sensors can include a third sensor configured to measure the orientation and/or the orientation's derivative(s) of the vessel, and the displaying information can include using the third sensor to detect the orientation and/or changes to orientation of the vessel and, based thereon, displaying the information. A diameter of the main body can be suitable for grasping by a human hand, and in some cases the main body can be substantially cylindrical in shape. A particular property of a substance can include at least one of: a beverage name, a beverage category, and nutritional information. The nutritional information can include, for example, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, or alcohol content. The information displayed by the display can include, for example, a beverage name, beverage category nutritional information, and information for a user of the vessel (e.g., a measure of user hydration and nutritional intake of the user over a period of time). The readings can be wirelessly communicated to an external device, and in some cases the vessel can wirelessly receive identification of one or more properties of the substance from the external device. In some instances, configuration information can be wirelessly received from an external device and, for example, can be used to configure the display information.

[0011] In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of controlling at least one light source to emit light sequentially at different small wavelength ranges toward a substance; measuring an intensity of light reflected from the substance at the different small wavelength ranges; and processing the measurements to determine properties of the substance. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs.

[0012] These and other aspects can optionally include one or more of the following features. The at least one light source can be disposed in the apparatus. In some cases, the apparatus can comprise a vessel. In some cases, the apparatus can comprise an eating utensil. In some instances, the at least one light source can be adapted to be placed adjacent to the substance. In other instances, the at least one light source is adapted to be placed remote from the substance. A communication can occur for transmitting light from the at least one light source to the substance. The communication can include a fiber optic cable. The at least one light source can include a plurality of light sources (e.g., light emitting diodes), which in some cases can be configured to emit light at different small wavelength ranges (e.g., infrared, near- infrared, visible, ultraviolet, etc.). Measuring intensity can include using at least one light detector, which in some instances can be a single light detector. Processing the measurements can include applying a collection of algorithms to compare measurements with property values stored in a database. In some cases, the algorithms can perform a statistically significant similarity measure, which can be a Bregman distance calculation, which in some instances can be implemented as either a Mahalanobis distance calculation or a Euclidean distance calculation. In some cases, the algorithms can include a signal conditioning process (e.g., digital filtering), which can be fulfilled at least in part by either a Finite-Impulse-Response or an Infinite-Impulse-Response digital filter. In some cases the signal conditioning process can be fulfilled at least in part by an Unscented Kalman digital filter.

[0013] In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving user input comprising one or more components of a substance; and communicating the user input to a vessel, wherein the vessel is configured to contain substances for which the one or more components can be measured, determine an amount of each substance consumed from the vessel, analyze each substance contained within the vessel to determine a value for the one or more components consumed from the vessel, track a cumulative total comprising a sum of the values for the one or more components consumed from the vessel over one or more time periods, and display the cumulative total. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs.

[0014] These and other aspects can optionally include one or more of the following features. The one or more components can include at least one of calories, sugar, caffeine, protein, sodium, fat, and alcohol. The user input can further include the one or more time periods over which the vessel is configured to track and display the cumulative total. The one or more time periods can include, for example, a day, a week, a year, and/or a lifetime of the vessel. The user input can further include one or more characteristics of the user (e.g., height, weight, age). In such instances, the vessel can be further configured to calculate a parameter based on the input characteristics and its analysis of the substances consumed from the vessel. In some cases, the vessel can display the parameter. An example of a calculated parameter can be a measure of the user's hydration. The user input can be received by the vessel, and in some cases the vessel can analyze each substance contained within the vessel to determine a value for one or more substance components consumed from the vessel. In certain instances, the vessel can track a cumulative total of the values of the one or more components consumed from the vessel, and in some cases display the cumulative value. Communication with the vessel can occur using, for example, WiFi, Bluetooth, and/or a cellular network.

[0015] In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of presenting a shape in a graphical user interface, and incrementally varying a filler of the shape based upon a user's consumption of a component of a substance over a particular time period, where an outer boundary of the shape relates to a baseline and/or a target amount of consumption of the component, such that when the filler fills the entire shape the user has consumed that amount. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs.

[0016] These and other aspects can optionally include one or more of the following features. A user's consumption of a particular component can be determined by

communicating with a vessel configured to: contain substances for which the component can be measured, determine an amount of each substance consumed from the vessel, analyze each substance contained within the vessel to determine a value for the component consumed from the vessel, and track a cumulative total comprising a sum of the values of the component consumed from the vessel over a particular time period. The substance component can include calories, sugar, caffeine, protein, sodium, fat, and alcohol. A particular time period can include a day, a week, a year, and/or a lifetime of the vessel. In some instances, the shape can be a circle, and the filler can be concentric rings of varying diameter. In some instances, a comparison item can be presented in the graphical user interface, where the comparison item is an item that contains approximately the same amount of the component as the user has consumed.

[0017] In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of communicating at least one parameter of consumption data to a central server system adapted to store consumption data for a plurality of individuals, receiving from the central server system consumption data meeting the at least one parameter; and displaying the received consumption data to a user. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs.

[0018] These and other aspects can optionally include one or more of the following features. The received consumption data can be converted into an interpretable metric, which can include, for example, an average, a median, a maximum, and a minimum of the consumption data. The parameter can include a characteristic of the consuming individual, which can include, for example, sex, age, height, weight, and interests. In some instances, displaying the received consumption data to a user can comprise overlaying the received consumption data against the consumption data of the user.

[0019] In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving from a vessel a reading of a substance contained within the vessel, receiving corresponding user-input information about the substance, and communicating the reading and the corresponding user-input information to a central server system, where the central server system is adapted to store the reading and the corresponding user-input information. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs. [0020] These and other aspects can optionally include one or more of the following features. The reading can include a number of intensity measures, where each intensity measure is for a different respective small wavelength range of light. The user-input information can include, for example, the substance's name, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, and alcohol content.

[0021] In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of communicating a reading of a substance contained within a vessel to a central server system, and receiving from the central server system corresponding user-input information for the stored readings that are substantially the same as the communicated reading, where the central server system is adapted to: receive readings of substances and corresponding user- input information about the substances, store the received readings and corresponding user-input information, locate the stored readings that are substantially the same as the communicated reading, and communicate the corresponding user- input information for the stored readings that are substantially the same as the communicated reading. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs.

[0022] These and other aspects can optionally include one or more of the following features. The reading can be communicated to the central server system from a mobile device and/or a vessel adapted to take the reading. The reading can include a number of intensity measures, where each intensity measure is for a different respective small wavelength range of light. The user- input information can include, for example, the substance's name, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, and alcohol content. In some instances, the corresponding user-input information may only be received from the central server system if the central server system stores a predetermined number of readings that are substantially the same as the communicated reading.

BRIEF DESCRIPTION OF THE FIGURES

[0023] Other features and advantages of the present invention, as well as the invention itself, can be more fully understood from the following description of the various embodiments, when read together with the accompanying drawings, in which:

• FIGS. 1A-1D are example top isometric, front, rear, and top views, respectively, of a vessel that can be used in implementations of this disclosure.

• FIG. IE is an example cross-section view taken along line E-E of FIG. IB.

• FIG. IF is an example cross-section view taken along line F-F of FIG. ID.

• FIG. 1G is an example semi-transparent front isometric view of an interior wall and base portion and certain attached electronics that can be used in implementations of this disclosure.

• FIGS. 2A-2C are example front views of a vessel with a display that can be used in implementations of this disclosure.

• FIGS. 3A-3C are example top isometric, bottom isometric, and bottom views, respectively, of a lid that can be used with a vessel in implementations of this disclosure.

· FIG. 3D is an example cross-section view taken along line D-D of FIG. 3C.

• FIGS. 3E-3G are example top isometric, bottom isometric, and top views, respectively, of a cover that forms part of the lid of FIG. 3 A in implementations of this disclosure.

• FIG. 3H is an example cross-section view taken along line H-H of FIG. 3G. • FIG. 31 is an example top view of a lid base with magnets in implementations of this disclosure.

• FIG. 3 J is an example bottom view of a lid cover with magnets in

implementations of this disclosure.

• FIGS. 3K and 3L are example top views of the lid base and cover of FIGS. 31 and 3 J in assembled open and closed positions, respectively, in implementations of this disclosure.

• FIGS. 4A and 4B are example top isometric and front views, respectively, of a charger that can be used with a vessel in implementations of this disclosure.

• FIGS. 4C and 4D are example top isometric and front views, respectively, of another charger that can be used with a vessel in implementations of this disclosure.

• FIG. 4E is an example top isometric view of an inductive charger that can be used with a vessel in implementations of this disclosure.

• FIG. 5 is an example schematic of a printed circuit board ("PCB") that can be used in implementations of this disclosure.

• FIG. 6A is an example schematic of a layout of light sources and a light detector that can be used in implementations of this disclosure.

• FIG. 6B is an example schematic of a layout of light sources, a detector, and a processor that can be used in implementations of this disclosure.

• FIG. 6C is an example schematic of a control scheme for light sources that can be used in implementations of this disclosure.

• FIG. 6D is a top view of electronics of a capacitive sensor, a front view of an exterior of a capacitive sensor, and a rear view of an exterior of a capacitive sensor that can be used in implementations of this disclosure. • FIG. 7 is an example process diagram of the operation of the vessel in implementations of this disclosure.

• FIG. 8 illustrates an example system that can be used in implementations of this disclosure.

· FIG. 9 is a flow chart showing an example method for configuring the vessel in implementations of this disclosure.

• FIG. 10 illustrates an example graphical user interface showing shapes filled with a filler in implementations of this disclosure.

• FIG. 1 1A illustrates an example graphical user interface showing consumption data presented as a bar graph in implementations of this disclosure.

• FIG. 1 IB illustrates an example graphical user interface showing consumption data presented as a list in implementations of this disclosure.

• FIG. 12 illustrates an example graphical user interface showing consumption data presented as a line graph in implementations of this disclosure.

· FIG. 13 illustrates an example graphical user interface showing additional consumption information in implementations of this disclosure.

• FIG. 14 is a flow chart showing an example method for tracking substance consumption in implementations of this disclosure.

• FIG. 15 illustrates an example graphical user interface presenting a list of substances consumed by a user in implementations of this disclosure.

• FIG. 16 illustrates an example graphical user interface presenting a user with common and/or previously entered entries in implementations of this disclosure.

• FIG. 17 is a flow chart showing an example method for comparing a user's consumption with other individuals in implementations of this disclosure. • FIG. 18 is a flow chart showing an example method of storing information about a substance in implementations of this disclosure.

• FIG. 19 is a flow chart showing an example method of accessing information about a substance in implementations of this disclosure.

· FIG. 20 illustrates an example client device that can be used to implement some of the techniques described in implementations of this disclosure.

DETAILED DESCRIPTION

Vessel

[0024] FIGS. 1A-1F depict one implementation of a vessel 100. The vessel 100 has a main body 102 defining an interior cavity 104 with an opening 106 at an upper end 108a and a base portion 110 at a lower end 108b. An exterior surface 1 12a of the main body 102 can be substantially cylindrical for ease of holding in a user's hand, and can be tapered at the upper end 108a for an improved drinking experience when used without a lid. In other

implementations, different shapes (e.g., a multi-sided polygon) can be used. A portion of the exterior surface 1 12a can be a faceted surface 1 14 having one or more ridges 1 16 that run partially or substantially all of the way down a height of the main body 102. The faceted surface 114 can indicate to a user the front of which can be an otherwise symmetrical vessel 100. This is particularly useful when a display is incorporated into the vessel 100 (see FIGS. 2A-2C). The faceted surface 114 can also provide a gripping surface in contrast to the rest of the exterior of the main body 102, which can be smooth. In other implementations, the exterior surface 112a of the main body 102 may have a textured finish. Various exemplary dimensions of the vessel 100 are indicated in Table 1, though values below and above these ranges are possible. Parameter Minimum Typical Maximum Units

Vessel height 75 165 250 mm

Vessel outer diameter 20 70.5 76 mm

Vessel inner diameter 35 56.7 70 mm

Vessel wall thickness 1 2.2 3 mm

Vessel wall spacing 1 2.5 4 mm

Table 1: Exemplary bounds and common values for vessel components

[0025] As depicted in FIG. IE, in one implementation the main body 102 has two walls 1 18 (exterior wall 118a and interior wall 118b) that are spaced apart, so as to form an annular space 120. The annular space 120 can be sealed at the upper end 108a at an interface between the exterior wall 118a and the interior wall 118b (e.g., with a snap-fit joint between the exterior wall 118a and the interior wall 118b, which can be further reinforced by an additional part or parts such as a sealing gasket). The annular space 120 can be sealed at the lower end 108b with the base portion 110. The base portion 110 can be formed with the main body 102 in a unitary construction, or can be coupled to the base portion 1 10 after both have been formed. By sealing both ends 108a, 108b, the annular space 120 can be kept substantially free of fluid and contaminants, allowing for the placement of electronics 122 within the annular space 120. In some implementations, the electronics 122 can include light sources 124, a light

sensor/detector 126, a capacitive sensor 128, an inertial measurement device 130 (e.g., an accelerometer), a display 132, a processor 134, and batteries 136. Duplicates of certain electronics (e.g., the light sources 124 and the light detector 126) can be included. Many of these electronic components 122 are described separately and in much greater detail below. As depicted in FIGS. IE and IF, the electronics 122 can be disposed at different locations within the main body 102 and the base portion 1 10. FIG. 1G depicts some of the electronics 122 on the interior wall 118b (not the displays 132) and in the base portion 1 10. FIG. 1G also depicts a proximity sensor 138, which is described in greater detail below. In some implementations, the displays 132 are attached to an interior surface of the exterior wall 1 18a.

[0026] The exterior wall 118a can be constructed of any of a variety of materials, including metals and high-temperature polymers, including, but not limited to, many copolyesters and polypropylenes. The materials can be selected based on their strength, durability, impermeability, and opaqueness. In some implementations it may be desirable to vary the material and/or dimensions of the exterior wall 118a. For example, the exterior wall 1 18a can vary in thickness in different regions, such as being thinner in a front portion to receive the display 132. A lesser thickness can help the display 132 be viewed from beyond the exterior surface 1 12a, while protecting the electronic components within the annular space 120.

[0027] Exemplary implementations with visible display elements are depicted in FIGS. 2A-2C. An alphanumeric display 232a is visible on the front of the vessel 100 below the faceted surface 114. The display 232a can present a variety of information to a user, including identifying a substance (e.g., a liquid/beverage) contained within the vessel 100 and certain properties associated with the substance. These properties can include a specific beverage name, a more general beverage category, or nutritional information on the particular beverage (e.g., calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, or alcohol content). A more extensive list includes the following, though additional properties may also be identified:

Water (g) Fatty acids, total trans (g)

Energy (kcal) Fatty acids, total trans-monoenoic (g)

Energy (kJ) Fatty acids, total trans-polyenoic (g)

Protein (g) Cholesterol (mg)

Total lipid (fat) (g) Phytosterols (mg)

Ash (g) Stigmasterol (mg)

Carbohydrate, by difference (g) Campesterol (mg) Fiber, total dietary (g) Beta-sitosterol (mg)

Sugars, total (g) Tryptophan (g)

Sucrose (g) Threonine (g)

Glucose (dextrose) (g) Isoleucine (g)

Fructose (g) Leucine (g)

Lactose (g) Lysine (g)

Maltose (g) Methionine (g)

Galactose (g) Cystine (g)

Starch (g) Phenylalanine (g)

Calcium, Ca (mg) Tyrosine (g)

Iron, Fe (mg) Valine (g)

Magnesium, Mg (mg) Arginine (g)

Phosphorus, P (mg) Histidine (g)

Potassium, K (mg) Alanine (g)

Sodium, Na (mg) Aspartic acid (g)

Zinc, Zn (mg) Glutamic acid (g)

Copper, Cu (mg) Glycine (g)

Manganese, Mn (mg) Proline (g)

Selenium, Se (meg) Serine (g)

Fluoride, F (meg) Hydroxyproline (g)

Vitamin C, total ascorbic acid (mg) Alcohol, ethyl (g)

Thiamin (mg) Caffeine (mg)

Riboflavin (mg) Theobromine (mg)

Niacin (mg) Biotin (meg)

Pantothenic acid (mg) Flavoinoids, total (meg)

Vitamin B-6 (mg) Flavanols, total (meg)

Folate, total (meg) dihydroflavonols, total (meg)

Folic acid (meg) flavones, total (meg)

Folate, food (meg) isoflavones, total (meg)

Folate, DFE (meg) flavanones, total (meg)

Choline, total (mg) anthocyanins, total (meg)

Betaine (mg) anthocyanidins, total (meg)

Vitamin B-12 (meg) quercetin (meg)

Vitamin B-12, added (meg) rutin (meg)

Vitamin A, RAE (meg) hesperidin (meg)

Retinol (meg) apigenin (meg)

Carotene, beta (meg) luteolin (meg)

Carotene, alpha (meg) ginkgetin (meg)

Cryptoxanthin, beta (meg) tangeretin (meg)

Vitamin A, IU (IU) chromium (meg)

Lycopene (meg) acetic acid (meg, %)

Lutein + zeaxanthin (meg) citric acid (meg, %)

Vitamin E (alpha-tocopherol) (mg) lactic acid (meg, %)

Vitamin E, added (mg) malic acid (meg, %) Tocopherol, beta (mg) taurine (meg, %) Tocopherol, gamma (mg) boron (mg)

Tocopherol, delta (mg) fluoride (mg)

Tocotrienol, alpha (mg) iodine (meg)

Tocotrienol, beta (mg) molybdenum (meg)

Tocotrienol, gamma (mg) arsenic

Tocotrienol, delta (mg) silicon

Vitamin D (D2 + D3) (meg) glucosinolates, total (meg)

Vitamin D2 (ergocalciferol) (meg) isothiocyanates, total (meg) Vitamin D3 (cholecalciferol) (meg) L-Theanine (meg)

Vitamin D (IU) CoQ lO (mcg)

Vitamin K (phylloquinone) (meg) Butylated Hydroxyanisole (meg) Dihydrophylloquinone (meg) catechins, total (mg)

Menaquinone-4 (meg) epicatechins, total (mg)

lignans, total (meg) phenylethylamine (meg) ursolic acid (meg) anandamide (meg)

reservatrol (mg) organosulfur compounts, total (meg) polyphenols, total (mg) diallyl disulphide (meg) green tea catechins, total (mg) agaritine (meg)

EGCG (mg) inositol hexaphosphaste (meg) curcumin (mg)

Fatty acids, total saturated (g)

4:0 (g)

6:0 (g)

8:0 (g)

10:0 (g)

12:0 (g)

13 :0 (g)

14:0 (g)

15:0 (g)

16:0 (g)

17:0 (g)

18:0 (g)

20:0 (g)

22:0 (g)

24:0 (g)

Fatty acids, total monounsaturated (g)

14 1 (g)

15 Kg)

16 1 undifferentiated (g)

16 l c (g)

16 l t (g)

17 Kg)

18 1 undifferentiated (g) 18 l c (g)

18 l t (g)

18 1-l lt (18: lt n-7) (g)

20 1 (g)

22 1 undifferentiated (g)

22 l c (g)

22 l t (g)

Fatty acids, total polyunsaturated (g)

18:2 undifferentiated (g)

18:2 n-6 c,c (g)

18:2 CLAs (g)

18:2 t,t (g)

18:2 i (g)

18:2 t not further defined (g)

18:3 undifferentiated (g)

18:3 n-3 c,c,c (ALA) (g)

18:3 n-6 c,c,c (g)

18:3i (g)

18:4 (g)

20:2 n-6 c,c (g)

20:3 undifferentiated (g)

20:3 n-3 (g)

20:3 n-6 (g)

20:4 undifferentiated (g)

20:4 n-6 (g)

20:5 n-3 (EPA) (g)

21 :5 (g)

22:4 (g)

22:5 n-3 (DPA) (g)

22:6 n-3 (DHA) (g)

[0028] The display 232a can convey information about a user's habits over a period of time, such as their level of hydration or nutritional intake. A linear display 232b can also be included on the vessel 100, such as proximate the alphanumeric display 232a. The linear display 232b can be aligned with a ridge 1 16 (e.g., a central ridge) of the faceted surface 114. The linear display 232b can be formed with a series of discrete, illuminable sources. These sources can be arranged, and also diffused through the exterior wall 118a, to represent a single continuous line, with the possibility of discontinuities and other features (e.g., an indicator 234 at a top end, varying widths, different colors in different areas), as depicted in FIG. 2B.

Diffusion of the discrete sources into a continuous line may be achieved using at least one of the following techniques: brightness enhancing films, prismatic films, elliptic diffusers, and pressure sensitive adhesives. In some instances various films/applications can be stacked upon one another, for example, a pressure sensitive adhesive, brightness enhancing film, and elliptic diffuser may all be stacked to spread the light into a continuous line. The linear display 232b can reflect a user's hydration level, as determined based on liquid consumption throughout the day. For example, the linear display 132b can be fully illuminated when the user is at an optimal (or within a predefined range of optimal) hydration level, shorten as the user's hydration level lowers, or increase as the user's hydration level increases. In this manner, the linear display 232b can provide a quick reference to the user regarding their hydration level. The display elements 232a and 232b can be arranged in a variety of configurations, including with the alphanumeric display 232a aligned with the linear display 232b, as depicted in FIG. 2C. The process for determining the information to be displayed is described in detail later in the specification.

[0029] To help avoid false readings, such as may occur by counting calories as consumed when a beverage is poured out instead of drunk, the vessel 100 can be programmed to distinguish between these behaviors. For example, the proximity sensor 138 (e.g., a capacitive metallic ring) may be placed around a perimeter of the vessel 100 proximate the opening 106, enabling the vessel 100 to understand when a user is contacting that portion of the vessel 100 (e.g., a user's lips). Liquid which exits the vessel 100 when the proximity sensor 138 indicates user contact, at the same time a drinking angle (e.g., any angle that allows fluid to naturally flow out of the vessel (e.g., between about 0° (vertical, upright orientation) and 130°) and a corresponding drop in fluid level are detected, may be counted as consumed. A user may not always contact the proximity sensor 138 when consuming a liquid from the vessel 100, such as when a drinking aide is used (e.g., a drinking straw). Such consumption may still be accurately tracked by considering liquid consumed when there is no contact with the proximity sensor but the vessel remains relatively close to upright (e.g., an angle that is less than that required for the liquid to naturally flow out of the vessel (e.g., between about 0° and 45°)) and a change in fluid level is detected. Liquid may be considered as not consumed (e.g., poured out) when the vessel 100 exceeds a certain threshold angle (e.g., an angle that causes the fluid to flow out of the vessel faster than a threshold flow rate (e.g., about 90° / horizontal)) and no contact is detected by the proximity sensor 138.

[0030] The interior cavity 104, formed by the interior wall 1 18b, is configured to hold a substance (e.g., a liquid) therein. The interior wall 118b can be made of a variety of materials from the polymer and ceramic families, including, but not limited to, copolymers, fluoropolymers, quartz, and glasses. The interior wall 1 18b may be made from more than one material - for example, two types of glass fused together (e.g., fused silica or specialty borosilicate in a Pyrex housing). In some cases, only one of the glasses used may pass certain wavelengths. The materials can be selected based on their strength, durability, transmittivity at different wavelengths, impermeability, and reflectiveness. Additionally, the interior cavity 104 can have a smooth, polished surface to reduce or prevent sticking, which can be a particular problem with bubbles in carbonated beverages. A coating can also be used to help reduce the coarseness of any rough surfaces and reduce the porosity of porous surfaces. As several of the electronics 122 are used to analyze the contents within the interior cavity 104, consideration should be given to the operability of the electronics across the interior wall 118b. To meet the different requirements for the various electronics 122, the interior wall 118b may vary in width and materials used in different areas. For example, the interior wall 118b can be transparent or semi-transparent, or have transparent or semi-transparent portions (e.g., a window) proximate the light sources 124 and light detector 126 to minimize the impact of the interior wall 118b on the transmission of light. The shape of the interior cavity 104, as well as the coating may be optimized to increase the amount of light reflected back to the light detector 126. For example, the bottom of the interior cavity 104 may feature a round profile having a flat portion on one side, and be coated in a reflective coating. This coating may have primarily either specular or Lambertian reflective characteristics (e.g., be matte (e.g., white) or shiny like a mirror). In some implementations, retroreflective and/or prismatic films can be used to further increase the signal at the bottom of the vessel 100. The curved portion of the bottom of the interior cavity 104 may be shaped to increase signal, for example, the bottom may be curved in the shape of a parabola, with a sensor at the focus.

[0031] FIGS. 3A-3H depict an implementation of a lid 300 for use with the vessel 100. The lid 300 is attachable to the upper end 108a of the main body 102, e.g., via a press or friction fit. The lid 300 can fit into the main body 102 such that an upper edge of the lid 300 is substantially even with an upper edge of the main body 102, providing a substantially seamless transition between the lid 300 and the main body 102. The lid 300 has a cover 302 and a lid base 304, with the cover 302 adapted to move in a first direction 306a to seal the vessel by covering an opening 308, and in a second direction 306b to uncover the opening 308. The cover 302 can have an arcuate lower surface 310 adapted to interface with a corresponding arcuate upper surface 312 on the lid base 304, allowing for smooth and consistent sliding of the cover 302. The cover 302 can be maintained in contact with the lid base 304 through a protrusion 314 of the cover 302 that extends through a slot 316 on the lid base 304. A ridge 318 can be formed on a upper surface of the cover 302 to allow for easier operation by providing a raised surface for a user to push or pull on when sliding the cover 302. The lid 300 can be made from a variety of foodsafe polymer materials, including, but not limited to, copolyesters and polypropylenes.

[0032] FIGS. 31 and 3J depict an implementation of the lid 300 with base magnets 320 associated with the base 304 and cover magnets 322 associated with the cover 302. The use of the magnets 320, 322 can provide a tactile sense of movement to the user by snapping to either an open position (where the opening is exposed, as depicted in FIG. 3K) or to a closed position (where the opening is covered, as depicted in FIG. 3L). The magnets 320, 322 can be embedded within the base 304 and the cover 302, respectively, to provide the desired movement and stability without interfering with travel of the cover 302. While FIGS. 31 and 3J depict implementations with four base magnets 320 and two cover magnets 322, as few as two base magnets 320 (one in a forward and one in a rear position) and one cover magnet 322 can be used. Implementations with more than four base magnets 320 and two cover magnets 322 are also possible.

[0033] FIGS. 4A and 4B depict a charger base/charging station 400 that can be used with the vessel 100 to charge the batteries 136. The charger base 400 is connectible to a power source (e.g., a wall outlet) via a power cord 402. The charger 400 has a raised central portion 404 with a number of metallic contacts in grooves 406 adapted to contact the base portion 110 when the vessel 100 is placed on the charger 400. When the contacts are in physical contact with the base portion 1 10, a voltage (e.g., 5 volts) can be supplied to the vessel 100 by the charging station 400. An on board battery management integrated circuit (e.g., on the vessel 100) can be used to charge the battery. A full charge on the vessel 100 can last approximately one week in certain implementations, varying with how the vessel 100 is used. Longer and lesser times may be achieved, depending on a number of factors, including the size of the batteries 136, the age of the batteries 136, and the use of the vessel 100. [0034] FIGS. 4C and 4D depict another charger 401 with many of the same performance characteristics as the charger 400, but with different structural features. For example, a power input 403 can be used with an adapter and a cord connectable to a variety of sources, including wall outlets and USB ports. A raised rim 405 defines a central portion 407 for the adapter to sit on. Domes 409 adapted to contact the bottom of the vessel 100 are located within the central portion 407. The vessel 100 can be charged through the contact between the domes 409 and the vessel 100.

[0035] In certain implementations, the above charging behaviors can be achieved through the use of induction charging. An exemplary inductive charger, notable for its lack of charging contacts, is depicted in FIG. 4E.

[0036] FIG. 5 depicts a printed circuit board 500 with several of the electronic components 122 identified above, including the multiple light sources 124 and light detectors 126, along with the capacitive sensor 128, the inertial measurement device 130, the displays 132a, 132b, the processor 134 and the batteries 136. A second capacitive sensor 529 is also depicted. This second capacitive sensor 529 can be positioned substantially adjacent to, or even surrounding, the capacitive sensor 128, although other positions on the vessel 100 are possible. The second capacitive sensor 529 can be adapted to detect when the vessel 100 is being held by a user. Particularly, the second capacitive sensor 529 may detect when a user is holding a rear portion of the vessel, such that the displays 132a, 132b are visible.

[0037] The printed circuit board 500 can be flexible and placed around the interior cavity 104 within the annular space 120 while remaining intact. A main plastic carriage portion adapted to receive the electronics in the base portion 110 (e.g., the portion containing the inertial measurement device 130, the processor 134, and the batteries 136) can be secured to the exterior wall 118a or the interior wall 118b (e.g., with glue) and can be covered with a protective shell. The light sensors 124, light detectors 126, and capacitive sensor 128 can similarly be attached to the interior wall 1 18b (e.g., with glue), and the displays 132a, 132b can be attached to the interior of the exterior wall 118a. The second capacitive sensor 529 can be placed on the interior of the exterior wall 118a, though placement on the interior wall 1 18b is also possible.

[0038] Each set of light sources 124 and the light detector 126 can be combined in a single component, as depicted in FIG. 6A. Each of the light sources 124 can be selected to emit a different small wavelength range (e.g., a range spanning about 2nm to about lOOnm) of light. In some implementations, this is achieved by using different colored light sources (e.g., light emitting diodes (LEDs)). For example, the light sources 124 can include red, blue, green, yellow, and white sources. The light sources can include small wavelength ranges beyond the visible spectrum, such as an ultraviolet light source emitting light at about 400nm and infrared (or near-infrared) light source(s) emitting light at about 735nm and/or about 770nm. The more discrete emitted small wavelength ranges, either from separate or combined sources, the more separate data points that can be detected by the light detector 126. The light detector 126 (such as a TSL2571 Light-to-Digital Converter from Texas Advanced Optoelectronic Solutions (Piano, TX)) can be adapted to detect any presence of light (e.g., light reflected off the liquid) and convert the light intensity into a voltage reading or other value. The light detector 126 may also include a simple photodiode, light-to-voltage converter or phototransistor, with the accompanying electronic circuitry (e.g., a transimpedance amplifier and/or an analog-to-digital converter). The detector 126 can detect the intensity of wavelengths either sequentially or simultaneously (e.g., detect the intensities of many different wavelengths at one time). In some cases the light detector 126 can include multiple sensors, where different sensors can capture different portions of the light spectrum (e.g., one sensor can capture ultraviolet light while another can capture near infrared light). In certain implementations, light can be emitted from light sources 124 on one side of the vessel 100 and detected with one or more light detectors 126 located remote from the emitting light sources 124. By separating the light sources 124 into particular small wavelength ranges, and sequentially operating the light sources 124 so that only one is illuminated at any given time, a single light detector 126 can be used to determine the intensity of a particular small wavelength range with respect to a given fluid contained in the vessel 100. The same light detector 126 can be used to detect the intensity of other small wavelength ranges, allowing for the creation of an array of values (e.g., a curve) based on the detected values of the separate small wavelength ranges. In some instances, an additional light detector may be used to gather additional data values. The additional light detector may be located on the opposite side of the vessel 100 from the first light detector, and may be behind the interior wall 1 18b. In some cases, one detector 126 is located on the same side of the vessel 100 as the light sources 124 and primarily detects reflected light, while another detector located on the opposite side of the vessel 100 from the light source 124 detects transmitted light. The light detector(s) 126 may or may not have optical filters present to constrain the light entering the photodetectors. Depending on the application, more or fewer data values may be desirable. The number of data points can be contingent upon the number of different emitted small wavelength ranges, which can be a function of the number of separate light sources 124.

Alternately, in some cases, the light sources 124 can include broadband sources such as a tungsten filament light bulb, or coherent sources such as laser diodes. Such a configuration greatly simplifies the setup that is often used in spectrographic analysis, which relies on a single light source to emit a light separated in a prism and detecting the separated light with several light detectors each configured to detect a particular wavelength. FIG. 6B depicts an implementation of the light sources 124 (nine in this implementation) surrounding the light detector 126, along with the processor 134. An exemplary control scheme for sequentially controlling the light sources 124 is depicted in FIG. 6C. The light detectors 126 (or any sensors/electronics within the vessel 100) may have one or more thermal sensors attached, to compensate for ambient temperature changes, as well as fluctuations due to contact of the interior wall 1 18b with the substance being measured. Thermal regulation of the electronics may also be present. In one example, thermally conductive foam may be attached to the back of the light detectors 126, behind which may exist phase-change materials or a Peltier junction. In another example, the electronics may be directly thermally coupled to the outside of the vessel 100.

[0039] Given the sensitivity of the light detector 126, the light detector 126 can be placed proximate the lower end 108b of the main body. Such a placement greatly reduces or eliminates the exposure of the light detector 126 to direct sunlight, which can alter the results. A low placement also allows for operation with minimal liquid in the vessel 100, as the light sources 124 and the light detector 126 can be covered by a lesser volume of liquid. To further reduce the opportunity for outside light to interfere with the results, a blinder can be provided proximate the light detector 126. Performance can also be increased by adding light sources 124 and light detectors 126 that are more sensitive in particular ranges (e.g., the infrared and ultraviolet ranges). Use of duplicative light sources 124 and light detectors 126 can allow for results to be generated even when one set is obstructed (e.g., by ice, a straw, a leaf, or other blockage). An additional set of light sources 124 and a light detector 126 can verify or otherwise provide more accurate results.

[0040] FIG. 5 also depicts a capacitive sensor 128 that is configured to extend along a side of the interior cavity 104. The capacitive sensor 128 can be made with a number of discrete elements, or can be a continuous capacitive element. This capacitive sensor 128 can also be used to detect the volume of liquid within the interior cavity 104 for example, by detecting the boundary of air and liquid based on a difference in readings between adjacent capacitive sensor elements. Once this boundary is identified, the volume of liquid in the vessel 100 can be calculated based on the known dimensions/geometry of the interior cavity 104. In some instances, the determination of fluid volume may include additional measurements and/or calculations to ensure accuracy. As one example, the capacitive sensor's reading may be affected by the temperature of the fluid; which can result in an inaccurate determination of which sensors are covered by liquid, and thus an inaccurate volume determination. In such cases, a measurement of the substance's temperature (e.g., using temperature sensors in the vessel 100) can be used to adjust or normalize the capacitive sensor readings to provide a more accurate result. Additionally, capacitive sensors 128 can measure the permittivity of the substance in the vessel 100, and such permittivity can have an affect the sensors readings. To compensate for such affect, the vessel 100 can normalize the capacitive sensor 128

measurements based on a reference measurement and a knowledge of the relative orientation of the individual sensor elements. For example, in general, if the vessel can determine that one element is covered, it can determine that all elements below that element are covered as well. Further, the magnitude of the readings from each sensor element can be normalized based on the reading from the reference element. While the just-described corrective approaches are useful, they may fail to account for the orientation of the vessel 100. For example if the vessel 100 is tilted at an angle, the boundary of air and liquid may be affected (e.g., some higher elements being covered and some lower elements being uncovered), which can also result in an inaccurate volume measurement. To account for this potential source of inaccuracy, the inertial measurement device 130 (e.g., accelerometer, gyroscope, etc.) can be used to determine the vessel's orientation, which can inform why certain higher elements may be covered while other lower elements are uncovered. As a result, the volume determination may be corrected (e.g., by transforming a Lagrangian view of control volume from a standard orientation to the measured orientation using, for example, a continuity equation). As discussed above, the vessel 100 can also include a second capacitive sensor 529 that can, for example, determine if a user is holding the vessel 100. In some instances, however, the capacitive sensor 128 can also detect an exterior force (e.g., user's hand) which can alter its readings and result in an inaccurate volume measurement. In such instances, a reading by the second capacitive sensor 529 can be used to determine if an external force is present, and the readings of the capacitive sensor 128 can be adjusted/normalized accordingly to result in a more accurate volume determination. Moreover, just as the capacitive sensors 128 can measure external forces, second capacitive sensor 529 can measure the fluid in the vessel 100. Thus, readings by capacitive sensor 529 can be used for an independent determination of fluid volume or as a check on the determination made using capacitive sensor 128. Adjustments to the calculated volume can also be made if there are indicators that non-liquid elements occupy part of the volume (e.g., if there are indications that ice present). Each of the techniques described above for determining and/or correcting fluid volume may be used alone or in combination.

[0041] FIG. 6D depicts an exemplary capacitive sensor 128 for use with implementations of this disclosure. In certain implementations, the mutual capacitance between two elements can be used to determine fluid level. In some implementations, a CY8C20647S-24LQXIT-ND integrated circuit chip from Cypress Semiconductor (San Jose, CA) and the self-capacitance of several elements can be used to determine the fluid level.

[0042] Another sensor 130 (e.g., an inertial measurement device) is depicted on the printed circuit board 500. The inertial measurement device 130 can be configured to detect certain sequences of accelerations and rotations, and any derived quantities (e.g., velocities, displacements, etc.) collectively called "motions" of the vessel 100, such as when it is picked up by a user, and activate the displays 132a, 132b for reading by the user when certain motion conditions are met. The displays 132a, 132b can be active for a predetermined amount of time after these motions are determined so that the user has sufficient time to understand the information presented before the displays 132a, 132b are turned off to conserve battery power. In certain implementations, the inertial motion device 130 can be an MPU-6500 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device from InvenSense (San Jose, CA).

[0043] In some implementations, the displays 132a, 132b can activate when multiple criteria are met. In one implementation, this criteria can include a threshold or bounded range of tilt rates (i.e., angular velocities) and/or detecting the presence of a user's hand on the vessel 100. Particularly, the inertial measurement device 130 can be used to detect the tilt rate of the vessel 100 in a direction from front to back, such that the displays 132a, 132b are angled towards a user's eyes for easier reading. The displays 132a, 132b may remain active for as long as the user is holding the vessel 100, deactivating when the user sets the vessel 100 down (e.g., when no changes in motion are detected and/or the vessel 100 is determined to be in a vertical orientation), or for a certain predetermined amount of time once the criteria are met. In one use case, the user can pick the vessel 100 up and angle it backwards, thereby activating the display for the user to read. Once the user has the information they were looking for, they can put the vessel 100 down on a surface where the displays 132a, 132b deactivate until the criteria are met again. In other implementations, the displays 132a, 132b may be activated with certain controls (e.g., by motion controls such as vertical swipes on the vessel 100) and/or by pouring fluid into the vessel 100. By activating and deactivating the displays 132a, 132b based on when the display information is useful, battery life of the vessel 100 can be maximized. [0044] The processor 134 can be used to control the various electronic components 122 (e.g., the light sources 124) and process the results obtained from various sensors, including the light detector 126, the capacitive sensor 128, and the inertial measurement device 130. These results can be displayed on the vessel 100 itself (e.g., through displays 132a, 132b), or transmitted to another device (e.g., wirelessly to a mobile device) for viewing by the user. The vessel 100 may have sufficient storage and capacity to perform these calculations

(including stored lookup databases, as described later in greater detail). In some

implementations, the processor 134 can transmit the data obtained from the sensors (e.g., the light detector 126, the capacitive sensor 128, and the inertial measurement device 130) to an external device for processing, at which time the results can be displayed on the external device and/or transmitted back to the vessel 100 for display on the vessel 100 itself. The particular information to be displayed on the vessel 100 can be controlled by a user using the external device.

[0045] The batteries 136 can be disposed centrally on the printed circuit board 500, and thus can be located in the base portion 110 of the vessel 100. This central placement can limit the distance to any particular electronic component 122 that is powered by the batteries 136. Additionally, the batteries 136 may be heavier and larger than other electronic components, so placement of the batteries 136 in the base portion 1 10 can provide better balance to the vessel 100 and an enlarged space for housing one or more batteries 136. Any number of batteries 136 can be used, including as few as one. In some implementations, a single lithium polymer battery with a capacity of approximately 800mAh can be used, though both larger and smaller batteries are possible. The batteries can have built in protection circuitry to help prevent catastrophic battery failures.

Operation [0046] The methods described herein can be applicable to a variety of situations where a user desires to determine the properties of a substance. While many of the implementations described herein relate to liquids contained in a vessel, similar steps may be taken to identify other substances, such as food products, or even others such as metals.

Additionally, the description focuses heavily on one novel approach for determining the properties of a substance involving the use of light detectors 126 that measure the intensity of light transmitted or reflected through the substance. In addition to the light detectors 126, the application discloses a number of other sensing devices (e.g., capacitive sensor 128, temperature sensors, etc.) that collect data about the vessel 100 or the substance it contains. Although in some instances such additional sensing devices are described as performing a function separate from identifying the substance within the vessel 100, it will be understood that such additional sensors may make any measurement of which they are conventionally capable, and that such measurements may be used, either alone or in combination with other measurements, to determine the properties of a substance located within the vessel 100. As one nonexclusive example of this concept, in some instances the capacitive sensor 128 is described as determining when a user is holding the vessel 100 or fluid level within the vessel 100. In addition, however, the capacitive sensor 128 can also measure the permittivity of the substance within the vessel 100 (permittivity measurement is a conventional function of a capacitive sensor). Such permittivity measurements can be used to determine the identity of the substance, or certain properties of the substance (e.g., carbonation presence, sodium content, etc.). As another example, in some instances temperature sensors are described as measuring the temperature of the light sources 124 or an external temperature. In addition, however, the temperature sensors can also measure the temperature of the substance within the vessel 100, which can enable a determination of the identity and/or properties of the substance. In some implementations, multiple substance measurements from multiple sensors (e.g., permittivity, temperature, etc.) can be used in combination to determine the identity and/or properties of the substance.

[0047] To determine a property of a substance, at least one light source (e.g., light source 124, which can be an LED) is used to emit light at different small wavelength ranges toward a substance. The light source(s) can be placed in almost direct contact with the substance, or they can be more remotely placed with a communication providing a way for the emitted light to travel from the light source(s) to the substance. For example, fiber optic cables can provide a pathway to transmit the light from the source to the substance. The light source(s) can be placed in a variety of environments, including the vessel 100, an eating utensil, an appliance, and others where it is desirable to detect and identify a substance. A single light source can be used if it is controllable to emit different small wavelength ranges of light at desired intervals (e.g., a multi-colored light). A number of different light sources can also be used, with each emitting one or more different small wavelength ranges. When several light sources are used, a controller/processor can be used to operate each one individually. Light sources can be used that emit light in the visible spectrum (e.g., different colored light sources), and also outside of the visible spectrum (e.g., in infrared, near-infrared, ultraviolet, and beyond).

[0048] Intensity levels can be measured at the various small wavelength ranges to produce data values related to the substance to be identified. A light detector (e.g., the light detector 126) can be used to measure these intensity values at several or all of the different small wavelength ranges. In some implementations a single light detector can be used, though additional light detectors can be added for redundancy or other purposes. The measured data values can be processed to identify the substance and properties associated therewith. In certain implementations, the data values can be compared to property values of known substances stored in a database to determine what the analyzed substance is most similar to. This comparison can include an algorithm that analyzes the data values for the unknown substance against the known property values, e.g., by calculating a distance. The known substance that has the lowest calculated distance from the measured data values can be considered to be the closest match to the unknown substance. Other algorithms, including those using artificial intelligence and machine learning, may be possible in some

implementations .

[0049] These operation principles can be applied to the components described above to determine a beverage located in the vessel 100 and convey this and related information to a user. FIG. 7 depicts a process diagram 700 according to one implementation of the disclosure to identify the beverage in the vessel 100.

[0050] The process 700 begins at Step 702 by pouring the beverage into the opening 106 of the vessel 100. The vessel 100 can identify when new liquid is poured in when a lower end of the capacitive sensor 128 changes from a no liquid reading to a liquid reading. At step 704, the processor 134 and/or a controller can be used to operate a single light source 124 to emit light at its known small wavelength range. The light detector 126 can be used in Step 706 to detect the intensity of the light reflected back from the beverage. Because the particular emitted small wavelength range from the individual light source 124 is known, this measured intensity value can be associated with a specific small wavelength range. The light source 124 is turned off in Step 708. In Step 710, it can be determined whether all of the light sources 124 have been turned on and analyzed. If the answer is no, the process 700 goes back to step 704 to acquire another data point using the next light source 124. This process can be repeated until all the light sources 124 have been activated (or until some other predetermined threshold has been met (e.g., acquiring three data points)). Once operation of the light sources 124 has been completed, the measurements are processed to identify the beverage and provide additional information regarding the beverage in Step 712.

[0051] Many different processes may be used to identify the beverage. In certain implementations, this processing includes comparing the intensity measurements with stored values in a database for a variety of known substances. One comparison technique is based on a weighted Euclidean distance calculation, which includes giving more importance to those channels (e.g., data values from specific emitters) that are predetermined to give the best information for a given category of liquid. The beverage in the vessel 100 can be identified as the substance with the lowest calculated distance. Other factors, such as geographical location of the vessel 100, a user's typical habits, or other contextual information may complement the results from the light detector 126 when identifying the beverage. If just the vessel 100 is used (no external processing), the known substances may include general categories, such as colas, coffee, smoothies, mixed drinks, dairy, wine, beer, etc., instead of specific products (e.g., flavors within a specific brand). If external processing is used, such as through a wireless connection with a client device as described in greater detail below, an expanded database for comparisons can be used, and finer distinctions between different brands of a particular beverage (e.g., Coca-Cola® vs. Pepsi®) can be made. These calculations can also be made by the vessel 100 itself, if it has access to sufficient processing power and memory. The vessel 100 can have sufficient storage to track the user's behaviors on a daily basis for a year or more.

[0052] To provide specific nutritional information for each identified beverage, a separate or integrated database (e.g., a nutritional labeling database) can store information for each beverage. The nutritional labeling database values can be based on a volume for each beverage (e.g., 100 calories per 8 oz.). To determine the appropriate information based on the volume in the vessel 100, the values from the nutritional labeling database can be converted (e.g., by multiplying the value from the database by the volume in the vessel 100 over the volume in the database) to identify the specific nutritional information for the substance in the vessel 100.

[0053] Several adjustments can be made to the process, depending on the circumstances. For example, an ambient light sensor can be used to determine an ambient light level in the vessel 100, which ambient light level can be subtracted from the measured intensity to get a more accurate value. A temperature sensor can be used and incorporated into the processing to compensate for the impact of temperature on the light sources 124. The temperature sensor 124 can be located on the printed circuit board 500. In certain

implementations, the temperature sensor 124 can also be adapted to determine an external temperature. The external temperature information can be used to adjust the hydration level calculation (e.g., the warmer the external temperature the faster the hydration level can decrease). In some implementations, separate temperature sensors can be used for measuring interior and exterior temperatures. In certain instances, the temperature sensor (e.g., a thermistor) can measure the temperature of the substance within the vessel 100.

[0054] Adjustments can also be made based on the reflectivity of the beverage. In certain implementations, an infrared or near-infrared light source 124 can be used to emit an infrared or near infrared light to test for reflectivity. If the intensity is measured above a certain value, a different set of lookup tables based on high reflectivity can be used. The light sources 124 can also be operated at a lower intensity when a highly reflective beverage is present to avoid saturating the light detector 126. Other environmental factors, such as the presence of bubbles or ice, can affect the measurements. In such circumstances where an initial measurement is not accurate due to bubbles or ice, the vessel 100 can take repeated measurements at certain time intervals to reach an accurate determination.

Mobile Application

[0055] In certain implementations the vessel 100 can be used in conjunction with at least one application located on a client device or one or more servers accessible by the client device. FIG. 8 is a block diagram of a system on which the application(s) can be implemented. System 800 includes a client device 802 that is configured to communicate with the vessel 100 and a server system 816 over a network 814. Client device 802 has a respective user 808 associated therewith. The server system 816 includes at least one computing device 818 and memory 820. Although only client device 802, vessel 100 and server system 816 are shown in the figure, example system 800 can include many more client devices, vessels, and servers which are not shown.

[0056] Network 814 can include a large computer network, examples of which include a local area network (LAN), wide area network (WAN), the Internet, a cellular network, or a combination thereof connecting a number of mobile client devices, fixed client devices, and server systems. The network(s) included in network 814 can provide for communications under various modes or protocols, examples of which include Transmission Control Protocol/Internet Protocol (TCP/IP), Global System for Mobile communication (GSM) voice calls, Short Electronic message Service (SMS), Enhanced Messaging Service (EMS), or Multimedia Messaging Service (MMS) messaging, Ethernet, Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Personal Digital Cellular (PDC),

Wideband Code Division Multiple Access (WCDMA), CDMA2000, or General Packet Radio System (GPRS), among others. Communication can occur through a radio-frequency transceiver. In addition, short-range communication can occur, e.g., using a Bluetooth, WiFi, or other such transceiver system.

[0057] Client device 802 enables user 808 to engage a graphical user interface ("GUI") that is associated with the application(s). The application(s) can be stored on and executed by the client device 802 or the server system 816.

[0058] In example system 800, client device 802 is illustrated as a mobile computing device. It is noted, however, that client device 802 can include, e.g., a desktop computer, a laptop computer, a handheld computer, a television with one or more processors embedded therein and/or coupled thereto, a tablet computing device, a personal digital assistant (PDA), a cellular telephone, a network appliance, a camera, a smart phone, a smart watch, an enhanced general packet radio service (EGPRS) mobile phone, a media player, a navigation device, an electronic messaging device, a game console, or a combination of two or more of these data processing devices or other appropriate data processing devices. In some implementations, a client device can be included as part of a motor vehicle (e.g., an automobile).

[0059] Client device 802 can execute applications 832, 834, 836, 838 for configuring the client device, tracking a user's consumption of substances contained within the vessel, comparing a user's consumption to other individuals, and identifying substances contained in the vessel respectively. The applications 832, 834, 836, 838 allow for execution of the methods described in this specification, and can be implemented as software, hardware or a combination of software and hardware that is executed on a processing apparatus, such as one or more computing devices (e.g., as described in relation to element 2052 of FIG. 20). In various implementations, client device 802 can be enabled such that it executes one, all, or any combination of these applications. [0060] The applications 832, 834, 836, 838 can be hosted by a corresponding configuration module 824, consumption tracking module 826, comparison module 828, and substance identification module 830. The modules 824, 826, 828, 830 can be implemented as software, hardware or a combination of software and hardware that is executed on a processing apparatus, such as one or more computing devices.

Configuration Application

[0061] As discussed above, in some implementations the vessel 100 analyzes the substances it contains to determine information regarding the substances' properties and/or components, as well as the amount of a substance (and/or its components) that a vessel user has consumed. The vessel 100 can then show such information on a display 232a visible through an exterior of the vessel 100. Although the vessel 100 can be capable of determining a significant amount of information about the substances and their consumption, the vessel 100 may be limited in the amount of information it can show on the display 232a. For example, the vessel 100 may determine the total calorie, sugar, caffeine, protein, sodium, fat, and alcohol content of the substances consumed from the vessel 100, but may only be able to show one of these categories on the display 232a.

[0062] In addition, for some categories of information, the vessel 100 can be capable of determining the information over varying periods of time. As an example, in an implementation in which the vessel 100 determines the calorie content of the substances consumed from it, the vessel 100 may track the total number of calories consumed over the past day, past week, past year, or over the lifetime of the vessel. These time periods are only examples; the vessel 100 can be capable of tracking information over other time periods as well. Similar to the categories of information themselves, although the vessel may track information over all of these time periods, it may be limited in the number of time periods for which it can show information on the display 232a. These limitations may be imposed for a number of reasons, including spatial constraints, power constraints, or simply a design choice so that the display 232a does not overwhelm the user with information. Accordingly, it can be desirable to configure the vessel such that the display 232a shows the information that a user wishes to see.

[0063] Implementations of the present disclosure relate to methods for configuring the vessel 100 such that the display 232a shows information that a user wishes to see. In some instances, such configuration can be performed by executing a configuration application 832 located on a client device 802 or one or more servers accessible by the client device. FIG. 9 is a flow chart showing an example method 900 for configuring the vessel. The method can include receiving 902 user input, which can include the user engaging a GUI presented on a client device. In some instances, the user can input the information he or she wishes to be shown on the display. For example, the GUI may allow the user to input the category of information, as well as, in some cases, the time period over which the category is to be determined. As one illustrative example, an athlete may be interested in the amount of protein he or she consumes in the days leading up to an event. Such an athlete may use the configuration application 832 to configure the vessel 100 to display the amount of protein consumed from the vessel over the past day. As a contrasting illustrative example, an individual hoping to lose weight may be interested in the amount of calories he or she consumes in a given week. Such an individual may use the configuration application 832 to configure the vessel 100 to display the number of calories consumed from the vessel 100 over the past week. As a final contrasting example, a diabetic may be interested in keeping a running tally of the number of grams of sugar he or she has consumed. The diabetic may use the configuration application 832 to configure the vessel 100 to display the total number of grams of sugar consumed from the vessel 100 over the lifetime of the vessel. The above are non-limiting examples of configuration options for the vessel's display 132. Other

configuration options are possible.

[0064] In implementations where the client device 802 has a touchscreen, users can make a selection using their finger or a stylus. In other instances, an input device such as, for example, a mouse or a keyboard can be used. Alternatively, in implementations having a voice user interface ("VUI"), information can be entered via the user's voice.

[0065] As discussed above, the vessel 100 can also calculate a parameter based upon the substances consumed from the vessel. As one example, the parameter can be a measure of a vessel user's hydration level. In some instances, the parameter can be displayed on the exterior of the vessel, for example, with a line or bar that increases and decreases based on the parameter's value. Parameters calculated based upon substances consumed by a user are often dependent upon certain characteristics of the user. Taking hydration level as an example, if a 6'5", 300 pound male and a 5'2", 1 10 pound female consume the same amount of the same liquid, the latter will generally have a higher hydration level than the former. Thus, in order for the vessel 100 to calculate and display an accurate parameter, it must take certain

characteristics of the individual for which the parameter is being calculated into account. Such characteristics can include, but are not limited to, the user's height, weight, age, and sex. In some implementations of the disclosure, vessel users can engage the configuration application 832 to configure the vessel such that it takes such characteristics into account when making its calculations. In such implementations, users can engage the GUI presented by the

configuration application 832 to input the characteristics.

[0066] Following the configuration application's receipt of user input (e.g., desired display settings, user characteristics, etc.), the method can include communicating 904 the user input to the vessel 100. Such communication can occur through any of the above-discussed methods. Once the vessel 100 receives the user input, it can store such information on a storage device located on the vessel 100.

Consumption Tracking Application

[0067] Individuals are finding it increasingly desirable to record and track data related to aspects of their daily lives. For example, various products are now available that allow users to keep track of metrics such as distance traveled, steps taken, and hours slept. In some instances, it may be desirable for individuals to track their consumption of substance components such as, for example, calories, sugar, caffeine, protein, sodium, fat, and alcohol. Such tracking can be useful for individuals that want a better understanding of their consumption habits and/or to help individuals reach particular consumption targets. As non- limiting examples, tracking consumption can help a weight focused person track the amount of calories consumed, a diabetic track the amount of grams of sugar consumed, or a person concerned about operating a vehicle over the legal limit track the amount of alcohol consumed. Further, depending on the purpose for tracking consumption, it can be helpful to track consumption over various time periods. For example, the weight focused person discussed above may be interested in tracking calorie consumption each week in an attempt to keep consumption under a pre-set target, whereas the person concerned about operating a vehicle over the legal limit may only be concerned with tracking alcohol consumption over a single evening. In addition, tracking consumption can be made easier if the data is presented in a clear, easily-interpretable fashion. Presentation of data in this manner may increase the likelihood that the data will be understood by (and thus helpful to) individuals tracking their consumption. [0068] Implementations of the present disclosure relate to a consumption tracking application 834 that allows users to track their consumption of substance components over various time periods, and presents the tracking data in a clear, easily-interpretable fashion. Client device users can view and interact with the tracking data on a GUI provided on a client device through execution of the consumption tracking application 834, which can be located on the client device 802, or in some cases hosted by a consumption tracking module 826 located on a server system 816.

[0069] FIG. 10 shows an example GUI 1000 presented by consumption tracking application 834. The GUI 1000 shows shapes 1002, 1004, 1006 that each relate to a different substance component. Although FIG. 10 shows these components as calories, sugar, and caffeine, the shapes can relate to any substance component tracked by vessel 100. Further, although shapes 1002, 1004, 1006 are depicted as circles in FIG. 10, in general the shapes can be any geometric shape, for example, a rectangle or a triangle. In addition, although FIG. 10 shows 3 categories presented in GUI 1000, more or less categories can be shown.

[0070] As discussed above, in some implementations, the vessel 100 is capable of determining a volume of substance consumed from the vessel 100, as well as analyzing the substance to determine an amount of a particular substance component consumed. In some implementations, the vessel 100 can communicate this information to consumption tracking application 834. In other implementations, the consumption tracking application 834 can be informed of user consumption through a user's manual input of consumption data. In some instances, both vessel-communicated and manually-input information can inform the consumption tracking application 834. Regardless of how the consumption tracking application 834 is informed of the consumption data, as a particular substance component is consumed, the GUI 1000 alters the presentation of the shape related to that component. In some instances, alteration of the shape comprises incrementally filling the shape with a filler 1008. In general, the filler 1008 can be any graphical representation of the shape being filled up. For example, in some cases as shown in FIG. 10, the filler 1008 can comprise concentric rings of varying diameter, such that as more of a particular substance component is consumed additional rings of greater diameter are added to fill the shape related to that component. In such cases, an additional ring may only appear when certain thresholds of consumption are reached. As one example, a new ring may only be added for every 5 grams of sugar consumed, such that a first filler ring appears when the 5 th gram of sugar is consumed, no rings appear when the 6 th through 9 th grams are consumed, and a second ring appears when the 10 th gram of sugar is consumed. In other cases, the filler can be a solid color whose area increases as more of a substance component is consumed. In some cases, as shown in FIG. 10, the filler 1008 can begin in the center of the shape and grow outward. In other cases, the filler 1008 can grow from one side of the shape to the other. Other filler growth patterns are possible. In other instances, consumption of a substance component can be presented in the GUI using methods other than filling in a shape with a filler. As one example, a graphic (e.g., an image of an apple) can gradually appear on GUI 1000 as a substance component is consumed. In other examples, a graphic can gradually disappear on GUI 1000 as a substance component is consumed.

[0071] Taking the example of having shapes 1002, 1004, 1006 being gradually filled with filler 1008 as a substance component is consumed, in some implementations, the outer boundary 1010 of the shape can relate to a baseline and/or a target amount of

consumption of the component over a particular time period. As mentioned above, consumption tracking application 1034 can be capable of tracking consumption data over varying time periods, for example, a day, a week, a month, a year, or a lifetime of a vessel. For each time period, the consumption tracking application 834 can also store a baseline and/or a target amount of consumption for a particular component over the time period. In general, the baseline amount can be the user's typical amount of consumption, for example a user's behavior in the first 24 hours of use of the vessel. Target amounts can be based on any amount of a particular component of relevance to the user. For example, in some cases, the target amount can be an amount recommended by a medical association (e.g., American Medical Association). In other cases, the consumption tracking application 834 may contain algorithms for determining a target amount for its users. Such algorithms may depend upon user-inputted information, for example, a user's height, weight, age, and/or sex. In other cases, the target amount may be a user-inputted target. Regardless of how the baseline or target is determined, in some instances, the shape being entirely filled with the filler represents that the baseline or the target amount for a particular time period has been consumed.

[0072] Because the vessel 100 and/or consumption tracking application 834 can track consumption over multiple time periods, the consumption tracking application 834 can present different graphics representing consumption over different time periods. Taking the example of having shapes 1002, 1004, 1006 gradually filled with filler 1008, GUI 1000 may present different shapes for different time periods, for example, one shape that tracks consumption over a day and another shape that tracks consumption over a week. Within this example, the shape tracking consumption over a day can be filled with filler 1008 when the baseline or the target consumption amount for a day is reached, and the shape tracking consumption over a week can be filled with filler 1008 when the baseline or the target consumption amount for a week is reached. In some instances, graphics related to the different time periods can be shown on the same screen of the client device 802. In other instances, graphics related to different time periods can be shown on different screens of the client device 802.

[0073] As an illustrative example of the above discussion of the consumption tracking application's display of consumption data, assume that consumption tracking application 834 has the baseline or the target for sugar consumption set at 36 grams per day and 252 grams per week. In addition, assume the vessel 100 determines that it contains apple juice which it knows contains 24 grams of sugar per 8 ounces, and that 4 ounces of the apple juice has been consumed from the vessel 100. The vessel 100 can communicate to the consumption tracking application 834 that 12 grams of sugar has been consumed. Alternatively, the vessel 100 may only communicate that 4 ounces of apple juice has been consumed, and the consumption tracking application 834 may store the information and perform the calculations to determine that 12 grams of sugar has been consumed. Regardless, once consumption tracking application 834 learns that 12 grams of sugar has been consumed, the GUI 1000 presented by consumption tracking application 834 can be altered to represent such consumption. For example, a shape related to consumption of sugar for the time period of a day may have 1/3 of its area filled with a filler 1008 (because 12 grams of sugar represents 1/3 of the baseline or the target amount for one day), and a shape related to consumption of sugar for the time period of a week may have 1/21 of its area filled with a filler (because 12 grams of sugar represents 1/21 of the baseline or the target amount for one week).

[0074] In certain implementations, consumption data can be presented using methods other than the gradual filling in of a shape or graphic. For example, as shown on example GUI 1100 in FIG. 1 1A, consumption data can be shown with a bar graph. In such instances, the baseline or the target can be indicated by a horizontal line 1 102. Although FIG. 1 1A shows consumption data over the time period of a week (with each bar representing consumption over a different day), this method can be used for other time periods as well. For example, a bar graph can show consumption over a day (e.g., with each bar representing consumption over a different hour). FIG. 1 IB depicts consumption data over the course of a day, including information regarding the beverage consumed, the quantity, and when, in list form. Though depicted for one day, many different time spans (e.g., morning, afternoon, evening, weekly, monthly, etc.) can be used.

[0075] Other methods of presenting consumption data can be used as well, for example, pie charts and line graphs. As discussed below, in some implementations, the vessel 100 and/or consumption tracking application 834 can calculate a parameter that is a measure of the vessel user's hydration level. As hydration level can vary over a time span as short as a few hours, a line graph can be a desirable way to present such data in some instances. FIG. 12 shows an example GUI 1200 presenting a line graph of the data related to a user's hydration level. In some implementations, GUI 1200 can include a graphical control 1202 that can be placed at or dragged to different locations along the graph. In some cases, each location can relate to a particular time. At each location, graphical control 1202 can display a measure of the user's hydration level at that position on the graph. Although FIG. 12 relates to a measure of hydration, similar techniques can be used for line graphs related to other consumption data as well. Further, the technique of placing or dragging a graphical control to a position on a graph to display values for that position can be used for other types of graphs as well.

[0076] As mentioned, in certain implementations, the consumption tracking application 834 can calculate a measure of a user's hydration level using information gathered from the vessel 100, input by the user, and/or third party sources. Determining hydration can be important because dehydration can have serious consequences and may cause, for example, kidney stones, kidney disease, heart disease, etc. Studies also suggest that dehydration is a prevalent problem and that large percentages of the population fail to meet the recommended hydration levels. Hydration is also a dynamic concept that changes throughout the day for each individual, and can be dependent on a large number of factors. It can be important for an individual to understand their hydration needs, and how such needs change over the course of a period of time (e.g., a day) and to address such needs (e.g., by consuming fluids) as appropriate. Doing so can have beneficial effects, for example, change of mood and energy level.

[0077] In some implementations, the consumption tracking application 834 can address dehydration by calculating and allowing a vessel 100 and/or mobile application user to continually monitor their hydration levels. As discussed, the consumption tracking application 834 can receive user-inputted information (e.g., height, weight, age, gender, geographic location (e.g., to adjust for local climate)). This information can be used in conjunction with data received from third party sources (e.g., controlled trials, population data, human lab studies, etc.) to predict a particular user's energy expenditure at rest (basal metabolic rate) as well as during activities (e.g., exercise). The consumption tracking application can then apply an algorithm to determine the total fluid intake requirements of an individual over the course of time. This fluid intake requirement determination can be updated upon receipt of addition information, for example, the user's activity level, geographic location, and biometrics. In some instances, the consumption tracking application 834 can determine a user's activity levels by communicating with a monitor worn by the user (e.g., activity monitor). The application's determination of a user's fluid intake requirement may also be continually altered (e.g., day-today, hour-to-hour, minute-to-minute) by taking into account various temporal and/or user- specific factors to spread the intake requirement value advantageously over the course of a specific time period. Such factors may include (i) adjustment for sleeping hours vs. waking hours; (ii) biasing intake towards morning hours when hydration levels are low following sleep; (iii) biasing intake away from the end of the evening to prevent sleep interruption from overhydration; and (iv) dispersing additional intake requirements to meet needs created by activity levels and/or biometric/homeostatic changes. The calculation of the fluid intake requirement also naturally alters itself as time passes without the user consuming fluid (e.g., as a general (but not exclusive) rule, as time passes without the user consuming fluid the intake requirement will increase). Once a particular user's intake requirement is calculated, the application 834 can determine if the user's actual fluid intake meets this requirement (or in some cases whether it is within a desirable range of this requirement (e.g., between 80-100% of the desired intake amount)). The application 834 can determine a user's consumption from information communicated by the vessel 100 and/or user- inputted information. As discussed throughout this application, the mobile application and/or vessel 100 itself can then inform a user whether it's hydration levels are acceptable, or if additional fluid should be consumed.

[0078] The consumption tracking application's individualized, time-varying, situationally-adaptable determination of an advantageous hydration level represents an improvement over the static, single-quantity recommendations found in the prior art. In addition, the consumption tracking application 834 can record a user's optimal hydration level against actual consumption habits, which can help induce advantageous behavior correction.

[0079] In some implementations, consumption tracking application 834 can provide more detailed information regarding consumption of a particular substance component. In some instances, such additional information can be provided upon user selection of the graphic displaying consumption data for the particular component. In such instances, the graphic displaying consumption data can be expanded such that it is the only such graphic displayed on the screen of the client device 802. FIG. 13 shows example GUI 1300 presenting additional information. Although FIG. 13 shows information related to calories, similar information may be presented for any measured substance component. GUI 1300 shows expanded graphic 1002 from FIG. 10 related to calorie consumption. In addition, GUI 1300 shows a graphical representation 1302 of the time period over which the consumption data is measured, a textual graphical representation 1304 indicating the consumption amount's relation to the baseline or the target amount, a numerical graphical representation 1306 of the amount consumed, and a comparison item 1308. In general, a comparison item 1308 is an item that contains approximately the same amount of the measured component as the user has consumed. In some cases, the comparison item 1308 is a relatable item that provides some perspective to the user as to how much of a particular component he or she has consumed. For example, as shown in the figure, if a user has consumed 217 calories, the comparison item 1308 can be 2.4 apples which contain approximately 217 calories.

[0080] FIG. 14 is a flow chart showing an example method 1400 for tracking substance component consumption. In some implementations, the method can be performed by consumption tracking application 834. The method can include presenting 1402 a shape in a GUI. The shape can be any geometric shape, for example, a circle or a square. The method can include determining 1404 a user's consumption of a component of a substance. In some instances, this determination can be made by communicating with vessel 100. The method can include incrementally varying 1406 a filler of the shape based upon a user's consumption over a particular time period. In some cases, an outer boundary of the shape can relate to a baseline or a target amount of consumption, such that when the filler fills the entire shape the user has consumed the baseline or the target amount. The method can include presenting 1408 a comparison item in the GUI, where the comparison item contains approximately the same amount of the component as the user has consumed. [0081] In some implementations, consumption tracking application 834 can track and store a list of the substances consumed by a user. FIG. 15 shows example GUI 1500 presenting a list 1502 of substances consumed by the user. In general, the list 1502 can present substances in any order, for example, by the recentness of consumption (e.g., the most recently consumed substance appears at the top of the list). In some instances, the list 1502 can automatically be generated by information communicated to consumption tracking application 834 by the vessel 100. In other instances, the list 1502 can be generated by the user's manual input of the substances he or she consumes. Such manual input may be necessary for substances that the vessel 100 is unable to recognize or for substances not consumed from the vessel 100, but for which the user still wants to track consumption data. The substance list

1502 can be useful to users manually inputting substance consumption data. Once a substance is in the list 1502, a user manually entering the same substance on a subsequent occasion need not re-enter the substance's name, but rather can simply select the substance from substance list 1502.

[0082] In addition to the substances consumed, it may also be desirable for consumption tracking application 834 to track additional information regarding the

consumption of a substance. For example, it may be desirable for the consumption tracking application 834 to track the time of day a particular substance is consumed, as well as the amount consumed. In some instances, the consumption tracking application 834 can have this additional information communicated to it by the vessel 100. In other instances, the additional information can be manually input by a user. In cases in which the additional information is manually input by a user, the consumption tracking application 834 can present common and/or previously entered entries such that the user can quickly and easily select such entries (e.g., with a single touch or click). For example, as shown in FIG. 16, if a user manually enters the consumption of red wine, example GUI 1600 can offer simple interactive graphical objects 1602, 1604, selection of which allow the user to enter additional information. Although the interactive objects 1602, 1604 shown in the figure relate to the time and amount of

consumption, other additional information can be entered in a similar manner.

Comparison Application

[0083] In some situations, it can be desirable for individuals to compare their consumption of substance components with other individuals. In some instances, it can be even more desirable if the comparison is among individuals having similar characteristics (e.g., age, height, weight, sex), or in some cases desired characteristics. Such comparisons can provide individuals with knowledge of how their consumption habits compare with other individuals, which can sometimes help in establishing consumption targets. For example, it may be informative for a 40 year old, 5'5", 140 pound female to see the consumption characteristics (e.g., the sodium intake) of other individuals meeting these characteristics. Such information may allow the female to adjust her sodium intake targets up or down depending on how her personal consumption compares to such individuals. As another example, an underweight 25 year old, 6Ό", 130 pound male may have a target of weighing 165 pounds. It may be informative to such a male to see the consumption characteristics (e.g., fat, protein, calories) of 25 year old, 6Ό", 165 pound men. Such information may help the male understand the amount of substance components he should consume to achieve his target.

[0084] Certain implementations of the present disclosure relate to a comparison application 836 that allows users of a client device 802 to compare their consumption habits with other users of the vessel 100 and/or the comparison application 836. Client device users can view comparisons on a GUI provided on a client device through execution of the consumption application 836, which can be located on the client device 802, or in some cases hosted by a comparison module 828 located on a server system 816.

[0085] As discussed above, vessel 100 can be capable of determining consumption data for users of the vessel 100. Further, consumption data can be communicated from the vessel 100 to a consumption tracking application 834 and/or consumption data can be manually entered into the consumption tracking application 834. In certain instances, the vessel and/or consumption tracking application 834 can communicate user consumption data to a central server system 816, where it is stored. In addition, as discussed above, users of vessel configuration application 832 can input characteristics (e.g., height, weight, age, sex). In some instances, such characteristics can be communicated to the central server 816 as well, such that the information stored on server 816 can be organized into categories based on these characteristics. In addition to physical characteristics, central server 816 may also be capable of organizing data based on other parameters related to the substance consumption, for example, hobbies and interests. For example, central server 816 may be capable of receiving information that a particular set of consumption data relates to a marathon runner, and organizing a category of data that relates to marathon runners.

[0086] FIG. 17 is a flow chart showing an example method 1700 for comparing a user's consumption with other individuals. The method can include communicating 1702 at least one parameter of consumption data to central server 816. In some instances, the communication can be sent by comparison application 832. The method can include receiving 1704 from the central server 816 consumption data meeting the at least one parameter. The received data can in some cases be all the data server 816 contains meeting the at least one parameter, or in some cases can be a subset of such data. The parameters can include, but are not limited to, substance component, time period of consumption, age of consuming individuals, height of consuming individuals, weight of consuming individuals, and hobbies or interests of consuming individuals. For example, a user of comparison application 832 may send a request to central server 816 to provide data for the consumption of calories per day by 25 year old, 6Ό", 165 pound men, and the central server 816 can return all or a subset of such data it contains meeting those parameters. As another example, a comparison application 832 user may send a request to central server 816 to provide data for the consumption of fat by marathon runners, and the central server 816 can return all or a subset of such data it contains meeting those parameters. Communications between comparison application 832 and central server 816 can include any of the methods of communicating within network 814 discussed in this disclosure.

[0087] Although raw data can sometimes be helpful, in certain implementations it can be more helpful to a user if the raw data is manipulated such that the user is presented with easily-interpretable metrics. Accordingly, the method can include converting 1706 the received consumption data into an interpretable metric, and displaying 1708 the received data and/or the interpretable metric to a user. Taking the example request for calorie consumption per day by 25 year old, 6Ό", 165 pound men; rather than presenting a user with a list of data points, the comparison application 832 can present metrics that are easier to interpret, for example, an average, a median, a maximum and/or a minimum of the data set. Such easily-interpretable metrics can be presented to the user with charts, graphs, and/or other graphics, which in some cases can be overlaid against the user's own consumption data or metrics. In some instances, the analysis performed to determine such metrics can be performed by the comparison application 832. In other instances, the analysis can be performed by central server 816. In other implementations, metrics need not be determined at all, and the user can simply be presented with the raw data or a subset of the raw data. Substance Identification Application

[0088] As discussed above, in some implementations, the vessel 100 is capable of determining information about the substances it contains. In some instances, information can be determined by taking a reading of the contained substance, which in some cases can include taking a plurality of intensity measures, each intensity measure being for a different respective small wavelength range. As discussed, in some instances the result of the reading will allow the vessel to determine information about the substance contained, for example, because it recognizes the data collected by the reading as relating to a particular substance. However, in other instances, the data collected by the reading may be unrecognized by the vessel, in which case it may be unable to determine information about the substance. It can be desirable in such instances to employ a method that allows the vessel to determine information about the substances it contains.

[0089] Certain implementations of the present disclosure relate to computer- implemented methods for determining information about substances contained in the vessel, which in some cases can be substances that are unrecognized by the vessel, or limitedly recognized (e.g., the vessel can determine the name of the substance, but not its nutritional information or other relevant information). In some instances, the methods can employ a crowdsourcing technique, in which users of the vessel can manually input information related to substances, and such information can be stored in a centralized database that can be accessed by other vessel users.

[0090] FIG. 18 is a flow chart showing an example method for entering and storing such information. The method can include receiving 1802 a reading of a substance contained within vessel 100. In some cases the reading can be received by a client device 802 executing a substance identification application 838. In some cases the reading can be sent from the vessel 100. In such cases, the substance can be one that is unrecognized or limitedly recognized by the vessel 100. Regardless of whether the vessel 100 recognizes a substance, it can take a reading of the substance, and the data collected by such reading (e.g., a plurality of intensity measures) can be communicated to another location (e.g., a client device). When a substance is not recognized as a specific match with a stored beverage (e.g., a branded beverage), the vessel 100 and/or the client device 802 can display a more general category of beverage based on the closest match in a database. In this manner, the user can still receive information about the beverage (e.g., the estimated nutritional content). The user can understand an exact match was not made through a variety of means, such as by displaying a general category of beverage instead of a specific beverage, incorrectly identifying the substance, or otherwise indicating an exact match was not made. The method can include receiving 1804 corresponding user- input information about the substance. In implementations in which the reading is received by a client device, users can input information through a GUI presented by substance identification application 838. In general, user-input information can include any information about the substance, for example, the substance's name, calorie content, fat content, sugar content, water content, iron content, protein content, sodium content, caffeine content, and alcohol content. The method can include communicating 1806 the reading and user-input information corresponding to the reading to a central server system 816 which is adapted to store the communicated information.

[0091] As one illustrative example of the method described above, a vessel 100 may contain almond milk, which is unrecognized by the vessel after analyzing a reading taken of the almond milk. In such an instance, the vessel can communicate the data from the reading (e.g., a plurality of intensity measures) to a client device executing substance identification application 838. In addition, substance identification application 838 can present a GUI in which a user can input information about the substance contained in the vessel. In this example, the user may input that the vessel contains almond milk and that almond milk contains 30 calories per cup. The substance identification application 838 can then

communicate the reading it received from the vessel along with the user-input information to central server system 816, where it can be stored in a centralized database.

[0092] While storing readings and user-input information can be useful, it can be desirable if other individuals have access to the database to acquire information about the substances they are consuming. Such access can provide vessel users with a wealth of knowledge compiled by other vessel users. FIG. 19 is a flow chart showing an example method of accessing information about a substance. In some instances, the substance may be one that is unrecognized (or limitedly recognized) by the vessel. The method can include communicating 1902 a reading (e.g., a plurality of intensity measures) of a substance contained within a vessel to a central server system 816. In some instances, the reading can be communicated to the central server system directly from the vessel 100. In other instances, the reading can be communicated from a client device executing a substance identification application 838 that received the reading from the vessel 100. As mentioned above, the central server system 816 can be adapted to store readings and user- input information. In some instances, the central server system may receive readings and user-input information from a plurality of sources and store all of the information in a centralized database. In addition, in response to a newly communicated reading, the central server system 816 can also be adapted to locate the other readings contained in the centralized database that are substantially the same as the newly communicated reading. In general, readings that are substantially the same are those with data points (e.g., intensity measures) within a predetermined amount of one another. Upon location of such readings, the central server system 816 can be adapted to communicate the corresponding user-input information for such readings. Such information can be communicated to a client device executing substance identification application 838 (or in some cases directly to the vessel 100). Thus, the method can include receiving 1904 from the central server system 816 corresponding user-input information for the stored readings that are substantially the same as the communicated reading.

[0093] As one illustrative example of the method described above, it is useful to revisit the example of a user entering and storing information about almond milk. Following the central server system's storage of the reading and user-input information about almond milk, another vessel may contain almond milk which it is unable to recognize. In this situation the vessel can communicate the reading to a client device executing substance identification application 838 which can then communicate the reading to central server system 816, or in some cases the vessel can communicate the reading directly to central server system 816. Upon receipt of the reading, the central server system 816 can locate within its centralized database all readings that are substantially the same as the newly communicated reading. In this example, the central server system may locate the reading sent from the user in the earlier almond milk example. Further, the central server system 816 can then communicate the user- input information associated with this reading back to the client device and/or vessel. Recall from the above example that the user-input information was that the reading relates to almond milk and that almond milk contains 30 calories per cup.

[0094] In some instances, central server system 816 is adapted to communicate user- input information associated with readings that are substantially the same as newly

communicated readings, regardless of how many substantially-same readings it contains. In other instances, central server system 816 may be adapted to only communicate user- input information if the number of substantially-same readings reaches a threshold amount. For example, central server system 816 may only communicate user-input information if it contains 10 readings that are all substantially the same as a newly communicated reading. In some instances, the central server system 816 may only communicate user- input information if a certain percentage of the substantially-same readings identify the same information about the reading (e.g., the substance's name and/or nutritional information).

[0095] The methods discussed above for storing and accessing information about substances can be employed for information other than the substance's name and nutritional information. In general, users can input (and central server system 816 can store) any information about a substance, for example, desired uses of the substance (e.g., "great after a long bike ride"), effects of the substance (e.g., "makes me feel light-headed"), or ways to prepare the substance (e.g., "best served at room temperature."). As discussed above, such user-input information can be associated with a particular reading taken of a substance.

Although the above discussion focused on providing user-input information in response to the communication of unrecognized readings, user- input information can be provided even if the vessel recognizes the reading. Taking the example of the vessel containing almond milk, the vessel may recognize that the substance it contains is almond milk, however it may still communicate the reading (either through a client device or directly to a central server system) to acquire all information stored in the centralized database about this substance (e.g., desired uses, effects, preparation techniques, etc.). Such information can then be presented to a user, either on display 132 of the vessel and/or on the screen of a client device.

Operating Apparatus

[0096] FIG. 20 shows an example of a generic mobile computing device 2050, which may be used with the techniques described in this disclosure. Computing device 2050 includes a processor 2052, memory 2064, an input/output device such as a display 2054, a communication interface 2066, and a transceiver 2068, among other components. The device 2050 may also be provided with a storage device, such as an electronically programmable memory or other device, to provide additional storage. Each of the components 2050, 2052, 2064, 2054, 2066, and 2068, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.

[0097] The processor 2052 can execute instructions within the computing device 2050, including instructions stored in the memory 2064. The processor may be implemented as a collection of individual components (e.g., chips or chipsets) that include separate and multiple analog and digital processors. The processor may provide, for example, for coordination of the other components of the device 2050, such as control of user interfaces, applications run by device 2050, and wireless communication by device 2050.

[0098] Processor 2052 may communicate with a user through control interface 2058 and display interface 2056 coupled to a display 2054. The display 2054 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. The display interface 2056 may comprise appropriate circuitry for driving the display 2054 to present graphical and other information to a user. The control interface 2058 may receive commands from a user and convert them for submission to the processor 2052. In addition, an external interface 2062 may be provided in communication with processor 2052, so as to enable near area communication of device 2050 with other devices. External interface 2062 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.

[0099] The memory 2064 stores information within the computing device 2050. The memory 2064 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Expansion memory 2074 may also be provided and connected to device 2050 through expansion interface 2072, which may include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory 2074 may provide extra storage space for device 2050, or may also store applications or other information for device 2050. Specifically, expansion memory 2074 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, expansion memory 2074 may be provided as a security module for device 2050, and may be programmed with instructions that permit secure use of device 2050. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.

[00100] The memory may include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 2064, expansion memory 2074, memory on processor 2052, or a propagated signal that may be received, for example, over transceiver 2068 or external interface 2062.

[00101] Device 2050 may communicate wirelessly through communication interface 2066, which may include digital signal processing circuitry where necessary. Communication interface 2066 may in some cases be a cellular modem. Communication interface 2066 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 2068. In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 2070 may provide additional navigation- and location-related wireless data to device 2050, which may be used as appropriate by applications running on device 2050.

[00102] Device 2050 may also communicate audibly using audio codec 2060, which may receive spoken information from a user and convert it to usable digital information. Audio codec 2060 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 2050. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 2050.

[00103] The computing device 2050 may be implemented in a number of different forms, as shown in FIG. 20. For example, it may be implemented as a cellular telephone 2080. It may also be implemented as part of a smartphone 2082, personal digital assistant, or other similar mobile device.

Operating Environment

[00104] Implementations of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an

artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).

[00105] The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer- readable storage devices or received from other sources.

[00106] The term "data processing apparatus" encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures. [00107] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language resource), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

[00108] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

[00109] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non- volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[00110] To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending resources to and receiving resources from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.

[00111] Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to- peer networks).

[00112] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some implementations, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.

[00113] A system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.

[00114] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular implementations of particular inventions. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

[00115] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

[00116] Thus, particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain

implementations, multitasking and parallel processing may be advantageous.