Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEMS AND METHODS FOR SCHEDULED VIDEO CHAT SESSIONS
Document Type and Number:
WIPO Patent Application WO/2020/106932
Kind Code:
A1
Abstract:
A computer-implemented method for facilitating a virtual meet-and-greet between a first client device, a second client device, and at least a third client device is provided. The method involves receiving a first audiovisual stream from the first client device and a second audiovisual stream from the second client device. The method also involves establishing, during a first predetermined period of time, a first private one-on-one video chat between the first client device and the second client device by (i) transmitting the first audiovisual stream to the second client device and (ii) simultaneously transmitting the second audiovisual stream to the first client device. The method further involves terminating the private one-on-one video chat after the first predetermined period of time, and establishing a second private one-on-one video chat between the first client device and the third client device during a second predetermined period of time.

Inventors:
GOPAL PRAJIT (US)
KORNICK BENJAMIN (US)
PEDDADA SANDEEP (US)
MADDI PRANAV (US)
Application Number:
PCT/US2019/062563
Publication Date:
May 28, 2020
Filing Date:
November 21, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
VIPVR LLC (US)
International Classes:
H04L29/06; H04L12/58; H04L29/08; H04N5/445; H04N7/14
Foreign References:
US20130110570A12013-05-02
US8718245B22014-05-06
Attorney, Agent or Firm:
ONE, Jordan et al. (US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A computer-implemented method for facilitating a virtual meet-and-greet between a first client device, a second client device, and at least a third client device, the method comprising:

receiving, at a backend server, a first audiovisual stream from the first client device; receiving, at the backend server, a second audiovisual stream from the second client device;

during a first predetermined period of time, establishing a first private one-on-one video chat between the first client device and the second client device by (i) transmitting the first audiovisual stream to the second client device and (ii) simultaneously transmitting the second audiovisual stream to the first client device;

after the first predetermined period of time, terminating the first private one-on-one video chat;

receiving, at the backend server, a third audiovisual stream from the third client device; and

during a second predetermined period of time that does not overlap with the first predetermined period of time, establishing a second private one-on-one video chat between the first client device and the third client device by (i) transmitting the first audiovisual stream to the third client device and (ii) simultaneously transmitting the third audiovisual stream to the first client device.

2. The computer-implemented method of claim 1, wherein the backend server stores thereon a timetable comprising a plurality of time slots each respectively associated with a plurality of client devices, wherein the plurality of time slots includes the first predetermined period of time associated with the second client device, the first predetermined period of time including a first start time and a first end time, and wherein establishing the first private one-on-one video chat further comprises:

at the first start time, automatically and simultaneously initiating (i) the transmission of the first audiovisual stream to the second client device and (ii) the transmission of the second audiovisual stream to the first client device.

3. The computer-implemented method of claim 1, further comprising:

after the second predetermined period of time, terminating the second private one-on- one video chat.

4. The computer-implemented method of claim 3, further comprising:

receiving, at the backend server, a fourth audiovisual stream from a fourth client device; and

during a third predetermined period of time that does not overlap with the first or second predetermined periods of time, establishing a third private one-on-one video chat between the first client device and the fourth client device by (i) transmitting the first audiovisual stream to the fourth client device and (ii) simultaneously transmitting the fourth audiovisual stream to the first client device.

5. The computer-implemented method of claim 4, wherein the backend server is configured to receive a plurality of audiovisual streams, each respectively associated with a plurality of client devices, and wherein the backend server is configured to successively establish and terminate a series of private one-on-one video chats according to a timetable comprising a plurality of time slots, and wherein each of the plurality of time slots is associated with a respective one of the plurality of client devices.

6. The computer-implemented method of claim 5, wherein the timetable identifies a predetermined start time for each of the plurality of client devices, and wherein the backend server is configured to transmit an instruction to each of the plurality of client devices to display, up until the respective predetermined start time for each of the plurality of client devices, one or more user interface elements associated with a virtual waiting room.

7. The computer-implemented method of claim 6, wherein the one or more user interface elements comprises a timer configured to count downwards until the beginning of the predetermined start time for each of the plurality of client devices.

8 The computer-implemented method of claim 1, further comprising: before the beginning of the second predetermined period of time, transmitting an instruction to the third client device to display one or more user interface elements associated with a virtual waiting room.

9. The computer-implemented method of claim 8, wherein the one or more user interface elements comprises a timer configured to count downwards until the beginning of the second predetermined period of time.

10. The computer-implemented method of claim 8, wherein the instruction includes a requirement that the one or more user interface elements comprises a chat box, the method further comprising:

transmitting an instruction to a fourth client device to display one or more user interface elements associated with the virtual waiting room, wherein the one or more user interface elements comprises a chat box input region; receiving, from the fourth client device, a set of text information entered into the chat box input region; and

transmitting to the third client device an instruction to display, in the chat box, the set of text information.

11. The computer-implemented method of claim 1, wherein the method further comprises:

during the first predetermined period of time, issuing a display instruction to the second client device to display at least a portion of the first audiovisual stream and at least a portion of the second audiovisual stream directly adjacent to each other in a first split-screen user interface; and

issuing a capture instruction to the second client device to capture an image of the first split-screen user interface, wherein the image represents a virtual self- portrait of a user of the first client device and a user of the second client device.

12. The computer-implemented method of claim 11, wherein the backend server has stored upon it a plurality of split-screen user interfaces, and wherein the user of the first client device is enabled to choose from among the plurality of split-screen user interfaces, towards capturing the image.

13. The computer-implemented method of claim 11, wherein the plurality of split screen user interfaces includes a high-five template.

14. The computer-implemented method of claim 11, wherein the plurality of split screen user interfaces includes a leaning template.

15. The computer-implemented method of claim 1, wherein the backend server stores thereon a plurality of user accounts each associated with a respective client device, together with a quantity of virtual currency associated with each respective user account, the method further comprising:

receiving, at the backend server, a request by a user associated with the second client device to purchase a time slot for the virtual meet-and-greet;

deducting, by the backend server, an amount of virtual currency from a user account associated with the user; and

allocating the first predetermined period of time to the user account associated with the user.

16. The computer-implemented method of claim 15, wherein the backend server further stores thereon a virtual currency schedule indicating an amount of virtual currency that each of the plurality of user accounts may be awarded for engaging in one of a set of social media actions.

17. The computer-implemented method of claim 16, the method further comprising:

receiving, at the backend server, a message indicating that the user performed a particular social media action listed in the virtual currency schedule; and based upon the particular social media action and the virtual currency schedule, adding, by the backend server, a predetermined quantity of virtual currency to the user account associated with the user.

18. The computer-implemented method of claim 16, wherein the particular social media action includes the user sharing content on a social media account associated with the user.

19. The computer-implemented method of claim 18, wherein the content shared by the user on the user’s social media account originated from a second social media account associated with an administrator of the first client device.

20. The computer-implemented method of claim 1, wherein the backend server stores thereon a plurality of user accounts each associated with a respective client device, together with a quantity of virtual currency associated with each respective user account, the method further comprising:

receiving, at the backend server, a request by a user associated with the second client device to purchase one or more raffle tickets for the virtual meet-and-greet; deducting, by the backend server, an amount of virtual currency from a user account associated with the user based on a number of raffle tickets purchased by the user;

randomly selecting, from a pool of tickets purchased by a set of users for the virtual meet-and-greet, a particular ticket from the pool of tickets associated with a particular user from the set of users; and

based on the particular ticket having been randomly selected, allocating one of a set of predetermined time slots to the user account associated with the particular user.

21. A system for digitally engaging a celebrity with fans through virtual meetings, the system comprising:

a first client device associated with the celebrity that is operable to participate in a virtual meet-and-greet that involves a series of scheduled, private one-on-one video chats with a set of fans, the first client device comprising at least a display, a camera, and a microphone;

one or more second client devices associated with the set of fans, each of the one or more second client devices being operable to participate in one of the scheduled, private one-on-one video chats with the celebrity during a set of predetermined time slots, the predetermined time slots being non-overlapping and collectively forming a predetermined timetable, the one or more second client devices each comprising at least a display, a camera, and a microphone; and a backend server configured to facilitate the virtual meet-and-greet between the celebrity and the set of fans by (i) receiving a first audiovisual stream from the first client device, (ii) receiving one or more second audiovisual streams from the one or more second client devices, and (iii) transmitting, according to the predetermined timetable, (a) the first audiovisual stream to a particular second client device of the one or more second client devices, and (b) the second audiovisual stream of the particular second client device to the first client device.

22. The system of claim 21,

wherein the backend server is further configured to store a set of quantities of virtual currency, wherein each quantity of virtual currency is associated with one of a set of user accounts associated with a respective one of the one or more second client devices,

wherein the one or more second client devices are each configured to transmit a request to purchase its respective predetermined time slot using an amount of virtual currency associated with a particular user account from among the set of user accounts, and

wherein the backend server is further configured to, responsive to receiving a request from a particular second client device to purchase a predetermined time slot, (i) deduct the amount of virtual currency from the virtual currency quantity of the particular user account, and (ii) allocate the predetermined time slot to the particular user account.

23. The system of claim 22,

wherein the one or more second client devices are each further operable to share content on social media, and

wherein the backend server is further configured to, responsive to a particular second client device sharing a particular content item on social media, add a predetermined quantity of virtual currency to the user account associated with the particular second client device.

24. The system of claim 21, wherein the backend server is further configured to store virtual currency quantities for one or more user accounts associated with the respective one or more second client devices,

wherein the one or more second client devices are each configured to transmit a request to purchase a ticket for the virtual meet-and-greet with an amount of virtual currency associated with its respective user account, and wherein the backend server is further configured to, responsive to receiving a request from a particular second client device to purchase a ticket, (i) deduct the amount of virtual currency from the virtual currency quantity of the user account associated with the particular second device, (ii) randomly select, from a pool of tickets purchased by the one or more second client devices, a particular ticket purchased by a user of the particular second client device, and (iii) based on the particular ticket being randomly selected, allocate one of a set of predetermined time slots to a user account associated with the particular second client device.

25. The system of claim 21,

wherein the backend server is further configured to provide, during the virtual meet- and-greet, a virtual waiting room into which some of the one or more second client devices connect before the beginning of their predetermined time slot, and

wherein the one or more second client devices are further configured to display one or more user interface elements representative of a waiting room while connected to the virtual waiting room.

26. The system of claim 25, wherein the one or more user interface elements comprises a countdown timer.

27. The system of claim 25, wherein the backend server is further configured to provide, within the virtual waiting room, a chat box with which each of the one or more second client devices connected to the virtual waiting room can enter text chat viewable by the other one or more second client devices.

28. A non-transitory computer readable medium having instructions stored thereon that, upon execution by at least one processor, causes a client device to perform operations comprising:

initiating the transmission, at a first time, of a first stream of live audiovisual content captured by a camera of the client device to a backend server; receiving, from the backend server at the first time, a second stream of live audiovisual content captured by a computing device;

displaying, between the first time and a second time that occurs after the first time, a virtual meet-and-greet user interface that includes the first stream of live audiovisual content and the second stream of live audiovisual content;

displaying, between the second time and a third time that occurs after the second time, a self-portrait user interface that immediately juxtaposes at least a portion of the first stream of live audiovisual content with at least a portion of the second stream of live audiovisual content, wherein the self-portrait user interface is different from the virtual meet-and-greet user interface; and

terminating the transmission, at the third time, of the first stream of live audiovisual content to the backend server.

29. The non-transitory computer readable medium of claim 28, wherein the operations further comprise:

displaying, before the first time, a virtual waiting room user interface that includes at least a countdown timer indicating an amount of time between a current time and the first time.

30. The non-transitory computer readable medium of claim 29, wherein the virtual waiting room further includes a chat box that displays text chat submitted by other client devices connected to the virtual waiting room, wherein the other client devices are each scheduled to participate in a private video chat with a user of the second video stream during a respective time slot that does not overlap with a time slot defined between the first time and the third time.

Description:
SYSTEMS AND METHODS FOR SCHEDULED VIDEO CHAT SESSIONS

FIELD OF THE DISCLOSURE

[0001] The present embodiments relate to video chat systems and methods. In particular, the present embodiments relate to systems and methods for performing consecutive, scheduled audiovisual chat systems.

BACKGROUND

[0002] The proliferation of smartphones, tablets, laptops, and other computing devices has led to an increased number of users with Internet-connected, camera-equipped, and microphone-equipped devices. These devices— together with the development and ready availability of videotelephony— have enabled people to engage in virtual real-time communication by simultaneously exchanging live video and audio data between two devices.

[0003] Videoconferencing is a common application of videotelephony technology, in which a group of individuals can participate in an organizational meeting. The rise of videoconference services has enabled some organizations to allow their employees to work remotely, while still being able to engage in group meetings. Another application of this technology, often referred to as “video calling,” has extended traditional audio-only telephone calls to also include live video transmission.

[0004] With the advent of the Internet, celebrities, artists, and other public figures are increasingly engaging with their fans, supporters, and constituents through digital platforms, such as social media. Traditionally, such famous individuals have engaged with members of the public through organized in-person events ( e.g ., public appearances, backstage passes, public receptions, press events, etc.).

[0005] These types of public events can be difficult and expensive to organize. Fans or other individuals would have to travel to the geographic location of the public event, which may preclude some individuals from attending due to timing or cost constraints. Additionally, such public events often require security personnel to ensure the safety of the public figure. These challenges result in fans being unable to meet public figures, and in public figures electing to forgo such public events in the interest of their safety and convenience. [0006] Thus, an object of the invention is to provide a platform to allow celebrities, artists, and other public figures to digitally engage with their fans, supporters, and constituents.

SUMMARY

[0007] The various embodiments of the present techniques for systems and methods for scheduled video chat sessions have several features, no single one of which is solely responsible for their desirable attributes. Without limiting the scope of the present embodiments as expressed by the claims that follow, their more prominent features will now be discussed briefly. After considering this discussion, and particularly after reading the section entitled“Detailed Description,” one of skill in the art will understand how the features of the present embodiments provide the advantages described herein.

[0008] As technology advances, it has become increasingly commonplace for the average consumer to own a camera-equipped and microphone-equipped computing device. Smartphones, for example, frequently include front-facing cameras, which allow users to capture self-portraits (i.e.,“selfies”) of themselves and to engage in live video chat with others.

[0009] Additionally, the fanbases for celebrities, artists, and other public figures has become more geographically dispersed than ever before. Technologies such as the Internet have enabled users to consume content from their favorite musicians, artists, politicians, athletes, and other famous figures from anywhere in the world. Social media platforms have allowed users to follow the activity of their favorite celebrities, without the need to physically travel to the events of those celebrities.

[0010] Existing social media platforms offer one-way communication, in which the public figure can publish content ( e.g ., a text statement, a photo, a video clip, etc.) to be consumed by his or her fan base. While many of these platforms allow fans to publicly comment on and“like” posted content, the type of communication from fans toward celebrities does not simulate a more private in-person event, such as a backstage pass or “meet-and-greet” event. Additionally, existing platforms do not offer a mode of operation that facilitates two-way private communication between a celebrity and his or her fans.

[0011] One aspect of the present embodiments includes the realization that neither typical videotelephony systems nor social media platforms provide a comprehensive way for celebrities, artists, and other public figures to directly and digitally engage with fans, supporters, and other constituents. Indeed, while celebrities, artists and other public figures may directly engage with their fans or supporters on social media via text communications, these communications methods may not regularly encourage direct engagement between a public figure and his or her fans. Accordingly, one aspect of the present embodiments is the ability of individual users, who may be fans and supporters or certain celebrities, artists, and other public figures, to earn virtual currency rewards in exchange for sharing social media content posted by those celebrities, artists, and other public figures to the feeds of the individual users’ own social media accounts. The individual users can eventually cash in those virtual currency rewards for a virtual meeting, or for a chance to win a virtual meeting, with the celebrity, artist or other public figure. Thus, embodiments of the present invention provide a system in which one individual ( e.g ., a celebrity, artists, or other public figure) can engage in a series of sequential, one-on-one private video chats with a set of other individuals (e.g., fans, supporters, or other constituents). Each private video chat session may begin and end automatically according to a predetermined timetable or schedule, which simplifies the process for both the famous individual and their supporters. In this manner, each fan has a chance to privately interact with the celebrity and engage in a one-on-one conversation for a predetermined period of time. Such a scheduled, timetable-based video chat session between one person and a set of other persons may be referred to herein as a“virtual meet-and-greet.”

[0012] In a first aspect, a computer-implemented method for facilitating a virtual meet-and-greet between at least a first client device, a second client device, and a third client device is provided. The method involves receiving, at a backend server, a first audiovisual stream from the first client device. The method also involves receiving, at the backend server, a second audiovisual stream from the second client device. The method further involves establishing, during a first predetermined period of time, a first private one-on-one video chat between the first client device and the second client device by (i) transmitting the first audiovisual stream to the second client device and (ii) simultaneously transmitting the second audiovisual stream to the first client device. Additionally, the method involves terminating the first private one-on-one video chat after the first predetermined period of time. Further, the method involves receiving, at the backend server, a third audiovisual stream from the third client device. The method additionally involves establishing, during a second predetermined period of time, a second private one-on-one video chat between the first client device and the third client device by (i) transmitting the first audiovisual stream to the third client device and (ii) simultaneously transmitting the third audiovisual stream to the first client device. [0013] In an embodiment of the first aspect, the backend server stores thereon a timetable that includes a plurality of time slots each respectively associated with a plurality of client devices. The plurality of time slots may include the first predetermined period of time associated with the second client device, and the first predetermined period of time may include a first start time and a first end time. In this embodiment, establishing the first private one-on-one video chat also involves automatically and simultaneously initiating, at the first start time, (i) the transmission of the first audiovisual stream to the second client device and (ii) the transmission of the second audiovisual stream to the first client device.

[0014] In another embodiment of the first aspect, the method also includes terminating, after the second predetermined period of time, the second private one-on-one video chat. In this embodiment, the method may also involve receiving, at the backend server, a fourth audiovisual stream from a fourth client device. The method according to this embodiment may further involve establishing, during a third predetermined period of time that does not overlap with the first or second predetermined periods of time, a third private one-on-one video chat between the first client device and the fourth client device by (i) transmitting the first audiovisual stream to the fourth client device and (ii) simultaneously transmitting the fourth audiovisual stream to the first client device.

[0015] In this embodiment, the backend server may be configured to receive a plurality of audiovisual streams, each respectively associated with a plurality of client devices. The backend server may also be configured to successively establish and terminate a series of private one-on-one video chats according to a timetable comprising a plurality of time slots. Each of the plurality of time slots may be associated with a respective one of the plurality of client devices.

[0016] In this embodiment, the timetable may identify a predetermined start time for each of the plurality of client devices. The backend server may be configured to transmit an instruction to each of the plurality of client devices to display, up until the respective predetermined start time for each of the plurality of client devices, one or more user interface elements associated with a virtual waiting room. In addition, the one or more user interface elements may include a timer configured to count downwards until the beginning of the predetermined start time for each of the plurality of client devices.

[0017] In another embodiment of the first aspect, the method may also involve transmitting an instruction to the third client device to display one or more user interface elements associated with a virtual waiting room before the beginning of the second predetermined period of time. The one or more user interface elements may include a timer configured to count downwards until the beginning of the second predetermined period of time.

[0018] The instruction may also include a requirement that the one or more user interface elements comprises a chat box. In this embodiment, the method may also involve transmitting an instruction to a fourth client device to display one or more user interface elements associated with the virtual waiting room. The one or more user interface elements may include a chat box input region. In this embodiment, the method may further involve receiving, from the fourth client device, a set of text information entered into the chat box input region. Further, the method according to this embodiment may involve transmitting to the third client device an instruction to display, in the chat box, the set of text information.

[0019] In another embodiment of the first aspect, the method may also involve issuing a display instruction to the second client device to display at least a portion of the first audiovisual stream and at least a portion of the second audiovisual stream directly adjacent to each other in a first split-screen user interface during the first predetermined time period. The method may further involve issuing a capture instruction to the second client device to capture an image of the first split-screen user interface. The image may represent a virtual self-portrait of a user of the first client device and a user of the second client device.

[0020] In this embodiment, the backend server has stored upon it a plurality of split screen user interface templates. The user of the first client device may be enabled to choose from among the plurality of split-screen user interface templates, towards capturing the image. The plurality of split-screen user interface templates may include a high-five template, a leaning template, and/or any other type of template.

[0021] In another embodiment of the first aspect, the backend server stores thereon a plurality of user accounts each associated with a respective client device, together with a quantity of virtual currency associated with each respective user account. The method according to this embodiment may also involve receiving, at the backend server, a request by a user associated with the second client device to purchase a time slot for the virtual meet- and-greet. The method according to this embodiment may further involve deducting, by the backend server, an amount of virtual currency from a user account associated with the user. Additionally, the method according to this embodiment may involve allocating the first predetermined period of time to the user account associated with the user.

[0022] In this embodiment, the backend server may also store thereon a virtual currency schedule indicating an amount of virtual currency that each of the plurality of user accounts may be awarded for engaging in one of a set of social media actions. The method according to this embodiment may also involve receiving, at the backend server, a message indicating that the user performed a particular social media action listed in the schedule and, based upon the particular social media action and the virtual currency schedule, adding, by the backend server, a predetermined quantity of virtual currency to the user account associated with the user.

[0023] In this embodiment, the particular social media action may include the user sharing content on a social media account associated with the user. The content shared by the user on the user’s social media account may originate from a second social media account associated with an administrator of the first client device.

[0024] In another embodiment of the first aspect, the backend server stores thereon a plurality of user accounts each associated with a respective client device, together with a quantity of virtual currency associated with each respective user account. The method according to this embodiment may involve receiving, at the backend server, a request by a user associated with the second client device to purchase one or more raffle tickets for the virtual meet-and-greet. The method according to this embodiment may also involve deducting, by the backend server, an amount of virtual currency from a user account associated with the user based on a number of raffle tickets purchased by the user. The method according to this embodiment may further involve randomly selecting, from a pool of tickets purchased by a set of users for the virtual meet-and-greet, a particular ticket from the pool of tickets associated with a particular user from the set of users. Additionally, the method according to this embodiment may involve allocating one of a set of predetermined time slots to the user account associated with the particular user based on the particular ticket having been randomly selected.

[0025] In a second aspect, a system for digitally engaging a celebrity with fans through virtual meetings is provided. The system includes a first client device associated with the celebrity that is operable to participate in a virtual meet-and-greet that involves a series of scheduled, private one-on-one video chats with a set of fans. The first client device includes at least a display, a camera, and a microphone. The system also includes one or more second client devices associated with the set of fans, with each of the one or more second client devices being operable to participate in one of the scheduled, private one-on- one video chats with the celebrity during a predetermined time slot. The predetermined time slots are non-overlapping and collectively form a predetermined timetable. The one or more second client devices each include at least a display, a camera, and a microphone. The system further includes a backend server configured to facilitate the virtual meet-and-greet between the celebrity and the set of fans by (i) receiving a first audiovisual stream from the first client device, (ii) receiving one or more second audiovisual streams from the one or more second client devices, and (iii) transmitting, according to the predetermined timetable, (a) the first audiovisual stream to a particular second client device of the one or more second client devices, and (b) the second audiovisual stream of the particular second client device to the first client device.

[0026] In an embodiment of the second aspect, the backend server is further configured to store a set of quantities of virtual currency. Each quantity of virtual currency may be associated with one of a set of user accounts associated with a respective one of the one or more second client devices. The one or more second client devices may each be configured to transmit a request to purchase its respective predetermined time slot using an amount of virtual currency associated a particular user account from among the set of user accounts. Additionally, the backend server may be further configured to, responsive to receiving a request from a particular second client device to purchase a predetermined time slot, (i) deduct the amount of virtual currency from the virtual currency quantity of the particular user account, and (ii) allocate the predetermined time slot to the particular user account.

[0027] In this embodiment, the one or more second client devices may each be further operable to share content on social media. The backend server may also be further configured to, responsive to a particular second client device sharing a particular content item on social media, add a predetermined quantity of virtual currency to the user account associated with the particular second client device.

[0028] In another embodiment of the second aspect, the backend server is further configured to store virtual currency quantities for one or more user accounts associated with the respective one or more second client devices. The one or more second client devices may each be configured to transmit a request to purchase a ticket for the virtual meet-and-greet with an amount of virtual currency associated with its respective user account. In addition, the backend server may be further configured to, responsive to receiving a request from a particular second client device to purchase a ticket, (i) deduct the amount of virtual currency from the virtual currency quantity of the user account associated with the particular second device, (ii) randomly select, from a pool of tickets purchased by the one or more second client devices, a particular ticket purchased by a user of the particular second client device, and (iii) based on the particular ticket being randomly selected, allocate one of a set of predetermined time slots to a user account associated with the particular second client device. [0029] In this embodiment, the one or more second client devices are each further operable to share content on social media. The backend server may also be configured to, responsive to a particular second client device sharing a particular content item on social media, add a predetermined quantity of virtual currency to the user account associated with the particular second client device.

[0030] In another embodiment of the second aspect, the backend server is further configured to store virtual currency quantities for one or more user accounts associated with the respective one or more second client devices. The one or more second client devices may each be configured to transmit a request to purchase a ticket for the virtual meet-and-greet with an amount of virtual currency associated with its respective user account. Additionally, the backend server may be further configured to, responsive to receiving a request from a particular second client device to purchase a ticket, (i) deduct the amount of virtual currency from the virtual currency quantity of the user account associated with the particular second device, (ii) randomly select, from a pool of tickets purchased by the one or more second client devices, a particular ticket purchased by a user of the particular second client device, and (iii) based on the particular ticket being randomly selected, allocate one of a set of predetermined time slots to a user account associated with the particular second client device.

[0031] In another embodiment of the second aspect, the backend server is further configured to provide, during the virtual meet-and-greet, a virtual waiting room into which some of the one or more second client devices connect to before the beginning of their predetermined time slot. The one or more second client devices may be further configured to display one or more user interface elements representative of a waiting room while connected to the virtual waiting room.

[0032] In this embodiment, the one or more user interface elements may include a countdown timer. Additionally, the backend server may be further configured to provide, within the virtual waiting room, a chat box with which each of the one or more second client devices connected to the virtual waiting room can enter text chat viewable by the other one or more second client devices.

[0033] In a third aspect, a non-transitory computer readable medium having instructions stored thereon that, upon execution by at least one processor, causes a client device to perform a set of operations is provided. The operations include initiating the transmission, at a first time, of a first stream of live audiovisual content captured by a camera of the client device to a backend server. The operations also include receiving, from the backend server at the first time, a second stream of live audiovisual content captured by a computing device. The operations further include displaying, between the first time and a second time that occurs after the first time, a virtual meet-and-greet user interface that includes the first stream of live audiovisual content and the second stream of live audiovisual content. Additionally, the operations include displaying, between the second time and a third time that occurs after the second time, a self-portrait user interface that immediately juxtaposes at least a portion of the first stream of live audiovisual content with at least a portion of the second stream of live audiovisual content. The self-portrait user interface is different from the virtual meet-and-greet user interface. Further, the operations include terminating the transmission, at the third time, of the first stream of live audiovisual content to the backend server.

[0034] In an embodiment of the third aspect, the operations also include displaying, before the first time, a virtual waiting room user interface that includes at least a countdown timer indicating an amount of time between a current time and the first time.

[0035] In another embodiment of the third aspect, the virtual waiting room further includes a chat box that displays text chat submitted by other client devices connected to the virtual waiting room. The other client devices may each be scheduled to participate in a private video chat with a user of the second video stream during a respective time slot that does not overlap with a time slot defined between the first time and the third time.

[0036] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects embodiments, and features will become apparent by reference to the figures and the following detailed description and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0037] The various embodiments of the present techniques for methods for scheduled video chat sessions now will be discussed in detail with an emphasis on highlighting the advantageous features. These embodiments depict the novel and non-obvious techniques for methods for scheduled video chat sessions shown in the accompanying drawings, which are for illustrative purposes only. These drawings include the following figures, in which like numerals indicate like parts:

