Evaluating digital inventories
Claim Score by NHIP
Abstract
Disclosed are a system comprising a computer-readable storage medium storing at least one program, and a computer-implemented method for digital inventories. A database management module provides access to item records and user accounts. The user accounts include respective inventory items. The item records and the inventory items include respective attribute data. An inventory engine accesses an item record corresponding to the target item and a user account corresponding to the target user. The inventory engine, based on the attributes of the item record and the attributes of the inventory items of the user account, analyzes the inventory items of the first user account to determine a compatibility characteristic of the target item relative to the inventory of the target user. The application interface module provides data indicative of the compatibility characteristic for display on the client device.

Term
Projected expiry 7 August 2034.
- Priority and filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1A system comprising:a database management module configured to provide access to item records and user accounts, the user accounts including respective inventory items, the item records and the inventory items including respective attribute data;an application interface module configured to receive, from a client device of a vendor, a first request message to evaluate a target item of an online marketplace in comparison with an inventory of a target user;and an inventory engine, including one or more processors, configured to: access, using the database management module, a first item record corresponding to the target item;access, using the database management module, a first user account corresponding to the target user;and based on attributes of the first item record and attributes of the inventory items of the first user account, analyze the inventory items of the first user account to determine a compatibility characteristic of the target item relative to the inventory of the target user, the application interface module being further configured to provide data indicative of the compatibility characteristic for display within a user interface of the online marketplace rendered on a user device.
- 11Broadest claimClaim Score 47, average(NHIP)A computer-implemented method to evaluate inventory data, the method comprising:receiving, from a client device of a vendor, a first request message to evaluate a target item of an online marketplace in comparison with an inventory of a target user;accessing a first item record of data memory, the first item record corresponding to the target item;accessing a first user account of the data memory, the first user account corresponding to the target user, analyzing, by one or more processors and based on attributes of the first item record and attributes of inventory items of the first user account, the inventory items of the first user account to determine a compatibility characteristic of the target item relative to the inventory of the target user;and providing data indicative of the compatibility characteristic for display within a user interface of the online marketplace rendered on a user device.
- 16A machine-readable storage medium embodying instructions that, when executed by a machine, cause the machine to perform operations comprising:receiving, from a client device of a vendor, a first request message to evaluate a target item of an online marketplace in comparison with an inventory of a target user;accessing a first item record of data memory, the first item record corresponding to the target item;accessing a first user account of the data memory, the first user account corresponding to the target user, analyzing, by one or more processors and based on attributes of the first item record and attributes of inventory items of the first user account, the inventory items of the first user account to determine a compatibility characteristic of the target item relative to the inventory of the target user, and providing data indicative of the compatibility characteristic for display within a user interface of the online marketplace rendered on a user device.
Independent claims3
276 paragraphs in 4 sections, as filed
TECHNICAL FIELD
0001Example embodiments of the present application generally relate to processing data and, more particularly in one embodiment, to a system and method for facilitating digital inventories.
BACKGROUND
0002Marketplaces can be online and/or real world (e.g., brick and mortar). Online marketplaces can include websites or mobile applications where users may buy or sell goods or services (referred to collectively as “items”) from a provider of the online marketplace or other users of the online marketplace. The goods or services (referred to collectively as “items”) are described in a published listing. Similar to online marketplaces, real-world marketplaces may have websites that allows users to view inventory or interact with the real-world marketplace. Any of these online browsing environments may serve online advertisements to users during the course of their pursuits of online activities.
BRIEF DESCRIPTION OF THE DRAWINGS
0003In the drawings, which are not necessarily drawn to scale, like numerals may describe similar components in different views. Like numerals having different letter or numeric suffixes may represent different instances of similar components. The drawings illustrate generally, by way of example, but not by way of limitation, various embodiments discussed in the present document.
0004<figref idref="DRAWINGS">FIG. 1</figref> is a network diagram depicting a client-server system, within which one example embodiment may be deployed.
0005<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating a mobile device, according to an example embodiment.
0006<figref idref="DRAWINGS">FIG. 3</figref> is a network diagram depicting an example embodiment of a digital avatar network including multiple devices forming at least a portion of the client-server system of <figref idref="DRAWINGS">FIG. 1</figref>.
0007<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram illustrating an example embodiment of a digital avatar network forming at least a portion of the client-server system of <figref idref="DRAWINGS">FIG. 1</figref>.
0008<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram illustrating an example embodiment of a digital avatar system including multiple modules forming at least a portion of the client-server system of <figref idref="DRAWINGS">FIG. 1</figref>.
0009<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram illustrating example data structures for a digital avatar system, in accordance with an example embodiment.
0010<figref idref="DRAWINGS">FIGS. 7-11</figref> are interface diagrams illustrating example user interfaces with multiple display elements delivered to a client device of a digital closet system, according to example embodiments.
0011<figref idref="DRAWINGS">FIG. 12</figref> is a flowchart illustrating an example method of generating data to initialize a digital closet account, in accordance with an example embodiment.
0012<figref idref="DRAWINGS">FIG. 13</figref> is a flowchart illustrating an example method of determining compatibility of an item with a digital closet of a user, in accordance with an example embodiment.
0013<figref idref="DRAWINGS">FIG. 14</figref> is a flowchart illustrating an example method of analyzing compatibility of the example method of <figref idref="DRAWINGS">FIG. 13</figref>, in accordance with an example embodiment.
0014<figref idref="DRAWINGS">FIG. 15</figref> is an interaction diagram illustrating a method of providing compatibility data and facilitating recommendations, in accordance with an example embodiment.
0015<figref idref="DRAWINGS">FIGS. 16-22</figref> are interface diagrams illustrating example user interfaces with multiple display elements delivered to a client device for managing user accounts, according to example embodiments.
0016<figref idref="DRAWINGS">FIGS. 23-28</figref> are interface diagrams illustrating example user interfaces with multiple display elements delivered to a client device for utilizing digital avatars, according to example embodiments.
0017<figref idref="DRAWINGS">FIG. 29</figref> is an interface diagram illustrating an example user interface with multiple display elements delivered to a client device for providing product records, according to example embodiments.
0018<figref idref="DRAWINGS">FIG. 30</figref> is a flowchart illustrating an example method of generating avatar data for users, in accordance with an example embodiment.
0019<figref idref="DRAWINGS">FIG. 31</figref> is a flowchart illustrating an example method of creating avatar data, in accordance with an example embodiment.
0020<figref idref="DRAWINGS">FIG. 32</figref> is a flowchart illustrating an example method of configuring an avatar product record, in accordance with an example embodiment.
0021<figref idref="DRAWINGS">FIG. 33</figref> is a flowchart illustrating an example method of linking avatar data, in accordance with an example embodiment.
0022<figref idref="DRAWINGS">FIG. 34</figref> is a flowchart illustrating an example method of proving model data of a user's avatar with a product, in accordance with an example embodiment.
0023<figref idref="DRAWINGS">FIG. 35</figref> is a flowchart illustrating an example method of providing avatar data to users, in accordance with an example embodiment.
0024<figref idref="DRAWINGS">FIG. 36</figref> is a block diagram of a machine in the example form of a computer system within which instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein.
DETAILED DESCRIPTION
0025Reference will now be made in detail to specific example embodiments for carrying out the inventive subject matter. Examples of these specific embodiments are illustrated in the accompanying drawings. It will be understood that they are not intended to limit the scope of the claims to the described embodiments. On the contrary, they are intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the disclosure as defined by the appended claims. In the following description, specific details are set forth in order to provide a thorough understanding of the subject matter. Embodiments may be practiced without some or all of these specific details. In addition, well known features may not have been described in detail to avoid unnecessarily obscuring the subject matter.
0026In accordance with the present disclosure, components, process steps, and/or data structures may be implemented using various types of operating systems, programming languages, computing platforms, computer programs, and/or general purpose machines. In addition, those of ordinary skill in the art will recognize that devices of a less general purpose or nature, such as hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or the like, may also be used without departing from the scope and spirit of the concepts disclosed herein. Embodiments may also be tangibly embodied as a set of computer instructions stored on a computer readable medium, such as a memory device.
0027Example methods and systems for providing a digital inventory system and methods, which are embodied on electronic devices, are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present inventive subject matter may be practiced without these specific details.
0028One concern for implementing e-commerce marketplaces on electronic devices is how to analyze the large amount of data that is stored by the online marketplace applications and that is communicated over telecommunication and/or computer networks to users. For example, an online marketplace application may include data for a large number of items, each item having one or more variations. However, only a subset of the data may correspond to items and/or variations of items that are useful to a user. For instance, the user may already own particular items of the online marketplace application. Also, particular categories of items and/or variations of items may not be compatible, or even conflict, with items that the user already owns. It may be difficult for the user to manually identify whether or not the data for an item is useful. For example, the user may lack the time, knowledge, or expertise to match and compare the data of the item with the items that the user owns in order to evaluate compatibility of the item of the online marketplace application. Accordingly, there is a need to process and analyze the data of online marketplaces applications in order to operate online marketplace applications.
0029Additionally, another concern for e-commerce sellers is how to provide a shopping experience that is similar to shopping at a brick and mortar store. Shopping in a physical retail store evokes an emotional response: seeing the clothing, touching the items, hearing the store music, and seeing how one looks in the apparel. There can also be a social aspect. Groups of people may shop together, thereby facilitating recommendations of outfits, feedback on how items look on their friends, and any number of social interactions.
0030In contrast, online marketplaces may attempt to demonstrate how an item looks by showing an image of the item on a professional model. It may be difficult for users to envision how the item may look on the user instead. Moreover, online marketplaces may not effectively facilitate social interactions between users. That is, e-commerce shopping may provide a more solitary experience than shopping at a brick-and-mortar store. E-commerce shopping, therefore, may not include some of the fun, social aspects that may be enjoyed by shopping at brick-and-mortar stores.
0031One result of online marketplaces not being able to match these in-store experiences is that users may be discouraged from making purchases. The problem arises as how to provide an e-commerce shopping experience that has some of the features of shopping at a brick and mortar store.
0032Example embodiments will be described, by way of example, in the context of items relating to clothing and accessories (e.g., watches, belts, jewelry, shoes, socks, purses, etc.). It will be appreciated, however, that items may be any suitable items, such as, but are not limited to, makeup and other cosmetics, accessory items, food, pharmaceuticals, furniture, toys, tools, electronic devices, vehicles, media content, memorabilia, antiques, collectibles, tools, games, and equipment, to provide a few examples.
0033In an example embodiment, a digital inventory system stores data records for generating digital representations of physical items of a registered user (e.g., a user having a corresponding user account of the digital inventory system). Each data record may include image data for rendering a visual depiction of the corresponding physical item. Furthermore, the data record may include data (e.g., tags and metadata) describing attributes of the item. The digital inventory system may keep data records of any type of item, which may include items a user owns (e.g., past purchases), items the user would like to own (e.g., wish list items), saved combinations of items (e.g., outfits), and the like. A user interface of the digital inventory system may be presented to the user as including a virtual environment containing the digital representations of items.
0034In an example aspect, online marketplaces may interface with the digital inventory system to access data, features, and/or services of the digital inventory system. These online marketplaces may be referred to as “registered online marketplaces” herein. In an example embodiment, a registered user may access a product webpage of a registered online marketplace. The registered online marketplace may transmit data or code for providing a user interface element selectable to evaluate the selected product relative to the digital inventory of the registered user. In response, the digital inventory system may process the data of the registered online marketplace (e.g., attribute data of the item record) and data of the registered user (e.g., attribute data of the items of the user account). The digital inventory system may transmit data to the user (e.g., directly to the client device of the user or indirectly via the registered online marketplace) to display an indication of a characteristic of compatibility.
0035In an example embodiment, a characteristic of compatibility may include a measure of the number of matching outfits that may be formed from the target clothing item and the clothing inventory of the target user and/or the estimated cost per use of the target item. A measure of the number of matching outfits may be given, for example, as a number of matching outfits or as a percentage of items of the inventory that the target item is compatible with.
0036In another example embodiment, a digital avatar system provides data for displaying a digital avatar of the user. For example, a digital avatar may be generated, in part, based on measurement data of the user in order to provide a realistic look. Moreover, online marketplaces, such as websites or mobile applications, may support features that facilitate configuring a digital avatar to be shown as wearing the items of the online marketplace. As such, a user shopping on the online marketplace may select one or more products for displaying the selected product on a digital avatar of the user. The digital avatar may be generated based on the measurement data of the user and the size of the selected product. In this way, the user may see a digital representation of the user wearing the product so that the user can evaluate how the product looks on the user.
0037Additionally or alternatively, the data for generating the digital avatars may be shared between users, for example, by using a social network. In one aspect, a user may dress the digital avatar of a friend. Moreover, the user may share the “dressed up” digital avatar of the friend with the friend as a way to recommend an item, such as a shirt, a pair of jeans, a hat, or the like. Additionally or alternatively, a user may share his or her own digital avatar configured with one or more selected products in order to obtain comments from friends and/or contacts.
0038By allowing users to share digital avatar data with other users, a digital avatar system may facilitate “e-stylist” services. For example, a user (“customer”) may hire a professional e-stylist who has access to the digital avatar data of the customer. The e-stylist may send to the customer one or more versions of the user's digital avatar. Each version may correspond to a different look, such as a different outfit. The professional e-stylist may receive compensation for products purchased based on the e-stylist's recommendations. It will be appreciated that friends of the user may serve as e-stylists, with or without compensation. Moreover, online marketplaces may provide paid or free e-stylist services to recommend targeted products to the customers.
0039<figref idref="DRAWINGS">FIG. 1</figref> is a network diagram depicting a client-server system <b>100</b>, within which one example embodiment may be deployed. A networked system <b>102</b>, in the example form of a network-based marketplace or publication system, provides server-side functionality, via a network <b>104</b> (e.g., the Internet or Wide Area Network (WAN)) to one or more clients. <figref idref="DRAWINGS">FIG. 1</figref> illustrates, for example, a web client <b>106</b> (e.g., a browser), and a programmatic client <b>108</b> executing on respective client machines/devices <b>110</b> and <b>112</b>. Herein, client devices <b>110</b> may be referred to as “user devices” in various applications.
0040An Application Program Interface (API) server <b>114</b> and a web server <b>116</b> are coupled to, and provide programmatic and web interfaces respectively to, one or more application servers <b>118</b>. The application servers <b>118</b> host one or more marketplace applications <b>120</b>, payment applications <b>122</b>, and the avatar platform <b>123</b>. The application servers <b>118</b> are, in turn, shown to be coupled to one or more database servers <b>124</b> that facilitate access to one or more databases <b>126</b>.
0041The marketplace applications <b>120</b> may provide a number of marketplace functions and services to users that access the networked system <b>102</b>. The payment applications <b>122</b> may likewise provide a number of payment services and functions to users. The payment applications <b>122</b> may allow users to accumulate value (e.g., in a commercial currency, such as the U.S. dollar, or a proprietary currency, such as “points”) in accounts, and then later to redeem the accumulated value for items that are made available via the marketplace applications <b>120</b>.
0042Further, while the system <b>100</b> shown in <figref idref="DRAWINGS">FIG. 1</figref> employs a client-server architecture, the present inventive subject matter is of course not limited to such an architecture, and could equally well find application in a distributed, or peer-to-peer, architecture system, for example. The various marketplace and payment applications <b>120</b>, <b>122</b> could also be implemented as standalone software programs, which do not necessarily have networking capabilities.
0043In addition, while the various marketplace and payment applications <b>120</b>, <b>122</b> have been described above as having separate functionalities, in alternative embodiments these functionalities may be performed by any one or more of the various marketplace and payment applications <b>120</b>, <b>122</b>.
0044The web client <b>106</b> accesses the various marketplace and payment applications <b>120</b> and <b>122</b> via the web interface supported by the web server <b>116</b>. Similarly, the programmatic client <b>108</b> accesses the various services and functions provided by the marketplace and payment applications <b>120</b> and <b>122</b> via the programmatic interface provided by the API server <b>114</b>. The programmatic client <b>108</b> may, for example, be a seller application (e.g., the TURBOLISTER™ application developed by EBAY INC.™, of San Jose, Calif.) to enable sellers to author and manage listings on the networked system <b>102</b> in an off-line manner, and to perform batch-mode communications between the programmatic client <b>108</b> and the networked system <b>102</b>.
0045<figref idref="DRAWINGS">FIG. 1</figref> also illustrates a third party application <b>128</b>, executing on a third party server machine <b>130</b>, as having programmatic access to the networked system <b>102</b> via the programmatic interface provided by the API server <b>114</b>. For example, the third party application <b>128</b> may, utilizing information retrieved from the networked system <b>102</b>, support one or more features or functions on a website hosted by the third party. The third party website may, for example, provide one or more promotional, marketplace, or payment functions that are supported by the relevant applications of the networked system <b>102</b>.
Example Mobile Device
0046<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating a mobile device <b>200</b>, according to an example embodiment. The mobile device <b>200</b> may include a processor <b>202</b>. The processor <b>202</b> may be any of a variety of different types of commercially available processors suitable for mobile devices (for example, an XScale architecture microprocessor, a Microprocessor without Interlocked Pipeline Stages (MIPS) architecture processor, or another type of processor). A memory <b>204</b>, such as a random access memory (RAM), a Flash memory, or other type of memory, is typically accessible to the processor <b>202</b>. The memory <b>204</b> may be adapted to store an operating system (OS) <b>206</b>, as well as application programs <b>208</b>, such as a mobile location enabled application that may provide Location Based Services (LBSs) to a user. The processor <b>202</b> may be coupled, either directly or via appropriate intermediary hardware, to a display <b>210</b> and to one or more input/output (I/O) devices <b>212</b>, such as a keypad, a touch panel sensor, a microphone, and the like. Similarly, in some embodiments, the processor <b>202</b> may be coupled to a transceiver <b>214</b> that interfaces with an antenna <b>216</b>. The transceiver <b>214</b> may be configured to both transmit and receive cellular network signals, wireless data signals, or other types of signals via the antenna <b>216</b>, depending on the nature of the mobile device <b>200</b>. Further, in some configurations, a GPS receiver <b>218</b> may also make use of the antenna <b>216</b> to receive GPS signals.
0000Example Digital Inventory and/or Avatar Systems
0047<figref idref="DRAWINGS">FIG. 3</figref> is a network diagram depicting an example embodiment of a digital avatar network <b>300</b> including multiple devices forming at least a portion of the client-server system <b>100</b> of <figref idref="DRAWINGS">FIG. 1</figref>. The digital avatar network <b>300</b> may include one or more client devices (or “user devices”) <b>110</b>A-L, one or more servers <b>118</b>A-N, and one or more databases <b>126</b>A-N. The digital avatar server <b>118</b>N may embody a digital inventory system, a digital avatar system, or both.
0048In the illustrated embodiment, the one or more user devices <b>110</b>A-<b>110</b>L are interconnected to one or more online marketplace servers <b>118</b>A-<b>118</b>M via the network <b>104</b> for communicating online marketplace resources and/or data (e.g., data or code related to a webpage or software application of the online marketplace). The databases <b>126</b>A-M may store data of the respective online marketplaces and/or marketplace accounts of the users of the devices <b>110</b>A-L. Additionally, the digital avatar server <b>118</b>N may be interconnected to the user devices <b>110</b>A-L and the online marketplace servers <b>118</b>A-M via the network <b>104</b> for providing digital inventory and/or digital avatar services for the user's and/or the online marketplaces.
0049One concern with e-commerce shopping is that each online marketplace may have separate databases storing respective item records. As such, the online marketplaces may not have access to each other's databases. Moreover, each online marketplace may store item records using different formats and different standards. As such, the data between the online marketplaces may not be compatible. This may be an issue for consumers trying to evaluate an item of an online marketplace with the items that the user owns because the inventory items may have been purchased through different online marketplaces. Accordingly there is a need for a device that can manage data between the online marketplaces.
0050In an example embodiment, as will be described in greater detail below, the digital avatar server <b>118</b>N may interface with the online marketplace servers <b>118</b>A-M through the network <b>104</b>. Accordingly, the online marketplace servers <b>118</b>A-N may register with the digital avatar server <b>118</b>N as vendor clients, which may include, e.g., communicatively coupling to the digital avatar server <b>118</b>N and receiving access to services of the digital avatar server <b>118</b>N. Furthermore, the user devices <b>110</b>A-L may also register with the digital avatar server <b>118</b>N as user clients. The digital avatar server <b>118</b>N may store product records and user accounts in a consistent way so that the item data of the online marketplaces may be compared.
0051For example, in operation, the user devices <b>110</b>A-L may render user interfaces of online marketplaces to browse and purchase items. The user interfaces may be rendered based on data provided by the online marketplace servers <b>118</b>A-M. Each of the online marketplace servers <b>118</b>A-M may correspond to different vendors (e.g., retailers). In one example embodiment, the online marketplaces may correspond to clothing retailers. However, it will be appreciated that in alternative embodiments, other types of marketplaces are contemplated. For example, example marketplaces may include any marketplace selling items that may be placed on the user's person (e.g., makeup and other cosmetics), items that the user may be placed in or on the item (e.g., a car, furniture, and the like), or any physical or digital product (e.g., media content, memorabilia, antiques, collectibles, tools, games, equipment, etc.).
0052As will be described in greater detail below, user interfaces may display a digital representation of the digital inventory of a user. For example, the users of the user devices <b>100</b>A-L may create respective user accounts for storing data related to items of a digital inventory. For example, the user device <b>110</b>A may connect to the digital avatar server <b>118</b>N via a dedicated website, via a marketplace website, or an application executing on the user device <b>110</b>A. Once connected, the user device <b>110</b>A may transmit data to the digital avatar server <b>118</b>N for creating or modifying a user account. The user account may include data for cataloguing items of the user and for generating a digital representation of the items, which will be described in greater detail later in connection with <figref idref="DRAWINGS">FIG. 6</figref>.
0053Additionally or alternatively, user interfaces may display a digital avatar of a user for showing the digital avatar with a selected item. For example, the users of the user devices <b>110</b>A-L may create respective user accounts for storing data related to digital avatars. For example, the user device <b>110</b>A may connect to the digital avatar server <b>118</b>N via a dedicated website, via a marketplace website, or an application executing on the user device <b>110</b>A. Once connected, the user device <b>110</b>A may transmit data to the digital avatar server <b>118</b>N for creating or modifying a user account. The user account may include data for generating a digital avatar of the user, which will be described in greater detail later in connection with <figref idref="DRAWINGS">FIG. 6</figref>.
0054On the vendor side, the respective online marketplace servers <b>118</b>A-M may create vendor accounts. An example of a data structure of a vendor account will be described in greater detail later in connection with <figref idref="DRAWINGS">FIG. 6</figref>. With a vendor account, an online marketplace server (e.g., one of the servers <b>118</b>A-M) may provide the digital avatar server <b>118</b>N data for creating a product record. The product record may be used in conjunction with data of a selected user account for generating a digital avatar in the selected product.
0055In an example embodiment, each of the online marketplace servers <b>118</b>A-M may access the digital avatar server <b>118</b>N to access the user accounts stored in the database <b>126</b>N. In this way, for example, the digital avatar server <b>118</b>N may provide avatar data as a service. Moreover, in some embodiments, the digital avatar network <b>300</b> may define interfaces and protocols for providing avatar services such that a user account may be used by the plurality of online marketplace servers <b>118</b>A-M. As such, an avatar may be generated as wearing items from two or more online marketplaces. In another embodiment, users of the user devices <b>100</b>A-L may share avatar data with other users, as will be described in greater detail.
0056<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram illustrating an example embodiment of a digital avatar network <b>400</b> forming at least a portion of the client-server system <b>100</b> of <figref idref="DRAWINGS">FIG. 1</figref>. The digital avatar network <b>400</b> includes an avatar platform <b>402</b>, an enterprise platform <b>404</b>, an enterprise client website/application (“enterprise client”) <b>406</b>, and a client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>. The avatar platform <b>402</b> may include a web front module <b>408</b>, an enterprise module <b>410</b>, and one or more APIs <b>412</b> for interacting with the enterprise platform <b>404</b> and/or the client machine <b>110</b>. The enterprise platform <b>404</b> may include remote tools <b>414</b>. The avatar platform <b>402</b> may correspond to the digital avatar server <b>118</b>N of <figref idref="DRAWINGS">FIG. 3</figref>. The enterprise platform <b>404</b> and the enterprise client <b>406</b> may correspond to one or more of the online marketplace servers <b>118</b>A-M of <figref idref="DRAWINGS">FIG. 3</figref>. In alternative embodiments, the components of <figref idref="DRAWINGS">FIG. 4</figref> may be included by alternative components of <figref idref="DRAWINGS">FIG. 1</figref>.
0057The enterprise module <b>410</b> of the avatar platform <b>402</b> may facilitate integrating information for customization with the enterprise platform <b>404</b> and the remote tools <b>414</b>. For example, the enterprise module <b>410</b> may provide configuration and rules-based options that provide vendors the capability to decide on which digital avatar feature need to be made available to users on their sites. For example, a vendor may provide a template of a product record. The template may designate that a front view image of the digital avatar must be provided in order for the product to comply with the digital avatar services. The enterprise module <b>410</b> may provide options for users to “share” their avatar data with others for pair-shopping (so you can “take your avatar friend” shopping with you). The enterprise module <b>410</b> may also provide options for users to go virtual shopping with avatars of family members, friends, contacts, or other users. As stated above, a user may share avatar data with other users so the users can “take you out” shopping on partner websites.
0058The web front module <b>408</b> may provide a customer-facing user interface module for capturing the customer attributes. In an example embodiment, a user may upload photos in certain poses (so that measurements can be digitize in a standard manner). Dress attributes for a user may be captured based on, for example, 2-3 photos that user uploaded. As will be described in detail below, using the photos, as well as the height and/or weight of the user, the avatar platform <b>402</b> may identify dress measurements (e.g., six or more measurements) that a tailor may use. Accordingly, in one example embodiment, the avatar platform <b>402</b> may serve as an “e-tailor” system for automated custom dress measurements and fittings. It will be appreciated that the avatar platform <b>402</b> may digitally measurements of the user based on uploaded user photos using mathematical algorithm or third party APIs.
0059The web front module <b>408</b> may provide a user interface prompting users to input specified attributes—such as, but not limited to, age, favorite color, style choices, etc. The web front module <b>408</b> may prompt users to input other optional features like family, area of residence, etc. The avatar platform <b>402</b> may save this information in a user account (also referred to herein as “user record”). Users may update or edit the user account via the web front module <b>408</b> in an example embodiment.
0060The APIs <b>412</b> may make user account data available to third-party applications and/or services. For example, within applications of the avatar platform <b>402</b>, as well as external applications (e.g., third-party online vendors), APIs <b>412</b> may integrate products, webpages, applications, services, and the like with digital avatar data. For example, the remote tools <b>414</b> may facilitate creating or modifying product records that support digital avatar services. The data to create or modify product records may be sent to the digital avatar platform <b>402</b> through a vendor-facing portion of the APIs <b>412</b>. Accordingly, the avatar platform <b>402</b> may facilitate integration with third party systems, such as Mobile/Tablet apps, Business-to-Consumer (B2C), web service calls, etc., and may facilitate licensing avatar data and/or services.
0061As stated above, the enterprise platform <b>404</b> and remote tools <b>414</b> may provide the administrator a way to set up an online marketplace for the digital avatar network <b>400</b>. For example, the administrator may indicate that an item is avatar enabled, whereas other items may not be. The remote tools <b>414</b> may prompt the vendor user to enter attributes for the item. The avatar platform <b>402</b> may provide a preview of the item on a default avatar profile after which the administrator may confirm and save the settings. The remote tools <b>414</b> may also provide the administrator with the ability to apply the same settings to multiple items using a template of attributes.
0062<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram illustrating an example embodiment of a digital avatar system <b>500</b> including multiple modules forming at least a portion of the client-server system of <figref idref="DRAWINGS">FIG. 1</figref>. The modules <b>502</b>-<b>512</b> of the illustrated digital avatar system <b>500</b> include an application interface module(s) <b>502</b>, a database management module(s) <b>504</b>, an inventory engine module(s) <b>505</b>, a graphics processing module(s) <b>506</b>, a communication interface module(s) <b>508</b>, an authentication module(s) <b>510</b>, and a web-front module <b>512</b>. The application interface module(s) <b>502</b> includes a user-facing sub-module(s) <b>514</b>, a vendor-facing sub-module(s) <b>516</b>, and the third-party facing sub-module(s) <b>518</b>, which may correspond to APIs <b>412</b>. The database management module(s) <b>504</b> may include a user database sub-module(s) <b>520</b>, a vendor database sub-module(s) <b>522</b>, and a product database sub-module(s) <b>526</b>.
0063In some embodiments, the components of the digital avatar system <b>500</b> can be included in the avatar platform <b>123</b> of <figref idref="DRAWINGS">FIG. 1</figref>. However, it will be appreciated that in alternative embodiments, one or more components of the digital avatar system <b>500</b> described below can be included, additionally or alternatively, in other devices, such as one or more of the applications <b>120</b>, <b>122</b>, the servers <b>114</b>, <b>116</b>, <b>118</b>, <b>130</b>, the network <b>104</b>, and/or the client machines <b>110</b>, <b>112</b> of <figref idref="DRAWINGS">FIG. 1</figref>.
0064The modules <b>502</b>-<b>512</b> of the digital avatar system <b>500</b> may be hosted on dedicated or shared server machines (not shown) that are communicatively coupled to enable communications between server machines. Each of the modules <b>502</b>-<b>512</b> are communicatively coupled (e.g., via appropriate interfaces) to each other and to various data sources, so as to allow information to be passed between the modules <b>502</b>-<b>512</b> of the digital avatar system <b>500</b> or so as to allow the modules <b>502</b>-<b>512</b> to share and access common data. The various modules of the digital avatar system <b>500</b> may furthermore access one or more databases <b>126</b> via the database servers <b>124</b>.
0065The digital avatar system <b>500</b> may facilitate generating and displaying digital inventory data and/or digital avatar data corresponding to a digital representation of a user with a product. The digital avatar system <b>500</b> may receive user data for generating or updating user accounts containing inventory data, measurement data, and/or image data of the user. Likewise, the digital avatar system <b>500</b> may receive vendor data for generating or updating vendor accounts, which may include one or more product records. For example, each product record may include one or more variations of image data to provide model data for sizes of the product on various sizes of avatars (e.g., a size-small shirt on a size-15 avatar, a size-medium shirt on a size-15 avatar, a size-medium shirt on a size-15.5 avatar, etc.).
0066To this end, the digital avatar system <b>500</b> is shown to include the application interface module(s) <b>502</b>, the database management module(s) <b>504</b>, the inventory engine module(s) <b>505</b>, the graphics processing module(s) <b>506</b>, the communication interface module(s) <b>508</b>, the authentication module(s) <b>510</b>, and the web-front module(s) <b>512</b>, which may serve to provide digital avatars.
0067The application interface module(s) <b>502</b> may be a hardware-implemented module which may be configured to communicate data with client devices. From the perspective of the digital avatar system <b>500</b>, client devices may include user devices, such as client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>, and/or vendor devices, such as application servers <b>118</b> of <figref idref="DRAWINGS">FIG. 1</figref>. For example, the digital avatar system <b>500</b> may support digital inventory and digital avatar services for both user devices and vendor devices. The application interface module(s) <b>502</b> may include the user-facing sub-module(s) <b>514</b> and the vendor-facing sub-module(s) <b>516</b> for interfacing with user devices and vendor devices, respectively.
0068Additionally or alternatively, the digital avatar system <b>500</b> may communicate with third party devices for providing or receiving data or services. Third party devices may include vendors that provide data storage or processing, such as image processing or social networking services. Another example of a third-party device may be e-stylists who utilize data and services of the digital avatar system <b>500</b> for making recommendations to, and/or purchases on the behalf of, other users. It will be appreciated that an e-stylist may provide free or paid services. For example, a professional e-stylist may receive a commission from either the user or vendors for purchases. As another example, an e-stylist may be a friend or contact of the user and may provide recommendations as a free social activity. Accordingly, the application interface module(s) <b>502</b> may include the third-party-facing sub-module(s) <b>518</b> for interfacing with third-party devices and facilitating third-party services.
0069In operation, the application interface module(s) <b>502</b> may receive an evaluate request message from a client device of a vendor. For example, the vendor-facing sub-module(s) <b>516</b> may receive a request message to evaluate a target item of an online marketplace in comparison with an inventory of a target user. The evaluate request message may include identification data of the target item and the target user. As will be described later, in one example embodiment, the request message may be sent to the application interface module(s) <b>502</b> in response to the client selecting a control element of a user interface of an online marketplace.
0070Additionally or alternatively, the application interface module(s) <b>502</b> may receive an avatar request message that corresponds to a request to render a digital representation of a target user combined with a target product. For example, the target user may correspond to the requesting user or a contact who provided access privileges to the contact's avatar data. An example of a digital representation of a target user combined with the target product includes the digital avatar of the target user being displayed as wearing the target product, which may be an article of clothing or a fashion accessory.
0071The vendor-facing sub-module(s) <b>516</b> of the application interface module(s) <b>502</b> may facilitate interfacing the digital avatar system <b>500</b> with a vendor application, such as the online marketplace servers <b>118</b>A-M of <figref idref="DRAWINGS">FIG. 3</figref>. The vendor-facing sub-module(s) <b>516</b> may receive data from a vendor application as input and may provide data to a vendor application as output. Moreover, the vendor-facing sub-module(s) <b>516</b> may facilitate transcoding messages from one format to another format for supporting multiple interface definitions.
0072In one aspect, the vendor-facing sub-module(s) <b>516</b> may receive vendor data and/or product data from an online marketplace client device for generating vendor accounts and product records. For example, a vendor application may register an account with the digital avatar server <b>118</b>N (<figref idref="DRAWINGS">FIG. 3</figref>) by providing the vendor-facing sub-module(s) <b>516</b> account data. Moreover, the vendor application may create one or more product records. The product records may include image data and attribute data suitable for a digital inventory. Furthermore, the product records may, additionally or alternatively, be suitable for providing at least a portion of a digital avatar, as well as defining one or more attributes. Example embodiments of a vendor account and a product record will be described later in greater detail in connection with <figref idref="DRAWINGS">FIG. 6</figref>.
0073As stated, the third-party-facing sub-module(s) <b>518</b> of the application interface module(s) <b>502</b> may facilitate interfacing the digital avatar system <b>500</b> with third party devices. The third-party-facing sub-module(s) <b>518</b> may receive data from third-party applications as inputs and transmit data to the third party applications as output. Examples of third-party applications may include server and/or client applications that may facilitate generating avatar data, linking data between users, providing data storage, and the like.
0074The database management module(s) <b>504</b> may be a hardware-implemented module which may maintain account and record data, such as user accounts, vendor accounts, and/or product accounts, for facilitating digital inventory and/or digital avatar services. Accordingly, in the illustrated embodiment, the database management module(s) <b>504</b> includes sub-modules <b>520</b>, <b>522</b>, <b>526</b>, for managing respective user account, vendor account, and product record databases. The database management module(s) <b>504</b> may interface with one or more data storage devices, such as the database(s) <b>126</b> of <figref idref="DRAWINGS">FIG. 1</figref>, to read or write data.
0075In one example embodiment, the database management module(s) <b>504</b> may be configured to provide access to item records (also referred to as “product records”) and user accounts. The user accounts may include respective inventory items. The item records and the inventory items may each include respective attribute data. Attribute data may facilitate comparisons of an item of an online marketplace with items of an inventory.
0076In operation, the database management module(s) <b>504</b> may update the data storage devices based on data received by the application interface module(s) <b>502</b>. For example, the user-facing sub-module(s) <b>514</b> may provide data to the user database sub-module(s) <b>520</b> as an input for creating, updating, or linking user accounts. Likewise, the vendor-facing sub-module(s) <b>516</b> may provide data to the vendor database sub-module(s) <b>522</b> as an input for creating or updating vendor accounts and/or product records.
0077Moreover, the database management module(s) <b>504</b> may facilitate providing model data for rendering digital avatars by accessing data stored in the user and product databases. For example, in response to an avatar request message, the database management module(s) <b>504</b> may select a first user account (or “user record”) from a user database stored on the data storage devices. The selection may be based on a user identifier associated with, or included by, the avatar request message. The user account may include measurement data and image data of the corresponding user (collectively forming at least a portion of the user's “avatar data”). Furthermore, the database management module(s) <b>504</b> may select a product record from a second database based on the product identifier. The product record may include one or more images for generating, with the user's avatar data, model data of the digital avatar.
0078Additionally or alternatively, the database management module(s) <b>504</b> may facilitate sharing avatar data between users. For example, the application interface module(s) <b>502</b> may receive a share request message for requesting that data of a first user account be shared with a second user. For example, the share request message may include a first identifier indicative of a first user record and a second identifier indicative of a second user record.
0079The database management module(s) <b>504</b> may, in turn, provide or write linking data to the second user account. The linking data may facilitate access to the user record of the first user for the second user. In one embodiment, the database management module(s) <b>504</b> may access, based on the second identifier, the second user record from the first database. The database management module(s) <b>504</b> may also write linking data to the second user record. The linking data, as stated, may provide access privileges to the first user record for the second user. Consequently, a friend or contact of a user may gain access privileges to the user's avatar data.
0080The inventory engine module(s) <b>505</b> may be a hardware-implemented module which may facilitate digital inventories. For example, the inventory engine module(s) <b>505</b> may receive data from the application interface module(s) <b>502</b> as input. The input data may correspond to data for item records, as will be discussed in greater detail in connection with <figref idref="DRAWINGS">FIG. 6</figref>. Furthermore, the input data may correspond to control messages, such as a request to analyze a digital inventory of a target (e.g., selected) user.
0081The inventory engine module(s) <b>505</b> may provide data to the application interface module(s) <b>502</b> as output. For example, output data may correspond to a characteristic of compatibility. In an example embodiment, for example, the inventory engine module(s) <b>505</b> may provide a user device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>) data including a measure of the number of outfits that may be formed from the target clothing item and the clothing inventory of the target user, the estimated cost per use of the target item, and recommendation for alternative items (with a corresponding measure of matching outfits and/or cost per use). The inventory engine module(s) <b>505</b> may provide the output data in response to receiving a request message from the application interface module(s) <b>502</b>.
0082In operation, the inventory engine module(s) <b>505</b> may access, using the database management module(s) <b>504</b>, an item record corresponding to a target item indicated by an evaluate request message. Furthermore, the inventory engine module(s) <b>505</b> may access, using the database management module(s) <b>504</b>, a user account corresponding to the target user indicated by the evaluate request message. In particular, the inventory engine module(s) <b>505</b> may access attributes of the item record and attributes of the inventory items of the user account. In one embodiment, the target item and the inventory items of the user account may correspond to clothing items.
0083Based on the attributes, the inventory engine module(s) <b>505</b> may analyze the inventory items of the first user account to determine a compatibility characteristic of the target item relative to the inventory of the target user. The compatibility characteristic may include a measure of the number of outfits that can be formed by the target item and one or more of the inventory items of the user account. Additionally or alternatively, the application interface module(s) <b>502</b> may provide data indicative of the compatibility characteristic for display on the client device.
0084The inventory engine module(s) <b>505</b> may analyze the inventory items by applying a compatibility rule to the attributes of the item record and the attributes of the inventory items of the user account. The compatibility results may determine whether two items are compatible with each other. Compatibility may be based on one or more of color, clothing type (shirt, pants, shorts, skirt, dress, suit, jacket, socks, etc.), level of formalness (formal, business causal, causal, sportswear, etc.), style type (trendy, preppy, funky, punk, street, classy, avant-garde, sporty, etc.), and the like.
0085After applying the compatibility rule, the inventory engine module(s) <b>505</b> may apply an outfit rule to the results to determine a number of outfit combinations. The outfit rule may specify which other types of clothing items can be combined with the target item to form an outfit. As such, the inventory engine module(s) <b>505</b> may generate combinations of the compatible inventory items with the target item to form outfits. The inventory engine module(s) <b>505</b> may count the number of possible outfits.
0086The compatibility characteristic may be based on the number of possible outfits formed from compatible inventory items. For example, the compatibility characteristic may include the number of possible outfits, the percentage of the compatible inventory items, and the like. Additionally, the number of possible outfits formed from compatible inventory items may be used to determine a cost per wear or use of the target item.
0087The inventory engine module(s) <b>505</b> may determine a cost per wear or use of the target item based on a variety of factors. For example, the cost per use may determine a cost per use by determining a frequency of the use of the target item. For example, a frequency may be determined based on the preferences of the user matching the attributes of the target item. Preferences may include a preferred color, clothing type, level of formalness, or the style type. The number of potential uses of the target item may be determine for a duration (e.g., two years) of use of the target item based on the frequency. Accordingly, a cost per use of the target item may be determined based at least on a cost of the target item divided by the number of uses.
0088In an example embodiment, the inventory engine module(s) <b>505</b> may automatically repeat the analysis using a variation of the target item to determine second compatibility characteristic. For example, the second analysis may be performed to provide an alternative recommendation to the user. The application interface module(s) <b>502</b> may provide data indicative of the second compatibility characteristic for display on the client device.
0089The graphics processing module(s) <b>506</b> may be a hardware-implemented module which may be configured to process image data. For example, the graphics processing module(s) <b>506</b> may facilitate determining measurement data of users and/or generating model data for displaying a digital avatar. For example, in one embodiment, the user-facing sub-module(s) <b>514</b> may receive one or more images of the users and provide the images to the graphics processing module(s) <b>506</b> for processing. In turn, the graphics processing module(s) <b>506</b> may determine, with or without user intervention, measurement data of the user based on the one or more images. For example, in one embodiment, the graphics processing module(s) <b>506</b> identifies a plurality of points (“POIs”) in the images of the user. Based on a reference measurement, such as the user's height, the graphics processing module(s) <b>506</b> may determine one or more measurements of the users from the distances between the identified POIs.
0090As stated, the graphics processing module(s) <b>506</b> may also determine or generate model data of the target user and the target product for displaying the digital avatar. For example, the graphics processing module(s) <b>506</b> may determine the model data based on the selected user account and the selected product account. The selected user account may provide measurement data of the user, which may be used to select image data of the product record. Furthermore, the selected user account may include image data of the user, such as an image of the user's head and neck. The model data may be based on combining the image data of the selected user accounts and the data of the product record.
0091The communication interface module(s) <b>508</b> may be a hardware-implemented module which may facilitate the flow of the information, data, and/or signals between the modules <b>502</b>-<b>512</b>. In addition, the communication module(s) <b>508</b> can be configured to support communication of the digital avatar system <b>500</b> between the servers and client machines of <figref idref="DRAWINGS">FIG. 1</figref>. For instance, the communication interface module(s) <b>508</b> may be configured to provide a response message including the model data to display the digital avatar on a user device.
0092The authentication module(s) <b>510</b> may be a hardware-implemented module which may facilitate authentication of data provided from user devices and vendor devices. For example, the authentication module(s) <b>510</b> may receive an authentication request message for authenticating a client device. Based on the authentication request message, the authentication module(s) <b>510</b> may determine whether the client device passes authentication. The database management module(s) <b>504</b> may provide access to a user database in accordance with a determination that the client device passes authentication.
0093The web-front module(s) <b>512</b> may be a hardware-implemented module which may provide data for displaying web resources on client devices. For example, the digital avatar system <b>500</b> may provide a webpage for users and vendors to log in and create accounts and update the account information. The web-front module(s) <b>512</b> may provide user interfaces for users to provide measurement data and manage a personal closet and for vendors to create and manage product records.
Example Data Structures
0094<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram <b>600</b> illustrating example data structures <b>602</b>, <b>604</b>, <b>606</b> for a digital avatar system <b>500</b>, in accordance with an example embodiment. The data structure <b>602</b> may correspond to a data structure of a user account. The data structure <b>602</b> may include an authentication data field <b>612</b>, a product history data field <b>614</b>, an avatar data field <b>616</b>, and a linking data field <b>618</b>. The avatar data field <b>616</b> may include a preferences data field <b>620</b>, a sizing data field <b>622</b>, and image data field <b>624</b>. The linking data field <b>618</b> may include a third-party links data field <b>626</b> and a contacts list data field <b>628</b>. The data structure <b>604</b> may correspond to a data structure of a product record. The data structure <b>604</b> may include a product identifier data field <b>630</b>, an attributes array <b>634</b>, and an image data array <b>636</b>. The element <b>638</b> of the image data array <b>636</b> may include attributes data field <b>640</b>, one or more of view data fields <b>642</b>-<b>646</b>. The data structure <b>606</b> may correspond to a vendor account, which may include a vendor identifier data field <b>650</b>, an authentication data field <b>652</b>, an inventory data field <b>654</b>, and a linking data field <b>656</b>.
0095In connection with the user account, the user identifier data field <b>610</b> may correspond to data usable to identify a user. For example, each user may have a unique username or code to identify the corresponding user account. In this way, the username or code may be matched to the data field <b>610</b> to determine whether or not the data structure <b>602</b> corresponds to a particular user. Moreover, the authentication data field <b>612</b> may include data for verifying and validating the user. In one embodiment, the authentication data field <b>612</b> may correspond to data for determining whether or not user login data (e.g., a password) matches an expected login data.
0096The product history data field <b>614</b> may include data usable to identify one or more products that the user has purchased or owns. Purchase history may be tracked by online marketplace applications. Products that the owner currently owns may be provided by the user. Furthermore, in some embodiments, the product history data field <b>614</b> may also be used to identify one or more products of a wish list or gift list. The product history data field <b>614</b> may serve to provide an inventory of products that may be used to configure the user's digital avatar and/or to use to generate recommendations to the user.
0097The avatar data field <b>616</b> may include data that is descriptive of the user. The preferences data field <b>620</b> may include attributes. Example attributes may include the user's height, weight, skin color (which may be indicated by a user selection of a color from a palette), age, gender, and the like descriptors. Moreover, the preferences data field <b>620</b> may include data corresponding to one or more user preferences, such as whether or not the user prefers certain types of clothing (e.g., shirts, pants, skirts, casual clothing, formal closing, funky clothing, patterns, solids, colors, accessories, or the like). As will be described in greater detail later in connection with <figref idref="DRAWINGS">FIG. 12</figref>, preferences input data may be provided by the user when initializing a digital inventory.
0098The sizing data field <b>622</b> may include measurements of the user.
0099Example measurements may include measurements of (1) the base of the neck to a “shoulder point” (e.g., where the shoulder meets the arm), (2) the shoulder point to an elbow, (3) the elbow to the knuckle of the middle finger, (4) the top of the head to the chin, (5) the base of the neck to the elbow, (6) the width of the chest, (7) the width of the waist, and (8) elbow to the knuckle the middle finger. It will be appreciated that in alternative embodiments more or fewer measurements may be included. For example, alternative measurements may include measurements related to (1) the top of the belt to just above the sole of the shoe (e.g., the pant length) and (2) the bottom of the crotch to the top of the sole of the shoe (e.g., the pant inseam). The sizing data field <b>622</b> may alternatively or additionally include clothing sizes of the user (e.g., as determined from the measurements of the user).
0100The image data field <b>624</b> of the avatar data field <b>616</b> may correspond to data indicative of one or more images of the user. As will be described later in greater detail, the user may upload one or more photos of the user and poses in accordance with template poses. For example, the digital avatar system <b>500</b> may prompt the user to upload, for example, three photos in which the user is positioned in different poses. From these three photos, the digital avatar system <b>500</b> may determine the sizing data field <b>622</b> as described above. Moreover, one or more of the images may be used for the model data to generate a digital avatar. In particular, images of the user's face and neck, for example, may be superimposed on “template” bodies wearing the selected products in order to generate a digital avatar.
0101As stated, the measurement data may be determined in an automatic or semi-automatic way by the digital avatar system <b>500</b>. In the alternative embodiments, the measurement data may be provided by a third party application via a third-party facing sub-module <b>518</b> of the application interface module(s) <b>502</b>.
0102The linking data field <b>618</b> of the data structure <b>602</b> may include data usable to identify one or more users of the digital avatar system <b>500</b>. For instance, the third-party links data field <b>626</b> may include data indicative of third-party users or systems that may access the user account data structure <b>602</b>. For example, third party links data field <b>626</b> may include identifiers of stylists who may access the product history data field <b>614</b> and/or the avatar data field <b>616</b> in order to generate recommendations or make purchases for the user. In alternative embodiments, the third party links data field <b>626</b> may include data indicative of social networks that may access data of the data structure <b>602</b>. Additionally or alternatively, the third party links data field <b>626</b> may include one or more users connected to the user of the user accounts <b>602</b> for facilitating transferring data between the users.
0103The data structure <b>604</b> may correspond to a product record (or “item record”) for facilitating a digital inventory or digital avatar. The product identifier data field <b>630</b> may correspond to data usable to identify a product. For example, each product of a vendor may have a unique product name or code to identify the corresponding product record. In this way, the product name or code may be matched to the data field <b>630</b> to determine whether or not the data structure <b>604</b> corresponds to a particular product. The attributes array <b>634</b> may correspond to one or more attributes of the corresponding product. Example attributes may include one or more of material type, sale descriptors, country of origin descriptors, color descriptors, style descriptors, color, clothing type, and the like. In one example embodiment, attributes may be given as a pair of attribute name and attribute value. For instance, one example attributes included in the data structure <b>604</b> may correspond to the pair (Sale, 30%), wherein the string “Sale” may represent the name of the attribute (e.g., a sale-type attribute) and the value 30% represents the value of the attribute (e.g., the product is on sale at a 30% discount).
0104The image data array <b>636</b> may correspond to one or more data structures that include data for generating model data of a digital avatar. For example, the element <b>638</b> of the image data array <b>636</b> may include data for rendering a digital avatar of a selected user wearing a selected product. In the illustrated embodiment, the example element <b>638</b> may include the attributes data field <b>640</b> and one or more view data fields <b>642</b>-<b>646</b>. The attributes data field <b>640</b> may include data that is indicative of attributes or properties shared by the view data field <b>642</b>-<b>646</b>. Example of attributes or properties of the attributes data field <b>640</b> include size data of the product, sized data of the digital avatar wearing the product, product variation (e.g., color), and the like. Different elements of the image data array may correspond to different variations of the product model.
0105The one or more view data fields <b>642</b>-<b>646</b> may include data for rendering one or more versions of a digital avatar wearing the corresponding product. For example, the view<b>1</b> data field <b>642</b> may correspond to a front facing view of the avatar rendered product, view<b>2</b> data field <b>644</b> may correspond to a side facing view of the avatar rendered product, and so on.
0106In connection with the vendor account of the data structure <b>606</b>, the vendor identifier data field <b>650</b> may correspond to data usable to identify a vendor. For example, each vendor may have a unique vendor name or code to identify the corresponding vendor account. In this way, the vendor name or code may be matched to the data field <b>650</b> to determine whether or not the data structure <b>606</b> corresponds to a particular vendor. Moreover, the authentication data field <b>652</b> may include data for verifying and validating the vendor. In one embodiment, the authentication data field <b>652</b> may correspond to data for determining whether or not vendor login data (e.g., a vendor name and password pair) matches the expected login data.
0107The inventory data field <b>654</b> may correspond to data indicative of the product records associated with the corresponding vendor. For example, the inventory data field <b>654</b> may be an array of product records, or pointers to product records, in accordance with data structures <b>604</b>. The linking data field <b>656</b> may correspond to data indicative of users and/or third parties linked to the corresponding vendor. For example, users may connect to the vendor account via a social network or through the vendor's or the digital avatar system's website. Third parties may connect to the vendor account through the vendor's or the digital avatar system's website in order to provide or receive digital avatar services.
Example User Interfaces of Digital Inventory Systems
0108<figref idref="DRAWINGS">FIGS. 7-11</figref> are interface diagrams illustrating example user interfaces with multiple display elements delivered to a client device of a digital inventory system, such as a digital closet, according to example embodiments. As illustrated in <figref idref="DRAWINGS">FIGS. 7-11</figref>, the user interfaces may be presented to a user on the display of a client device (e.g., client machine <b>110</b>). In one embodiment, the digital avatar system <b>500</b> may provide the client device data for rendering the user interfaces. In particular, the user interfaces may be rendered on the display <b>210</b> of the mobile device of <figref idref="DRAWINGS">FIG. 2</figref>. Although <figref idref="DRAWINGS">FIGS. 7-11</figref> will be described in the context of user interfaces displayed on a mobile phone, it will be appreciated that the user interfaces may be displayed on other types of devices such as a desktop computer, laptop computer, or mobile computing device connected to the network <b>104</b>. The user interfaces may correspond to a webpage or an software application executing on the client device.
0109In the illustrated example embodiment of <figref idref="DRAWINGS">FIG. 7</figref>, the user interface <b>700</b> corresponds to a graphical user interface of a digital closet, according to an example embodiment. In particular, the digital closet as shown in <figref idref="DRAWINGS">FIG. 7</figref> may correspond to a digital closet in an initial or empty state. The digital closet may be associated with an account corresponding to the data structure <b>602</b> of <figref idref="DRAWINGS">FIG. 6</figref>.
0110The user interface <b>700</b> includes a frame <b>702</b>, which may include user interface elements <b>704</b>, <b>706</b>, and a pointer <b>708</b> to interact with the elements <b>704</b>, <b>706</b>. The user interface element <b>704</b> may correspond to a display element for displaying a digital representation of the digital closet. For example, a digital closet may be presented as a virtual environment containing virtual representations of items. In the illustrated embodiment of <figref idref="DRAWINGS">FIG. 7</figref>, the digital closet is in an initial state and thus is shown as being empty. In some embodiments, the digital closet may be presented as a two-dimensional environment. In other embodiments, the digital closet may be presented as including as a three-dimensional virtual or digital environment. The three-dimensional environment may be a three-dimensional digital representation of an actual closet or closets of the user. Alternatively, the digital closet may be a digital representation that is not created based on the real world. For instance, the digital closet may be a three-dimensional representation of a closet with enough shelves and racks to store all the user's items.
0111The user interface element <b>706</b> may correspond to a button configured to receive user input, such as a selection or “click,” to indicate a request to set up the digital closet. For instance, setting up the digital closet may include adding items to the digital closet, as well as defining one or more features, such as user names, passwords, alarms, automated functions, and the like.
0112Items may be added based on the product history data of the user, such as the data field <b>614</b> of <figref idref="DRAWINGS">FIG. 6</figref>. Added items may be stored in a data structure corresponding to an item record, such as data structure <b>604</b>.
0113In an example embodiment, the inventory engine module(s) <b>505</b> may automatically, in response to a user selection of the element <b>706</b>, access the data field <b>614</b> to determine items purchased by the user. The purchase history data may include an indicator of the online marketplace from watch the item was purchased. Accordingly, the inventory engine module(s) <b>505</b> may access databases of the online marketplaces for image data, attribute data, and/or metadata for describing the respected purchased items. The data accessed from the databases may be used to record the items in the digital closet. In one aspect, the online marketplaces may be registered with the digital avatar system <b>500</b> and may provide data related to the items in accordance with definitions and/or product templates of the digital avatar system <b>500</b>. The definitions and/or product templates may serve to facilitate automated population of the digital closet.
0114Additionally or alternatively, items of the digital closet may be provided manually by the user. For example, the user may provide to the inventory engine module(s) <b>505</b> item data to create a record of an item to enter into the digital closet. The user may upload images and/or item data from the user's client device and/or via an online marketplace website. In another example, the user may provide item data to the inventory engine module(s) <b>505</b> by using a third-party application (e.g., a content or product sharing social website or application, such as, for example, PINTEREST™). An example method of initializing a digital closet will be described in greater detail later in connection with <figref idref="DRAWINGS">FIG. 12</figref>.
0115<figref idref="DRAWINGS">FIG. 8</figref> is an interface diagram illustrating an example user interface <b>800</b> of a digital closet displaying one or more items of the user, according to an example embodiment. For instance, the user interface <b>800</b> may correspond to the user interface <b>700</b> of <figref idref="DRAWINGS">FIG. 7</figref> after the user has set up a digital closet, for example, using the element <b>706</b>. Accordingly, the illustrated user interface <b>800</b> of <figref idref="DRAWINGS">FIG. 8</figref> includes a frame <b>802</b> which may include a display element <b>804</b> and control elements <b>806</b>-<b>814</b> that are selectable by a user input element, such as a pointer <b>816</b>. The display element <b>804</b> may include digital representations of one or more items, such as an item <b>818</b>.
0116The digital closet of the display element <b>804</b> may be organized according to one or more categories. For instance, the display element <b>804</b> presents categories such as “Tops,” “Skirts,” “Shoes,” “Dresses,” “Accessories,” “Shoes,” and “Pants.” Accordingly, items having an attribute matching “Tops” may be displayed in the area labeled “Tops,” and so on. It will be appreciated that one or more categories may be omitted or added in an alternative embodiment. Further, the categories may be based on aspects different than the type of clothing. For example, categories may be related to a rating (e.g., favorites, five-star, four-star, three-star, two star, one star, and the like), style (e.g., formal wear, casual wear, professional wear, sportswear, party wear, and the like), days of the week, colors, sizes/fit, usage, and the like. Furthermore, the user may add user-defined categories to provide a flexible system for organizing the digital closet.
0117An item may be assigned a category automatically without user intervention and/or manually with user intervention. As previously stated, an attribute of the item may be used to match the item to a category. Accordingly, in response the adding an item to the digital closet, the inventory engine module(s) <b>505</b> may access the attribute data of the item and place the item automatically in the digital closet in accordance with a category that matches the attribute data.
0118Additionally or alternatively, the user may assign a category to an item. For instance, the user may select the item <b>818</b> with the pointer <b>816</b> and “drag-and-drop” the item to a different category, such as “Dresses.” In an example embodiment, the inventory engine module(s) <b>505</b> may add, modify, or replace an attribute in accordance with changing the location (e.g., category) of the item so that the attributes of the item is coherent with its placement in the digital closet. The inventory engine module(s) <b>505</b> may prompt the user to confirm changes to the items attribute data.
0119The control elements <b>806</b>-<b>814</b> may correspond to a button selectable for initiating actions by the inventory engine module(s) <b>505</b>. The control element <b>806</b> may correspond to a button selectable for adding an item to the digital closet. In response to a selection of the control element <b>806</b>, the inventory engine module(s) <b>505</b> may automatically add un-displayed items of the purchase history data of the user. Additionally or alternatively, the inventory engine module(s) <b>505</b> may prompt the user for input of an item to add. For instance, an item may be added by the user uploading image data stored on the client device or stored on an online resource, such as an application server of a website (e.g., an online marketplace).
0120The control element <b>808</b> may correspond to a button selectable for deleting one or more items of the digital closet. For example, the user may select one or more items displayed in the display element <b>804</b> and then select the control element <b>808</b>. In response to the selection of the control element <b>808</b>, the inventory engine module(s) <b>505</b> may remove the selected items from the display element <b>804</b>.
0121The control element <b>810</b> may correspond to a button selectable for sharing one or more items of the digital closet or sharing access to the digital closet with another user. For example, the user may select one or more items displayed in the display element <b>804</b> and then select the control element <b>810</b>. In response to the user selection of the control element <b>810</b>, the inventory engine module(s) <b>505</b> may share the selected items from the display element <b>804</b> with one or more selected users or to a social network. Additionally or alternatively, the control element <b>810</b> may be selectable for sharing the digital closet with a selected user or to a selected social network. Accordingly, another user may access the shared digital closet and may provide comments or recommendations to the user.
0122The control element <b>812</b> may correspond to a button selectable for generating a digital avatar of the user wearing one or more selected items from the digital closet. For example, the user may select one or more items displayed in the display element <b>804</b> and then select the control element <b>812</b>. In response to the user selection of the control element <b>812</b>, the inventory engine module(s) <b>505</b> may facilitate generating a digital avatar of the user wearing the selected items. That is, in some embodiments, the inventory engine module(s) <b>505</b> may provide the graphics processing module(s) <b>506</b> data indicative of the user and the selected items that are compatible for generating a digital avatar. As previously described in connection with <figref idref="DRAWINGS">FIG. 6</figref>, items that are incompatible with the digital avatar system <b>500</b> may have a product record that is in accordance with the data structure <b>604</b>
0123In some example embodiments, the inventory engine module(s) <b>505</b> may generate a digital representation of an outfit that includes items that are not avatar compatible—that is, the item record does not include data for generating a digital avatar. For instance, the inventory engine module(s) <b>505</b> may generate an ordered graphical representation of the selected items in a way that is representative of an outfit, although not actually using a digital avatar model of the user and the items based on measurement data. For example, images of the selected items may be placed next to each other in the same relationship that the items are typically worn, such as an image of a selected shirt being placed above, and in close proximity to, an image of a selected skirt.
0124The control element <b>814</b> may be a button selectable for logging activity or usage of one or more selected items. In one example aspect, the user may select the control element <b>814</b> to track outfits that the user has worn. Tracking information may be used for a number of purposes. For instance, tracking information may be used to calculate cost per use calculations. Furthermore, tracking information may be used to estimate a cost per use of an item of an online marketplace.
0125The estimate may be useful for helping the user determine whether or not the user should purchase an item. In one example, the inventory engine module(s) <b>505</b> may use the tracking information of an item to estimate the amount of wear on the item. In response to a determination that an estimate of wear on an item is above a threshold, the inventory engine module(s) <b>505</b> may provide a recommendation to the user to replace the worn item. In another aspect, the inventory engine module(s) <b>505</b> may use the tracking information of an item to identify patterns in which an item may be overused. For example, a particular shirt may be identified as being used often to form an outfit from a plurality of pants, skirts, shorts, or the like bottoms. Accordingly, the inventory engine module(s) <b>505</b> may recommend to the user to purchase another shirt as an alternative to the overused shirt. As another example, tracking information may be used to identify items to sell. In particular, tracking information may be used to determine that an item is not frequently used or has not been used for a period of time, the inventory engine module(s) <b>505</b> may recommend to the user to sell the item.
0126<figref idref="DRAWINGS">FIG. 9</figref> is an interface diagram illustrating an example user interface <b>900</b> of a product page of an online marketplace that supports a digital closet, according to an example embodiment. The user interface <b>900</b> may include a frame <b>902</b> that includes a display image <b>904</b>, text <b>906</b>, control elements <b>908</b>-<b>922</b>, the sub-frame <b>924</b>, and a control element <b>926</b>. The user interface <b>900</b> may also include a pointer <b>930</b> for interacting with the elements of the user interface <b>900</b>.
0127The display image <b>904</b> may present an image to the user of an item, which may be enlarged by selecting the control element <b>926</b> with the pointer <b>930</b>. The text <b>906</b> may provide the user product information, such as a description of the product. The control elements <b>908</b> may be selected with the pointer <b>930</b> to change the view of the display image <b>904</b>. The control elements <b>910</b> may be selected with the pointer <b>930</b> to change the color of the product and/or to change the color of the display image <b>904</b>. The control elements <b>912</b> may be selected with the pointer <b>930</b> to indicate a selected size of the product. The control element <b>914</b> may be selected with the pointer <b>930</b> to indicate a quantity of the product to add to a checkout list. The control element <b>916</b> may be selected with the pointer <b>930</b> to add the product in the quantity specified by the control element <b>914</b> to a checkout list for purchase. The control element <b>918</b> may be selected with the pointer <b>930</b> to add the product in the quantity specified by the control element <b>914</b> to a wish list. The control element <b>920</b> may be selected with the pointer <b>930</b> to share the product page with another person.
0128The control element <b>922</b> may be selected with the pointer <b>930</b> to add the product to the user's digital closet. For example, the online marketplace may provide to the inventory engine module(s) <b>505</b> attribute data and/or metadata corresponding to the item of the user interface. In response, the inventory engine module(s) <b>505</b> may add the item to the user's digital closet. As such, the user interface <b>900</b> may facilitate interfacing with the inventory engine module(s) <b>505</b> of <figref idref="DRAWINGS">FIG. 5</figref> to add items to the digital closet.
0129The sub-frame <b>924</b> may display one or more recommended items. For instance, the items displayed in the sub-frame <b>924</b> may coordinate with the item of the product page. The selection of the items of the sub-frame <b>924</b> may be based on attributes of the item. In some example embodiments, the selection of the items of the sub-frame <b>924</b> may be based further on tracking information of the user's digital closet. For example, in response to the user signing into the online marketplace, the inventory engine module(s) <b>505</b> may provide the online marketplace tracking information suitable for identifying items that not only coordinate with the product but also provide a match with the user's digital closet. In particular, the item may be recommended if it completes a number of outfits above a threshold or if the cost per use is below a certain threshold relative to the cost of the item.
0130<figref idref="DRAWINGS">FIG. 10</figref> is an interface diagram illustrating an example user interface <b>1000</b> for adding an item to a digital closet, according to an example embodiment. In one example aspect, the user interface <b>1000</b> may facilitate manual entry of an item to a digital closet. For instance, the user interface <b>1000</b> may be presented to the user by the inventory engine module(s) <b>505</b> in response to a user selection of the control element <b>806</b> of <figref idref="DRAWINGS">FIG. 8</figref>. The user interface <b>1000</b> may include a frame <b>1002</b> that includes a display image <b>1004</b> and an attributes table having an attribute-name column <b>1006</b> and an attribute-value column <b>1008</b> for defining attributes of the item. The user interface <b>1000</b> may also include a pointer <b>1010</b> for interacting with the elements of the user interface <b>1000</b>. The image of the display image <b>1004</b> may be an image that the user selected to be associated with the item. The image may be uploaded by the user's client device or provided by the user's client device from a website (e.g., an online marketplace).
0131The attributes table having columns <b>1006</b>, <b>1008</b> may facilitate the user manually adding items to a digital closet. For example, the user may define attributes of a product not having a pre-existing item record for the digital closet (“non-enabled item” or “non-enabled product”) by providing values in the attribute-value column <b>1008</b> for each of the attributes listed in the attribute-name column <b>1006</b>. In an example embodiment, the inventory engine module(s) <b>505</b> may provide data to populate the attribute-name column <b>1006</b> and to populate the selectable values of the attribute-values column <b>1008</b>. In an alternative embodiment, the attribute table may be presented to the user with empty columns <b>1006</b>, <b>1008</b>. As such, the user may enter text into the columns <b>1006</b>, <b>1008</b> to define pairs of attribute names and attribute values. After the user provides the data using the interface <b>1000</b>, the image data of the display image <b>1004</b> and the attribute data of the attribute table columns <b>1006</b>, <b>1008</b> may be provided to the inventory engine image <b>505</b> to add the item to the digital closet.
0132<figref idref="DRAWINGS">FIG. 11</figref> is an interface diagram illustrating an example user interface <b>1100</b> for evaluating an item relative to a digital closet, according to an example embodiment. The user interface <b>1100</b> may be presented to the user by an online marketplace that is registered with the inventory engine module(s) <b>505</b>. For example, the user interface <b>1100</b> may be presented to the user in response to a search request or in response to check-out request to purchase a product. The user interface <b>1100</b> may include a frame <b>1102</b> having sub-frames <b>1104</b>, <b>1106</b>. The sub-frame <b>1104</b> may include a description of the image and a control element <b>1108</b> labeled “My Closet Evaluation.” The control element <b>1108</b> may be selectable by a pointer <b>1110</b> for determining a characteristic of compatibility of the item with the user's digital closet. The characteristic of compatibility may correspond to the number of outfits that the selected item may form with the user's digital closet. Additionally or alternatively, the characteristic of compatibility may also correspond to a cost per use of the selected item based on the items of the digital closet of the user. As will be described below, the result of the evaluation of the item with respect to the user's digital closet may be presented in the sub-frame <b>1106</b>.
0133The sub-frame <b>1106</b> may include a display element <b>1112</b> for displaying, in response to a request to evaluate an item via the control element <b>1108</b>, the results of the evaluation of the item relative to the digital closet of the user. The results may include a classification of the user's style and the item's style, a value of compatibility of the item with the digital closet of the user, the cost per use of the item, and the like information. A method for analyzing the item will be described in greater detail later in connection with <figref idref="DRAWINGS">FIGS. 13 and 14</figref>.
Example Digital Inventory Processes
0134<figref idref="DRAWINGS">FIG. 12</figref> is a flowchart illustrating an example method of generating data to initialize a digital inventory account, in accordance with an example embodiment. In one aspect, the method <b>1200</b> may be performed in response to user input that corresponds to a request to initialize the user's digital inventory. By way of example, the digital inventory will be described as being a digital closet. It will be appreciated that the digital closet, however, may include items other than clothing items.
0135In this example, the method <b>1200</b> may include operations such as communicating survey data (block <b>1204</b>), communicating stylist data (block <b>1206</b>), receiving purchase history data (block <b>1208</b>), and populating items in an inventory display element of a user interface (block <b>1210</b>). The example method <b>1200</b> will be described below, by way of explanation, as being performed by certain modules. It will be appreciated, however, that the operations of the example method <b>1200</b> can be performed in any suitable order by any number of the modules shown in <figref idref="DRAWINGS">FIG. 5</figref>.
0136The method <b>1200</b> starts at block <b>1202</b> and proceeds to block <b>1204</b> for communicating survey data. For example, the inventory engine module(s) <b>505</b> may transmit data to a client machine <b>110</b> of a user initiating a digital closet or inventory. The data may correspond to questions presented to the user. An example question may include “What is your occupation?” Another example question may include “How would you describe your work attire?” and having selectable answers, such as “casual (genes acceptable),” “casual dressy (no genes, but pants/skirts acceptable),” “business casual (dress pants/skirts and blouses/dress shirt),” “business professional (suit required).” Another example question may include “How would you describe your everyday style (outside of the office)?” and having selectable answers, such as “Yogi (sweat/yoga pants, loose fitting clothing),” “casual (jeans and T-shirt), trendy (more dressy pants/dresses/skirts—rarely dress down),” “fashionista (always put together, no sweat pants in this wardrobe).” The client machine <b>110</b> may provide data to the inventory engine module(s) <b>505</b> based on user input that corresponds to the answers to the survey data. In one example embodiment, the user response to the survey may serve to estimate the amount of use for a selected item. For example, based on the answers to the style survey, the inventory engine module(s) <b>505</b> may calculate number of business days, casual day, etc. to determine an estimate of an amount of use for items in their wardrobe.
0137At block <b>1206</b>, the method <b>1200</b> may include communicating stylist data. For example, the inventory engine module(s) <b>505</b> may provide one or more selectable options to allow other users to provide recommendations. Stylist options may be provided based on categories. The first category may correspond to friends, family members, and the like who may provide recommendations for free. Another category may correspond to professional stylists, such as stylists of a registered online marketplace. For example, the user may allow a stylist from a vendor to provide recommendations from the vendor. Such services may include a fee or may be free. Another example category may include selected stylists, such as “celebrity stylists.” Such stylists may be independent of an online marketplace and may provide recommendations based on a fee. Celebrity stylists may provide recommendations for items from a plurality of vendors, not just one. In an example embodiment, the inventory engine module(s) <b>505</b> may provide a list of registered stylists so that user may select a stylist.
0138At block <b>1208</b>, the method <b>1200</b> may include receiving purchase history data. For example, the inventory engine module(s) <b>505</b> may interface with one or more online marketplaces to retrieve data describing items of past purchases of the user. The items may be enabled items such that attributes or metadata of the item may be provided to the inventory engine module(s) <b>505</b>. At block <b>1210</b>, the method <b>1200</b> may include populating items in an inventory display element of a user interface. At block <b>1212</b>, the method <b>1200</b> may end.
0139<figref idref="DRAWINGS">FIG. 13</figref> is a flowchart illustrating an example method <b>1300</b> of determining compatibility of an item with a digital inventory of a user, in accordance with an example embodiment. In this example, the method <b>1300</b> may include operations such as receiving a request message (block <b>1304</b>), accessing an item record (block <b>1306</b>), accessing a user account (block <b>1308</b>), and analyzing the inventory items of the user account (block <b>1310</b>). The example method <b>1300</b> will be described below, by way of explanation, as being performed by certain modules. It will be appreciated, however, that the operations of the example method <b>1300</b> can be performed in any suitable order by any number of the modules shown in <figref idref="DRAWINGS">FIG. 5</figref>.
0140The method <b>1300</b> starts at block <b>1302</b> and proceeds to block <b>1304</b> for receiving a request message from a client device. The request message may correspond to a request to evaluate the target item of an online marketplace comparison with an inventory of a target user. For example, the request message may be sent by an online marketplace to the inventory engine module(s) <b>505</b> in response to user input requesting an analysis or evaluation of a selected item with the inventory of the user. In particular, the user input may correspond to a user selection of the control element <b>1108</b> of <figref idref="DRAWINGS">FIG. 11</figref>.
0141At block <b>1306</b>, the method <b>1300</b> may include accessing a first item record corresponding to the target item. For example, the inventory engine module(s) <b>505</b> may access an item record corresponding to the target item. The inventory engine module(s) <b>505</b> or the online marketplace application <b>120</b> may store the item record. In an example embodiment, the request message may include indicator data that is indicative of the target item and can be matched to the corresponding item record.
0142At block <b>1308</b>, the method <b>1300</b> may include accessing a first user account corresponding to the target user. For example, the inventory engine module(s) <b>505</b> may access the first user record. The inventory engine module(s) <b>505</b> may store the user account. In an example embodiment, the request message may include indicator data that is indicative of the target user and can be matched to the corresponding user account.
0143At block <b>1310</b>, the method <b>1300</b> may include analyzing the inventory items of the first user account to determine a characteristic of compatibility of the target item relative to the inventory of the target user. The analyzing of the inventory items may be based on the attributes of the first item record in the attributes of the imagery items of the first user account. An example method of block <b>1310</b> will be described later in greater detail in connection with <figref idref="DRAWINGS">FIG. 14</figref>. At block <b>1312</b> the method <b>1300</b> may end.
0144<figref idref="DRAWINGS">FIG. 14</figref> is a flowchart illustrating an example method <b>1400</b> of analyzing compatibility of the example method of <figref idref="DRAWINGS">FIG. 13</figref>, in accordance with an example embodiment. In an example embodiment, the method <b>1400</b> may be performed at block <b>1310</b> of <figref idref="DRAWINGS">FIG. 13</figref>. In this example, the method <b>1400</b> may include operations such as applying a compatibility rule (block <b>1404</b>), applying an outfit rule (block <b>1406</b>), determining a number of outfit combinations (block <b>1408</b>), and determining a cost per use (block <b>1410</b>). The example method <b>1410</b> will be described below, by way of explanation, as being performed by certain modules. It will be appreciated, however, that the operations of the example method <b>1400</b> can be performed in any suitable order by any number of the modules shown in <figref idref="DRAWINGS">FIG. 5</figref>.
0145The method <b>1400</b> starts at block <b>1402</b> and proceeds to block <b>1404</b> for applying a compatibility rule to a target item and an inventory. The compatibility rule may indicate, for each attribute name, which attribute values are compatible and/or attribute values that are not compatible. For example, the compatibility rule may indicate compatible or matching colors. Furthermore, compatibility may be specified relative to the types of items. For example, the compatibility rule may specify that shoes and belts should have matching or the same colors. In some example embodiments, the compatibility rule may specify values that cannot be compatible, for example clashing colors. Although examples were presented with regard to color attributes, it will be appreciated that other types of attributes may be considered for compatibility. For example, attributes describing how formal the items are (e.g., formal, business casual, casual, sportswear, etc.) or item style, item type, or the like attributes may be used to determine compatibility.
0146At block <b>1406</b>, the method <b>1410</b> may include applying an outfit rule to the results of the applied application of the compatibility rule of block <b>1404</b>. For example, the outfit rule may indicate, for each type of clothing, which other types of clothing may complete an outfit, as well as which types of clothing (such as accessories) may supplement an outfit. For example, if the target item has attributes indicating that the item is a pair of swimming shorts, the outfit rule may specify that no other clothing is needed to complete an outfit (e.g., the swimming shorts alone may be an outfit). Furthermore, in continuance of the example, a shirt and/or flip flops may be added to the swimming shorts to form additional outfits. As another example, for an item having attributes specifying that the item is a formal men's dress shirt, the outfit rule may specify that an outfit can be formed with a suit jacket, dress pants, and dress shoes, and may be supplemented with a dress watch. At block <b>1408</b>, the method <b>1410</b> may include determining a number of outfit combinations can be formed with the target item based on the application of the outfit rule at block <b>1406</b>.
0147It will be appreciated that in alternative embodiments that the method <b>1410</b> may perform operations in addition or in alternative to the operations of blocks <b>1404</b>, <b>1406</b>. For example, a single operation may perform the combined operations of blocks <b>1404</b>, <b>1406</b> to determine valid combinations of the target item and one or more items of the inventory. Furthermore, operations may be performed on items other than clothing. As such, an outfit rule may be replaced with any other suitable type of rule to determine complete combinations in the context of the specific items of the particular application.
0148At block <b>1410</b>, the method <b>1410</b> may include determining a cost per use. For example, the inventory engine module(s) <b>505</b> may determine a frequency of use of the target item divided by the cost of the item. The frequency may be determined based on the estimated need of items similar to the target item and the number of outfits satisfying that need. For example, the inventory engine module(s) <b>505</b> may estimate, in response to a determination that the target item is a casual shirt, the number of days that the user may wear casual outfits (e.g., based on the survey data discussed in connection with block <b>1204</b> of <figref idref="DRAWINGS">FIG. 12</figref>). The number of days may be predicted for a set duration of time, such as a duration of two years. Accordingly, a frequency of use of a target casual shirt may be approximated by the number of days for causal outfits divided by the total number of causal shirts. It will be appreciated that other factors may be used to determine a frequency of use of a target item, such as the number of outfits that the target item completes (e.g., relative to the total number of outfits of a category). At block <b>1412</b>, the method <b>1410</b> may end.
0149<figref idref="DRAWINGS">FIG. 15</figref> is an interaction diagram illustrating a method <b>1500</b> of providing compatibility data and facilitating recommendations, in accordance with an example embodiment. In particular, <figref idref="DRAWINGS">FIG. 15</figref> illustrates interactions between users <b>1502</b>, <b>1504</b>, inventory engine module(s) <b>505</b> of <figref idref="DRAWINGS">FIG. 5</figref>, and a marketplace application(s) <b>120</b> of <figref idref="DRAWINGS">FIG. 1</figref>.
0150The user <b>1502</b> may, at operation <b>1506</b>, register for a digital closet account. For example, the user <b>1502</b> may create and set up an account for a digital closet by using, for example, the user interface <b>700</b>, <b>800</b> described in connection with <figref idref="DRAWINGS">FIGS. 7 and 8</figref>. At operation <b>1508</b>, the user <b>1502</b> may access the online marketplace application <b>120</b>. For example, the online marketplace application <b>120</b> may be registered with the digital avatar system <b>500</b> so that the online marketplace application <b>120</b> presents enabled items to the user <b>1502</b>. At operation <b>1510</b>, the marketplace application <b>120</b> may request analysis of a target item with the user account of the user <b>1502</b>. For example, the marketplace application <b>120</b> may request analysis in response to an evaluation request. In response, the inventory engine module(s) <b>505</b> may perform the analysis and return the results of the analysis to the marketplace application <b>120</b> at operation <b>1512</b>. Accordingly, the marketplace application <b>120</b> may display the results on the client device of the user <b>1502</b>.
0151Additionally or alternatively, the user <b>1502</b> may share data of the user's <b>1502</b> account with one or more other users (“privileged users” or “stylists”). In particular, the user <b>1502</b> may provide a request message to the inventory engine module(s) <b>505</b> at operation <b>1520</b>. The request message may correspond to a request to grant the user <b>1504</b> privileges to access data of the user's <b>1502</b> account. Example privileges may include access rights to access the inventory of the digital closet of the user <b>1502</b>. In response to receiving the request message, the inventory engine module(s) <b>505</b> may transmit a notification to the user <b>1504</b> at operation <b>1522</b>. The notification may notify the user <b>1504</b> that the user <b>1502</b> has shared a digital inventory with the user <b>1504</b>. In an example embodiment, the notification may include selectable user interface elements for accepting or declining the share request.
0152After the user <b>1504</b> receives access privileges to the accounts of the user <b>1502</b>, the user <b>1504</b> may access, at operation <b>1524</b>, the online marketplace application <b>120</b> to select target items to evaluate with the user's <b>1502</b> inventory. For example, the user <b>1504</b> may generate one or more recommended outfits using a selected item of the online marketplace application <b>120</b> and one or more items of the inventory of the user <b>1502</b>. The user <b>1504</b> may provide an evaluation request to generate compatibility information, such as was described in connection with operations <b>1510</b>, <b>1512</b>.
0153Additionally or alternatively, the user <b>1504</b> may generate recommended outfits formed only from the items of the inventory of the shared account. For example, the user <b>1504</b> may generate recommendations using the user interface of a web front of the inventory engine module(s) <b>505</b>. Moreover, the user <b>1504</b> may rate selected outfits that the user <b>1502</b> has shared with the user <b>1504</b>.
0154At operation <b>1526</b>, the user <b>1504</b> may request that the marketplace application <b>120</b> update the shared account with the inventory engine module(s) <b>505</b>. For example, the marketplace application <b>120</b> may save one or more recommended outfits to the shared account so that the user <b>1502</b> may receive the recommendations. For example, at operation <b>1528</b>, the user <b>1504</b> may transmit a request message to the inventory engine module(s) <b>505</b>, and in response, at operation <b>1530</b>, inventory engine module(s) <b>505</b> may transmit a notification to the user <b>1502</b> that the user <b>1504</b> has shared recommendations with the user <b>1502</b>.
Example User Interfaces of Digital Avatar Systems
0155<figref idref="DRAWINGS">FIGS. 16-22</figref> are interface diagrams illustrating example user interfaces with multiple display elements delivered to a client device for managing user accounts, according to example embodiments. As illustrated in <figref idref="DRAWINGS">FIGS. 16-22</figref>, the user interfaces may be presented to a user on the display of a client device (e.g., client machine <b>110</b>). In particular, the user interface <b>1600</b> may be rendered on the display <b>210</b> of the mobile device of <figref idref="DRAWINGS">FIG. 2</figref>. The display <b>210</b> may correspond to a touch sensitive liquid crystal display (LCD) on which the user may select elements of the user interface <b>1600</b> by touching the display <b>210</b>. Moreover, the user may utilize the I/O devices <b>212</b> of the mobile device <b>200</b> to navigate to a previous user interface. Although <figref idref="DRAWINGS">FIGS. 16-22</figref> will be described in the context of user interfaces displayed on a mobile phone, it will be appreciated that the user interfaces may be displayed on other types of devices such as a desktop computer, laptop computer, or mobile computing device connected to the network <b>104</b>.
0156In the illustrated example embodiment of <figref idref="DRAWINGS">FIG. 16</figref>, the user interface <b>1600</b> corresponds to a graphical user interface of a webpage or software application executing on the client device that allows the user to initiate a process to create a user account, such as an account corresponding to the data structure <b>602</b> of <figref idref="DRAWINGS">FIG. 6</figref>. In one example embodiment, the user interface <b>1600</b> may correspond to the display of a webpage provided by the digital avatar system <b>500</b> of <figref idref="DRAWINGS">FIG. 5</figref>.
0157The user interface <b>1600</b> includes a frame <b>1602</b>, which may include user interface elements <b>1604</b>-<b>1636</b>, and a pointer <b>1638</b> to interact with the elements <b>1604</b>-<b>1636</b>. The user interface elements <b>1604</b>, <b>1606</b>, <b>1608</b>, <b>1610</b> may correspond to display elements or control elements associated with functions of a digital avatar website or application. For example, in the illustrated example, the elements <b>1604</b>, <b>1606</b>, <b>1608</b>, <b>1610</b> indicate that the user interface <b>1600</b> is for creating a user account (e.g., element <b>1604</b>), updating a user account (e.g., element <b>1606</b>), sharing a user account (e.g., element <b>1608</b>), and managing account information (e.g., element <b>1610</b>). In operation, a graphical indication may indicate which one of the elements <b>1604</b>-<b>1610</b> is active. For example, the element <b>1604</b> of <figref idref="DRAWINGS">FIG. 16</figref> is highlighted to indicate that the user interface <b>1600</b> corresponds to an interface for creating a user account. <figref idref="DRAWINGS">FIGS. 17</figref>, <b>18</b>, and <b>19</b> show additional user interfaces that may be used in connection with creating a user account. User interfaces for updating a user account (e.g., in connection with element <b>1606</b>) may be similar to the user interfaces <b>1600</b>-<b>1900</b>. Moreover, user interfaces for the functions corresponding to elements <b>1608</b>, <b>1610</b> will be described later in greater detail in connection with <figref idref="DRAWINGS">FIGS. 20 and 22</figref>. If the elements <b>1604</b>-<b>1610</b> correspond to control elements, then the user may select one of the elements <b>1604</b>-<b>1610</b> to switch to another function.
0158The elements <b>1612</b>-<b>1620</b> may receive user input that is indicative of personal information to configure the user's account. For example, in the illustrated embodiment, the user may input the user's name, an email address, a mailing address, a phone number, and a password in respective text boxes. In one example embodiment, one or more of the elements <b>1612</b>-<b>1620</b> may be designated as being required input (e.g., such as the user's name, email, address, and password; as indicated by an asterisks) or optional input (e.g., phone #; as indicated by the absence of an astrisks). In an alternative embodiment, more or less information may be provided and more or less information may be designated as required input (e.g., each of the elements <b>1612</b>-<b>1620</b> may be designated as optional).
0159The elements <b>1622</b>, <b>1624</b> may receive user input that is indicative of the user's gender. For example, in operation, the user may position the pointer <b>1638</b> over a selected one of the elements <b>1622</b>, <b>1624</b> to select male or female. The control element <b>1626</b> may correspond to a control element for receiving user input that is indicative of the user's age. In the illustrated embodiment, the control element <b>1626</b> may correspond to a drop-down menu for selecting the range of ages. In alternative embodiments, the control element <b>1626</b> may instead correspond to a text box in which the user may provide user input that is indicative of the user's age or date of birth. The elements <b>1628</b>, <b>1630</b> may receive user input that is indicative of the user's height. The element <b>1634</b> may receive user input that is indicative of the user's weight. The element <b>1636</b> may receive user input that is indicative of a request to accept the user input received by the elements <b>1612</b>-<b>1634</b> and to proceed to the next user interface.
0160Although the elements <b>1612</b>-<b>1636</b> are shown as corresponding to various types of user interface elements—such as, but not limited to, text boxes, drop-down menus, and/or buttons—it will be appreciated that in alternative embodiments the elements <b>1612</b>-<b>1636</b> may be any suitable type of user interface element for receiving the corresponding user input.
0161<figref idref="DRAWINGS">FIG. 17</figref> illustrates an example user interface <b>1700</b> of a webpage or software application executing on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>) which may facilitate providing user measurement data as part of the process of creating a user account, such as an account corresponding to the data structure <b>602</b> of <figref idref="DRAWINGS">FIG. 6</figref>. In one example embodiment, the user interface <b>1700</b> may correspond to a user interface provided by the digital avatar system <b>500</b> of <figref idref="DRAWINGS">FIG. 5</figref> in response to a user selecting interface element <b>1636</b> of <figref idref="DRAWINGS">FIG. 16</figref>. Elements common to the interfaces <b>1600</b> and <b>1700</b> of <figref idref="DRAWINGS">FIGS. 16 and 17</figref> share common reference indicia, and only differences between the interfaces are described herein for the sake of brevity.
0162In the illustrated embodiment of the user interface <b>1700</b>, the frame <b>1602</b> may include elements <b>1604</b>-<b>1610</b> and sub-frames <b>1702</b>, <b>1704</b>, <b>1706</b>. The sub-frame <b>1702</b> may include user interface elements <b>1708</b>-<b>1726</b>. The sub-frame <b>1704</b> may include user interface elements <b>1730</b>-<b>1742</b>. The sub-frame <b>1706</b> may include user interface elements <b>1750</b>-<b>1764</b>.
0163The sub-frames <b>1702</b>, <b>1704</b>, <b>1706</b> may receive user inputs for determining measurements of the user and/or image data of the user. The user inputs may correspond to one or more images of the user, for example, posed in accordance with respective templates. For example, the sub-frame <b>1702</b> may prompt the user to provide a first image of the user facing the camera and posed as shown by template <b>1714</b>. In an alternative embodiment, a template may include a full-body view. The sub-frame <b>1704</b> may prompt the user to provide a second photo of the user showing a side view of the user in accordance with template <b>1736</b>. The sub-frame <b>1706</b> may prompt the user to provide a third photo of the user showing a waist-down view of the user in accordance with template <b>1756</b>. To facilitate providing the images, the user interface <b>1700</b> may provide elements <b>1708</b>, <b>1730</b>, <b>1750</b> for browsing a file system for a file to be uploaded to the digital avatar system <b>500</b>.
0164Additionally or alternatively, the user interface <b>1700</b> may provide elements <b>1710</b>, <b>1732</b>, <b>1752</b> for capturing a new image of the user in order to provide image data for the respective sub-frames <b>1702</b>, <b>1704</b>, <b>1706</b>. For example, in response to the user selecting the capture element <b>1710</b>, a camera may be activated for capturing images or a video of the user, and the images or video may be displayed in the sub-frame <b>1702</b> in substantially real time and with the template <b>1714</b> superimposed on the images or video. The user may then position the user's body to substantially match the template <b>1714</b>, and an image from the images or video may be captured either automatically (e.g., detecting the user's pose matching the template <b>1714</b>) or in response to a user input (e.g., by a voice command or by selecting the capture element <b>1710</b> a second time). As such, the interface <b>1700</b> may provide integrated image capturing capabilities. The capture elements <b>1732</b>, <b>1752</b> may be configured in a similar way.
0165In operation, once images have been provided to the sub-frames <b>1702</b>, <b>1704</b>, <b>1706</b>, one or more points (POIs) may be placed on the images for determining measurements. For example, sub-frame <b>1702</b> includes POIs <b>1716</b>-<b>1726</b> to be positioned on the front-view image of the user. The template <b>1736</b> of the sub-frame <b>1704</b> includes POIs <b>1738</b>-<b>1742</b> to be positioned on the side view image of the user. The template <b>1756</b> of the sub-frame <b>1706</b> includes POIs <b>1758</b>-<b>1764</b> to be positioned on the bottom-view image of the user. The distances between POIs and a reference measurement (the user's height and/or weight) may be indicative of one or more measurements of the user that are suitable for generating a digital avatar model. Positioning of the POIs will be described in greater detail later in connection with <figref idref="DRAWINGS">FIG. 18</figref>.
0166Additionally or alternatively, the user interface <b>1700</b> may provide elements <b>1712</b>, <b>1734</b>, <b>1754</b> for uploading the images provided to the sub-frames <b>1702</b>, <b>1704</b>, <b>1706</b>, respectively. For example, in operation, the user may select the upload element <b>1712</b> after a front-view image has been selected and the POIs <b>1716</b>-<b>1726</b> have been positioned. When the image is uploaded, the digital avatar system <b>500</b> may determine measurements based on the distances between POIs <b>1716</b>-<b>1726</b>. The upload elements <b>1734</b>, <b>1754</b> may be configured in a similar way.
0167<figref idref="DRAWINGS">FIG. 18</figref> illustrates an example user interface <b>1800</b> of a webpage or software application executing on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>) which may facilitate providing user measurement data as part of the process of creating a user account, such as an account corresponding to the data structure <b>602</b> of <figref idref="DRAWINGS">FIG. 6</figref>. The user interface <b>1800</b> may correspond to the user interface <b>1700</b> of <figref idref="DRAWINGS">FIG. 17</figref> in response to the user uploading an image to the sub-frame <b>1702</b>. Elements common to the interfaces <b>1600</b>-<b>1800</b> of <figref idref="DRAWINGS">FIGS. 16</figref>, <b>17</b>, and <b>18</b> share common reference indicia, and only differences between the interfaces are described herein for the sake of brevity.
0168In the illustrated embodiment of the user interface <b>1800</b>, the sub-frame <b>1702</b> may include an image <b>1802</b> of the user posed in accordance with the template <b>1714</b> of <figref idref="DRAWINGS">FIG. 17</figref>. As stated, the image <b>1802</b> may have been provided by the user by the user selecting the browse element <b>1708</b> or the capture element <b>1710</b>. In operation, the user may select the POIs <b>1716</b>-<b>1726</b> for positioning the points on the image <b>1802</b> of the user. For example, the illustrated embodiment shows that the user has selected the point <b>1720</b> and has moved the point <b>1720</b> from an initial position <b>1804</b> along a path <b>1806</b> to a shoulder point of the image <b>1802</b>. After the POIs <b>1716</b>-<b>1726</b> have been positioned, the user may select the upload element <b>1712</b> for providing to the digital avatar system <b>500</b> the image <b>1802</b> and the positions of the POIs <b>1716</b>-<b>1726</b> relative to the image <b>1802</b>.
0169<figref idref="DRAWINGS">FIG. 19</figref> illustrates an example user interface <b>1900</b> of a webpage or software application executing on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>) which may facilitate saving user account data as part of the process of creating a user account, such as an account corresponding to the data structure <b>602</b> of <figref idref="DRAWINGS">FIG. 6</figref>. The user interface <b>1900</b> may correspond to a user interface provided by the digital avatar system <b>500</b> in response to the user completing uploading images to the sub-frames <b>1702</b>, <b>1704</b>, <b>1706</b> of <figref idref="DRAWINGS">FIG. 17</figref>. Elements common to the interfaces <b>1600</b> and <b>1900</b> of <figref idref="DRAWINGS">FIGS. 16 and 19</figref> share common reference indicia, and only differences between the interfaces are described herein for the sake of brevity.
0170In the illustrated embodiment of the user interface <b>1900</b>, the frame <b>1602</b> includes elements <b>1903</b>-<b>1924</b> for receiving user inputs that are indicative of user attributes and saving to the user account. For example, the elements <b>1903</b>-<b>1912</b> may receive user inputs that are indicative of one or more attributes to be applied to the user account. The attributes may correspond to preferences of the user. For example, in the illustrated embodiment, the user may select one or more categories indicating that the user prefers formal clothing (element <b>1903</b>), pants (element <b>1904</b>), casual clothing (element <b>1906</b>), shoes (element <b>1908</b>), shirts (element <b>1910</b>), and/or funky clothing (element <b>1912</b>).
0171Additionally or alternatively, the elements <b>1914</b>, <b>1916</b> may receive user inputs that are indicative of relationships with other users. In the illustrated embodiment, for example, the element <b>1914</b> of the frame <b>1602</b> may receive user input for indicating that the user account and the user account of the user's spouse should be linked. Moreover, the element <b>1916</b> of the frame <b>1602</b> may receive user input for indicating that the user account and the user account of the user's children should be linked.
0172The frame <b>1602</b> may also display a preview of the digital avatar <b>1918</b> for confirmation and/or adjustment. As stated, the preview of the digital avatar <b>1918</b> may be generated by the digital avatar system <b>500</b> based on the distances between a plurality of points of one or more images of the user, as was described above in connection with <figref idref="DRAWINGS">FIGS. 16-17</figref>. Moreover, the frame <b>1602</b> may display a preview of the size information determined by the digital avatar system <b>500</b>. For example, in the illustrated embodiment, the element <b>1920</b> displays the shirt size and pant size of the user as determined by the digital avatar system <b>500</b>. The element <b>1922</b> may receive user input for editing the digital avatar <b>1918</b> or the size information element <b>1920</b>. The element <b>1924</b> may receive user input for saving the avatar data to the user account.
0173<figref idref="DRAWINGS">FIG. 20</figref> illustrates an example user interface <b>2000</b> of a webpage or software application executing on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>) which may facilitate sharing user accounts, such as accounts corresponding to the data structure <b>602</b> of <figref idref="DRAWINGS">FIG. 6</figref>. The user interface <b>2000</b> may include a frame <b>2002</b> having elements <b>1604</b>-<b>1610</b> and elements <b>2004</b>-<b>2016</b>. Moreover, the element <b>2016</b> may correspond to a table comprising one or more rows formed by elements <b>2018</b>A-D. Elements common to the interfaces <b>1600</b> and <b>2000</b> of <figref idref="DRAWINGS">FIGS. 16 and 20</figref> share common reference indicia, and only differences between the interfaces are described herein for the sake of brevity.
0174The elements <b>2004</b>, <b>2006</b> may receive user input that corresponds to login data for accessing a user account. For example, the user interface <b>2000</b> may receive user inputs indicative of a username and a password via the login element <b>2004</b> and the password element <b>2006</b>, respectively. Selection of the element <b>2008</b> may cause the user interface <b>2000</b> to provide the login and password data to the digital avatar system <b>500</b> for authentication. If authentication is successful, the digital avatar system <b>500</b> may send user interface data to activate elements <b>2010</b>-<b>2016</b>.
0175The elements <b>2010</b>, <b>2012</b> may facilitate sharing user account data between users. For example the elements <b>2010</b>, <b>2012</b> may receive user input indicative of one or more email addresses of other users. If the element <b>2014</b> receives user input that corresponds to a user selection of element <b>2014</b>, the user interface <b>2000</b> may transmit the email address data to the digital avatar system <b>500</b> for linking the user account with the user accounts associated with the email addresses. In an example, linking the user account includes providing the users associated with the email addresses access to the user account. In another example, linking the user account includes sending the users associated with the email addresses a notification requesting permission for the user to access their user accounts.
0176The element <b>2016</b> of the frame <b>2002</b> may correspond to a table of one or more entries, each entry corresponding to a contact of the user. The contacts may correspond to contacts to whom the user has sent share requests via elements <b>2010</b>, <b>2012</b>, <b>2014</b> and/or contacts who have sent share requests to the user. Furthermore, the entries of the element <b>2016</b> may include respective user interface elements <b>2018</b>A-D for receiving user input that is indicative of the user activating or deactivating the corresponding entry. Deactivating an entry of the element <b>2016</b> may correspond to disabling sharing with the corresponding contact (e.g., temporarily preventing access to user account data), and activating an entry of the element <b>2016</b> may correspond to enabling sharing with the corresponding contact (e.g., allowing access to user account data). In this way, the user may dynamically manage shared contacts.
0177<figref idref="DRAWINGS">FIG. 21</figref> illustrates an example user interface <b>2100</b> of a webpage or software application rendered on a client device (e.g., mobile phone <b>200</b> of <figref idref="DRAWINGS">FIG. 2</figref> or any client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>) which may display a share request for a user. The user interface <b>2100</b> may correspond to a notification sent to the mobile phone <b>200</b> in response to another user transmitting a share request. The notification may include one or more selectable elements, such as hyperlinks <b>2102</b>-<b>2110</b>, for facilitating responses to the notification. The hyperlink <b>2102</b> may correspond to a link to a profile page of the requesting user (“Akshay Gadre”). The hyperlink <b>2104</b> may correspond to a link for accepting the share request. The hyperlink <b>2106</b> may correspond to a link for creating or editing the user's account. The hyperlink <b>2108</b> may correspond to a link for viewing shared purchases of the share request recipient and the share request sender. The hyperlink <b>2110</b> may correspond to a link to provide feedback to the digital avatar system <b>500</b>.
0178<figref idref="DRAWINGS">FIG. 22</figref> illustrates an example user interface <b>2200</b> of a webpage or software application to be rendered on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>) which may facilitate managing a user account, such as an account corresponding to the data structure <b>602</b> of <figref idref="DRAWINGS">FIG. 6</figref>. The user interface <b>2200</b> may include a frame <b>2202</b> having elements <b>1604</b>-<b>1610</b> and elements <b>2204</b> corresponding to a table of one or more rows formed by elements <b>2206</b>A-<b>2214</b>A, <b>2206</b>B-<b>2214</b>B. The frame <b>2202</b> may further include display element <b>2220</b> and a control element <b>2222</b>.
0179The element <b>2204</b> may correspond to a personal closet of the user. The personal closet may include products that the user has purchased using the digital avatar system <b>500</b> and/or products that have been entered into the digital avatar system <b>500</b>. Each product may have a corresponding row. For example, the row including the elements <b>2206</b>A-<b>2214</b>A may represent a first product corresponding to a shirt, and the row including the elements <b>2206</b>B-<b>2214</b>B may represent a second product corresponding to a pair of jeans. The elements <b>2206</b>A, <b>2206</b>B may receive user input that is indicative of selecting the corresponding product. The elements <b>2208</b>A, <b>2208</b>B may display text that describes the corresponding product. The elements <b>2210</b>A, <b>2210</b>B may provide text that is indicative of the vendor of the corresponding product. The element <b>2212</b>A, <b>2212</b>B may provide text that is indicative of an identification number (e.g., stock keeping unit (SKU) number) of the corresponding product. The elements <b>2214</b>A, <b>2214</b>B may provide text that is indicative of the date on which the corresponding product was purchased or entered into the digital avatar system <b>500</b>.
0180The display element <b>2220</b> of the frame <b>2202</b> may correspond to a preview of the digital avatar wearing the selected products from the table in element <b>2204</b> in accordance with the selection of the elements <b>2206</b>A, <b>2206</b>B and in response to the user selecting the control element <b>2222</b>.
0181<figref idref="DRAWINGS">FIGS. 23-27</figref> are interface diagrams illustrating example user interfaces with multiple display elements delivered to a client device for utilizing digital avatars, according to example embodiments. In particular, the user interfaces of <figref idref="DRAWINGS">FIGS. 23-27</figref> may be provided by online marketplace servers, such as the marketplace application <b>120</b> of <figref idref="DRAWINGS">FIG. 1</figref>. The online marketplace servers may provide the user interfaces as part of the retailer's or vendor's website or application. Digital avatars may be displayed as part of the website or application to improve the user's shopping experience. Elements common to the user interfaces <b>2300</b>-<b>2700</b> of <figref idref="DRAWINGS">FIGS. 23-27</figref> share common reference indicia, and only differences between the user interfaces are described herein for the sake of brevity.
0182<figref idref="DRAWINGS">FIG. 23</figref> illustrates an example user interface <b>2300</b> of a webpage or software application of an online marketplace to be rendered on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>). The user interface <b>2300</b> may include a frame having elements <b>2304</b>A-<b>2304</b>H, <b>2306</b>, <b>2308</b>, <b>2310</b>. The elements <b>2304</b>A-<b>2304</b>H of the illustrated embodiment may correspond to various products (e.g., shirts) for purchase. The element <b>2306</b> may correspond to a button that is selectable for logging into the digital avatar system <b>500</b>. The element <b>2308</b> may correspond to a pointer of an input device. The element <b>2310</b> may correspond to control elements used to navigate between a plurality of pages displaying products of the online marketplace.
0183<figref idref="DRAWINGS">FIG. 24</figref> illustrates an example user interface <b>2400</b> of a webpage or software application of an online marketplace to be rendered on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>). The user interface <b>2400</b> may correspond to a user interface provided by the digital avatar system <b>500</b> in response to a user selection of the element <b>2306</b> of <figref idref="DRAWINGS">FIG. 23</figref> and successful authentication. In particular, after the user successfully logs into the digital avatar system <b>500</b>, the user interface <b>2400</b> displays elements <b>2402</b>, <b>2404</b>, <b>2406</b>A-D, <b>2408</b>. The element <b>2402</b> may correspond to a display element for displaying the user's digital avatar. In the illustrated embodiment of <figref idref="DRAWINGS">FIG. 5</figref>, the digital avatar is shown in a default configuration (e.g., blank shirt). The element <b>2404</b> may correspond to a selectable button or pull-down menu for changing the element <b>2402</b> to a different user. The elements <b>2406</b>A-D may correspond to selectable control elements for configuring the digital avatar displayed in element <b>2402</b>, as will be described in greater detail below in connection with <figref idref="DRAWINGS">FIG. 25</figref>. As shown, not all products of the online marketplace may support digital avatar views (e.g., the products of elements <b>2304</b>E, G, H). The element <b>2408</b> may correspond to a selectable button for sharing the digital avatar displayed in element <b>2402</b> with another user or to post to a social network for commenting.
0184<figref idref="DRAWINGS">FIG. 25</figref> illustrates an example user interface <b>2500</b> of a webpage or software application of an online marketplace to be rendered on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>). The user interface <b>2500</b> may correspond to a user interface provided by the digital avatar system <b>500</b> in response to a user selection of the element <b>2406</b>D of <figref idref="DRAWINGS">FIG. 24</figref>. In particular, in accordance with a user selection of the element <b>2406</b>D, the element <b>2402</b> displays the digital avatar of the user as wearing the shirt corresponding to the element <b>2406</b>D. The user may then select one of the elements <b>2406</b>A-<b>2306</b>F to change the shirt of the digital avatar again.
0185<figref idref="DRAWINGS">FIG. 26</figref> illustrates an example user interface <b>2600</b> of a webpage or software application of an online marketplace to be rendered on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>). The user interface <b>2600</b> may correspond to a user interface provided by the digital avatar system <b>500</b> in response to a user selection of the element <b>2404</b> of <figref idref="DRAWINGS">FIG. 24</figref>. In particular, in accordance with a user selection of the element <b>2404</b>, the element <b>2404</b> displays a list of contacts who shared their digital avatars with the user. Accordingly the user may select a contact that is listed in element <b>2602</b> in order to use the selected contact's avatar, as shown below in connection with <figref idref="DRAWINGS">FIGS. 27 and 28</figref>.
0186<figref idref="DRAWINGS">FIG. 27</figref> illustrates an example user interface <b>2700</b> of a webpage or software application of an online marketplace to be rendered on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>). The user interface <b>2700</b> may correspond to a user interface provided by the digital avatar system <b>500</b> in response to a user selection the contact “Kerri Breslin” from the element <b>2602</b> of <figref idref="DRAWINGS">FIG. 26</figref>. In particular, the user interface <b>2700</b> includes a frame <b>2702</b> comprising elements <b>2706</b>A-G for configuring a digital avatar of the contact with the corresponding products. The frame <b>2702</b> may further include a group of elements <b>2704</b> for navigating to different product pages. An element <b>2710</b> of the frame <b>2702</b> may display the digital avatar of the contact in accordance with user selections of elements <b>2706</b>A-G. For example, the digital avatar displayed in element <b>2710</b> is shown as wearing the product corresponding to the element <b>2706</b>C selected by the pointer element <b>2308</b>. An element <b>2712</b> of the frame <b>2702</b> may display the user name of the contact currently being displayed. An element <b>2714</b> of the frame <b>2702</b> may be selected for adding the current user's avatar with the contact's avatar. An element <b>2716</b> of the frame <b>2702</b> may be selected for sharing the avatars being displayed.
0187<figref idref="DRAWINGS">FIG. 28</figref> illustrates an example user interface <b>2800</b> of a webpage or software application of an online marketplace to be rendered on a client device (e.g., client machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref>). The user interface <b>2800</b> may correspond to a user interface provided by the digital avatar system <b>500</b> in response to a user selecting the element <b>2714</b> of <figref idref="DRAWINGS">FIG. 27</figref> for viewing the user's avatar and the contact's avatar together. In particular, the user interface <b>2800</b> includes the display element <b>2802</b> for displaying the digital avatar of the user. Furthermore, the display element <b>2802</b> includes the element <b>2804</b>, which may correspond to a selectable button for selecting to configure the user's avatar. For example, after selecting the element <b>2804</b>, selecting an “e-view” element (e.g., elements <b>2706</b>A-G) causes the display element <b>2802</b> to display the corresponding product on the user's avatar instead of the contact's avatar of display element <b>2710</b>.
0188<figref idref="DRAWINGS">FIG. 29</figref> is an interface diagram illustrating an example user interface <b>2900</b> with multiple display elements delivered to a client device for providing product records, according to example embodiments. For example, a user of an online marketplace server <b>118</b>A-M of <figref idref="DRAWINGS">FIG. 3</figref> may provide user input to create a product record of a vendor account stored by the digital avatar server <b>118</b>N using the database <b>126</b>N. The user interface <b>2900</b> may include a frame <b>2902</b> which has elements <b>2904</b>-<b>2918</b>. The element <b>2910</b> may correspond to a table having one or more entries, such as a pair of elements <b>2920</b>, <b>2922</b> forming one entry and a pair of element <b>2924</b>, <b>2926</b> forming another entry.
0189In the illustrated embodiment, the elements <b>2904</b>, <b>2906</b> may correspond to text boxes for receiving user input (e.g., username and password) for logging into the digital avatar system <b>500</b>. The element <b>2907</b> may correspond to a button that is selectable for initiating an authentication process based on the user input received by the elements <b>2904</b>, <b>2906</b>. Upon a successful authentication, the user (e.g., a vendor) may access the elements <b>2908</b> through <b>2926</b> for creating a product record for the vendor account of the user.
0190The element <b>2708</b> may correspond to a display element for rendering a preview image of the avatar version of the product. The preview image may be rendered in response to a user selection of element <b>2712</b>, which may correspond to a selectable button for browsing a file hierarchy to select an image file. Upon selection of the image file, the image of the image file is displayed in the preview display element <b>2708</b>. The image may correspond to a view of the product in a specified size and worn by an avatar of a specified size. Furthermore, the image may correspond to a specified view, such as a front view, side view, waist-up view, waist-down view, or the like. For example, the vendor user may select a first image file of a front view of a size-15 avatar wearing a shirt in size medium.
0191As described previously in connection with <figref idref="DRAWINGS">FIG. 6</figref>, each product record may have more than one image. Accordingly, the vendor user may repeat the process of selecting and uploading images for variations of the digital avatar. For example, the vendor user may select and upload a second image of a different view (e.g., side view), a third image of a different size avatar (e.g., a size-15.5 avatar), a fourth image of a different size shirt (e.g., a large shirt), for the product record being created or edited. It will be appreciated variations of the images are not limited sizes of the product and avatar and the perspective of the view, but may include any suitable variation for modeling the product or a group of users. For example, variations of the images may include color of the product, skin color of the user, and the like.
0192The element <b>2910</b> may correspond to a frame including one or more elements for receiving and displaying user input that is indicative of one or more attributes of the product and or selected image. Each entry of element <b>2910</b> may correspond to an attribute-value pair. For example, the elements <b>2920</b>, <b>2922</b> may receive and display user input associated with an attribute name and an attribute value pair. The respective attributes may have a value, such as a binary logic, a numerical value, or string value suitable for expressing the degree or nature of the attribute. For example, an attribute named “Sale” may have a value “30%” to indicate that the product of the product record is on sale for 30%. Other example attribute-value pairs may include (Color, Red), (Shirt, True), (ButtonFly. No), (OnlineOnly, Yes), and the like.
0193Moreover, the attribute-value pair may be indicative of the variation of the image. For example, an image corresponding to a front view of a size-15 avatar wearing a particular shirt in size medium may have entries in element <b>2910</b> corresponding to (ProductSize, M), (AvatarSize, 15), and (View, Front). In this way, in response to a user of the online marketplace selecting a specified product, size, and view, the digital avatar system <b>500</b> may select the corresponding image for display.
0194It will be appreciated that the attributes may be global attributes or image attributes. Global attribute are attribute that are applied to each image variation of the product. An example global attribute may be (Sale, 30%), which may be applied to each image of the product. Accordingly, global attributes may facilitate searching for products that satisfy one or more search conditions. An image attribute may be an attribute that is only applied to the selected image of the product. Examples of image attributes include (ProductSize, M), (AvatarSize, 15), and (View, Front). Accordingly, image attributes may facilitate selecting an image from a plurality of images of a product for display as part of a digital avatar.
0195To facilitate populating the element <b>2910</b> of attributes, the user interface <b>2900</b> may include the element <b>2918</b>, which may correspond to selectable button for selecting a template on file. A template includes data for automatically generating one or more attribute-value pairs of element <b>2910</b>.
0196It will be understood by a person of ordinary skill that other embodiments of the user interfaces of <figref idref="DRAWINGS">FIGS. 16-29</figref> need not include each element shown in the figures and other embodiments may include more or less elements.
Example Digital Avatar Processes
0197<figref idref="DRAWINGS">FIG. 30</figref> is a flowchart illustrating an example method <b>3000</b> of generating avatar data for users, in accordance with an example embodiment. In this example, the method <b>3000</b> may include operations such as creating avatar data of a user account (block <b>3004</b>), configuring an avatar product record (block <b>3006</b>), linking avatar data and a product record (block <b>3008</b>), and providing the link data to a user for display (block <b>3010</b>). The example method <b>3000</b> will be described below, by way of explanation, as being performed by certain modules. It will be appreciated, however, that the operations of the example method <b>3000</b> can be performed in any suitable order by any number of the modules shown in <figref idref="DRAWINGS">FIG. 5</figref>.
0198The method <b>3000</b> starts at block <b>3002</b> and proceeds to block <b>3004</b> for creating avatar data of a user account. For example, the digital avatar system <b>500</b> (e.g., via the web-front module(s) <b>512</b>) may provide data for a user interface to be displayed on a user device. The user interface may correspond to the example user interfaces <b>1600</b>-<b>1900</b> described previously in connection with <figref idref="DRAWINGS">FIG. 16-19</figref>. Accordingly, the digital avatar system <b>500</b> may determine measurement data of the user based on one or more images provided by the user. Furthermore, the measurement data of the user may be based additionally on one or more user inputs, such as the height and/or weight of the user. The data related to the height and/or weight of the user may be inputted by the user manually via the elements <b>1628</b>, <b>1630</b>, <b>1634</b> of <figref idref="DRAWINGS">FIG. 16</figref>.
0199In an example embodiment, the graphics processing module(s) <b>506</b> may determine the measurement data based on the one or more images and, if provided, data related to the height and/or weight of the user. For example, the graphics processing module(s) <b>506</b> may utilize the height measurement of the user to scale the distances between the POIs of the images to physical measurements. It will be appreciated, however, that in alternative embodiments, measurement data may be obtained in alternative ways, such as body scan data and/or manual user input.
0200The measurement data may be stored in the sizing data field <b>622</b> of the data structure <b>602</b> of <figref idref="DRAWINGS">FIG. 6</figref>. The received image data may be stored in the image data field <b>624</b> of the data structure <b>602</b>. An example embodiment of block <b>3004</b> will be described later in greater detail in connection with <figref idref="DRAWINGS">FIG. 31</figref>.
0201The method <b>3000</b> may include block <b>3006</b> for configuring an avatar product record. For example, a vendor user may create or modify a product record data structure <b>604</b> that is linked to the vendor account <b>605</b>. In an example embodiment, the digital avatar system <b>500</b> (e.g., using the web-front module(s) <b>512</b>) may provide data to display a user interface on a client device of the vendor user. The user interface may, for instance, correspond to the user interface <b>2900</b> described previously in connection with <figref idref="DRAWINGS">FIG. 29</figref>. Accordingly, the digital avatar system <b>500</b> may receive one or more images and one or more attributes of the product from the user vendor. In turn, the vendor database sub-module(s) <b>522</b> may store the received product data in the product record data structure <b>604</b>. For example, the one or more images, as well as attributes of the images, may be stored in the image data array <b>636</b>. Global attributes may be stored in the attributes array <b>634</b>. An example embodiment of block <b>3006</b> will be described later in greater detail in connection with <figref idref="DRAWINGS">FIG. 32</figref>.
0202The method <b>3000</b> may include the block <b>3008</b> for linking avatar data and a product record. By linking the data, model data for a digital avatar wearing the selected product may be generated for display on a user device. In an example embodiment, the digital avatar system <b>500</b> may provide data for a user interface of an online market to allow the user to view digital avatars. The user interface may correspond to the interfaces described previously in connection with <figref idref="DRAWINGS">FIGS. 23-27</figref>. Linking avatar data of the user and a product record may be responsive to a user request to generate an avatar wearing a selected product. For example, the digital avatar system <b>500</b> may perform block <b>3008</b> in response to the user selecting, for example, the element <b>2406</b>D of <figref idref="DRAWINGS">FIG. 25</figref>. The linking may include mapping the user's measurements to a product image of the corresponding product record. An example embodiment of block <b>3008</b> will be described later in greater detail in connection with <figref idref="DRAWINGS">FIG. 33</figref>.
0203After the linked data is generated at block <b>3008</b>, the method <b>3000</b> may include block <b>3010</b> for providing the linked data to a user for display. In an example embodiment, the communication interface module(s) <b>508</b> may provide the link data to a user device in accordance with the user request of block <b>3008</b>. The user device may correspond to the requesting user or to another user (e.g., the requesting user sharing avatar data with a second user). An example embodiment of block <b>3010</b> will be described later in greater detail in connection with <figref idref="DRAWINGS">FIG. 35</figref>.
0204<figref idref="DRAWINGS">FIG. 31</figref> is a flowchart illustrating an example method of the block <b>3004</b> of <figref idref="DRAWINGS">FIG. 30</figref> for creating avatar data, in accordance with an example embodiment. In this example, the block <b>3004</b> may include operations such as providing data for rendering a user interface (block <b>3104</b>), receiving a first set of user data that includes a reference measurement (block <b>3106</b>), receiving a second set of user data including image data (block <b>3108</b>), determining dimensions of the user based on the first and second sets of user data (block <b>3110</b>), providing avatar data indicative of size data (block <b>3112</b>), and saving the avatar data to a user record (block <b>3114</b>). The example method of the block <b>3004</b> will be described below, by way of explanation, as being performed by certain modules. It will be appreciated, however, that the operations of the example method of the block <b>3004</b> can be performed in any suitable order by any number of the modules shown in <figref idref="DRAWINGS">FIG. 5</figref>.
0205The example method of the block <b>3004</b> starts at block <b>3102</b> and proceeds to block <b>3104</b> for providing data for rendering the user interface. In an example embodiment, the web front module(s) <b>512</b> may provide data for a user interface to a user device via the user facing sub-module(s) <b>514</b>. The user interface may correspond to the user interfaces <b>1600</b> and <b>1700</b> shown in <figref idref="DRAWINGS">FIGS. 16 and 17</figref>, for instance. In particular, the user interface may include elements <b>1612</b>-<b>1636</b> of <figref idref="DRAWINGS">FIG. 16</figref> for creating a user account. The user may supply user input that is indicative of the user's height and weight via the elements <b>1628</b>, <b>1630</b>, <b>1634</b>. Additionally or alternatively, the user interface may include elements for providing image data, such as sub-frames <b>1702</b>, <b>1704</b>, <b>1706</b>.
0206The example method of the block <b>3004</b> may further include block <b>3106</b> for receiving a first set of user data including a reference measurement. In an example embodiment, the first of the data may correspond to data provided by the user via the elements <b>1628</b>, <b>1630</b>, <b>1634</b> for providing the user's height and weight. In one aspect, the user's height may be used as a reference measurement in order to determine a scale of images provided by the user, as will be described in greater detail below. Additionally or alternatively, data that is indicative of the user's height and weight may be stored in the data structure <b>602</b> of the user account (e.g., in the sizing data field <b>622</b>).
0207The example method of the block <b>3004</b> may further include block <b>3108</b> for receiving a second set of user data that includes image data of the user. In an example embodiment, the second set of data may correspond to data provided by the user via the sub-frames <b>1702</b>, <b>1704</b>, <b>1706</b> of <figref idref="DRAWINGS">FIG. 17</figref>. Moreover, a plurality of POI elements (e.g., POIs <b>1716</b>-<b>1726</b>, <b>1738</b>-<b>1742</b>, <b>1758</b>-<b>1764</b>) may have been positioned within the respective images. In an example embodiment, the graphics processing module(s) <b>506</b> may determine the positioning of the POI elements automatically. Additionally or alternatively, the user interface may facilitate the user positioning the point of interest elements within the images. The distances between the POI elements and the reference measurement may be used to determine the physical measurements of the user, as will be described below in greater detail. The image data may be stored in the data structure <b>602</b> of the user account (e.g., in the image data field <b>624</b>). For example, an image of the user's head and neck may be captured for superimposing onto a body model that is selected or sized based on the user's measurements.
0208The example method of the block <b>3004</b> may include block <b>3110</b> for determining measurements of the user based on the first and second sets of user data. In an example embodiment, the digital avatar system <b>500</b> may receive the first and second sets of data from the user device. The graphics processing module(s) <b>506</b> may determine the one or more distances between POIs elements in terms of the image space. For example, the graphics processing module(s) <b>506</b> may determine the distance between the top-of-the-head POI element and the foot POI element, which may measure, for example, 1 inch or 1000 pixels in the image. The measurement in the image space may be related to the reference measurement (e.g., the user's height provided at block <b>3106</b>) in order to determine the scale of the image relative to the real-world physical measurements. For example, in the case that the user has indicated a height of 6 feet, each inch or 1000 pixels in the image space would correspond to 6 feet. Accordingly, physical measurements of the user may be estimated by scaling the distances between the POI elements in accordance with the determined scale.
0209In an example embodiment, the block <b>3110</b> may further include matching the measurement data to sizing data (e.g., clothing sizes). For example, the graphics processing module(s) <b>506</b> may access a database of body measurements paired with clothing sizes. The pairings may be based on the average clothing sizes worn by people having such body measurements. Accordingly, the graphics processing module(s) <b>506</b> may determine the clothing sizes of the user by matching the determined measurements to the measurements of the database. The graphics processing module(s) <b>506</b> may select the clothing sizes that are paired with the stored measurements that most closely match the determined measurements of the user. Examples of the clothing sizes may include shirt sizes, pant sizes (waist, inseam, drop, etc.), shoe sizes (length, width, etc.), hat sizes (small, medium, large, diameter, etc.), glove sizes (S, M, L, etc.), and the like. It will be appreciated that clothing sizes may be in accordance with any designation or standard, such as United States standard clothing sizes, EN <b>13402</b> (European Union standard sizes), International Organization for Standardization (“ISO”) 3635, ISO 4416, ISO 5971, ISO 8559, ISO/Technical Report (“TR”) 10652, and the like.
0210Based on a determination of clothing sizes, the digital avatar system <b>500</b> may access a database of avatar body models to select a body model that closely matches the determined clothing sizes. In some embodiments, a vendor's sizing domain and avatar platform's sizing domain may be different. For example, a vendor may provide product avatar data for a set of sizes that is different from the set of sizes used by the digital avatar system <b>500</b>. Accordingly, the digital avatar system <b>500</b> may include mapping data for mapping the sizes of the vendor domain to or from the sizing domain of the digital avatar system <b>500</b>.
0211The example method of the block <b>3004</b> may include block <b>3112</b> for providing avatar data that is indicative of the size of the user. In one example embodiment the communication interface module(s) <b>508</b> may provide data that is indicative of the clothing sizes to the user device for display. Moreover, the communication interface module(s) <b>508</b> may provide data that is usable to generate a preview digital avatar of the user. For example, the data may correspond to model data that includes image data of the user's face and image data of a digital model of the user's body. The digital model may be selected from one or more candidate model based on at least one of the determined user measurements or the determined user clothing sizes.
0212The example method of the block <b>3004</b> may include block <b>3114</b> for saving the user record. For example, the user database sub-module(s) <b>520</b> of the database management module(s) <b>504</b> may store the determined measurement data and/or the clothing sizes in the sizing data field <b>622</b> of the data structure <b>602</b>. The example method of the block <b>3004</b> may end at block <b>3116</b>.
0213<figref idref="DRAWINGS">FIG. 32</figref> is a flowchart illustrating an example method of the block <b>3006</b> of <figref idref="DRAWINGS">FIG. 30</figref> for configuring an avatar product record, in accordance with an example embodiment. In this example, the example method of the block <b>3006</b> may include operations such as receiving a message that includes a product identifier (block <b>3204</b>), receiving images and attributes of the product (block <b>3206</b>), mapping avatar dimensions to product sizes (block <b>208</b>), providing preview data (block <b>3210</b>), and saving the avatar product records (block <b>3212</b>). The example method <b>3006</b> will be described below, by way of explanation, as being performed by certain modules. It will be appreciated, however, that the operations of the example method of the block <b>3006</b> can be performed in any suitable order by any number of the modules shown in <figref idref="DRAWINGS">FIG. 5</figref>.
0214The example method of the block <b>3006</b> starts at block <b>3202</b> and proceeds to block <b>3204</b> for receiving a message that includes a product identifier. For example, after a successful authentication process, the vendor-facing sub-module(s) <b>516</b> of the application interface module(s) <b>502</b> may receive a request to create or edit a product record from a vendor. The request may include data that is capable of identifying a product record from one or more product records linked to the vendor account. In an example embodiment, the request may be provided by the vendor to the digital avatar system <b>500</b> in response to a selection of the element <b>2916</b> (of <figref idref="DRAWINGS">FIG. 29</figref>) for creating a product record or a selection of the element <b>2918</b> for updating the product record.
0215The example method of the block <b>3006</b> may include block <b>3206</b> for receiving images and attributes of the product. The images may correspond to models of the product worn by digital avatars. The model of the product may include the portion of an avatar related to or coinciding with the product. For example, a model for a shirt may be an image of the avatar from the waist up and the neck down. A model for a pair of pants may be an image of the avatar from the ankle up in the waist down. Each image may correspond to a particular variation of the users (e.g., sizes of the user, color, etc.), a particular variation of the product (e.g., sizes, color, etc.), in a particular variation of the few (e.g., front view, a side view, a back view, a waist-up view, a waist-down view, etc.). To account for the variations, a plurality of images may be provided to cover a range of variations. In operation, the database management module(s) <b>504</b> may select the image that most closely matches a requested variation in accordance with an avatar request message.
0216The received attributes may include metadata that describes the product and/or images. For example, each image that is received may be accompanied by attributes data that describes the corresponding image. The attributes may be indicative of the product view, product size, product color, avatar size, avatar color, and/or the like. As such, the attributes of the images may facilitate determining which image most closely matches a requested variation of an avatar request message.
0217Furthermore, received attributes may include global attributes or metadata that describes the product independent of the images. For example, the attributes may designate the product as being plus sized or subject to a sale or discount. The global attributes may facilitate filtering search results. As stated, and the attributes may be provided by the vendor via the elements <b>2920</b>-<b>2926</b> of the user interface <b>2900</b>.
0218The example method of the block <b>3006</b> may include block <b>3208</b> for mapping avatar dimensions to product sizes. As stated, images may be received that correspond to a respective product size. Furthermore, the images may correspond to a particular sized avatar wearing the product of a particular size. Accordingly, dimensions of digital avatars are mapped to the received images. In one example embodiment, the database management module(s) <b>504</b> may perform the mapping of the product record using the product database sub-module(s) <b>526</b>.
0219The example method of the block <b>3006</b> may include block <b>3210</b> for providing preview data. In an example embodiment, the graphics processing module(s) <b>506</b> of the digital avatar system <b>500</b> may provide a preview image to the vendor to provide visual feedback. The vendor may adjust the attributes of the product or the image in order to adjust the preview image.
0220The example method of the block <b>3006</b> may include block <b>3212</b> for saving the avatar product record. For example, in an example embodiment, the product database sub-module(s) <b>526</b> may save the attributes and image data and the corresponding attributes array <b>634</b> and/or image data array <b>636</b> of the data structure <b>604</b>. The example method of the block <b>3006</b> may end at block <b>3214</b>.
0221<figref idref="DRAWINGS">FIG. 33</figref> is a flowchart illustrating an example method of the block <b>3008</b> of <figref idref="DRAWINGS">FIG. 30</figref> for linking avatar data, in accordance with an example embodiment. In this example, the method <b>3008</b> may include operations such as receiving a request for an online marketplace resource (block <b>3304</b>), providing data for user selectable interface elements for login (block <b>3306</b>), authenticating the user (block <b>3308</b>), providing data to display user selectable interface elements to configure the avatar display (block <b>3310</b>), providing model data of the user's avatar (block <b>3312</b>), displaying the avatar (block <b>3314</b>), and providing data to display user selectable interface elements to transfer the avatar (block <b>3316</b>). The example method of the block <b>3008</b> will be described below, by way of explanation, as being performed by certain modules. It will be appreciated, however, that the operations of the example method of the block <b>3008</b> can be performed in any suitable order by any number of the modules shown in <figref idref="DRAWINGS">FIG. 5</figref>.
0222The example method of the block <b>3008</b> starts at block <b>3302</b> and proceeds to block <b>3304</b> for receiving a request for an online marketplace resource. The request may be initiated by a user device requesting data for a webpage or application displaying a user interface of an online marketplace. In an example embodiment, a user machine <b>110</b> of <figref idref="DRAWINGS">FIG. 1</figref> may transmit the request to the marketplace application <b>120</b>. In response, the marketplace application <b>120</b> may transmit online marketplace resources to the user machine <b>110</b> for display.
0223At block <b>3306</b>, the example method of the block <b>3008</b> may include providing data for user selectable interface element for logging into the digital avatar system <b>500</b>. By logging in, digital avatar user interface elements may be exposed on the user interface so that the user may request digital avatar services. In an example embodiment, the user selectable interface elements may correspond to element <b>2306</b> (<figref idref="DRAWINGS">FIG. 23</figref>), which when selected may prompt the user to provide username and password information.
0224At block <b>3308</b>, the example method of the block <b>3008</b> may include authenticating the user. In an example embodiment, the application interface module(s) <b>502</b> may receive login data from the user in connection with the user selectable interface element of block <b>3306</b>. The login data may be passed to the authentication module(s) <b>510</b> for authenticating the user. The digital avatar system <b>500</b> may provide digital avatar services in response to a successful authentication.
0225At block <b>3310</b>, the example method of the block <b>3008</b> may include providing data to display user selectable interface elements for configuring an avatar display. For instance, user selectable interface element may be provided for products that support the digital avatar system (e.g., the product has a corresponding avatar product record data structure <b>604</b>). In an example embodiment, the user selectable interface elements may correspond to elements <b>2406</b>A-D as shown in <figref idref="DRAWINGS">FIG. 24</figref>. As stated, the elements <b>2406</b>A-D may facilitate configuring the user's avatar to display selected products.
0226At block <b>3312</b>, the example method of the block <b>3008</b> may include providing model data of the user's avatar with a selected product mapped onto the avatar. For example, the providing of the model data may be in response to a user selection of one of the user selectable interface elements of block <b>3310</b>. In an embodiment, the application interface module(s) <b>502</b> may receive an indication of the selection and access avatar data via the database management module(s) <b>504</b>. The digital avatar system <b>500</b> may provide, to the user, the model data for display will using the application interface module(s) <b>502</b> and the communication interface module(s) <b>508</b>. Block <b>3312</b> will be described in greater detail later in connection with <figref idref="DRAWINGS">FIG. 34</figref>.
0227At block <b>3314</b>, the example method of the block <b>3008</b> may include displaying the user's avatar configured with the selected product based on the model data provided at block <b>3312</b>. At block <b>3316</b>, the example method of the block <b>3008</b> may include providing data to display a user selectable interface element to transfer the avatar to a second user. In an example embodiment, the user selectable interface element may correspond to the element <b>2408</b> of <figref idref="DRAWINGS">FIG. 24</figref>. At block <b>3318</b>, the example method of the block <b>3008</b> may end.
0228<figref idref="DRAWINGS">FIG. 34</figref> is a flowchart illustrating an example method <b>3312</b> of providing model data of a user's avatar with a product, in accordance with an example embodiment. In this example, the method <b>3312</b> may include operations such as receiving a request message (block <b>3404</b>), selecting a user record that includes measurement data (block <b>3406</b>), selecting a product record (block <b>3408</b>), determining model data of the target product (block <b>3410</b>), and providing a response message (block <b>3412</b>). The example method <b>3312</b> will be described below, by way of explanation, as being performed by certain modules. It will be appreciated, however, that the operations of the example method <b>3312</b> can be performed in any suitable order by any number of the modules shown in <figref idref="DRAWINGS">FIG. 5</figref>.
0229The method <b>3312</b> starts at block <b>3402</b> and proceeds to block <b>3404</b> for receiving a request message corresponding to a request to render a digital representation of a target user combined with a target product. The digital representation may correspond to a digital avatar of the target user wearing the target product, which may be an article of clothing, an accessory (shoes, hats, glasses, watches, scarves, belts, bags, etc.), wearable devices (headphones, wearable computing devices, etc.), or the like.
0230The user of the client device may provide the request message to configure the user's avatar or another user's avatar. Accordingly, the target user may be different from the user of the client device. An example of a user interface for configuring the user's avatar is shown in <figref idref="DRAWINGS">FIG. 25</figref>. An example of a user interface for configuring another user's avatar is shown in <figref idref="DRAWINGS">FIG. 27</figref>.
0231In an example embodiment, the application interface module(s) <b>502</b> may receive the request message from a user device or from an online marketplace application. The request message may be associated with a user identifier that is indicative of the target user. The first request message may also be associated with a product identifier that is indicative of the target product. For example, the request message may include the user identifier and the product identifier as a data packet. Alternatively, the user identifier and the product identifier may be transmitted to the digital avatar system <b>500</b> separately from the request message.
0232At blocks <b>3406</b>, <b>3408</b>, the method <b>3312</b> may include selecting a user account (or also referred to as a “record”) and a product record from databases. The selection of the user account may be based on the user identifier associated with the request message. For example, the database management module(s) <b>504</b> may compare the user identifier associated with the request message to a user identifier of a user account. In accordance with a determination of a match, the database management module(s) <b>504</b> may select the user account. In an example embodiment, the user account may correspond to the data structure <b>602</b> of <figref idref="DRAWINGS">FIG. 6</figref>. As such, the user account may include the measurement data in the sizing data field <b>622</b>.
0233The selection of the product record may be based on the product identifier associated with the request message received at block <b>3404</b>. For example, the database management module(s) <b>504</b> may compare the product identifier associated with the request message to a product identifier of a product record. In accordance with a determination of a match, the database management module(s) <b>504</b> may select the product record. In an example embodiment, the product record may correspond to the data structure <b>604</b> of <figref idref="DRAWINGS">FIG. 6</figref>. As such, the product record may include the one or more images in the image data array <b>636</b>.
0234At block <b>3410</b>, the method <b>3312</b> may include determining model data of the target product. Model data may correspond to image data for generating a digital avatar that is configured with the target product. The model data may include user model data and product model data that may be combined to generate the configured avatar. The user model data may correspond to an image of the user's face, which may be superimposed on an avatar body. The product model data may be representative of an image of a portion of model avatar that coincides with the product. For example, if the target product is a shirt, the product model data may correspond to an image of a torso region of a model avatar wearing the target shirt.
0235As such, the product model data may be determined based on attributes of the target product and the target user. In particular, the determining of the product model data may be based at least on the measurement data of the user record and the selected product record. In operation, in an example embodiment, the database management module(s) <b>504</b> may select an element <b>638</b> of the image data array <b>636</b> in accordance with attributes of the target user and the target product. For example, each element <b>638</b> of the image data array <b>636</b> may correspond to a specified user measurement and a product size. Accordingly, the database management module(s) <b>504</b> may select the element <b>638</b> of the image data array <b>636</b> that provides the closest match to the target user's measurements and the target product's size. It will be appreciated that the element <b>638</b> of the image data array <b>636</b> may be selected based on more or less attributes. For example, the element <b>638</b> may be selected based on the skin color or palette of the target user, the color of the target product, and/or the like variations of the target user or target product.
0236Furthermore, the element <b>638</b> may include one or more views of the selected variation of the product. Accordingly, the request message may include data that is indicative of a selected view, and the database management module(s) <b>504</b> may select an image of the view data fields <b>642</b>-<b>646</b> based on the view indicated by the request message. As a result, the selected image may serve as the product model data.
0237At block <b>3412</b>, the method <b>3312</b> may include providing a response message that includes the model data for display on the client device. In an example embodiment, the application interface module(s) <b>502</b> may transmit the model data to a user device using the communication interface module(s) <b>508</b>. At block <b>3414</b>, the method <b>3312</b> may end.
0238<figref idref="DRAWINGS">FIG. 35</figref> is a flowchart illustrating an example method of the block <b>3010</b> of <figref idref="DRAWINGS">FIG. 30</figref> for sharing avatar data, in accordance with an example embodiment. In this example, the example method of the block <b>3010</b> may include operations such as receiving a request to share avatar data (block <b>3504</b>), linking a user record to the avatar data (block <b>3506</b>), receiving a request for generating an avatar (block <b>3508</b>), providing model data of the avatar (block <b>3510</b>), receiving a request to share the model data (block <b>3512</b>), and providing the model data (block <b>3514</b>). The example method of the block <b>3010</b> will be described below, by way of explanation, as being performed by certain modules. It will be appreciated, however, that the operations of the example method of the block <b>3010</b> can be performed in any suitable order by any number of the modules shown in <figref idref="DRAWINGS">FIG. 5</figref>.
0239The example method of the block <b>3010</b> starts at block <b>3502</b> and proceeds to block <b>3504</b> for receiving a request to share avatar data of a user record. For example, the application interface module <b>502</b> may receive the request from a first user for sharing avatar data of the first user with a second user. To this end, the request may be associated with an identifier of a second user. In an example embodiment, the request may correspond to a data packet that includes the identifier of the second user.
0240At block <b>3506</b>, the example method of the block <b>3010</b> may include linking the user record of the second user to the user account of the first user. In an example embodiment, the database management module(s) <b>504</b> may provide linking data to the second user record. The linking data may facilitate providing the second user access to the avatar data of the first user record. For example, the linking data may be indicative of a location of the user record for accessing the avatar data. Additionally or alternatively, the database management module(s) <b>504</b> may write data to the user record of the first user that is indicative of access privileges for the second user.
0241At block <b>3508</b>, the example method of the block <b>3010</b> may include receiving a request from the second user for generating avatar of the first user with a selected product.
0242At block <b>3510</b>, the method <b>3010</b> may include providing model data of the avatar with the selected product mapped onto the avatar. In an example embodiment, the application interface module <b>502</b> may provide the model data to the second user by using the communication interface module <b>508</b>.
0243At block <b>3512</b>, the example method of the block <b>3010</b> may include receiving, from the second user, a request to share the model data with the first user. For example, the second user may provide the request to share the avatar generated using the model data provided at block <b>3510</b>. As such, the user may select the element <b>2408</b> of the user interface <b>2400</b> of <figref idref="DRAWINGS">FIG. 24</figref>. The application interface module(s) <b>502</b> of the digital avatar system <b>500</b> may receive an indication of the user's selection.
0244At block <b>3514</b>, the example method of the block <b>3010</b> may include providing the model data to the first user. The providing of the model data may be responsive to receiving an indication of a request to share and avatar. In an example embodiment, the digital avatar system <b>500</b> may provide the first user the model data that was provided to the second user at block <b>3510</b>.
0245In an example embodiment, products displayed on a digital avatar may be selectable for navigating a user interface to a product page of the selected product. For example, the second user may dress the avatar of the first user with a shirt and may send the avatar to the first user. In turn, the first user may select the shirt on the avatar display to bring up a webpage of the shirt. On this webpage, the user may purchase the shirt. Moreover, the model data may include data for tracking purchases made by the first user. Accordingly, in response to the first user purchasing a product included with the avatar, the second user may receive a reward, such as points, discount, free merchandise, or the like. At block <b>3516</b>, the example method of the block <b>3010</b> may end.
0246The example methods/blocks <b>3000</b>, <b>3004</b>, <b>3006</b>, <b>3008</b>, <b>3312</b>, <b>3010</b> were described, by way of explanation, above as utilizing certain data structures. It will be appreciated, however, that the data accessed or stored by the example methods can be stored in any suitable data structure, including, but not limited to, the data structures shown in <figref idref="DRAWINGS">FIG. 6</figref>.
Modules, Components and Logic
0247Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied (1) on a non-transitory machine-readable medium or (2) in a transmission signal) or hardware-implemented modules. A hardware-implemented module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented module that operates to perform certain operations as described herein.
0248In various embodiments, a hardware-implemented module may be implemented mechanically or electronically. For example, a hardware-implemented module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware-implemented module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware-implemented module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
0249Accordingly, the term “hardware-implemented module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily or transitorily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein. Considering embodiments in which hardware-implemented modules are temporarily configured (e.g., programmed), each of the hardware-implemented modules need not be configured or instantiated at any one instance in time. For example, where the hardware-implemented modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware-implemented modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware-implemented module at one instance of time and to constitute a different hardware-implemented module at a different instance of time.
0250Hardware-implemented modules can provide information to, and receive information from, other hardware-implemented modules. Accordingly, the described hardware-implemented modules may be regarded as being communicatively coupled. Where multiple of such hardware-implemented modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware-implemented modules. In embodiments in which multiple hardware-implemented modules are configured or instantiated at different times, communications between such hardware-implemented modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware-implemented modules have access. For example, one hardware-implemented module may perform an operation, and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware-implemented module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware-implemented modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
0251The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules.
0252Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
0253The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs).)
Electronic Apparatus and System
0254Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Example embodiments may be implemented using a computer program product, e.g., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
0255A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
0256In example embodiments, operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry, e.g., a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
0257The 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 embodiments deploying a programmable computing system, it will be appreciated that that both hardware and software architectures merit consideration. Specifically, it will be appreciated that the choice of whether to implement certain functionality in permanently configured hardware (e.g., an ASIC), in temporarily configured hardware (e.g., a combination of software and a programmable processor), or a combination of permanently and temporarily configured hardware may be a design choice. Below are set out hardware (e.g., machine) and software architectures that may be deployed, in various example embodiments.
Example Machine Architecture and Machine-Readable Medium
0258<figref idref="DRAWINGS">FIG. 36</figref> is a block diagram of a machine in the example form of a computer system <b>3600</b> within which instructions <b>3624</b> may be executed for causing the machine to perform any one or more of the methodologies discussed herein. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
0259The example computer system <b>3600</b> includes a processor <b>3602</b> (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory <b>3604</b> and a static memory <b>3606</b>, which communicate with each other via a bus <b>3608</b>. The computer system <b>3600</b> may further include a video display unit <b>3610</b> (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system <b>3600</b> also includes an alphanumeric input device <b>3612</b> (e.g., a keyboard or a touch-sensitive display screen), a user interface (UI) navigation (or cursor control) device <b>3614</b> (e.g., a mouse), a disk drive unit <b>3616</b>, a signal generation device <b>3618</b> (e.g., a speaker) and a network interface device <b>3620</b>.
Machine-Readable Medium
0260The disk drive unit <b>3616</b> includes a computer-readable medium <b>3622</b> on which is stored one or more sets of data structures and instructions <b>3624</b> (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions <b>3624</b> may also reside, completely or at least partially, within the main memory <b>3604</b> and/or within the processor <b>3602</b> during execution thereof by the computer system <b>3600</b>, the main memory <b>3604</b> and the processor <b>3602</b> also constituting machine-readable media.
0261While the machine-readable medium <b>3622</b> is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions <b>3624</b> or data structures. The term “machine-readable medium” shall also be taken to include any non-transitory, tangible medium that is capable of storing, encoding or carrying instructions <b>3624</b> for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present inventive subject matter, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
Transmission Medium
0262The instructions <b>3624</b> may further be transmitted or received over a communications network <b>3626</b> using a transmission medium. The instructions <b>3624</b> may be transmitted using the network interface device <b>3620</b> and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions (e.g., instructions <b>3624</b>) for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
0263Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the inventive subject matter. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
0264Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
Contents4
29 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29
Every citation, both ways
| Document | Relation | Office | Category | Cited during | Relevant claims |
|---|---|---|---|---|---|
| US12379784B2 | Cited by | United States of America | – | Applicant | – |
| US10653962B2 | Cited by | United States of America | – | Applicant | – |
| US2023069541A1 | Cited by | United States of America | – | Search report | – |
| US11301912B2 | Cited by | United States of America | – | Applicant | – |
| US12056760B2 | Cited by | United States of America | – | Search report | – |
| US11662829B2 | Cited by | United States of America | – | Applicant | – |
| US11273378B2 | Cited by | United States of America | – | Applicant | – |
| CN114026589A | Cited by | China | – | Search report | – |
| US11507796B2 | Cited by | United States of America | – | Search report | – |
| US12039145B2 | Cited by | United States of America | – | Search report | – |
| US10332176B2 | Cited by | United States of America | – | Applicant | – |
| US10210544B2 | Cited by | United States of America | – | Search report | – |
| US11055746B1 | Cited by | United States of America | – | Search report | – |
| US2018096410A1 | Cited by | United States of America | – | Search report | – |
| US2021211487A1 | Cited by | United States of America | – | Search report | – |
| US2023325049A1 | Cited by | United States of America | – | Search report | – |
| US2018096410A1 | Cited by | United States of America | – | Search report | – |
| US2024354837A1 | Cited by | United States of America | – | Search report | – |
| US11996977B2 | Cited by | United States of America | – | Search report | – |
| US12190429B2 | Cited by | United States of America | – | Applicant | – |
| US12062146B2 | Cited by | United States of America | – | Applicant | – |
| US10354311B2 | Cited by | United States of America | – | Applicant | – |
| US11017462B2 | Cited by | United States of America | – | Applicant | – |
| US11362889B2 | Cited by | United States of America | – | Search report | – |
| US11676199B2 | Cited by | United States of America | – | Search report | – |
| US10540801B1 | Cited by | United States of America | – | Search report | – |
| US11494833B2 | Cited by | United States of America | – | Applicant | – |
| US9953357B2 | Cited by | United States of America | – | Search report | – |
| US11238406B1 | Cited by | United States of America | – | Applicant | – |
| US12008619B2 | Cited by | United States of America | – | Applicant | – |
| CN115454942A | Cited by | China | – | Search report | – |
| US2022311661A1 | Cited by | United States of America | – | Search report | – |
| US10529009B2 | Cited by | United States of America | – | Applicant | – |
| KR20220024991A | Cited by | Republic of Korea | – | Search report | – |
| US12086393B2 | Cited by | United States of America | – | Search report | – |
| US10366447B2 | Cited by | United States of America | – | Applicant | – |
| US11243913B1 | Cited by | United States of America | – | Search report | – |
| US11073915B2 | Cited by | United States of America | – | Applicant | – |
| US2002045959A1 | Cites | United States of America | Y | Search report | 1-20 |
| US2002045959A1 | Cites | United States of America | Y | Search report | 1-20 |
| US2006184993A1 | Cites | United States of America | Y | Search report | 1-20 |
| US2006184993A1 | Cites | United States of America | Y | Search report | 1-20 |
| US2010030578A1 | Cites | United States of America | A | Search report | – |
| US2010030578A1 | Cites | United States of America | A | Search report | – |
| US2011078055A1 | Cites | United States of America | Y | Search report | 1-20 |
| US2014330670A1 | Cites | United States of America | A | Search report | – |
| US2014330670A1 | Cites | United States of America | A | Search report | – |
| US2014330670A1 | Cites | United States of America | A | Search report | – |
| US2015005808A1 | Cites | United States of America | – | Search report | – |
| US2015058083A1 | Cites | United States of America | A | Search report | – |
| US2015058083A1 | Cites | United States of America | A | Search report | – |
| US2015058083A1 | Cites | United States of America | A | Search report | – |
| US2015154691A1 | Cites | United States of America | A | Search report | – |
| US2015154691A1 | Cites | United States of America | A | Search report | – |
2 members in 2 offices
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2016042402A1 | United States of America | A1 | |
| WO2016022937A1 | World Intellectual Property Organization (WIPO) | A1 |
190 transactions on the USPTO file
Abandoned after 5 non-final rejections, 5 final rejections and 4 RCEs.
- Non-final rejections
- 5
- Final rejections
- 5
- RCEs
- 4
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Abandonment for Failure to Respond to Office ActionAbandonedMABN2 | MABN2 | |
| Aband. for Failure to Respond to O. A.AbandonedABN2 | ABN2 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Interview Summary RecordEXIN | EXIN | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Information Disclosure Statement considered | – | |
| Information Disclosure Statement considered | – | |
| Information Disclosure Statement considered | – | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Incoming Letter Pertaining to the DrawingsLTDR | LTDR | |
| Response after Non-Final ActionA... | A... | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement considered | – | |
| Information Disclosure Statement considered | – | |
| Information Disclosure Statement considered | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Advisory Action (PTOL-303)CTAV | CTAV |
22 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: application discontinuationABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTIONSTCB | STCB | |
| Information on status: application discontinuationFINAL REJECTION MAILEDSTCB | STCB | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| Information on status: application discontinuationFINAL REJECTION MAILEDSTCB | STCB | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| Information on status: application discontinuationFINAL REJECTION MAILEDSTCB | STCB | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalADVISORY ACTION MAILEDSTPP | STPP | |
| Information on status: application discontinuationFINAL REJECTION MAILEDSTCB | STCB | |
| Information on status: patent application and granting procedure in generalFINAL REJECTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalRESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINERSTPP | STPP | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 20160042402
- Application
- 14454619
Titles
- English
- EVALUATING DIGITAL INVENTORIES
Classification
- CPC, 3
- G06Q30/0269
- G06Q10/087
- G06Q30/0276
- IPC, 2
- G06Q30 02
- G06Q10 08