Facilitating conference engagement by transferring a viewing view to a temporary viewing
By changing the viewing perspective in the virtual reality environment and focusing on group activities, it solves the problem that users find it difficult to see specific groups in the virtual environment, improves participation and information security, and reduces the waste of computing resources.
Patent Information
- Application Number
- CN202380085131.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-29
- Filing Date
- 2023-10-29
- Publication Date
- 2025-07-22
AI Technical Summary
In a virtual reality environment, users find it difficult to see the activities of specific groups of people due to the limitations of their location and virtual cameras, resulting in insufficient information exchange, reduced user participation, and there is a risk of information leakage.
By converting the viewing perspective into a temporary viewing perspective, focusing on group activities in the virtual environment, determining temporary viewing angle parameters using the virtual camera viewpoint and avatar position, displaying the threshold number of avatars, and realizing the collaborative activity display of group members.
It improves user engagement, reduces user fatigue, reduces reuse of computing resources, enhances information security, and prevents non-related team members from seeing sensitive information.
Smart Images

Figure CN120359532A_ABST
Abstract
Description
BACKGROUND OF THE INVENTION
[0001] The use of virtual reality environments for online conferencing applications has become ubiquitous. Participants in online conferences now conduct meetings in three-dimensional virtual environments and share content within those virtual environments. Despite many benefits compared to other forms of collaboration, using 3D environments to share content has many drawbacks. When conducting a meeting in a 3D immersive virtual environment, depending on the user's location and the virtual camera position, it may be difficult to see the activities of a particular group of people. For example, if the virtual environment has a large number of meeting attendees, not all members of a particular group may be able to position themselves close to each other. This can occur when people are in several teams and each team may react differently to different events. For example, if someone is in a developer team and has an avatar that is positioned with the avatars of other team members, they can react together to a particular event (e.g., when their team receives an award). However, if that person is also involved in a special project, such as in a volunteer group involving different people, then if the volunteer group experiences a similar event (receives an award), that person does not have the same group experience. Since that person has an avatar positioned with the developer team, that person cannot react (e.g., cheer) and experience the same collaborative group experience that he or she is having with the developer team.
[0002] Without being close to team members in the virtual environment, users may not share the same experience or may not benefit from the team-building experience. Users may miss significant information and gestures, which can lead to a loss of information exchange and enthusiasm. These drawbacks can result in an ineffective interaction between the computing device and the user. Additionally, the above drawbacks of existing systems can lead to a loss of user engagement. Being part of a team in a large virtual environment is important for each member of the team to see the energy of the team and for motivation and engagement in the meeting and overall productivity. Improved user engagement can also help increase the efficiency of the computing system. Additionally, proper control of permissions to manage the view of the virtual environment is also important for protecting proprietary or confidential information. This is especially important for events where competing teams are participants in the virtual conference and different views are generated for each person.
[0003] Computing devices that do not promote user engagement or, worse, result in a loss of user engagement lead to productivity losses and inefficiencies relative to multiple computing resources. For example, when a user becomes tired or lax, when shared content is missed or ignored, the user may need to refer to other resources such as documents or engage in other forms of communication. When a viewer misses significant points or cues during a live meeting, the missing content may need to be resent. Such activities result in inefficient or redundant use of the network, processor, memory, or other computing resources. Accordingly, there is a need for continuous development and improvement to help make the user experience more like a face-to-face meeting and more engaging. Additionally, when information in a virtual reality environment is not displayed correctly, some content that should be hidden from some users may be inadvertently exposed when such content is displayed on a virtual object such as a virtual screen. SUMMARY OF THE INVENTION
[0004] The techniques disclosed herein provide a boost to meeting engagement by switching the viewing perspective to a temporary viewing perspective of a cluster that shows group activity. The system can show everyone a view of a large virtual environment, e.g., a stadium represented as full of meeting attendees. Each person sees the virtual environment from a viewpoint that originates from the person's representation, e.g., a first-person avatar view. When group activity meets one or more conditions, the system determines the parameters of a temporary perspective view from the viewpoint of a virtual camera based on the positions of people in a cluster of representations (e.g., avatars). The parameters of the temporary perspective view can be selected to show a threshold number of representations found in the cluster in the virtual environment. The system can then switch the view of each member of the group from the first-person perspective to the viewpoint of the virtual camera. In some embodiments, an animation in a flyover form can be used to show other group members who are not in the cluster, thus completing the transition from the first-person perspective to the virtual camera perspective. This allows the system to show the collaborative activities of all those who are members of the group.
[0005] The system provides a view of group activity. This has more technical benefits than other techniques that merely stitch together 2D images because these disclosed features put the avatars together such that they appear to be located together in a group. This shows the synergy of the current reactions to the event to all individuals in the group.
[0006] Adaptive adjustments using a temporary view can provide many technical benefits to a computing system. For example, by providing an adaptive adjustment to the perspective view, each user of a communication session can obtain the benefits of group activities even if they are not sitting together in the original virtual environment. By providing such stimuli, the system can promote user engagement, which can help the system reduce user fatigue. By reducing user fatigue, especially in a communication system, users can exchange information more effectively. This helps reduce the occurrence of situations where shared content is lost or overlooked. This can reduce the occurrence of situations where users need to resend information. More effective communication of shared content can also help avoid the need for external systems such as mobile phones for text messaging and other messaging platforms. The systems and features described herein can also help reduce the reuse of network, processor, memory, or other computing resources.
[0007] Without modifying the virtual environment, it is beneficial to show the people in a group in their original virtual environment. The viewing user will see a focused view of the group activity while also seeing aspects of the original environment and other users. For example, they can be aware of the energy of the entire meeting, such as the overall group activity, while showing a focused small-group activity.
[0008] The features disclosed herein also provide many improvements to the security of the system. For example, members of other teams are denied access to the collaborative activities of other groups. This allows each group to share information and communicate with each other without sharing that information with members of other groups. For example, in the sports event example described above, the first group of enthusiasts can react together and share information such as future strategies without allowing other enthusiasts to see that information.
[0009] By reading the following detailed description and review of the related drawings, features and technical benefits other than those explicitly described above will be apparent. The present invention content is provided to introduce a selected concept in a simplified form, which will be further described in the following detailed implementation. The present invention content is not intended to identify the key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The term "technology" can, for example, refer to one or more systems, one or more methods, computer-readable instructions, one or more modules, algorithms, hardware logic, and / or one or more operations as permitted by the context described above and throughout the document. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The specific embodiments will be described with reference to the accompanying drawings. In the drawings, the leftmost (one or more) digits of the reference numerals identify the drawing in which the reference numeral first appears. The same reference numerals in different drawings indicate similar or identical items. References to individual items among a plurality of items can use reference numerals with a sequence of letters to refer to each individual item. A general reference to an item can use a specific reference numeral without a sequence of letters.
[0011] Figure 1 A virtual environment including a representation of attendees of a meeting is shown.
[0012] Figure 2 An example of rendering a perspective view from a viewpoint derived from a representation of one attendee is shown.
[0013] Figure 3 A highlighting of meeting attendees associated with a specific event is shown.
[0014] Figure 4 An example of a temporary perspective view for showing the activities of an entity cluster associated with a specific event is shown.
[0015] Figure 5A An example of a path of an entity that can be generated to show an entity associated with a specific event and not shown in the temporary perspective view is shown.
[0016] Figure 5B A first intermediate perspective view for showing an entity not in the temporary perspective view from a flyover path is shown.
[0017] Figure 5C A second intermediate perspective view for showing an entity not in the temporary perspective view from a flyover path is shown.
[0018] Figure 5D A third intermediate perspective view for showing an entity not in the temporary perspective view from a flyover path is shown.
[0019] Figure 5E An example of a temporary perspective view for showing the activities of an entity cluster associated with a specific event is shown.
[0020] Figure 6 An example of rendering a perspective view from a viewpoint of a virtual camera using parameters selected for the temporary perspective view to show the activities of an entity cluster associated with a specific event is shown.
[0021] Figure 7A A virtual environment including a representation of attendees of a meeting is shown.
[0022] Figure 7BShows the state of a virtual environment when some of the representations of the attendees of a meeting are part of an event.
[0023] Figure 7C Shows an example of a path that can be generated to show the path of an entity associated with a specific event, where the path is part of a new virtual environment defined by a complementary model.
[0024] Figure 7D Shows a first intermediate perspective view for showing an entity not in a temporary perspective view from a flyover path.
[0025] Figure 7E Shows a target area where a zoom is selected to show details of each user in a group.
[0026] Figure 7F Shows a second intermediate perspective view for showing an entity not in a temporary perspective view from a flyover path.
[0027] Figure 7G Shows a third intermediate perspective view for showing an entity not in a temporary perspective view from a flyover path.
[0028] Figure 7H Shows a fourth intermediate perspective view for showing an entity not in a temporary perspective view from a flyover path.
[0029] Figure 7I Shows a fifth intermediate perspective view for showing an entity not in a temporary perspective view from a flyover path.
[0030] Figure 7J Shows a sixth intermediate perspective view for showing an entity not in a temporary perspective view from a flyover path.
[0031] Figure 8 Shows a flowchart illustrating aspects of the disclosed technology.
[0032] Figure 9 Is a computer architecture diagram illustrating an illustrative computer hardware and software architecture of a computing system capable of implementing aspects of the technologies and techniques presented herein.
[0033] Figure 10 Is a computer architecture diagram illustrating the computing device architecture of a computing device capable of implementing aspects of the technologies and techniques presented herein. Detailed Description
[0034] Figures 1 - 6 Illustrates aspects of a process for promoting engagement by transitioning from a first viewing perspective associated with a first entity that is one of a plurality of entities located in a virtual environment to a temporary viewing perspective. Figure 1Aspects of a virtual environment 290 including a plurality of entities 131A - 131ZZ are shown. In this example, the entities are in the form of avatars, which are also referred to herein as representations of users. For example, the first entity 131A is in the form of an avatar representing the first participant in a communication session. As shown, each entity has a position in the 3D environment 200 that can be based on coordinates, and each entity has an orientation, which is represented as a vector originating from a point on the entity, such as the viewing point at the position of the avatar's eyes. The viewing point can also be associated with a position in the 3D environment. In some configurations, the orientation vector 122 can indicate the direction in which the entity is facing. In this example, the first orientation vector 122A shows the direction in which the first entity 131A is facing, and the first orientation vector 122A is based on the first viewing point 111A of the first entity. The orientation vector for an entity can also be referred to as the "original orientation" of the entity based on the original model data 190.
[0035] It is also shown that the model data 190 (also referred to herein as the original model data 190 or data structure 190) can define the positions and orientations for a plurality of entities 131. The entities can be virtual objects, such as avatars representing users, or the entities can be another type of virtual object, such as a virtual TV screen, virtual furniture, a virtual camera, etc. A virtual camera is similar to an avatar in that it can have a position, orientation, and viewing perspective, but it may not have a displayable entity. For example, it can be an invisible virtual camera. The model data 190 can also define the viewing perspective 121 originating from the viewing point 111 for an individual entity. The viewing perspective 121 extends in the direction of the orientation vector, and each viewing perspective 121 can have a scale (such as width or height) that increases as the distance from the viewing point increases. The model data can also define the physical characteristics of each entity, such as size, shape, surface pattern, etc.
[0036] In one example, the entity can be an avatar or representation of a user. The viewing point 111 can be at a specific position relative to the entity, such as the point where the avatar's eyes are located. The viewing perspective 121 of the entity can be projected from the viewing point 111, and the viewing perspective 121 can be used to generate a rendering that is displayed to the user controlling the avatar. The system can display the entities of the 3D environment 200 based on the position and orientation of the avatar and the positions of the entities located within the viewing perspective 121. In Figure 1 the example, the first entity 131A has a first viewing perspective 121A that follows the direction of the orientation vector 122A.
[0037] As in Figure 2As shown in, the rendering 251 of the first viewing perspective 121A can include any entity within the viewing perspective 121A, each avatar within the boundaries of the first viewing perspective 121A, and a portion of the stage of the virtual environment. The rendering 251 of the viewing perspective 121A can be a 2D image generated using any suitable projection technique that captures an image from the first viewpoint 111A. The rendering generated from the viewing perspective can crop a portion of an entity that is not within the boundaries of the viewing perspective, as shown in Figure 2 As shown in. In this example, the system displays the first viewing perspective 121A to the first user by generating a rendering of the 3D environment 200 using the first viewing perspective 121A associated with the first entity 131A for display on the display device 11A associated with the first user 10A. This view is generated using the model data 190. As shown in Figures 3 - 6 As shown in, one or more detected events cause the system to transition from the rendering 251 of the first viewing perspective 121A associated with the first entity 131A to the rendering 252 of a temporary viewing perspective 321, where the first entity 131A is one of a plurality of entities 131A - 131ZZ located within the 3D environment 200. Figure 3 Aspects of a system 100 having computers 11 are shown, where each computer 11 is associated with a person 10 who is a participant in a communication session such as a meeting in a virtual environment 200, which allows each person to transmit audio signals and allows each person to view each other through their own perspective originating from their avatar. Figure 3 An example of a set of entities related to a particular event is shown. These entities related to an event that meets a preset condition are shaded to illustrate aspects of the example.
[0038] When in a first operating state, the system causes the rendering 251 of the first viewing perspective 121A to be displayed to the first computer 11A, and the system can perform the same operation for each person having a representation in the virtual environment 200. When in this state, the system can receive a signal from the user indicating an event. The signal can be a computer - based input, such as an input that causes the display of a reaction, for example, the posting of a reaction emoji, or the signal can be an audio signal or a text signal indicating a particular event. For example, a presenter can indicate in an announcement that Team X won a prize. When the system detects such an event related to a particular set of users (e.g., Team X), the system can retrieve organizational data or other metadata to determine the identifiers of each user who is part of Team X. Then, the system can analyze the model data 190 to determine the location of each entity associated with the identifier.
[0039] As shown in Figure 4As shown in, in response to determining that the input identifying the event satisfies a preset condition, the system can then use those identifiers to generate parameters for a temporary viewing perspective 321, where the parameters for the temporary viewing perspective 321 include a threshold number of entities associated with users 10A - 10Z associated with a threshold activity level. The system selects the parameters such that individual entities 131A - 131Z are positioned within the temporary viewing perspective 321 of the virtual camera 320.
[0040] For the temporary perspective view, clusters of entities that do not have a threshold number of entities related to the event that satisfies the preset condition are not selected. For example, if a group of people is part of a team and the team has 26 people, the system will not generate parameters for the temporary perspective until it can find a cluster of those team members that exceeds a specific threshold. For example, if the system has a user threshold number of ten and cannot generate the boundaries of the perspective view to show a cluster of at least 10 entities adjacent to each other, the system will not generate the parameters for the temporary perspective view. However, in this example, there are group members with more than 10 entities adjacent to each other, so the system generates parameters for the temporary viewing perspective 321. The size and shape of the temporary viewing perspective can be based on the number of entities in the group. For example, the parameters for the temporary viewing perspective 321 can include coordinates in the virtual environment. The coordinates can be configured such that the boundaries of the temporary viewing perspective 321 surround a selected cluster of entities that meet the criteria defined herein. The distance between the boundaries of the temporary viewing perspective 321 and the virtual camera 320 can be based on the density of the entities, the number of entities, and the shape of the selected cluster of entities. The position of the virtual camera can include coordinates that position the virtual camera such that a particular surface of the entity (e.g., the face of the avatar) is displayed in the rendering generated from the temporary viewing perspective 321. The position 322 of the temporary viewing perspective 321 and the virtual camera 320 can be used to generate a temporary rendering to show group activity.
[0041] In response to determining that the input identifying the event satisfies a preset condition, the system can cause a temporary rendering based on the temporary viewing perspective 321 to be displayed. In this state of the system, as shown in Figure 6 The system can generate a rendering 251 of individual entities 131A - 131Z positioned within the temporary viewing perspective 321 of the virtual camera 320 for display on the screen of the computer 11A associated with the first user 10A. The rendering of the individual entities is displayed using the temporary viewing perspective 321 and the position 322 of the virtual camera 320. The rendering using the temporary viewing perspective 321 and the position 322 of the virtual camera 320 can include some aspects of the environment 200, where the environment 200 includes a threshold number of individual entities 131A - 131Z, and each individual entity represents a user 10A - 10Z associated with the event.
[0042] The system is capable of causing multiple transitions in a variety of scenarios. For example, in a first scenario, the system is able to detect audio signals from 35% of the users involved in Project X. In response to an activity that meets such criteria (e.g., a threshold number of a predefined group of avatars with a predefined input or an audio signal indicating an event in a virtual meeting), the system is able to cause a transition of the rendering 251 of the 3D environment 200 using a first viewing perspective 121A from a first viewpoint 111A located in association with a first entity 131A to a rendering 252 of a temporary viewing perspective 321 from a second viewpoint 322 and using parameters of an activity signal indicating a threshold activity level.
[0043] In another example, in a second scenario, the system is able to first identify a group of people, e.g., identify a group of entities performing gestures, making noises, providing input gestures to a computer, reacting to an announcement, etc. Through such visual activity, e.g., the activity signal is a video stream or 3D model data showing the movement of the entities, the system is able to identify that the group meets a preset condition, e.g., 30% of the team is making noises or moving. In response to the identification of this preset condition, e.g., if the threshold is 25%, the system is then able to identify the location of one or more largest clusters of entities that meet a minimum number of entities. Once the location and boundaries of one or more largest clusters of entities that meet the minimum number of entities are determined, the system is able to generate parameters for the views of those clusters that meet those conditions.
[0044] Thus, in response to an activity signal indicating a threshold activity level of a subset 221 of users 10A - 10Z who are members of a predefined group, the system is able to determine the parameters of the temporary viewing perspective view 321, where the parameters of the temporary viewing perspective view 321 include a threshold number of entities associated with users 10A - 10Z associated with the threshold activity level, where individual entities 131A - 131Z are located within the temporary viewing perspective 321 of the virtual camera 320. As illustrated in Figure 4 the system is able to determine parameters for a group view of team members, e.g., having a "threshold level of affiliation" in the temporary perspective. Then, the system is also able to determine the coordinates of a second viewpoint 322 for the virtual camera 320, where the temporary viewing perspective 321 originates from the second viewpoint 322. Then, the system is able to cause a transition of the rendering 251 of the 3D environment 200 using a first viewing perspective 121A from a first viewpoint 111A located in association with a first entity 131A to a rendering 252 of the temporary viewing perspective 321 from the second viewpoint 322 and using parameters of an activity signal indicating a threshold activity level.
[0045] Users can be associated with the event, and the event can use one or more factors to meet a preset condition. For example, the system can receive a signal from an individual computer 11, and each person can make a sound, such as cheering, or provide a signal, such as a cheering emoji, as a user of the event. When each user providing the signal has a threshold connection level (e.g., an org chart shows that they are members of a company team), and when each user with a threshold connection level has a threshold activity level, the system can determine that the event meets the preset condition. The threshold activity level can be, for example, a predetermined percentage of a group. For example, when more than 80% of a team is cheering or providing another type of activity input that elicits a reaction, conveys an emotion, provides voice input, etc. Thus, when less than the threshold activity level exists, for example, using the example threshold of 80%, when less than 80% of a team is cheering, the system determines that the event does not meet the preset condition and the system does not generate the parameters of the temporary viewing perspective 321.
[0046] This allows the system to generate the parameters of the temporary viewing perspective 321 for each group that meets the threshold. This means that a person can be a member of different teams or different projects, and they can see the people belonging to each team or project that reacts together. For example, if a person is part of a developer team and a threshold number of those developers cheer, that person can see themselves in a cluster with the avatars of the team members. If the same person is working on a multi-user editing session of a spreadsheet and the person is identified in a notice about the spreadsheet, the system can generate the parameters of the temporary viewing perspective 321, and the temporary viewing perspective 321 shows all the avatars of those contributors in the group that reacts together.
[0047] Thus, in some embodiments, when an activity signal is received from a subset of computing devices 11A - 11Z associated with a subset 221 of users 10A - 10Z that have a threshold connection level with each other, the input identifying the event meets the preset condition, and wherein the activity signal indicates the threshold activity level, and wherein the generation of the parameters of the temporary viewing perspective 321 and the associated rendering 252 of individual entities 131A - 131Z within the temporary viewing perspective 321 of the virtual camera 320 are in response to receiving the activity signal indicating the threshold activity level from a subset of computing devices 11A - 10Z associated with a subset 221 of users 10A - 10Z that have a threshold connection level with each other.
[0048] In some configurations, the event may satisfy a preset condition based on a connection without using an activity signal. Thus, in some embodiments, when an activity signal is received from a subset of computing devices 11A - 11Z associated with a subset 221 of users 10A - 10Z having a threshold connection level with each other, the input identifying the event satisfies the preset condition, wherein the parameters of the temporary viewing perspective 321 and the generation of the associated rendering 252 of the individual entity are in response to receiving the activity signal from the subset of computing devices 11A - 11Z associated with the subset 221 of users 10A - 10Z having a threshold connection level with each other.
[0049] In some configurations, the event may satisfy a preset condition based on an activity level without the connection level. Thus, in some embodiments, when an activity signal is received from a subset of computing devices 11A - 11Z associated with a subset 221 of users 10A - 10Z and the activity signal indicates a threshold activity level, the input identifying the event satisfies the preset condition, e.g., they are providing a predetermined volume level or providing a predetermined input, e.g., a specific emoji post. Thus, the parameters of the temporary viewing perspective 321 and the generation of the associated rendering 252 of the individual entity are in response to receiving the activity signal from the subset of computing devices 11A - 11Z associated with the subset 221 of users 10A - 10Z, wherein the activity signal of the subset 221 of users 10A - 10Z indicates the threshold activity level.
[0050] In some embodiments, the rendering of the individual entity located within the temporary viewing perspective of the virtual camera is displayed on the display device until the activity signal of the subset 221 of users drops below a second activity threshold level. Thus, in response to the activity signal of the subset 221 of users dropping below the second activity threshold level, the display on the display device 11A associated with the first user 10A returns to rendering the 3D environment 200 using the first viewing perspective 121A associated with the first entity 131A. This can be applied to all users of the group.
[0051] The system is also capable of modifying permissions in response to the input identifying the event satisfying the preset condition. For example, the modified permission allows a first set of computing devices of users 10A - 10Z associated with the event to use a supplementary model 191 defining a second 3D environment 201 to display the rendering of the individual entity. The permission is also modified in response to the event to restrict a second set of computers associated with other users from displaying the rendering 252 based on the parameters of the temporary viewing perspective 321.
[0052] In some embodiments, the system restricts the transition from rendering 251 using the first viewing perspective 121A to rendering 252 of the temporary viewing perspective until a subset 221 of users 10A - 10Z have a threshold level of connection with each other. This saves system resources from performing the transition until people with an actual connection (e.g., they are on the same team in an organizational chart) have a common working document, each contributing to or being part of a common project, as part of an event, such as an announcement about a subset of users or a subset of users providing a threshold level of activity, e.g., 80% of a subset of users providing input showing an expression (e.g., an emoji or a message). Users who are not part of the group or detected events are also restricted from the display of rendering 252 of individual entities using the parameters of the temporary viewing perspective 321.
[0053] Figures 5A - 5E Shows how other group members not positioned using the parameters of the temporary viewing perspective 321 and the associated rendering 252 are displayed to the users of the group. This example uses the first perspective and the temporary perspective views, and generates flight paths from each perspective to show intermediate views. For example, Figure 5A Shows a first view of the transition caused by the detected event. This starts with a view from the first viewpoint 111A. The path is configured to show a temporary view of other group members before showing the temporary perspective view. For example, as in Figure 5B shown, the view moves towards the entity associated with the group member. Then, in Figure 5C it points the view to the entity associated with the group member on the main field. Then, in Figure 5D it points the view to the entity associated with the group member in the stands, but the positioning of these entities is away from the cluster of group members greater than the threshold number. Then, in Figure 5E the view is using the parameters of the temporary viewing perspective 321 and the associated rendering 252 of the individual entity.
[0054] In some embodiments, the system determines parameters for a path that includes a plurality of intermediate viewing perspectives 311. The path starts at a first viewpoint 111A of a first viewing perspective 121A and ends at a second viewpoint 322 of a temporary viewing perspective 321. The transition between the rendering 251 of the first viewing perspective 121A and the rendering 252 of the temporary viewing perspective 321 also includes generating an animation that shows the rendering of the intermediate viewing perspectives 311 of the path between the display of the rendering 252 of the first viewing perspective 121A and the rendering 251 of the temporary viewing perspective 321. The intermediate viewing perspectives and the viewpoints associated with the intermediate viewing perspectives are positioned to capture images of selected entities associated with users 10A - 10Z associated with a threshold activity level. The images of the selected entities include entities that are not located within the temporary viewing perspective 321 of the virtual camera 320.
[0055] Figure 6 An example rendering of shows an example of the rendering 252, which is based on the parameters of the temporary viewing perspective 321 and the associated rendering 252 of the individual entities. This view can be displayed until the activity does not meet one or more criteria. For example, once the activity that caused the user interface transition stops or does not meet the criteria defined herein, the system is able to return the view from the temporary viewing perspective 321 to the original viewing perspective 121A.
[0056] Figures 7A to 7J Shows another embodiment in which a supplementary model with a selected group of avatars is generated before selecting and using a flight path for a virtual camera. Figure 7A Shows a first state of the original model, similar to the model shown in Figure 1 where the first user 10A is at a location within the virtual environment. In Figure 7A this viewing perspective shown in Figure 2 allows the computer 11A of the first user to see the rendering shown in
[0057] As shown in Figure 7B the system is able to detect one or more events that cause the system to transition the rendering 251 to a new rendering 252, which shows multiple perspectives as an overflight view showing group activity and environmental context. As described herein, the system detects one or more events by determining an activity signal that indicates a threshold activity level for a subset (221) of users (10A - I0Z) who are members of a predefined group.
[0058] In response to determining an activity signal that indicates a threshold activity level for a subset (221) of users (10A - 10Z) who are members of a predefined group, as shown in Figure 7BAs shown, the system is capable of generating a supplemental model 191 that defines a second 3D environment 201, the second 3D environment 201 including individual entities 131A-131Z (also referred to herein as a subset of individual entities 13IA-131Z) each representing a user 10A-10Z associated with the event, where the individual entities 131A-131Z are located within a temporary viewing perspective 321 of a virtual camera 320. In this example, a subset 221 of users 10A-10Z is associated with an event from their provided input, or by having a threshold connection level, e.g., they are members of a team or otherwise related, e.g., co-editors of a document, part of a project, etc. The supplemental model can have the position and orientation of each entity. The supplemental model can be generated by retrieving the identifier of each person in the subset of users and then retrieving the avatar data or each person. The avatar data is used to construct the temporary virtual environment defined by the supplemental model 191.
[0059] The system is also capable of generating a temporary viewing perspective 321 of the virtual camera. The size and shape of the temporary viewing perspective can be based on the number of entities in the group. For example, the parameters of the temporary viewing perspective 321 can include coordinates in the virtual environment. The coordinates can be configured such that the boundaries of the temporary viewing perspective 321 surround a cluster of selected entities that meet criteria defined herein. The distance between the boundaries of the temporary viewing perspective 321 and the virtual camera 320 can be based on the density of the entities, the number of entities, and the shape of the cluster of selected entities. The position of the virtual camera can include coordinates where the virtual camera is positioned such that a particular surface of the entity (e.g., the face of the avatar) is displayed in a rendering generated from the temporary viewing perspective 321. The system is also capable of determining a path (dashed line) along which the virtual camera travels to generate a flyover of the group. The path can also have multiple points, where the direction of an intermediate perspective can be selected to show individual frames of an animated flyover.
[0060] Figure 7D and Figures 7F - 7J An example of a rendering 252 that can be generated for a flyover animation using the path and intermediate perspectives is shown. Figure 7EShows the target area within the shaded box, where the zoom of the viewing perspective will land to show details of each user in the group. The wide view is zoomed to a narrow view such that the system can provide a wider context for group activities by showing a wider perspective of the group, and then, an intermediate view showing a narrower perspective view that shows more details for each participant. This change in the viewing perspective is important for allowing users to understand the broader context and the finer details of the interactions among members of a subset (e.g., subgroup) of the users. The benefit of this zoom level is that the group can be shown at a level where people can see the faces of their teammates, but also shows the teammates in the original environment ( Figure 4 's model) or the disrupted environment ( Figure 7C 's model). Figures 7F - 7J The view can be based on Figure 7C 's complementary model or on the original model with entities in the original virtual environment.
[0061] Figure 8 is a diagram illustrating aspects of routine 500 for promoting engagement by transitioning from a first viewing perspective 121A associated with a first entity 131A to a temporary viewing perspective 321, where the first entity 131A is one of a plurality of entities 131A - 131ZZ located within a 3D environment 200. Those of ordinary skill in the art should understand that the operations of the methods disclosed herein are not necessarily presented in any particular order, and some or all of the operations may be performed and are contemplated to be performed in alternative orders. For ease of description and illustration, the operations have been presented in a demonstrated order. Operations may be added, omitted, performed together, and / or performed concurrently without departing from the scope of the appended claims.
[0062] It should also be understood that the illustrated method can start or end at any time and does not need to be executed in its entirety. Some or all of the operations of the method and / or substantially equivalent operations can be performed by executing computer-readable instructions included on a computer storage medium, as defined herein. As used in the specification and claims, the term "computer-readable instructions" and its variants are used herein broadly to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, etc. Computer-readable instructions can be implemented on various system configurations, including single-processor or multi-processor systems, minicomputers, mainframe computers, personal computers, handheld computing devices, microprocessor-based, programmable consumer electronics, combinations thereof, etc. Although the example routines described below operate on a system (e.g., one or more computing devices), it can be appreciated that the routine can be executed on any computing system, which can include any number of computers working together to perform the operations disclosed herein.
[0063] Accordingly, it should be appreciated that the logical operations described herein are implemented as a sequence of computer-implemented acts or program modules running on a computing system such as those described herein and / or interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice depending on the performance and other requirements of the computing system. Accordingly, the logical operations may be implemented in software, firmware, special purpose digital logic, and any combination thereof.
[0064] Additionally, the operations shown in Figure 8 and other figures can be implemented in association with the example user interfaces and systems described herein. For example, the various devices and / or modules described herein can generate, send, receive, and / or display data associated with the content of a communication session (e.g., live content, broadcast events, recorded content, etc.) and / or a presentation UI including a rendering of one or more participants of a remote computing device, an avatar, a channel, a chat session, a video stream, an image, a virtual object, and / or an application associated with the communication session.
[0065] Routine 500 includes operation 501, wherein system 100 accesses data structure 190 that defines 3D environment 200. Data structure 190 defines the position 132 and orientation 113 for each of a plurality of entities 131 in 3D environment 200. Data structure 190 defines at least one virtual viewing perspective 121 based on one or more viewpoints 111 for an individual entity 131. One or more viewpoints 111 are selectable for generating a customized rendering 300 of at least one viewing perspective 121 for computing device 11A for communication session 604.
[0066] At operation 503, the system uses first viewing perspective 121A associated with first entity 131A to generate a rendering of 3D environment 200 for display on display device 11A associated with first user 10A. The view is generated by using original model data 190. Figure 2 An example is shown where the rendering includes an entity positioned within first viewing perspective 121A to first user 10A.
[0067] At operation 505, the system determines that the input identifying the event meets a preset condition. An event can meet the preset condition based on one or more factors. For example, when a user with a threshold connection level (e.g., a member of a company team) has a threshold activity level (e.g., 80% of the team is cheering), the system can determine that the event meets the preset condition. An event can also meet the preset condition through a single action (e.g., the presenter mentions that Team X has won a reward). In this way, if the presenter mentions that Team X and Team Y have each won a reward, each team can see the team that reacts in the individual group without having to see the members of the other team. For example, Team X members do not see Team Y members, and vice versa.
[0068] At operation 507, the system generates parameters for a temporary viewing perspective 321, where the parameters for the temporary viewing perspective 321 include a threshold number of entities associated with users 10A - 10Z associated with the threshold activity level. Individual entities 131A - 131Z are positioned within the temporary viewing perspective 321 of the virtual camera 320. The system also determines the coordinates for a second viewing point 322 for the virtual camera 320, where the temporary viewing perspective 321 originates from the second viewing point 322.
[0069] At operation 509, system 100 causes a transition in the rendering 251 of the 3D environment 200 from a first viewing perspective 121A using a viewing point 111A positioned in association with the first entity 131A to a temporary viewing perspective 321 originating from the second viewing point 322 and using parameters responsive to an activity signal indicating the threshold activity level. In some embodiments, the rendering of the individual entities positioned within the temporary viewing perspective of the virtual camera is displayed on a display device until the activity of a subset 221 of users drops below a second threshold level. The rendering can also return to the original view after a predetermined time.
[0070] Figure 9 FIG. is a diagram illustrating an example environment 600 in which a system 602 can implement the techniques disclosed herein. It should be appreciated that the subject matter described above can be implemented as a computer-controlled apparatus, a computer process, a computing system, or an article of manufacture such as a computer-readable storage medium. The operations of the example method are illustrated in individual boxes and are outlined with reference to these boxes. The method is illustrated as a logical block flow, where each box can represent one or more operations that can be implemented in hardware, software, or a combination thereof. In a software context, the operations represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, cause the one or more processors to be able to perform the recited operations.
[0071] Typically, computer-executable instructions include routines, programs, objects, modules, components, data structures, etc. 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 operations can be performed in any order, combined in any order, subdivided into multiple sub-operations, and / or executed in parallel to implement the described process. The described process can be executed by resources associated with one or more devices such as one or more internal or external CPUs or GPUs, and / or one or more hardware logics such as field programmable gate arrays (“FPGAs”), digital signal processors (“DSPs”), or other types of accelerators.
[0072] All of the above methods and processes can be embodied in software code modules run by one or more general-purpose computers or processors and be fully automated via software code modules run by one or more general-purpose computers or processors. The code modules can be stored in any type of computer-readable storage medium or other computer storage device, such as those described below. Some or all of the methods in the method can alternatively be embodied in dedicated computer hardware, such as the computer hardware described below.
[0073] Any routine description, element, or block in the flowcharts described herein and / or depicted in the figures should be understood as potentially representing a module, segment, or portion of code that includes one or more executable instructions for implementing a particular logical function or element in the routine. Alternative implementations are included within the scope of the examples described herein, where elements or functions can be deleted or not executed in the order shown or discussed, depending on the function as would be understood by those skilled in the art, including substantially synchronously or in the reverse order.
[0074] In some embodiments, system 602 can be used to collect, analyze, and share data presented to the users of communication session 604. As illustrated, communication session 603 can be implemented among multiple client computing devices 606(1) through 606(N) (where N is a number with a value of two or greater), which are associated with or are part of system 602. Client computing devices 606(1) through 606(N) enable users, also referred to as individuals, to participate in communication session 603.
[0075] In this example, communication session 603 is hosted by system 602 over one or more networks 608. That is, system 602 is capable of providing the perception that enables users of client computing devices 606(1) through 606(N) to participate in communication session 603 (e.g., via live viewing and / or viewing of recordings). Thus, the “participants” in communication session 603 can include users and / or client computing devices (e.g., multiple users can participate in communication session in a room via using a single client computing device), and each of the users and / or client computing devices can communicate with other participants. Alternatively, communication session 603 can be hosted by one of client computing devices 606(1) through 606(N) using peer-to-peer technology. System 602 can also host chat conversations and other team collaboration functions (e.g., as part of an application suite).
[0076] In some embodiments, such chat conversations and other team collaboration functions are considered as external communication sessions different from communication session 603. Computing system 602 that collects participant data in communication session 603 may be capable of linking to such external communication sessions. Thus, the system can receive information enabling connection to such external communication sessions, such as date, time, session details, etc. In one example, a chat conversation can be conducted according to communication session 603. Additionally, system 602 can host communication session 603, which includes at least multiple participants co-located at a meeting location (such as a conference room or auditorium) or located at different locations.
[0077] In the examples described herein, client computing devices 606(1) through 606(N) participating in communication session 603 are configured to receive and render communication data for display on a user interface of a display screen. The communication data can include a collection of various instances or streams of live content and / or recorded content. The collection of various instances or streams of live content and / or recorded content can be provided by one or more cameras (such as video cameras). For example, an individual stream of live or recorded content can include media data associated with a video feed provided by a video camera (e.g., audio and visual data capturing the appearance and voice of users participating in the communication session). In some embodiments, the video feed can include such audio and visual data, one or more still images, and / or one or more avatars. The one or more still images can also include one or more avatars.
[0078] Another example of an individual stream of live or recorded content can include media data that includes an avatar of a user participating in a communication session and audio data that captures the user's voice. Yet another example of an individual stream of live or recorded content can include media data that includes a file displayed on a display screen and audio data that captures the user's voice. Thus, the various streams of live or recorded content within the communication data enable a remote meeting to be facilitated among a group of people and the content to be shared within the group of people. In some embodiments, the various streams of live or recorded content within the communication data can originate from a plurality of co-located video cameras positioned within a space such as a room to record or stream live a presentation that includes one or more individuals giving the presentation and one or more individuals consuming the presented content.
[0079] Participants or attendees can view the content of communication session 603 as it occurs, or alternatively, view a recording at a later time after the event has occurred. In the examples described herein, the client computing devices 606(1) through 606(N) participating in communication session 603 are configured to receive and render communication data for display on a user interface of a display screen. The communication data can include a collection of various instances or streams of live and / or recorded content. For example, an individual stream of content can include media data associated with a video feed (e.g., audio and video data that captures the appearance and voice of a user participating in a communication session). Another example of an individual stream of content can include media data that includes an avatar of a user participating in a meeting session and audio data that captures the user's voice. Yet another example of an individual stream of content can include media data that includes a content item displayed on a display screen and / or audio data that captures the user's voice. Thus, the various streams of content within the communication data enable a meeting or a broadcast presentation to be facilitated among a group of people dispersed at remote locations.
[0080] The participants or attendees of a communication session are people within the range of a camera or other image and / or audio capture device such that the actions and / or sounds of the people that occur while the people are viewing and / or listening to the content shared via the communication session can be captured (e.g., recorded). For example, a participant can be sitting in a crowd at a broadcast location where a stage presentation is occurring, watching the shared content live. Or, a participant can be sitting in an office conference room, viewing the shared content of a communication session with other colleagues via a display screen. Further still, a participant can be sitting or standing in front of a personal device (e.g., a tablet, a smart phone, a computer, etc.) and viewing the shared content of the communication session individually in their office or at home.
[0081] Figure 9The system 602 includes one or more devices 610. One or more devices 610 of the system 602 and / or other components can include distributed computing resources that communicate with each other and / or with client computing devices 606(1) through 606(N) via one or more networks 608. In some examples, the system 602 can be an independent system responsible for managing aspects of one or more communication sessions such as communication session 603. As an example, the system 602 can be managed by entities such as SLACK, WEBEX, GOTOMEETING, GOOGLE HANGOUTS, etc.
[0082] One or more networks 608 can include, for example, a public network such as the Internet, a private network such as an institutional and / or personal intranet, or some combination of private and public networks. One or more networks 608 can also include any type of wired and / or wireless network, including but not limited to: local area network (“LAN”), wide area network (“WAN”), satellite network, cable network, Wi-Fi network, WiMax network, mobile communication network (e.g., 3G, 4G, etc.), or any combination thereof. One or more networks 608 can utilize communication protocols, including: packet-based and / or datagram-based protocols such as Internet Protocol (“IP”), Transmission Control Protocol (“TCP”), User Datagram Protocol (“UDP”), or other types of protocols. In addition, one or more networks 608 can also include multiple devices that facilitate network communication and / or form the hardware foundation of the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, backbone devices, etc.
[0083] In some examples, one or more networks 608 can further include devices that enable connection to a wireless network, such as a wireless access point (“WAP”). Examples support connections through a WAP, which sends and receives data over various electromagnetic frequencies (e.g., radio frequency), including WAPs that support Institute of Electrical and Electronics Engineers (“IEEE”) 802.11 standards (e.g., 802.11g, 802.11n, 802.11ac, etc.) and other standards.
[0084] In various examples, one or more devices 610 may include one or more computing devices operating in a cluster or other grouped configuration to share resources, balance loads, increase performance, provide failover support or redundancy, or for other purposes. For example, one or more devices 610 may belong to various types of devices, such as conventional server type devices, desktop computer type devices, and / or mobile type devices. Thus, although illustrated as a single type of device or a server-type device, one or more devices 610 may include a wide variety of device types and are not limited to a particular type of device. One or more devices 610 may represent but are not limited to: server computers, desktop computers, web server computers, personal computers, mobile computers, laptop computers, tablet computers, or any other type of computing device.
[0085] A client computing device (e.g., one of client computing devices 606(1) to 606(N)) may belong to various types of devices, which may be the same as or different from one or more devices 610, such as conventional client type devices, desktop computer type devices, mobile type devices, dedicated type devices, embedded devices, and / or wearable type devices. Thus, client computing devices can include but are not limited to: desktop computers, game consoles and / or game devices, tablet computers, personal data assistants ("PDAs"), mobile phone / tablet hybrid devices, laptop computers, telecommunications devices, computer navigation type client computing devices such as satellite-based navigation systems (including Global Positioning System ("GPS") devices), wearable devices, virtual reality ("VR") devices, augmented reality ("AR") devices, implanted computing devices, automotive computers, network-enabled televisions, thin clients, terminals, Internet of Things ("IoT") devices, workstations, media players, personal video recorders ("PVRs"), set-top boxes, cameras, integrated components for inclusion in a computing device (e.g., peripherals), appliances, or any other type of computing device. Additionally, client computing devices may include combinations of the previously listed examples of client computing devices, such as, for example, a desktop computer type device or a mobile type device combined with a wearable device, etc.
[0086] Client computing devices 606(1) to 606(N) of various categories and device types can represent any type of computing device having one or more data processing units 692, such as one or more data processing units 692 operably connected to a computer-readable medium 694 via a bus 616, which in some cases can include a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and one or more of any various local, peripheral, and / or independent buses.
[0087] The executable instructions stored on the computer-readable medium 694 can include, for example, an operating system 619, a client module 620, a profile module 622, and other modules, programs, or applications that can be loaded and executed by the data processing unit(s) 692.
[0088] The client computing devices 606(1) to 606(N) can also include one or more interfaces 624 to enable communication between the client computing devices 606(1) to 606(N) and other networked devices (such as the device(s) 610) via the network(s) 608. Such network interface(s) 624 can include one or more network interface controllers (NICs) or other types of transceiver devices to send and receive communications and / or data over the network. Additionally, the client computing devices 606(1) to 606(N) can include input / output (“I / O”) interface(s) (devices) 626 that enable communication with user input devices such as including peripheral input devices (e.g., game controllers, keyboards, mice, pens, voice input devices such as microphones, video cameras for obtaining and providing video feeds and / or still images, touch input devices, gesture input devices, etc.) and / or output devices such as including peripheral output devices (e.g., displays, printers, audio speakers, haptic output devices, etc.). FIG. 31 illustrates a client computing device 606(1) connected in some manner to a display device (e.g., a display screen 629(N)) that can display a UI in accordance with the techniques described herein.
[0089] In Figure 9 the example environment 600, the client computing devices 606(1) to 606(N) can use their respective client modules 620 to connect with each other and / or with other external device(s) to participate in a communication session 603 or to contribute activities to the collaborative environment. For example, a first user can communicate with a second user of another client computing device 606(2) using the client computing device 606(1). When the client module 620 is executed, the users can share data, which can cause the client computing device 606(1) to connect to the system 602 and / or other client computing devices 606(2) to 606(N) via the network(s) 608.
[0090] The client computing devices 606(1) to 606(N) can use their respective profile modules 622 to generate participant profiles (in Figure 9(not shown in the figure), and provides the participant profile to the (one or more) devices 610 of other client computing devices and / or system 602. The participant profile may include one or more of the following: the identity of a user or a group of users (e.g., name, unique identifier ("ID"), etc.), user data such as personal data, and user data such as location (e.g., IP address, room in a building, etc.) and technical capabilities. The participant profile can be used to register participants for a communication session.
[0091] As shown in Figure 9 the (one or more) devices 610 of system 602 include a server module 630 and an output module 632. In this example, the server module 630 is configured to receive media streams 634(1) to 634(N) from individual client computing devices such as client computing devices 606(1) to 606(N). As described above, the media stream can include a video feed (e.g., audio data and visual data associated with a user), audio data to be output together with the presentation of the user's avatar (e.g., an audio-only experience without transmitting the user's video data), text data (e.g., text messages), file data, and / or screen sharing data (e.g., documents, slide sets, images, videos displayed on a display screen, etc.), and so on. Thus, the server module 630 is configured to receive a collection of various media streams 634(1) to 634(N) (the collection is referred to herein as "media data 634") during the live viewing of the communication session 603. In some scenarios, not all client computing devices participating in the communication session 603 provide media streams. For example, a client computing device can be a consumption device or a "listening" device only, such that it only receives the content associated with the communication session 603, but does not provide any content to the communication session 603.
[0092] In various examples, the server module 630 can select aspects of the media stream 634 to share with individual client computing devices among the participating client computing devices 606(1) through 606(N). Thus, the server module 630 can be configured to generate session data 636 based on the stream 634 and / or pass the session data 636 to the output module 632. The output module 632 can then transmit communication data 639 to the client computing devices (e.g., client computing devices 606(1) through 606(3) participating in the live viewing of the communication session). The communication data 639 can include video, audio, and / or other content data provided by the output module 632 based on the content 650 associated with the output module 632 and based on the received session data 636. The content 650 can include the stream 634 or other shared data, such as image files, spreadsheet files, slide decks, documents, etc. The stream 634 can include a video component depicting images captured by the I / O device 626 on each client computer.
[0093] As shown, the output module 632 transmits communication data 639(1) to the client computing device 606(1), and transmits communication data 639(2) to the client computing device 606(2), and transmits communication data 639(3) to the client computing device 606(3), and so on. The communication data 639 transmitted to the client computing devices can be the same or can be different (e.g., the positioning of the stream of content within the user interface can vary from one device to the next).
[0094] In various embodiments, the (one or more) devices 610 and / or the client module 620 can include a GUI rendering module 640. The GUI rendering module 640 can be configured to analyze the communication data 639 for delivery to one or more of the client computing devices 606. Specifically, the UI rendering module 640 (at the (one or more) devices 610 and / or the client computing device 606) can analyze the communication data 639 to determine an appropriate manner for displaying video, images, and / or content on the display screen 629 of the associated client computing device 606. In some embodiments, the GUI rendering module 640 can provide video, images, and / or content to a rendered presentation GUI 646 on the display screen 629 of the associated client computing device 606. The presentation GUI 646 can be caused to be rendered on the display screen 629 by the GUI rendering module 640. The presentation GUI 646 can include the video, images, and / or content analyzed by the GUI rendering module 640.
[0095] In some embodiments, the presenting GUI 646 can include multiple portions or grids that can render or include video, images, and / or content for display on the display screen 629. For example, a first portion of the presenting GUI 646 can include a video feed of a presenter or an individual, and a second portion of the presenting GUI 646 can include a video feed of personal consumption conference information provided by the presenter or the individual. The GUI presenting module 640 can populate the first and second portions of the presenting GUI 646 in a manner that appropriately mimics the environmental experience that the presenter and the individual can share.
[0096] In some embodiments, the GUI presenting module 640 can magnify or provide a zoomed-in view of an individual represented by a video feed to highlight the individual's reaction to the presenter, such as facial features. In some implementations, the presenting GUI 646 can include video feeds of multiple participants associated with a conference, such as a general communication session. In other embodiments, the presenting GUI 646 can be associated with a channel, such as a chat channel, an enterprise team channel, etc. Thus, the presenting GUI 646 can be associated with an external communication session different from a general communication session.
[0097] Figure 10 A diagram illustrates an example component of an example device 700 (also referred to herein as a "computing device") configured to generate data for some of the user interfaces disclosed herein. The device 700 can generate data that can include one or more portions that can render or include video, images, virtual objects, and / or content for display on the display screen 629. The device 700 can represent one of the device(s) described herein. Additionally or alternatively, the device 700 can represent one of the client computing devices 606.
[0098] As illustrated, the device 700 includes one or more data processing units 702, a computer-readable medium 704, and (one or more) communication interfaces 706. The components of the device 700 are operably connected, for example, via a bus 709, which can include one or more of the following: a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and any of various local, peripheral, and / or independent buses.
[0099] As used herein, (one or more) data processing units (such as (one or more) data processing units 702 and / or (one or more) data processing units 692) may represent, for example, a CPU-type data processing unit, a GPU-type data processing unit, a field programmable gate array (“FPGA”), another type of digital signal processor (“DSP”), or in some cases other hardware logic components that may be driven by a CPU. By way of example, and not limitation: illustrative types of hardware logic components that may be used include application specific integrated circuits (“ASICs”), application specific standard products (“ASSPs”), systems on a chip (“SOCs”), complex programmable logic devices (“CPLDs”), and the like.
[0100] As used herein, computer-readable media (such as computer-readable media 704 and computer-readable media 694) may store instructions executable by (one or more) data processing units. The computer-readable media may also store instructions executable by an external data processing unit (such as an external CPU, an external GPU) and / or executable by an external accelerator (such as an FPGA-type accelerator, a DSP-type accelerator, or any other internal or external accelerator). In various examples, at least one CPU, GPU, and / or accelerator is incorporated in a computing device, while in some examples, one or more of the CPU, GPU, and / or accelerator are external to the computing device.
[0101] A computer-readable medium (which may also be referred to herein as a computer-readable medium) can include computer storage media and / or communication media. "Computer storage media", "non-transitory computer storage media" or "non-transitory computer-readable media" can include volatile memory, non-volatile memory, and / or other persistent and / or auxiliary computer storage media, removable and non-removable computer storage media, implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Thus, the computer storage media or variants of the term described above include the tangible and / or physical form of the media included in devices and / or hardware components, which are part of the device or hardware components external to the device, including but not limited to: random access memory ("RAM"), static random access memory ("SRAM"), dynamic random access memory ("DRAM"), phase change memory ("PCM"), read-only memory ("ROM"), erasable programmable read-only memory ("EPROM"), electrically erasable programmable read-only memory ("EEPROM"), flash memory, compact disc read-only memory ("CD-ROM"), digital versatile disc ("DVD"), optical card or other optical storage media, magnetic tape cassette, magnetic tape, disk storage, magnetic card or other magnetic storage device or media, solid-state memory device, storage array, network attached storage device, storage area network, hosted computer storage device or any other storage memory, storage device, and / or any storage media that can be used for local storage and maintenance of information accessible at a computing device.
[0102] Compared with computer storage media, communication media can embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transmission mechanism. As defined herein, computer storage media do not include communication media. That is, computer storage media themselves do not include communication media consisting solely of modulated data, signals, carrier waves, or propagated signals.
[0103] (One or more) communication interfaces 706 can represent, for example, a network interface controller ("NIC") or other types of transceiver devices for sending and receiving communications over a network. In addition, (one or more) communication interfaces 706 can include one or more cameras and / or audio cues 722 to enable the generation of video feeds and / or still images, etc.
[0104] In the illustrated example, computer-readable medium 704 includes data repository 708. In some examples, data repository 708 includes a data storage device, such as a database, a data warehouse, or other types of structured or unstructured data storage devices. In some examples, data repository 708 includes a corpus and / or a relational database having one or more tables, indexes, stored procedures, etc. to enable data access, including for example one or more of Hypertext Markup Language (“HTML”) tables, Resource Description Framework (“RDF”) tables, Web Ontology Language (“OWL”) tables, and / or Extensible Markup Language (“XML”) tables.
[0105] Data store 708 can store data for the operation of processes, applications, components, and / or modules stored in computer-readable medium 704 and / or run by (one or more) data processing units 702 and / or (one or more) accelerators. For example, in some examples, data store 708 can store data structure 190, supplemental data 191, and session data 636. Supplemental data 191 can define parameters of a temporary viewing perspective 321 and coordinates of a path for an intermediate viewing perspective. Session data 636 can include the total number of participants in a communication session (e.g., a user and / or a client computing device), activities that occur in the communication session, a list of invitees to the communication session, and / or other data related to when and how the communication session is conducted or hosted. Session data can also include context data, such as content including video, audio, or other content for rendering and displaying on one or more displays in a display screen. The session data can also define permissions that allow or restrict each computer in the system to display a selection to render or perform any one of the user interface transitions disclosed herein.
[0106] Hardware data 711 can define aspects of any device, such as multiple displays of a computer. Context data can define any type of activity or state related to individual users 10A - 10L, each user associated with an individual video stream among multiple video streams 634. For example, the context data can define the level of a person in an organization and how each person's level relates to the levels of other people, the executive level of a person, or any other activity or state information that can be used to determine the rendering position of a person within a virtual environment. This context information can also be fed into any model to help emphasize keywords spoken by a person at a particular level, highlight the UI when the background sound of a person at a particular level is detected, or change the mood display in a particular way when a person at a particular level is detected to have a particular mood.
[0107] Alternatively, some or all of the data described above can be stored on a separate memory 716 on one or more data processing units 702, such as on-board memory, a CPU-type processor, a GPU-type processor, an FPGA-type accelerator, a DSP-type accelerator, and / or another accelerator. In this example, the computer-readable medium 704 also includes an operating system 718 and an application programming interface 710 (API) configured to expose the functions and data of the device 700 to other devices. Additionally, the computer-readable medium 704 includes one or more modules, such as a server module 730, an output module 732, and a GUI rendering module 740, although the number of modules illustrated is merely an example and that number can be changed higher or lower. That is, the functionality described herein in connection with the illustrated modules can be performed by a smaller number of modules or a larger number of modules on one device or spread across multiple devices.
[0108] The following clauses are used to supplement this disclosure.
[0109] Clause A: A method for promoting engagement by a computing system 700 by transitioning from a first viewing perspective 121A associated with a first entity 131A to a temporary viewing perspective 321, the first entity 131A being one of a plurality of entities 131A - 131ZZ located within a 3D environment 200, the method comprising: atta Figure 1 : The virtual reality model is positioned and represented in a large environment such as a stadium. Each person has an original perspective of the environment from their POV. Access a data structure 190 that defines the 3D environment 200. The data structure 190 defines the position 132 and orientation 113 for each of the plurality of entities 131 in the 3D environment 200. The data structure 190 defines a first viewing perspective 121A originating from the viewpoint 111A of the first entity 131A; / / Figure 2 : The system displays the first viewing perspective 121A to the first user, generating a rendering 251 of the 3D environment 200 using the first viewing perspective 121A originating from the viewpoint 111A positioned in association with the first entity 131A for display on a display device 11A associated with the first user 10A; Figure 3 : Receive a signal from a user having a threshold activity level (e.g., 80% of the team is cheering), receive activity signals from a subset 221 of computing devices 11A - 11Z associated with a subset of users 10A - 10Z that are members of a predetermined group, wherein the activity signals indicate the threshold activity level of the subset 221 of users 10AA - 10Z; Determine that the signal meets the threshold activity level of the subset 221 of users 10AA - 10Z; In response to determining an activity signal indicating the threshold activity level of the subset 221 of users 10A - 10Z that are members of a predetermined group: Figure 4; Determine parameters for a group view for team members. For example, for a "threshold connection level" landing view, determine parameters for a temporary viewing perspective 321, where the parameters for the temporary viewing perspective 321 include a threshold number of entities of users 10A - 10Z associated with the threshold activity level, and where the individual entities 131A - 131Z of users 10A - 10Z associated with the threshold activity level are positioned within the temporary viewing perspective 321 of the virtual camera 320; determine the coordinates for a second viewing point 322 of the virtual camera 320, where the temporary viewing perspective 321 originates from the second viewing point 322; and Figure 2 and Figure 6 : View transformation. Transform the rendering 251 of the 3D environment 200 using the first viewing perspective 121A originating from the viewing point 111A positioned in association with the first entity 131A to the rendering 252 of the temporary viewing perspective 321 originating from the second viewing point 322 and using parameters generated in response to an activity signal indicating the threshold activity level.
[0110] Clause B: The method according to any one of the clauses, wherein the rendering of the individual entities positioned within the temporary viewing perspective of the virtual camera is displayed on the display device until the activity of a subset 221 of the users drops below a second threshold level. After the activity stops, the view returns to the main perspective.
[0111] Clause C: The method according to any one of the clauses: Further comprising: determining that a subset 221 of users 10A - 10Z have a threshold connection level with each other, and wherein the computing system restricts the transformation from the rendering 251 of the 3D environment 200 using the first viewing perspective 121A to the rendering 252 of the temporary viewing perspective 321 until the subset 221 of users 10A - 10Z have a threshold connection level with each other.
[0112] Clause D: The method according to any one of the clauses: Further comprising: determining parameters for a path including a plurality of intermediate viewing perspectives 311, where the path starts at the first viewing point 111A of the first viewing perspective 121A and ends at the second viewing point 322 of the temporary viewing perspective 321, and where the transformation between the rendering 251 using the first viewing perspective 121A and the rendering 252 of the temporary viewing perspective 321 further includes: generating an animation that shows the rendering of the intermediate viewing perspectives 311 of the path between the display of the rendering 251 using the first viewing perspective 121A and the rendering 252 of the temporary viewing perspective 321.
[0113] Clause E: The method according to any one of the clauses, wherein the intermediate viewing perspective and the viewing point associated with the intermediate viewing perspective are positioned to capture an image of a selected entity associated with the user 10A-10Z associated with the threshold activity level, wherein the image of the selected entity includes an entity not positioned within the temporary viewing perspective 321 of the virtual camera 320.
[0114] Clause F: The method according to any one of the clauses, wherein, in response to determining that the activity signal indicates a threshold activity level of a subset 221 of the users 10A-10Z, the permission is modified, and the modified permission allows a subset of the computing devices of the users 10A-10Z to display a rendering 252 of the temporary viewing perspective 321 from the second viewing point 322.
[0115] Clause G: The method according to any one of the clauses, wherein the modified permission restricts a second set of the computing devices 10AA-10ZZ of other users 10AA-10ZZ from displaying a rendering 252 of the temporary viewing perspective 321 from the second viewing point 322.
[0116] In summary, although various configurations have been described in language specific to structural features and / or method acts, it should be understood that the subject matter defined in the appended representations need not be limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed subject matter.
Claims
1. A method performed by a computing system for promoting engagement by transitioning from a first viewing perspective associated with a first entity to a temporary viewing perspective, the first entity being one of a plurality of entities located within a 3D environment, the method comprising: Accessing a data structure defining the 3D environment, the data structure defining the position and orientation of each of the plurality of entities in the 3D environment, the data structure defining the first viewing perspective originating from the viewpoint of the first entity; Generating a rendering of the 3D environment using the first viewing perspective originating from a viewpoint positioned in association with the first entity for display on a display device associated with a first user; Receiving activity signals from a subset of computing devices associated with a subset of users who are members of a predefined group, wherein the activity signals indicate a threshold activity level of the subset of users; Determining that the signals meet the threshold activity level of the subset of users; In response to determining the activity signals indicating the threshold activity level of the subset of users who are members of the predefined group: Determining parameters of the temporary viewing perspective, wherein the parameters of the temporary viewing perspective include a threshold number of entities of the users associated with the threshold activity level, wherein individual entities of the users associated with the threshold activity level are positioned within the temporary viewing perspective of a virtual camera; Determining coordinates of a second viewpoint for the virtual camera, wherein the temporary viewing perspective originates from the second viewpoint; and Converting the rendering of the 3D environment using the first viewing perspective originating from a viewpoint positioned in association with the first entity to a rendering of the temporary viewing perspective originating from the second viewpoint and using the parameters generated in response to the activity signals indicating the threshold activity level.
2. The method according to claim 1, wherein The rendering of the individual entities positioned within the temporary viewing perspective of the virtual camera is displayed on the display device until the activity of the subset of users drops below a second threshold level.
3. The method according to claim 1 further comprises: Determining that the subset of users have a threshold connection level with each other, and wherein the computing system restricts the transition from the rendering of the 3D environment using the first viewing perspective to the rendering of the temporary viewing perspective until the subset of users have the threshold connection level with each other.
4. The method according to claim 1, further comprising: Determining parameters for a path including a plurality of intermediate viewing perspectives, wherein the path starts at a first viewpoint of the first viewing perspective and ends at the second viewpoint of the temporary viewing perspective, wherein the transition between the rendering using the first viewing perspective and the rendering of the temporary viewing perspective further includes: generating an animation that shows the rendering of the intermediate viewing perspectives of the path between the display of the rendering using the first viewing perspective and the rendering of the temporary viewing perspective.
5. The method according to claim 4, wherein The intermediate viewing perspective and the viewpoint associated with the intermediate viewing perspective are positioned to capture an image of a selected entity associated with the user associated with the threshold activity level, wherein the image of the selected entity includes an entity not positioned within the temporary viewing perspective of the virtual camera.
6. The method according to claim 1, wherein Modify the permission in response to determining that the activity signal indicates the threshold activity level of the subset of the users, wherein the modified permission allows a subset of the computing devices of the users to display a rendering of the temporary viewing perspective from the second viewpoint.
7. The method according to claim 1, wherein, The modified permission restricts a second set of computing devices of other users from displaying a rendering of the temporary viewing perspective from the second viewpoint.
8. A computing device for promoting engagement by transitioning from a first viewing perspective associated with a first entity to a temporary viewing perspective, the first entity being one of a plurality of entities positioned within a 3D environment, the computing device comprising: One or more processing units; And A computer-readable storage medium encoded with computer-executable instructions that cause the one or more processing units to: Access a data structure defining the 3D environment, the data structure defining the position and orientation of each of the plurality of entities in the 3D environment, the data structure defining the first viewing perspective from the viewpoint associated with the first entity; Generate a rendering of the 3D environment using the first viewing perspective from the viewpoint positioned in association with the first entity for display on a display device associated with a first user; Receive an activity signal from a subset of computing devices associated with a subset of users who are members of a predetermined group, wherein the activity signal indicates a threshold activity level of the subset of the users; Determine that the signal meets the threshold activity level of the subset of the users; Determine the parameters of the temporary viewing perspective, wherein the parameters of the temporary viewing perspective include a threshold number of entities associated with the user associated with the threshold activity level, wherein the individual entities are positioned within the temporary viewing perspective of the virtual camera; Determine the coordinates of a second viewpoint for the virtual camera, wherein the temporary viewing perspective originates from the second viewpoint; and In response to determining the activity signal indicating the threshold activity level of the subset of the users who are members of the predetermined group: Transition the rendering of the 3D environment using the first viewing perspective from the viewpoint positioned in association with the first entity to a rendering of the temporary viewing perspective from the second viewpoint and using the parameters generated in response to the activity signal indicating the threshold activity level.
9. The computing device according to claim 8, wherein, The rendering of the individual entities positioned within the temporary viewing perspective of the virtual camera is displayed on the display device until the activity of the subset of the users drops below a second threshold level.
10. The computing device according to claim 8, wherein, The computer-executable instructions also cause the one or more processing units to: determine that a subset of the users have a threshold level of association with each other, and wherein the computing system restricts the transition from rendering of the 3D environment using the first viewing perspective to rendering of the temporary viewing perspective until the subset of the users have the threshold level of association with each other.
11. The computing device according to claim 8, wherein, The computer-executable instructions also cause the one or more processing units to: determine parameters for a path that includes a plurality of intermediate viewing perspectives, wherein the path starts at a first viewpoint of the first viewing perspective and ends at the second viewpoint of the temporary viewing perspective, and wherein the transition between rendering using the first viewing perspective and rendering of the temporary viewing perspective further includes generating an animation that depicts the rendering of the intermediate viewing perspectives of the path between the rendering using the first viewing perspective and the rendering of the temporary viewing perspective.
12. The computing device according to claim 11, wherein, The intermediate viewing perspectives and viewpoints associated with the intermediate viewing perspectives are positioned to capture images of selected entities associated with the users associated with the threshold activity level, wherein the images of the selected entities include entities not positioned within the temporary viewing perspective of the virtual camera.
13. The computing device according to claim 11, wherein, Modify permissions in response to determining that the activity signal indicates the threshold activity level of the subset of the users, wherein the modified permissions allow a subset of the computing devices of the users to display the rendering of the temporary viewing perspective originating from the second viewpoint.
14. The computing device according to claim 8, wherein, The modified permissions restrict a second set of computing devices of other users from displaying the rendering of the temporary viewing perspective originating from the second viewpoint.
15. A computer-readable storage medium encoded with computer-executable instructions for promoting engagement by transitioning from a first viewing perspective associated with a first entity to a temporary viewing perspective, the first entity being one of a plurality of entities positioned within a 3D environment, the computer-executable instructions for causing the one or more processing units of a computing device to: Access a data structure that defines the 3D environment, the data structure defining the position and orientation of each of the plurality of entities within the 3D environment, the data structure defining the first viewing perspective from the viewpoint of the first entity; Generate a rendering of the 3D environment for display on a display device associated with a first user using the first viewing perspective from a viewpoint positioned in association with the first entity; Receive an activity signal from a subset of computing devices associated with a subset of users who are members of a predetermined group, wherein, The activity signal indicates a threshold activity level of the subset of the users; Determine that the signal meets the threshold activity level of the subset of the users; Determine parameters of the temporary viewing perspective, wherein the parameters of the temporary viewing perspective include a threshold number of entities associated with the users associated with the threshold activity level, wherein the individual entities are positioned within the temporary viewing perspective of the virtual camera; Determine the coordinates of a second viewpoint for the virtual camera, wherein the temporary viewing perspective originates from the second viewpoint; and In response to determining the activity signal indicating the threshold activity level of the subset of the users that are members of the predetermined group: convert the rendering of the 3D environment using the first viewing perspective originating from the viewpoint located in association with the first entity to the temporary viewing perspective originating from the second viewpoint and use the rendering of the parameters generated in response to the activity signal indicating the threshold activity level.
16. The computer-readable storage medium according to claim 15, wherein, The rendering of the individual entity located within the temporary viewing perspective of the virtual camera is displayed on the display device until the activity of the subset of the users drops below a second threshold level.
17. The computer-readable storage medium according to claim 15, wherein, The computer-executable instructions further cause the one or more processing units to: determine that the subset of the users have a threshold connection level with each other, and wherein the computing system restricts the conversion from the rendering of the 3D environment using the first viewing perspective to the rendering of the temporary viewing perspective until the subset of the users have the threshold connection level with each other.
18. The computer-readable storage medium according to claim 15, wherein, The computer-executable instructions further cause the one or more processing units to: determine the parameters for a path including a plurality of intermediate viewing perspectives, wherein the path starts at a first viewpoint of the first viewing perspective and ends at the second viewpoint of the temporary viewing perspective, wherein the conversion between the rendering using the first viewing perspective and the rendering of the temporary viewing perspective further includes generating an animation that shows the rendering of the intermediate viewing perspectives of the path between the display of the rendering using the first viewing perspective and the rendering of the temporary viewing perspective.
19. The computer-readable storage medium according to claim 18, wherein, The intermediate viewing perspectives and the viewpoints associated with the intermediate viewing perspectives are positioned to capture images of selected entities associated with the users associated with the threshold activity level, wherein the images of the selected entities include entities not located within the temporary viewing perspective of the virtual camera.
20. The computer-readable storage medium according to claim 15, wherein, Modify the permission in response to determining that the activity signal indicates the threshold activity level of the subset of the users, wherein the modified permission allows the subset of the computing devices of the users to display the rendering of the temporary viewing perspective originating from the second viewpoint.