[0038] Figure 1 is a schematic diagram of an example system for carrying out scheduled video chat sessions, according to various aspects of the present disclosure;

[0039] Figure 2 is a conceptual diagram of a virtual meet-and-greet timetable, according to various aspects of the present disclosure; [0040] Figure 3A is a flowchart of a method for carrying out scheduled video chat sessions, according to various aspects of the present disclosure;

[0041] Figure 3B is a flowchart of a method for carrying out scheduled video chat sessions, according to various aspects of the present disclosure;

[0042] Figure 4 is an example user interface of a virtual waiting room, according to various aspects of present disclosure; and

[0043] Figures 5A-5E depict example user interfaces of selfie templates, according to various aspects of the present disclosure.

PET ATT, ED DESCRIPTION

[0044] The following detailed description describes the present embodiments with reference to the drawings. Example methods, apparatuses, and systems described herein are not intended to limit the scope of the description to the precise form or forms detailed herein. Instead the following description is intended to be illustrative so that others may follow its teachings.

[0045] The ubiquity of computing devices has enabled individuals to digitally communicate with each other over vast distances. With the emergence of social media, users are now able to follow celebrities, musicians, and other public figures by consuming the content they post on those platforms. However, most of these platforms provide a primarily unidirectional mode of communication. Celebrities can publish content ( e.g ., text statements, hyperlinks, photos, videos, etc.), which their followers can view, like, and comment on. However, these platforms do not provide a framework for celebrities to directly engage with their fans in a structured manner.

[0046] Videotelephony services, such as videoconferencing software and video calling, provide one potential alternative suitable means of communication by which celebrities, artists and other public figures may engage with their constituents. Video calling can be effective for“one-to-one” communication, in which one person directly calls another person. However, this type of service often requires that at least one person has the direct contact information of the other person (e.g., a phone number), which is typically provided only to trusted parties and close friends, family, or colleagues. Videoconferencing software, on the other hand, can be effective for“many-to-many” communication, whereby many individuals join a collective conference, each being able to observe and participate in a group discussion or meeting. Such software, however, cannot be used if two individuals among the group wish to have a private discussion separate from the group meeting. Furthermore, videoconferencing typically provides each participant the freedom to chime into a discussion which, coupled with latency delays in audiovisual transmissions, frequently leads to users talking over one another and hindering the communication. Thus, while each of these communication methods has advantages for enabling direct engagement and communication between celebrities, artists and other public figures and their fans, supporters and constituents, each method has its drawbacks for facilitating such engagement and communication.

[0047] Embodiments of the present disclosure solve these problems by providing a structured videotelephony platform that is efficient and effective for achieving“one-to-many” communication. An example technique facilitates a virtual “meet-and-greet” between oneperson ( e.g ., a celebrity, athlete, musician, public figure, interviewer, etc.) and two or more individuals (e.g., fans, supporters, interviewees, etc.) according to a timetable or schedule. A server determines the timetable or schedule for the virtual meet-and-greet, which designates a set of timeslots for each of the two or more individuals. During each time slot, the server exchanges audiovisual data between the computing device of the scheduled individual and the computing device of the person conducting the meet-and-greet, thereby providing a private, one-on-one video chat between the person and that individual for a predetermined period of time. At the conclusion of each time slot, the server automatically stops the audiovisual data exchange between the computing devices of the scheduled individual and the person conducting the meet and greet. Then, at the start of the proceeding time slot (which may be at the same time as, or after the conclusion of, the preceding time slot), the server begins exchanging audiovisual data between the computing devices of the next scheduled individual and the person conducting the meet-and-greet.

[0048] In this manner, the public figure conducting the meet-and-greet simply launches the application on his or her smartphone, tablet, or other computing device, and joins the virtual meet-and-greet session. The server, in accordance with a predetermined timetable, automatically connects and disconnects the participants (e.g, two-minute time slots for each participant) over the course of the virtual meet-and-greet. The public figure conducting the meet-and-greet need not have the participants’ contact information, and does not need to manually call (or accept calls) from the participants. Thus, the privacy of the public figure conducting the meet-and-greet is preserved, while still enabling that public figure to meet his or her fans and supporters. Likewise, fans and supporters are given the opportunity to meet their favorite celebrities, artists, and other public figures without having to travel significant distances, spend significant sums, obtain backstage passes or otherwise be invited to private in-person events.

[0049] Time slots may be allocated in association with particular user accounts. For example, a given time slot may represent a private one-on-one video chat session between a fan’s user account and a celebrity’s user account. The fan and/or celebrity may log in to their respective accounts on any suitable device and conduct the private video chat.

[0050] The system may include software applications that are executed on the computing devices of the fans and the celebrities, which at least partially facilitate the virtual meet-and-greet. For instance, an application on a fan’s mobile device (or other computing device) might include user interfaces for obtaining a virtual meet-and-greet timeslot with a celebrity, displaying the live video feed of the celebrity during the virtual meet-and-greet, and/or displaying other aspects of the platform described herein. Likewise, an application of a celebrity’s mobile device (or other computing device) might include user interfaces for publishing a window of time for a virtual meet-and-greet, displaying the live video feed of fans during virtual meet-and-greets, and/or displaying other aspects of the platform described herein. The application may also include software that exchanges information with a backend server, and that facilitates the transmission and/or reception of live audiovisual data.

[0051] The virtual“meet-and-greet” technique disclosed above may form a part of a digital service, platform, or experience. In some implementations, a platform or system according to the present disclosure may provide video chat experiences other than virtual meet-and-greets. For instance, the virtual meet-and-greet may be one of many“VIP” (Very Important Person) experiences, such as a“Green Room” ( e.g ., five-minute live group video chat with the celebrity and a few participants), a“Studio” meeting (e.g., a ten-minute live video chat to make and discuss music with an artist), and a“Press Room” (e.g, a celebrity answering fan-submitted questions live and broadcasting that video chat to a set of viewers), among other possible experiences.

[0052] In some embodiments, the system provides a virtual waiting room for fans awaiting their virtual meet-and-greet time slot. The virtual waiting room may be presented as a user interface on the computing devices of the fans, and may include elements such as a countdown timer (specific to each user representing an amount of time remaining prior to their meet-and-greet time slot), a chat function to allow other waiting fans to engage in public text communication with each other, and/or other aesthetic features or functions (e.g, option buttons for configuring the meet-and-greet experience, buttons for testing Internet connectivity, etc.).

[0053] In additional embodiments, a virtual meet-and-greet between a fan and a celebrity may involve capturing a virtual“selfie” containing both the fan and the celebrity. The user interface may immediately juxtapose a portion of the live video of the fan with a portion of the live video of the celebrity, according to a particular selfie“template.” The selfie templates may be designed to provide the appearance of the fan and the celebrity being in the same physical location, akin to taking a photograph together in person. In some implementations, the selfie templates may place portions of the live video of the celebrity and the fan into a digital environment (e.g, on a stage, in a backroom, on location in an outdoor nature environment, etc.). [0054] The system may store user account information associated with the users of the platform. For example, a user account may link to that user’s social media accounts, allowing users to directly share content from the platform on other social media platforms. Additionally, the user account information may maintain information related to the user’s account as it pertains to the use of the platform. For example, the system may maintain a ledger of virtual currency quantities for each user account. A user may obtain virtual currency by performing particular actions with respect to the platform. For example, a celebrity may publish content on the platform, and the user may share that content on his or her respective social media account(s) to earn virtual currency rewards. The virtual currency may be used to purchase or enter a lottery for virtual meet-and-greet time slots or other VIP experiences. The user account information may also store data related to the user’s purchased virtual meet-and-greet and/or other VIP experiences ( e.g ., upcoming time slots, raffle tickets purchased to be drawn for a chance to win a time slot in a virtual meet-and- greet, etc.).

[0055] Some or all aspects of the system— including application software executed by computing devices, website interfaces, and backend servers— may collectively form the “platform” as described herein. For instance, a mobile device application may provide user interface elements and software for communicating with a backend server for the transmission and reception of data. The“platform” may refer to the combination of software and/or hardware used to carry out the techniques of the present disclosure. Alternatively, the “platform” may refer to one or more backend servers and the software executed thereon that facilitates the various operations of the present disclosure (e.g., scheduling virtual meet-and- greets, exchanging audiovisual data among devices to facilitate virtual meet-and-greets, maintaining virtual currency quantities, etc.).

[0056] Furthermore, it should be understood that any combination of elements of the platform contemplated herein may be used in various implementations, without departing from the scope of the present application. For instance, one example virtual meet-and-greet system may involve capturing a“selfie” during each private session, while another example virtual meet-and-greet system might not involve selfie capturing. The scope of the present disclosure includes all combinations of the platform features described herein.

[0057] As described herein, “celebrity” may refer to an artist, musician, athlete, politician, public figure, and/or any other individual for which a virtual meet-and-greet is arranged with respect to one or more other“fans.” A“celebrity” may not necessarily be a famous person. For instance, an implementation may involve an interviewer performing successive “meet-and-greet” sessions as job interviews with prospective employees. However, the term“celebrity” may be used herein, in the interest of brevity, and does not limit the scope of the invention to any particular set of users or individuals.

[0058] As described herein, “fan” may refer to any person that likes, follows, supports, or otherwise wishes to engage with a“celebrity” through the virtual meet-and-greet platform of the present application. A“fan” may not necessarily be someone who follows the content of the“celebrity.” For instance, an implementation may involve a prospective employee (the“fan”) obtaining a time slot for a job interview or screening with an employer (the“celebrity”). Thus, the systems and methods of the present application are not limited to any type of individual or any specific relationship between one individual and another. The term“fan”— like the term“celebrity”— is used herein for the sake of brevity, and should be understood to refer to any individual that participates in a private one-on-one video chat session with another individual according to the techniques of the present application, in achieving a one-to-many audiovisual communication method.

[0059] As described herein,“audiovisual stream” may refer to data that encodes or is otherwise representative of recorded audio and captured images and/or video. An audiovisual stream may comprise a set of discrete packets that can be decoded and displayed on another device to reproduce substantially live video and audio on a device other than the device that captured the audiovisual data. Various encoding and/or compression techniques may be used to create and/or interpret an audiovisual stream. In some cases, audiovisual data may describe two separate data streams for the audio and video separately, which include timecode data for synchronizing the two data streams.

[0060] As described herein, a“private” video chat may refer to a substantially live video chat between two computing devices. A private video chat may, in some instances, involve two or more individuals on either computing device ( e.g ., multiple members of a musical group, multiple fans, etc.). Thus,“private” may not refer to a one-on-one chat between only two individuals, but instead refers to a live video chat between two devices.

[0061] As described herein, a“timetable” may refer to a data representation of a schedule for a virtual meet-and-greet or other VIP video chat experience. A timetable may include a series of time slots, each allotted to a particular fan, supporter, or constituent. Each time slot may include a start time and an end time for a private video chat session associated with a particular celebrity and a particular fan. A backend server may be configured to automatically begin exchanging audiovisual data between the particular celebrity and the particular fan at the start time of the time slot, and likewise automatically stop exchanging the audiovisual data at the end time of the time slot.

[0062] Figure 1 is a schematic diagram of an example system 100, according to various aspects of the present disclosure. The system 100 is an example system in which aspects of the present disclosure may be performed. In this example, the system 100 includes a set of client devices 120, a computing device 130, and backend server(s) 140 that are each communicatively connected to a network 110. The network 110 may include a combination of wide area networks (WANs), such as the Internet, and local area networks (LANs). For example, each client device within the set of client devices 120 may be communicatively coupled to a cellular data connection, a Wi-Fi network, and/or another data connection, which itself is connected to the Internet.

[0063] The set of client devices 120 and the computing device 130 may communicate with each other ( e.g ., exchange audiovisual data streams) over the network 110. In some embodiments, the backend server(s) 140 acts as an intermediate device logically situated between the set of client devices 120 and the computing device 130. For instance, the backend server(s) 140 may receive audiovisual streams from each of the client devices 120 and the computing device 130, and control the transmission of those audiovisual streams (e.g., according to a timetable) in order to effectuate a virtual meet-and-greet between the computing device 130 and some or all of the client devices 120.

[0064] In various implementations, the network 110 may include one or more of the following: a PSTN (public switched telephone network), the Internet, a local intranet, a PAN (Personal Area Network), a LAN, a WAN, a MAN (Metropolitan Area Network), a virtual private network (VPN), a storage area network (SAN), a frame relay connection, an Advanced Intelligent Network (AIN) connection, a synchronous optical network (SONET) connection, a digital Tl, T3, El or E3 line, a Digital Data Service (DDS) connection, a DSL (Digital Subscriber Line) connection, an Ethernet connection, an ISDN (Integrated Services Digital Network) line, a dial-up port or analog modem connection, a cable modem, an ATM (Asynchronous Transfer Mode) connection, or an FDDI (Fiber Distributed Data Interface) or CDDI (Copper Distributed Data Interface) connection. Furthermore, communications may also include links to any of a variety of wireless networks, including WAP (Wireless Application Protocol), GPRS (General Packet Radio Service), GSM (Global System for Mobile Communication), LTE, VoLTE, LoRaWAN, LPWAN, RPMA, LTE Cat-“X” (e.g. LTE Cat 1, LTE Cat 0, LTE CatMl, LTE Cat NBl), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access), FDMA (Frequency Division Multiple Access), and/or OFDMA (Orthogonal Frequency Division Multiple Access) cellular phone networks, GPS, CDPD (cellular digital packet data), RIM (Research in Motion, Limited) duplex paging network, Bluetooth radio, or an IEEE 802.11 -based radio frequency network. The network can further include or interface with any one or more of the following: RS-232 serial connection, IEEE-1394 (Firewire) connection, Fibre Channel connection, IrDA (infrared) port, SCSI (Small Computer Systems Interface) connection, USB (Universal Serial Bus) connection, or other wired or wireless, digital or analog, interface or connection, mesh or Digi ® networking.

[0065] Each client device of the set of client devices 120 may include a combination of processor(s), memory, data storage device(s), display(s), input devices ( e.g ., buttons, touchscreens, etc.), camera(s), and/or microphone(s), among other elements. The data storage device(s) of each client device of the set of client devices 120 may store thereon application data and/or instructions for execution on the processor(s) to provide an application. The application may include user interface elements and software for interacting with aspects of a client device (e.g., capture images/video from a camera, record audio from a microphone, etc.) and/or for communicating with the backend server(s) 140 (e.g, subroutines for making application programming interface (API) calls, transmitting and receiving audiovisual data, etc.).

[0066] In addition to the above, each client device of the set of client devices 120 may include a variety of other components, such as batteries, connectors, light indicators, and sensors, among other components.

[0067] The set of client devices 120 may include any type of computing device. For example, a client device 122 may be a smartphone or tablet produced by one manufacturer, whereas a client device 124 may be a smartphone or tablet produced by a different manufacturer. The client device 126 may be a laptop computer or desktop computer. As described herein, the terms “client device” and “computing device” may be used interchangeably. The set of client devices 120 may each be similar to or the same as the computing device 130.

[0068] The computing device 130 may include processor(s), memory, and data storage device(s), which collectively enable the computing device to process and store data. The computing device 130 also includes camera(s) 132, microphone(s) 134, and/or buttons, which serve as capture input devices, along with display(s) 136 and speaker(s) 138, which serve as output devices. [0069] The camera(s) 132 may include a combination of hardware and/or software to facilitate the capture (and processing into data) of images and/or video. The camera(s) 132 may include an imager, such as a video recording sensor and/or a camera chip. In one embodiment, the camera(s) 132 may comprise a complementary metal-oxide semiconductor (CMOS) array, and may be capable of recording high definition video data. The camera(s) 132 may also include a camera processor for encoding and compression of captured images and/or video. Such a camera processor may process captured video, together with audio recorded by the microphone(s) 134, to generate audiovisual data streams suitable for wireless transmission over the network 110. The camera(s) 132 may include camera-specific memory, such as volatile memory, which may be used when data is being buffered or encoded by the camera processor.

[0070] The microphone(s) 134 may include any combination of transducers that convert pressure waves into electrical signals. The microphone(s) 134 may capture audio, which may, in some instances, be transmitted to a separate computing device or backend server. That transmitted audio may then be relayed to another computing device or client device, such as a client device of the set of client devices 120.

[0071] The display(s) 136 may be any electronic video display, such as a liquid- crystal display (LCD) or an organic light emitting diode (OLED) display. The display(s) 136 may permit the computing device 130 to show user interface elements of the platform described herein, including live video captured by a client device of the set of client devices 120. In some implementations, the display(s) 136 include embedded therein a digitizer, capacitive layer, or a resistive layer that allows the display(s) 136 to act as a touchscreen. The display(s) 136 may also include any user interface or presentation elements suitable for a smartphone and/or a portable computing device, such as a touchscreen keypad or other virtual input devices displayed on a touchscreen.

[0072] The speaker(s) 138 may include any combination of speakers or other sound- emitting devices. The speaker(s) 138 may be operable to produce a variety of sounds, such as audio from live video, notification or alert sounds, or other audible sounds.

[0073] The computing device 130 and/or the set of client devices 120 may also include both operating memory, such as random access memory (RAM), as well as data storage, such as read-only memory (ROM), hard drives, flash memory, or any other suitable memory/storage element. In some embodiments, the memory 304 may comprise a combination of magnetic, optical, and/or semiconductor memory, and may include, for example, RAM, ROM, flash drive, and/or a hard disk or drive. The processor(s) and the memory each may be, for example, located entirely within a single device, or may be connected to each other by a communication medium, such as a USB port, a serial port cable, a coaxial cable, an Ethernet-type cable, a telephone line, a radio frequency transceiver, or other similar wireless or wired medium or combination of the foregoing. The memory may store instructions for communicating with other devices, such as the client devices 120. The memory may store, for example, a program ( e.g ., computer program code) adapted to direct the processor(s) in accordance with the present embodiments. The instructions also may include program elements, such as aspects of an operating system. While execution of sequences of instructions in the program causes the processor(s) to perform the process steps described herein, hard-wired circuitry may be used in place of, or in combination with, software/firmware instructions for implementation of the processes of the present embodiments. Thus, the present embodiments are not limited to any specific combination of hardware and software.

[0074] The input device(s) may include any combination of hardware and/or software elements that receive user input and/or facilitate the interpretation of received input. Input device(s) may be hardware (e.g., physical buttons and switches), software (e.g, virtual buttons, sliders, etc.), or some combination thereof (e.g, software-controlled haptic feedback for simulating button clicks). In some instances, input device(s) includes a touchscreen or touch-based digitizer. Input device(s) may include a virtual keyboard or other virtual input elements as well. Regardless of the kind of input device used, the input device(s) may provide an interface through which users can interact with computing device 130 and/or the set of client devices 120 of the present application.

[0075] The backend server(s) 140 may include one or more computing devices configured to communicate with the computing device 130 and the set of client devices 120, and to carry out aspects of the virtual meet-and-greet platform of the present disclosure. The term“server” may be construed broadly to include any combination of computing devices and computerized processes that collectively provides the functionality of the virtual meet- and-greet platform and its auxiliary features (e.g, a virtual waiting room, virtual currency maintenance, etc.). The backend server(s) 140 may execute at least some of the operations described herein. Similar to the computing device 130, the backend server(s) 140 may include a combination of processor(s), memory, storage device(s), and input/output (EO) device(s), among other possible devices. The processor(s) may execute instructions or other software to facilitate the functionality of the virtual meet-and-greet platform. [0076] Some of software stored on and executed by the backend server(s) 140 includes the meet-and-greet module 142 and the virtual waiting room 144. The meet-and- greet module 142 may facilitate the scheduled exchange of audiovisual data streams between the computing device 130 and the set of client devices 120 according to the timetable 146. As a specific example, the timetable 146 may store a series of five-minute time slots for a particular date: a first time slot for the client device 122 from 3:00 PM to 3:05 PM, a second time slot for the client device 124 at 3:05 PM to 3: 10 PM, and a third time slot for the client device 126 at 3:10 PM to 3: 15 PM. In this example, the computing device 130 and the client devices 122, 124, and 126 are each transmitting a live audiovisual data stream captured by the respective device. For the purposes of this example, the computing device 130 is associated with a famous musician, and the client devices 122, 124, and 126 are fans of that musician that have secured time slots for the virtual meet-and-greet.

[0077] At 3:00 PM, the meet-and-greet module 142 begins transmitting the audiovisual stream of the client device 122 to the computing device 130, and the audiovisual stream of the computing device 130 to the client device 122. Then, at 3:05 PM, the meet- and-greet module 142 stops the audiovisual data exchange between the client device 122 and the computing device 130, and begins an audiovisual data exchange between the client device 124 and the computing device. Likewise, at 3: 10 PM, the meet-and-greet module 142 stops the audiovisual data exchange between the client device 124 and the computing device 130, and begins an audiovisual data exchange between the client device 126 and the computing device. If no other time slots are scheduled, then, at 3: 15 PM, the meet-and-greet module 142 stops the audiovisual data exchange between the client device 126 and the computing device, and the virtual meet-and-greet comes to an end. The meet-and-greet module 142 may include any combination of software for performing operations such as those described above.

[0078] The software stored on and executed by the backend server(s) 140 also includes the virtual waiting room 144. The virtual waiting room 144 may provide some degree of interconnectivity among the digital presences of one or more of the set of client devices 120. For example, the virtual waiting room 144 may provide a text chat functionality to the set of client devices 120 prior to their scheduled time slot during a virtual meet-and- greet with the client device 130. Continuing with the above example, the client devices 124, 126 may connect to a virtual meet-and-greet session during or before their time slots at 3:05 PM and 3: 10 PM, respectively. While waiting for their scheduled time slot, the client devices 124, 126 may display a user interface representative of a waiting room. In some embodiments, the waiting room user interface includes a chat box into which the users of the client devices 124, 126 can enter and submit text chat. The virtual waiting room 144 may receive and publish the submitted text chat, such that the users of the client devices 124, 126 each observe a public text chat on their respective displays. An example virtual waiting room user interface is shown and described with respect to Figure 4.

[0079] The timetable 146, as described above, may be a data representation of a virtual meet-and-greet schedule. In some implementations, the timetable 146 comprises a set of time slots. Each time slot may include a start datetime, an end datetime, the user account of the fan, and the user account of the celebrity, among other information. For instance, the time slot may store information associated with the particular private one-on-one video chat sessions, such as a selected selfie template to use during the selfie portion of the chat session or a predetermined question from the fan directed to the celebrity. An example depiction of the timetable 146 is shown and described with respect to Figure 2.

[0080] The backend server(s) 140 may also be configured to store a set of user account(s) 148. Each user account may contain information related to the user’s login credentials, preferences, celebrities that the user follows, virtual currency quantity, related social media accounts, and/or the user’s virtual meet-and-greet time slots or other reserved VIP experiences. The virtual currency quantity associated with each user account of the user account(s) 148 may be exchanged by the user for virtual meet-and-greet time slots, or for raffle or lottery tickets for a chance to win a virtual meet-and-greet time slot, depending upon the particular implementation.

[0081] In addition to the modules and data specifically shown and described, the backend server(s) 140 may also include any additional hardware, software, and/or data for facilitating the methods and systems of the present disclosure.

[0082] Figure 2 is a conceptual diagram 200 of an example virtual meet-and-greet timetable, according to various aspects of the present disclosure. In the diagram 200, the vertical axis represents different individuals involved in the example virtual meet-and-greet— including a Celebrity, Fan A, Fan B, Fan C, and Fan D— together with the entities involved in carrying out the virtual meet-and-greet, including a“Meet & Greet” virtual chat room and a “Waiting Room.” The horizontal axis represents time, such that elements in the diagram 200 that are vertically aligned are present or occur simultaneously. Boxes represent the status of an entity within the virtual meet-and-greet, as indicated by the shading patterns within those identified in the legend in Figure 2.

[0083] In the following description, the Celebrity and Fans A, B, C, and D are described as“connecting to,”“joining,” and performing other actions with respect to the virtual meet-and-greet session. For the purposes of the following explanation, these actions are performed by client devices or computing device associated with or under the control of the Celebrity or respective Fan. In some cases, a backend server or other computing device may perform an action. For instance, when a Fan connected to the virtual meet-and-greet session prior to their allotted time slot, the backend server may place the Fan’s device into a particular virtual space, such as the Waiting Room.

[0084] Prior to the Celebrity and Fans joining the virtual meet-and-greet session, the Meet & Greet and Waiting Room entities are instantiated. The Meet & Greet entity represents a bidirectional private audiovisual session between the Celebrity and one of Fans A, B, C, or D. Likewise, the Waiting Room entity represents a virtual space that conveys information to the devices of one or more of Fans A, B, D or D while those Fans are“in” ( e.g ., communicatively connected to) the Waiting Room, such as a group text chat.

[0085] The Meet & Greet schedule or timetable between the Celebrity and Fans A, B, C, and D is as follows: a first private meet-and-greet time slot between Fan A and the Celebrity begins at time 208 and ends at time 210; a second private meet-and-greet time slot between Fan B and the Celebrity begins at time 212 and ends at time 216; a third private meet-and-greet time slot between Fan C and the Celebrity begins at time 218 and ends at time 220; and a fourth private meet-and-greet time slot between Fan D and the Celebrity begins at time 222 and ends at time 224. In this example, gaps in time exist between the first, second, third, and fourth private meet-and-greet time slot. However, this gap may be longer, shorter, or nonexistent, depending on the particular implementation.

[0086] At time 202, Fan A joins the virtual meet-and-greet session. Because Fan A joins prior to the start time 208 of the first meet-and-greet time slot, the system connects Fan A to the Waiting Room, as indicated by the downward arrow extending from the Fan A box toward the Waiting Room box. Fan A’s presence in the Waiting Room is also represented by a diagonal shading pattern within the box representing Fan A, which extends from time 202 to time 208.

[0087] At time 204, both the Celebrity and Fan B join the virtual meet-and-greet session. Like Fan A, Fan B joins prior to the start time 212 of the second meet-and-greet time slot, and the system connects Fan B to the Waiting Room. The Celebrity also joins prior to the first meet-and-greet time slot with Fan A, so the system takes no action relative to the Celebrity (i.e., the system does not automatically move the Celebrity into the Waiting Room). However, in some implementation, the Celebrity may be connected to the Waiting Room to observe the group text chat, or may be presented with other information, such as the virtual meet-and-greet schedule, information about Fans A, B, C, and D, questions presented by Fans A, B, C, and D for the celebrity, and/or any other type of information. At time 204, both Fan A and Fan B are in the Waiting Room, and in that shared space they can engage in collaborative features of the Waiting Room ( e.g ., group text chat or other features depending on the particular embodiment).

[0088] At time 206, Fan D joins the virtual meet-and-greet session, and is connected to the Waiting Room because Fan D’s fourth meet-and-greet time slot doesn’t begin until time 222. Fans A, B, and D are all present within the Waiting Room at time 206.

[0089] At time 208, the first meet-and-greet time slot between Fan A and the Celebrity begins. The system may perform one or more actions in order to initiate the first private meet-and-greet video chat. In this example, the system removes Fan A from the Waiting Room and connects Fan A to the Meet & Greet entity. Likewise, the system connects the Celebrity to the Meet & Greet entity. The boxes for the Celebrity and Fan A are shaded with a dotted pattern in Figure 2 between time 208 and time 210, which represents that they are engaged in a private meet-and-greet video chat.

[0090] While this example describes the Celebrity and Fans as being“connected to” a Meet & Greet “entity,” some implementations may involve the system exchanging audiovisual streams of data between the Celebrity’s device and the respective Fan’s device, without an instantiated virtual object or space. The Meet & Greet entity is represented as a separate space in Figure 2 for explanatory purposes, and may not necessarily reflect a technological implementation of the virtual meet-and-greet session.

[0091] In some embodiments, a portion of each private video chat time slot may be designated for the capturing of a“selfie.” As described herein, a graphical overlay, augmented reality, artistic juxtaposition, or other arrangement of the Celebrity’s and respective Fan’s audiovisual streams may be presented on the devices of the Celebrity and respective Fan. This selfie template user interface may appear for some duration of time, allowing the Celebrity and Fan to make a pose or otherwise arrange themselves in the field- of-view of their cameras prior to capturing a still image or snapshot of the selfie. In this example, the selfie portion occurs toward the end of each private video chat time slot, and is representing by a dense dotted pattern within the Meet & Greet box.

[0092] At time 210, the first private meet-and-greet time slot ends, and the system disconnects Fan A and the Celebrity from the Meet & Greet entity. In this example, Fan A remains connected to the virtual meet-and-greet session for a short period of time after time 210; however, in some implementations, Fan A may be placed back into the Waiting Room or disconnected from the virtual meet-and-greet session entirely at time 210. Fans B and D remain in the Waiting Room at time 210.

[0093] Then, at time 212, Fan B is disconnected from the Waiting Room and is connected by the system with the Meet & Greet entity. The system also connects the Celebrity to the Meet & Greet entity at time 212, and the second private meet-and-greet video chat between Fan B and the Celebrity begins.

[0094] During the second private meet-and-greet video chat between Fan B and the Celebrity, Fan C joins the virtual meet-and-greet at time 214. The system places Fan C into the Waiting Room, as Fan C’s third private meet-and-greet time slot doesn’t begin until time 218.

[0095] At time 216, the system disconnects Fan B and the Celebrity from the Meet & Greet entity, ending the second private meet-and-greet video chat. Fans C and D remain in the Waiting Room at time 216.

[0096] Then, at time 218, the system removes Fan C from the Waiting Room, and connects Fan C and the Celebrity to the Meet & Greet entity, initiating the third private meet- and-greet video chat. At time 220, the third private meet-and-greet video chat session ends, and the system disconnects Fan C and the Celebrity from the Meet & Greet entity. At time 220, only Fan D remains in the Waiting Room.

[0097] Then, at time 222, the system removes Fan D from the Waiting Room, and connects Fan D and the Celebrity to the Meet & Greet entity, initiating the fourth (and final, in this example) private meet-and-greet video chat. At time 224, the fourth private meet-and- greet video chat ends, and Fan D and the Celebrity are disconnected from the Meet & Greet entity. The virtual meet-and-greet session effectively concludes at time 224, in this example, as no further time slots are allocated in the timetable.

[0098] At some time after time 224, Fan D and the Celebrity disconnects from the virtual meet-and-greet session. The Meet & Greet and Waiting Room entities, if instantiated as virtual“spaces,” may be removed, closed, or otherwise destructed.

[0099] Embodiments of the present application are not limited to the particular arrangement and timing of operations depicted in Figure 2. Some embodiments may vary the duration of the private meet-and-greet time slots. Fans may or may not be automatically placed in a Waiting Room (or, there may be no virtual waiting room with which to connect). Additionally, some operations may occur over a period of time, rather than at an instant in time. For example, transitioning a Fan from the Waiting Room to the Meet & Greet entity may occur over some duration of time. Further, any number of Fans may be allotted for any number of time slots. Other variations are also possible.

[0100] Each of the methods described herein, including methods 300 and 320, are illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that may be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks may be combined in any order and/or in parallel to implement the processes. Additionally, any number of the described blocks may be optional and eliminated to implement the processes.

[0101] Figure 3A depicts a flowchart of method 300 for facilitating a virtual meet- and-greet, according to various aspects of the present disclosure. Some or all of the aspects of method 300 may be performed by one or more backend servers, such as the backend server(s) 140, and/or other computing devices. For the purposes of the following description, method 300 is described as being performed by a“backend server.”

[0102] At block 302, the backend server receives a first audiovisual stream from a first client device. The audiovisual stream may include live video and audio captured by a camera and microphone of the first client device. The first audiovisual stream may be initially received when the first client device connects to a virtual meet-and-greet session. Likewise, at block 304, the backend server receives a second audiovisual stream from a second client device. For the purposes of explanation, the first client device is associated with a celebrity, while the second and third client devices are associated with fans of that celebrity.

[0103] At block 306, the backend server establishes a first private one-on-one video chat between the first client device and the second client device during the first predetermined period of time. The first predetermined period of time may be a time slot within a timetable, as described above. Establishing the private video chat may involve, for example, the backend server forwarding or transmitting the first audiovisual stream to the second client device, and forwarding or transmitting the second audiovisual stream to the first client device. The backend server may begin this exchange of audiovisual streams on or after the beginning of the first predetermined period of time. [0104] Then, at block 308, the backend server terminates the first private one-on-one video chat after the expiration of the first predetermined period of time. The backend server may, for example, discontinue transmitting the first and second audiovisual streams to the second and first client devices, respectively. In some implementations, the backend server may transmit instructions to the respective devices to stop capturing and transmitting audiovisual data. Regardless of the particular technique employed, the first and second client devices become effectively disconnected from the private one-on-one video chat session.

[0105] At block 310, the backend server receives a third audiovisual stream from a third device. The backend server may receive the third audiovisual stream before, during, or after the first predetermined period of time. Although the blocks 302-312 are shown sequentially, it should be understood that the steps of the method 300 may occur in a different order, and/or some of the steps may be performed simultaneously with other steps.

[0106] Then, at block 312, the backend server establishes a second private one-on- one video chat between the first client device and the third client device during a second predetermined period of time. The second predetermined period of time does not overlap with the first predetermined period of time. In some implementations, the end of the first predetermined period of time is the same or substantially the same as the start of the second predetermined period of time. In other implementations, a“break” period of time exists between the first predetermined period of time and the second predetermined period of time. Such a break period between private one-on-one video chat sessions may accommodate the time involved in establishing the exchange of audiovisual information, and/or allow the user of the first client device to take short breaks in between each successive meet-and-greet chat session.

[0107] Although only three client devices are shown and described as participating in two separate private one-on-one video chat sessions, the method 300 may extend to any number of client devices and/or any number of private one-on-one video chat sessions.

[0108] Figure 3B is a flowchart of a method 320 for facilitating a virtual meet-and- greet, according to various aspects of the present disclosure. Some or all of the aspects of method 300 may be performed by a computing device, such as one of the client devices 120. For the purposes of the following description, method 320 is described as being performed by a“client device.”

[0109] At block 322, the client device initiates a transmission of a first stream of live audiovisual content captured by a camera of the client device to a backend server. The client device may be, for example, a smartphone, tablet, or laptop computer, among other possible computing devices or systems. For the purposes of describing the method 320, the“camera” may include a combination of imager(s) and microphone(s), such that the camera captures both video data and audio data. The audiovisual content may capture, for instance, a user’s face and/or bust through a front-facing camera of the client device. In this example, the client device may be associated with a fan of a celebrity.

[0110] At block 324, the client device receives a second stream of live audiovisual content captured by the computing device. In this example, the second stream of live audiovisual content may represent live video and audio of a celebrity. The second stream of live audiovisual content may be transmitted to the client device from a backend server acting as an intermediate device between the computing device and the client device.

[0111] At block 326, the client device displays a virtual meet-and-greet user interface between the first time and a second time. The period of time between the first time and second time may represent a portion of a time slot within a timetable allotted to the fan’s account associated with the client device. The virtual meet-and-greet user interface may display, for example, at least a portion of the first stream of live audiovisual content and at least a portion of the second stream of live audiovisual content simultaneously, to represent a live two-way chat. As one example, the first stream of live audiovisual content may be displayed in a relatively compact size at a corner of the screen, which overlays onto a substantially full screen representation of the second stream of live audiovisual content.

[0112] At block 328, the client device displays a self-portrait user interface between the second time and a third time. The period of time between the second time and the third time may represent another portion of the time slot within the timetable allotted to the fan’s account associated with the client device. Collectively, the period of time spanning from the first time to the third time represents the time slot allotted to the fan’s account associated with the client device.

[0113] The self-portrait user interface may immediately juxtapose at least a portion of the first stream of live audiovisual content with at least a portion of the second stream of live audiovisual content. The manner in which the two streams of audiovisual content are juxtaposed may depend on the particular“selfie template” used or selected by the user of the client device. Example selfie templates are shown and described in more detail below with respect to Figures 5A-5C.

[0114] As a specific example, the client device may, at the second time, begin to display a“leaning” selfie template (see an example“leaning” selfie template in Figure 5B) which displays a portion of the second stream of audiovisual content ( e.g ., the celebrity) immediately next to a portion of the first stream of audiovisual content ( e.g ., the fan), with the two streams being split or divided along a curve that approximately represents the shape of the fan’s head and shoulders being tilted slightly toward the celebrity— leading to an appearance of the fan placing his or her head on the shoulder of the celebrity. The client device may display this“leaning” selfie template for some duration of time (e.g., 10 seconds), to allow the fan and the celebrity to situate themselves for the self-portrait. At the expiration of this time, a still image or snapshot of the first and second live audiovisual contents are captured, providing the fan with memorabilia at the conclusion of their private virtual meet- and-greet session with the celebrity.

[0115] Generating the self-portrait user interface may involve applying one or more “masks” and/or virtually layering the audiovisual content on top of each other, together with other graphical assets. For example, with the “leaning” selfie template example, the celebrity’s audiovisual content (on the left) may be placed“beneath” the fan’s audiovisual content. The fan’s audiovisual content may then be“masked,” in that a portion of the video is made transparent or otherwise not shown. The resulting user interface may thereby simulate the live physical presence of the fan with the celebrity.

[0116] At block 330, the client device terminates the transmission of the first stream of live audiovisual content to the backend server at the third time, thereby ending the private one-on-one video chat session with the celebrity.

[0117] Although the method 320 is described as being performed by a client device, some or all aspects of the method 320 may be carried out by one or more other computing devices, such as a backend server. For example, a backend server may instruct the client device to begin capturing audiovisual data and transmitting that data to the server. Additionally, a backend server may cause the private one-on-one video chat session to end by discontinuing the transmission of the second stream of live audiovisual content to the client device and/or instructing the client device to stop capturing and transmitting the first stream of live audiovisual content. A backend server may also perform other aspects of the method 320.

[0118] Furthermore, in some implementations, a backend server may transmit information to the client device, such as the first time and the second time, together with instructions to stop displaying the second stream of live audiovisual content at the second time and/or to stop capturing and transmitting the first stream of live audiovisual content at the second time. [0119] Figures 4 and 5A-5B depict example user interfaces of the virtual meet-and- greet platform of the present disclosure. Although specific graphical elements, arrangements of those elements, typefaces, operating systems, and client device hardware are depicted, the user interfaces of the present application are not limited to any particular smartphone or tablet manufacturer, operating system, or particular user interface designs. The example user interfaces are provided for explanatory purposes.

[0120] Figure 4 is an example user interface 400 of a virtual waiting room, according to various aspects of present disclosure. The virtual waiting room user interface includes a splash image 402, a countdown timer 404, an informational banner 406, a chat conversation window 408, and a text chat input box 410.

[0121] In this example, the splash image 402 depicts stage curtains, indicative of the wait before a performance or show. Overlaid on top of the splash image 402 is a countdown timer 404, which may display the minutes and/or seconds remaining before the fan is connected with the celebrity for a private one-on-one video chat session. An informational banner 406 is displayed below the splash image 402, which provides information such as the duration of the virtual meet-and-greet and the celebrity for which the virtual meet-and-greet is arranged. In this example, the information banner 406 shows that the virtual meet-and- greet with“Shawn Mendes” extends for thirty minutes from 6:30 PM to 7:00 PM.

[0122] The chat conversation window 408 and the text chat input box 410 collectively form a“chat box” for the virtual waiting room. One or more users, such as the users waiting for their time slot with Shawn Mendes according to this example, may enter text into the text chat input box, which may be displayed chronologically with text chat submissions from other users in the chat conversation window 408. Each user account may include an avatar or image of the user, along with a username associated with the account. When a user submits text entered into the text chat input box 410, their text submission may be displayed in the chat conversation window 408 in association with their avatar and username. The chat conversation may be publicly viewable by all users connected to the virtual waiting room.

[0123] Figure 5A depicts an example user interface 500 for selecting a selfie template, according to various aspects of the present disclosure. In this example, four selfie templates are displayed for selection to the user: a“Selfie” template 502 ( e.g ., Figure 5C), a “Leaning” template 504 (e.g., Figure 5B), a“High five” template 506 (e.g, Figure 5D), and a “Fist bump” template 508 (e.g, Figure 5E). Each of these templates may provide an artistic juxtaposition of the two video frames. Some selfie templates may be designed to enable certain poses (e.g, the“Leaning” template allowing one person to virtually place their head on the other person’s shoulder) or simulate some type of in-person interaction ( e.g ., the“High five” template providing the appearance of the two users high-fiving each other).

[0124] A selfie template may be selected by the user during or in advance of the private one-on-one video chat session with a celebrity. In some implementations, the user can select his or her preferred selfie template while waiting for their time slot in the virtual waiting room.

[0125] Figure 5B illustrates an example user interface 510 for the“Leaning” template 504. On the left side, a video portion 512 of the celebrity is displayed, while a video portion 514 of the fan is displayed on the right side. Video portions 512 and 514 are immediately juxtaposed and split by a dividing curve 516. In this example, the dividing curve 516 is shaped similarly to the upper body of a person, with a rounded portion to accommodate the fan’s head and a straight, slanted portion to accommodate the fan’s shoulders and upper body. In this arrangement, the fan can virtually place her head on the celebrity’s shoulder, giving the appearance of a“leaning” selfie pose.

[0126] Figure 5C illustrates an example user interface 520 for the“Selfie” template 502. As shown in Figure 5C, the juxtaposition of the two video frames may allow for a portrait orientation, rather than a landscape orientation as shown in Figures 5B, 5E, and 5E. In addition, the user interface 520 includes a countdown timer, indicating a time at which the selfie snapshot is to be taken (e.g., to allow users to strike a pose prior to the selfie snapshot).

[0127] Figure 5D illustrates an example user interface 530 for the“High five” template 506. As shown in Figure 5D, the juxtaposition of the two video frames may allow for the user’s to align their hands in their respective frames, to give the impression of the two users giving each other a“high five.”

[0128] Figure 5E illustrates an example user interface 540 for the“Fist bump” template 508. As shown in Figure 5E, the juxtaposition of the two video frames may allow for the user’s to align their fists in their respective frames, to give the impression of the two users giving each other a“fist bump.”

[0129] In some embodiments, the selfie template may provide additional graphical elements or overlays in order to provide a form of augmented reality (AR). For instance, a virtual environment (e.g, a backstage area, on stage location, national park, etc.) may replace the background, such that the fan and celebrity appear to be at a different location or conducting some activity together. As another example, the fan and celebrity might be placed into the driver’s seats of race cars, providing the appearance that fan and celebrity are participating in a race. [0130] Other fun and artistic“templates” may be provided to augment the appearance of the fan and/or celebrity. For example, a“kaleidoscope” effect may take pizza slice-shaped portions of the fan and the celebrity, and arrange them in a circular or elliptical wheel, possibly augmenting the color of the slices to simulate a kaleidoscope. As another example, a miniature version of the fan may be placed onto the outstretched palm of the celebrity. As yet another example, a“split screen” template may horizontally flip the lower half of both the fan’s and celebrity’s video, such that their noses and mouths appear to be swapped.

[0131] In some cases, the selfie template may simply provide instructions to the fan and celebrity to make a particular pose, without augmenting changing the juxtaposition of the video streams. For example, the selfie template may instruct the celebrity and fan to form the fan’s initials, using their arms and upper body ( e.g ., similar to the well-known“YMCA” dance).

[0132] Some selfie templates may capture two or more images, and stitch them together to form the output“selfie” for the fan. For example, a“photobooth” effect may capture a series of images— some of both the fan and celebrity, some with just the fan, and some with just the celebrity— and then arrange those photos into a mosaic or grid.

[0133] As yet another example, a selfie template may use AR technology to provide virtual props to the fan and celebrity. For example, a“Winners!” template may place a trophy in between the fan and celebrity, allowing them to virtually hoist up the trophy together (each with one hand on the trophy, for instance). As another example, the fan and celebrity may strike a pose or make a facial expression, onto which virtual chat bubbles are overlaid extending from the fan’s mouth and the celebrity’s mouth. These virtual chat bubbles may contain an expression, catch phrase, or emoji, for example.

[0134] Some or all of the features of the present embodiments described herein may be implemented in digital electronic circuitry, and/or in computer hardware, firmware, software, and/or in combinations thereof. Features of the present embodiments may be implemented in a computer program product tangibly embodied in an information carrier, such as a machine-readable storage device, and/or in a propagated signal, for execution by a programmable processor. Embodiments of the present method steps may be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output.

[0135] The features of the present embodiments described herein may be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and/or instructions from, and to transmit data and/or instructions to, a data storage system, at least one input device, and at least one output device. A computer program may include a set of instructions that may be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program may be written in any form of programming language, including compiled or interpreted languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.

[0136] Suitable processors for the execution of a program of instructions may include, for example, both general and special purpose processors, and/or the sole processor or one of multiple processors of any kind of computer. Generally, a processor may receive instructions and/or data from a read only memory (ROM), or a random access memory (RAM), or both. Such a computer may include a processor for executing instructions and one or more memories for storing instructions and/or data.

[0137] Generally, a computer may also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files. Such devices include magnetic disks, such as internal hard disks and/or removable disks, magneto-optical disks, and/or optical disks. Storage devices suitable for tangibly embodying computer program instructions and/or data may include all forms of non-volatile memory, including for example semiconductor memory devices, such as EPROM, 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. The processor and the memory may be supplemented by, or incorporated in, one or more ASICs (application-specific integrated circuits).

[0138] The features of the present embodiments may be implemented in a computer system that includes a back-end component, such as a data server, and/or that includes a middleware component, such as an application server or an Internet server, and/or that includes a front-end component, such as a client computer having a graphical user interface (GUI) and/or an Internet browser, or any combination of these. The components of the system may be connected by any form or medium of digital data communication, such as a communication network. Examples of communication networks may include, for example, a LAN (local area network), a WAN (wide area network), and/or the computers and networks forming the Internet.

[0139] While various aspects and implementations have been disclosed herein, other aspects and implementations will be apparent to those skilled in the art. The present embodiments are susceptible to modifications and alternate constructions from those discussed above. Consequently, the present invention is not limited to the particular embodiments disclosed. Rather, numerous modifications and alternate constructions fall within the spirit and scope of the present disclosure. For example, those skilled in the art will appreciate that other arrangements and other elements (e.g. machines, interfaces, operations, orders, and groupings of operations, etc.) can be used instead, and some elements may be omitted altogether according to the desired results. Further, many of the elements that are described are functional entities that may be implemented as discrete or distributed components or in conjunction with other components, in any suitable combination and location, or other structural elements described as independent structures may be combined. The steps in the processes described herein need not be performed in the same order as they have been presented, and may be performed in any order(s) unless logic dictates a particular order. Further, steps that have been presented as being performed separately may in alternative embodiments be performed concurrently. Likewise, steps that have been presented as being performed concurrently may in alternative embodiments be performed separately. The various aspects and implementations disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope being indicated by the following claims, along with the full scope of equivalents to which such claims are entitled. It is also to be understood that the terminology used herein is for the purpose of describing particular implementations only, and is not intended to be limiting.