User interface for managing live communication sessions
Advanced interfaces using gaze and gesture detection, spatial transitions, and avatar manipulation address inefficiencies in live communication sessions, enhancing user interaction and conserving power in augmented and mixed reality environments.
Patent Information
- Application Number
- JP2025156897
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-12
- Filing Date
- 2025-09-22
- Publication Date
- 2026-01-14
- Estimated Expiration
- 2043-09-21
AI Technical Summary
Existing user interfaces for managing live communication sessions in augmented and mixed reality environments are cumbersome, inefficient, and complex, leading to a significant cognitive burden and energy waste, particularly in battery-operated devices.
Implementing a computer system with advanced interfaces that utilize gaze and gesture detection, spatial arrangement transitions, and avatar manipulation to enhance interaction efficiency, reducing the number and complexity of user inputs, and conserving power.
The enhanced interfaces improve interaction efficiency, reduce cognitive burden, and conserve power in battery-operated devices by simplifying user interactions and providing intuitive control over virtual objects.
Smart Images

Figure 2026004365000001_ABST
Abstract
Description
[Technical Field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims priority to U.S. Patent Application No. 18 / 367,418, entitled "USER INTERFACES FOR MANAGING LIVE COMMUNICATION SESSIONS," filed September 12, 2023, U.S. Provisional Patent Application No. 63 / 470,882, entitled "USER INTERFACES FOR MANAGING LIVE COMMUNICATION SESSIONS," filed June 3, 2023, and U.S. Provisional Patent Application No. 63 / 409,583, entitled "USER INTERFACES FOR MANAGING LIVE COMMUNICATION SESSIONS," filed September 23, 2022. The contents of each of these applications are incorporated herein by reference in their entirety.
[0002] The present disclosure generally relates to computer systems in communication with display generation components, including but not limited to electronic devices that provide virtual reality and mixed reality experiences via displays, and optionally one or more sensors that provide computer-generated experiences. [Background technology]
[0003] The development of computer systems for augmented reality has progressed significantly in recent years. Exemplary augmented reality environments include at least some virtual elements that replace or augment the physical world. Input devices such as cameras, controllers, joysticks, touch-sensitive surfaces, and touchscreen displays for computer systems and other electronic computing devices are used to interact with the virtual / augmented reality environment. Exemplary virtual elements include virtual objects such as digital images, video, text, icons, and control elements such as buttons and other graphics. Summary of the Invention
[0004] Some methods and interfaces for managing live communication sessions, such as those that include at least some virtual elements (e.g., applications, augmented reality environments, mixed reality environments, and virtual reality environments), are cumbersome, inefficient, and limited. For example, systems that provide insufficient control for performing actions associated with virtual objects, systems that require a series of inputs to achieve a desired result within an augmented reality environment, and systems in which manipulating virtual objects is complex, tedious, and error-prone create a significant cognitive burden for users and detract from the experience with the virtual / augmented reality environment. In addition, the methods are unnecessarily time-consuming, thereby wasting computer system energy. This latter consideration is particularly important in battery-operated devices.
[0005] Therefore, there is a need for a computer system having an improved method and interface for managing live communication sessions that is more efficient and intuitive for users. Such a method and interface optionally complements or replaces conventional methods for managing live communication sessions. Such a method and interface reduces the number, extent, and / or type of inputs from a user by helping the user understand the connection between the input provided and the device response to that input, thereby creating a more efficient human-machine interface.
[0006] The above-mentioned drawbacks and other problems associated with user interfaces of computer systems are reduced or eliminated by the disclosed system. In some embodiments, the computer system is a desktop computer with an associated display. In some embodiments, the computer system is a portable device (e.g., a notebook computer, a tablet computer, or a handheld device). In some embodiments, the computer system is a personal electronic device (e.g., a wearable electronic device such as a wristwatch or a head-mounted device). In some embodiments, the computer system has a touchpad. In some embodiments, the computer system has one or more cameras. In some embodiments, the computer system has a touch-sensitive display (also known as a "touch screen" or "touchscreen display"). In some embodiments, the computer system has one or more eye-tracking components. In some embodiments, the computer system has one or more hand-tracking components. In some embodiments, the computer system has one or more output devices in addition to the display generating components, the output devices including one or more tactile output generators and / or one or more audio output devices. In some embodiments, the computer system has a graphical user interface (GUI), one or more processors, memory, and one or more modules, programs, or instruction sets stored in the memory for performing a plurality of functions. In some embodiments, a user interacts with the GUI through stylus and / or finger contacts and gestures on a touch-sensitive surface, the movement of the user's eyes and hands in space relative to the GUI (and / or computer system) or the user's body as captured by cameras and other movement sensors, and / or voice input as captured by one or more audio input devices.In some embodiments, the functions performed through the interactions optionally include image editing, drawing, presenting, word processing, creating spreadsheets, playing games, making phone calls, video conferencing, emailing, instant messaging, training support, digital photography, digital videography, web browsing, playing digital music, note taking, and / or playing digital videos, and executable instructions to perform those functions are optionally contained in a transient and / or non-transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors.
[0007] There is a need for electronic devices with improved methods and interfaces for managing live communication sessions. Such methods and interfaces can complement or replace conventional methods for managing live communication sessions. Such methods and interfaces reduce the number, extent, and / or type of input from a user, creating a more efficient human-machine interface. For battery-operated computing devices, such methods and interfaces conserve power and increase the time between battery charges.
[0008] In some embodiments, the computer system displays a set of controls (e.g., transport controls and / or other types of controls) associated with controlling playback of media content in response to detecting a user's gaze and / or gesture. In some embodiments, the computer system initially displays a first set of controls in a reduced-salience state (e.g., with reduced visual prominence) in response to detecting a first input, and then displays a second set of controls (optionally including additional controls) in an increased-salience state in response to detecting a second input. In this manner, the computer system optionally provides feedback to the user that the user has begun to invoke display of the controls without unduly distracting the user's attention from the content (e.g., by initially displaying the controls in a less visually salient manner), and then, based on detecting a user input indicating that the user desires to further interact with the controls, displays the controls in a more visually salient manner to enable easier and more accurate interaction with the computer system.
[0009] An exemplary method is described herein, in a computer system in communication with a display generation component and one or more sensors, including: displaying, via the display generation component, representations of a plurality of users; receiving, via the one or more sensors, a selection of representations of individual users of the plurality of users; and, in response to receiving the selection of the representations of the individual users, displaying, via the display generation component, options for inviting the individual users to join the ongoing communication session in accordance with a determination that an ongoing communication session exists, and ceasing to display the options for inviting the individual users to join the ongoing communication session in accordance with a determination that an ongoing communication session does not exist.
[0010] An exemplary method includes, in a computer system in communication with a display generation component and one or more sensors, displaying, via the display generation component, a communication user interface for communicating with other users in a real-time communication session, wherein during the real-time communication session, a user of the computer system is represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; displaying, via the display generation component, selectable user interface objects while displaying the communication user interface; detecting, via the one or more sensors, one or more inputs including a selection input directed to the selectable user interface object; and in response to detecting the one or more inputs including a selection input directed to the selectable user interface object, simultaneously displaying, via the display generation component, an avatar editing user interface including an avatar representing the user of the computer system and one or more options for modifying an appearance of the avatar representing the user of the computer system.
[0011] An exemplary method includes, in a computer system in communication with a display generation component, while participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment, the representations including displaying representations of the plurality of participants spaced apart from each other and from the user of the computer system by at least a threshold amount in a first non-vertical direction in the 3D environment and representations of the plurality of participants spaced apart from each other and from the user by at least a threshold amount in a second non-vertical direction different from the first non-vertical direction; and detecting an event while displaying the representations of the plurality of participants distributed within the 3D environment. and, in response to detecting the event, transitioning the communication session from a spatial communication session to a non-spatial communication session, wherein the transitioning includes displaying, via a display generation component, representations of at least a subset of a plurality of participants in the communication session in a grouped arrangement, wherein in the grouped arrangement, the representations of the plurality of participants are spaced apart from one another in a first non-vertical direction in the 3D environment by less than a threshold amount, and wherein a representation of a first participant in the grouped arrangement has a different position than a representation of the first participant in the spatially distributed arrangement, and a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement.
[0012] An exemplary method includes, in a computer system in communication with a display generation component and one or more sensors, detecting gaze input of a user of the computer system via the one or more sensors during a communication session with one or more participants in the communication session; and, in response to detecting the gaze input, displaying information regarding a first participant in the communication session via the display generation component in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria, and ceasing to display information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
[0013] An exemplary non-transitory computer-readable storage medium is described herein, the exemplary non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generating component and one or more sensors, the exemplary non-transitory computer-readable storage medium including instructions to: display, via the display generating component, representations of a plurality of users; receive, via the one or more sensors, a selection of a representation of an individual user of the plurality of users; and, in response to receiving the selection of the representation of the individual user, in accordance with a determination that an ongoing communication session exists, display, via the display generating component, an option for inviting the individual user to join the ongoing communication session; and, in accordance with a determination that no ongoing communication session exists, cease displaying the option for inviting the individual user to join the ongoing communication session.
[0014] An exemplary non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, and includes instructions to: display, via the display generation component, a communication user interface for communicating with other users in a real-time communication session, during which a user of the computer system communicates with other users in the real-time communication session represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; display, via the display generation component, selectable user interface objects while displaying the communication user interface; detect, via the one or more sensors, one or more inputs including a selection input directed to the selectable user interface object; and in response to detecting the one or more inputs including the selection input directed to the selectable user interface object, simultaneously display, via the display generation component, an avatar representing the user of the computer system and one or more options for modifying an appearance of the avatar representing the user of the computer system.
[0015] An exemplary non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, wherein while participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes displaying representations of the plurality of participants spaced apart from each other and from a user of the computer system by at least a threshold amount in a first non-vertical direction in the 3D environment and representations of the plurality of participants spaced apart from each other and from the user by at least a threshold amount in a second non-vertical direction different from the first non-vertical direction. a non-transitory computer-readable storage medium comprising instructions for detecting an event while displaying a communication session; and, in response to detecting the event, transitioning the communication session from a spatial communication session to a non-spatial communication session, wherein the transitioning includes displaying, via a display generation component, representations of at least a subset of a plurality of participants in the communication session in a grouped arrangement, wherein in the grouped arrangement, the representations of the plurality of participants are spaced apart from one another in a first non-vertical direction in the 3D environment by less than a threshold amount, wherein a representation of a first participant in the grouped arrangement has a different position than a representation of the first participant in the spatially distributed arrangement, and a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement.
[0016] An exemplary non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, and includes instructions to detect gaze input of a user of the computer system via the one or more sensors during a communication session with one or more participants in the communication session, and in response to detecting the gaze input, display information regarding a first participant in the communication session via the display generation component in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria, and cease displaying information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
[0017] An exemplary temporary computer-readable storage medium is described herein, the exemplary temporary computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generating component and one or more sensors, the exemplary temporary computer-readable storage medium including instructions to: display, via the display generating component, representations of a plurality of users; receive, via the one or more sensors, a selection of a representation of an individual user of the plurality of users; and, in response to receiving the selection of the representation of the individual user, in accordance with a determination that an ongoing communication session exists, display, via the display generating component, an option for inviting the individual user to join the ongoing communication session; and, in accordance with a determination that no ongoing communication session exists, cease displaying the option for inviting the individual user to join the ongoing communication session.
[0018] An exemplary temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, and includes instructions for: displaying, via the display generation component, a communication user interface for communicating with other users in a real-time communication session, during which a user of the computer system communicates with other users in the real-time communication session represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; displaying, via the display generation component, selectable user interface objects while displaying the communication user interface; detecting, via the one or more sensors, one or more inputs including a selection input directed to the selectable user interface object; and in response to detecting the one or more inputs including the selection input directed to the selectable user interface object, simultaneously displaying, via the display generation component, an avatar representing the user of the computer system and one or more options for modifying an appearance of the avatar representing the user of the computer system.
[0019] An exemplary temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, wherein while participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes displaying representations of the plurality of participants spaced apart from each other and from a user of the computer system by at least a threshold amount in a first non-vertical direction in the 3D environment, and representations of the plurality of participants spaced apart from each other and from the user by at least a threshold amount in a second non-vertical direction different from the first non-vertical direction. a display generating component displaying representations of at least a subset of a plurality of participants in the communication session in a grouped arrangement, wherein the representations of the plurality of participants are spaced apart from one another in a first non-vertical direction in the 3D environment by less than a threshold amount, and wherein a representation of a first participant in the grouped arrangement has a different position than a representation of the first participant in the spatially distributed arrangement, and a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement.
[0020] An exemplary temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, and includes instructions to detect gaze input of a user of the computer system via the one or more sensors during a communication session with one or more participants in the communication session, and in response to detecting the gaze input, display information regarding a first participant in the communication session via the display generation component in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria, and cease displaying information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
[0021] An exemplary computer system is described herein. The exemplary computer system is configured to communicate with a display generating component and one or more sensors, and includes one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions to: display, via the display generating component, representations of a plurality of users; receive, via the one or more sensors, a selection of representations of individual users of the plurality of users; and, in response to receiving the selection of the representations of the individual users, display, via the display generating component, options for inviting the individual users to join the ongoing communication session in accordance with a determination that an ongoing communication session exists; and, in accordance with a determination that no ongoing communication session exists, cease displaying the options for inviting the individual users to join the ongoing communication session.
[0022] An exemplary computer system is configured to communicate with a display generation component and one or more sensors, and includes one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions to: display, via the display generation component, a communication user interface for communicating with other users in a real-time communication session, during which a user of the computer system communicates with other users in the real-time communication session represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; display, via the display generation component, selectable user interface objects while displaying the communication user interface; detect, via the one or more sensors, one or more inputs including a selection input directed to the selectable user interface object; and in response to detecting the one or more inputs including the selection input directed to the selectable user interface object, simultaneously display, via the display generation component, an avatar representing the user of the computer system and one or more options for modifying an appearance of the avatar representing the user of the computer system.
[0023] An exemplary computer system is configured to communicate with a display generation component and includes one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, wherein the one or more programs, while participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes: representations of the plurality of participants spaced apart from each other and from the user of the computer system by at least a threshold amount in a first non-vertical direction in the 3D environment; and representations of the plurality of participants spaced apart from each other and from the user by at least a threshold amount in a second non-vertical direction different from the first non-vertical direction, the second non-vertical direction being different from the first non-vertical direction, the plurality of participants in the spatially distributed arrangement, the plurality of participants being spaced apart from each other and from the user of the computer system by at least a threshold amount in a second non-vertical direction different from the first non-vertical direction. and detecting an event while displaying representations of a plurality of participants in a spatially distributed arrangement, and transitioning the communication session from a spatial communication session to a non-spatial communication session in response to detecting the event, wherein the transitioning includes displaying, via a display generation component, representations of at least a subset of the plurality of participants of the communication session in a grouped arrangement, wherein in the grouped arrangement, the representations of the plurality of participants are spaced apart from one another in a first non-vertical direction in the 3D environment by less than a threshold amount, wherein a representation of a first participant in the grouped arrangement has a different position than a representation of the first participant in the spatially distributed arrangement, and wherein a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement.
[0024] An exemplary computer system is configured to communicate with a display generation component and one or more sensors and includes one or more processors and a memory that stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions to detect gaze input of a user of the computer system via the one or more sensors during a communication session with one or more participants in the communication session, and in response to detecting the gaze input, display information regarding a first participant in the communication session via the display generation component in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria, and to cease displaying information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
[0025] An exemplary computer system is configured to communicate with a display generation component and one or more sensors and includes: means for displaying representations of a plurality of users via the display generation component; means for receiving, via the one or more sensors, a selection of a representation of an individual user of the plurality of users; and means for, in response to receiving the selection of the representation of the individual user, displaying, via the display generation component, an option for inviting the individual user to join the ongoing communication session in accordance with a determination that an ongoing communication session exists, and ceasing to display the option for inviting the individual user to join the ongoing communication session in accordance with a determination that an ongoing communication session does not exist.
[0026] An exemplary computer system is configured to communicate with a display generation component and one or more sensors, and includes: means for displaying, via the display generation component, a communication user interface for communicating with other users in a real-time communication session, wherein during the real-time communication session, a user of the computer system is represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; means for displaying, via the display generation component, selectable user interface objects while displaying the communication user interface; means for detecting, via the one or more sensors, one or more inputs including a selection input directed to the selectable user interface object; and means for simultaneously displaying, via the display generation component, an avatar editing user interface including an avatar representing the user of the computer system and one or more options for modifying an appearance of the avatar representing the user of the computer system in response to detecting the one or more inputs including a selection input directed to the selectable user interface object.
[0027] An exemplary computer system is configured to communicate with a display generation component, and while participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes displaying representations of the plurality of participants spaced apart from each other and from a user of the computer system by at least a threshold amount in a first non-vertical direction in the 3D environment and representations of the plurality of participants spaced apart from each other and from the user by at least a threshold amount in a second non-vertical direction different from the first non-vertical direction, the plurality of participants being spaced apart from each other and from the user by at least a threshold amount, the second non-vertical direction being different from the first non-vertical direction, the exemplary computer system is configured to communicate with a display generation component and means for transitioning the communication session from a spatial communication session to a non-spatial communication session in response to detecting the event via a display generation component, wherein the transitioning includes displaying representations of at least a subset of a plurality of participants in the communication session in a grouped arrangement, wherein the representations of the plurality of participants are spaced apart from each other in a first non-vertical direction in the 3D environment by less than a threshold amount, and wherein a representation of a first participant in the grouped arrangement has a different position than a representation of the first participant in the spatially distributed arrangement, and a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement.
[0028] An exemplary computer system is configured to communicate with a display generation component and one or more sensors, and includes means for detecting gaze input of a user of the computer system via the one or more sensors during a communication session with one or more participants in the communication session, and means for, in response to detecting the gaze input, displaying information regarding a first participant in the communication session via the display generation component in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria, and ceasing to display information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
[0029] An exemplary computer program product is described herein. The exemplary computer program product includes one or more programs configured to be executed by one or more processors of a computer system in communication with a display generating component and one or more sensors, the one or more programs including instructions to: display, via the display generating component, representations of a plurality of users; receive, via the one or more sensors, a selection of representations of individual users of the plurality of users; and, in response to receiving the selection of the representations of the individual users, in accordance with a determination that an ongoing communication session exists, display, via the display generating component, options for inviting the individual users to join the ongoing communication session; and, in accordance with a determination that no ongoing communication session exists, cease displaying the options for inviting the individual users to join the ongoing communication session.
[0030] An exemplary computer program product includes one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs including instructions for: displaying, via the display generation component, a communication user interface for communicating with other users in a real-time communication session, during which a user of the computer system is represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; displaying, via the display generation component, selectable user interface objects while displaying the communication user interface; detecting, via the one or more sensors, one or more inputs including a selection input directed to the selectable user interface object; and in response to detecting the one or more inputs including the selection input directed to the selectable user interface object, simultaneously displaying, via the display generation component, an avatar representing the user of the computer system and one or more options for modifying an appearance of the avatar representing the user of the computer system.
[0031] An exemplary computer program product includes one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs, while participating in a communication session that is a spatial communication session, displaying, via the display generation component, representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes displaying representations of the plurality of participants spaced apart from each other and from a user of the computer system by at least a threshold amount in a first non-vertical direction in the 3D environment, and representations of the plurality of participants spaced apart from each other and from the user by at least a threshold amount in a second non-vertical direction different from the first non-vertical direction. A computer program product comprising instructions for detecting an event while displaying representations of the participants, and transitioning the communication session from a spatial communication session to a non-spatial communication session in response to detecting the event, wherein the transitioning includes displaying, via a display generation component, representations of at least a subset of a plurality of participants of the communication session in a grouped arrangement, wherein the representations of the plurality of participants are spaced apart from each other in a first non-vertical direction in the 3D environment by less than a threshold amount, wherein the representation of a first participant in the grouped arrangement has a different position than the representation of the first participant in the spatially distributed arrangement, and wherein the representation of a second participant in the grouped arrangement has a different position than the representation of the second participant in the spatially distributed arrangement.
[0032] An exemplary computer program product includes one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs including instructions to detect gaze input of a user of the computer system via the one or more sensors during a communication session with one or more participants in the communication session, and in response to detecting the gaze input, display information regarding a first participant in the communication session via the display generation component in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria, and to cease displaying information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
[0033] It should be noted that the various embodiments described above can be combined with any other embodiment described herein. The features and advantages described herein are not exhaustive, and many additional features and advantages will become apparent to those skilled in the art, particularly in light of the drawings, specification, and claims. Furthermore, it should be noted that the language used in this specification has been selected solely for the purposes of readability and explanation, and not to define or limit the subject matter of the present invention.
[0034] For a better understanding of the various described embodiments, reference should be made to the following Detailed Description of the Invention in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout: [Brief explanation of the drawings]
[0035] [Figure 1A] FIG. 1 is a block diagram illustrating an operating environment of a computer system for providing an XR experience, according to some embodiments.
[0036] [Figure 1B] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1C]1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1D] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1E] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1F] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1G] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1H] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1I] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1J] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1K] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1L] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1M] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1N] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1O] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A. [Figure 1P] 1B is an example of a computer system for providing an XR experience in the operating environment of FIG. 1A.
[0037] [Figure 2]FIG. 1 is a block diagram illustrating a controller of a computer system configured to manage and coordinate an XR experience for a user, according to some embodiments.
[0038] [Figure 3] FIG. 1 is a block diagram illustrating display generation components of a computer system configured to provide a user with visual components of an XR experience, according to some embodiments.
[0039] [Figure 4] FIG. 1 is a block diagram illustrating a hand tracking unit of a computer system configured to capture a user's gesture input, according to some embodiments.
[0040] [Figure 5] FIG. 1 is a block diagram illustrating an eye-tracking unit of a computer system configured to capture a user's gaze input, according to some embodiments.
[0041] [Figure 6] FIG. 1 is a flow diagram illustrating a glint-assisted gaze tracking pipeline according to some embodiments.
[0042] [Figure 7A] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7B] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7C1] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7C2] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7D] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7E]1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7F] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7G] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7H] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7I] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7J] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7K] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7L1] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7L2] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7M] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7N] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7O] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7P] 1 illustrates an example technique for managing a live communication session, according to some embodiments. [Figure 7Q] 1 illustrates an example technique for managing a live communication session, according to some embodiments.
[0043] [Figure 8]1 is a flow diagram of a method for managing a live communication session, according to various embodiments.
[0044] [Figure 9] 1 is a flow diagram of a method for providing an avatar in a live communication session, according to various embodiments.
[0045] [Figure 10A] 1 illustrates an exemplary technique for providing a representation in a live communication session, according to some embodiments. [Figure 10B] 1 illustrates an exemplary technique for providing a representation in a live communication session, according to some embodiments. [Figure 10C] 1 illustrates an exemplary technique for providing a representation in a live communication session, according to some embodiments. [Figure 10D1] 1 illustrates an exemplary technique for providing a representation in a live communication session, according to some embodiments. [Figure 10D2] 1 illustrates an exemplary technique for providing a representation in a live communication session, according to some embodiments. [Figure 10E] 1 illustrates an exemplary technique for providing a representation in a live communication session, according to some embodiments.
[0046] [Figure 11] 1 is a flow diagram of a method for providing a representation in a live communication session, according to various embodiments.
[0047] [Figure 12A] 1 illustrates an exemplary technique for providing information in a live communication session, according to some embodiments. [Figure 12B1] 1 illustrates an exemplary technique for providing information in a live communication session, according to some embodiments. [Figure 12B2] 1 illustrates an exemplary technique for providing information in a live communication session, according to some embodiments. [Figure 12C] 1 illustrates an exemplary technique for providing information in a live communication session, according to some embodiments. [Figure 12D] 1 illustrates an exemplary technique for providing information in a live communication session, according to some embodiments. [Figure 12E] 1 illustrates an exemplary technique for providing information in a live communication session, according to some embodiments. [Figure 12F] 1 illustrates an exemplary technique for providing information in a live communication session, according to some embodiments.
[0048] [Figure 13] 1 is a flow diagram of a method for providing information in a live communication session, according to various embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0049] The present disclosure relates to a user interface that provides an extended reality (XR) experience to a user, according to some embodiments.
[0050] The systems, methods, and GUIs described herein improve user interface interaction with virtual / augmented reality environments in several ways.
[0051] In some embodiments, a computer system enables live communication between users. The computer system displays representations of a plurality of users and receives a selection of a representation of an individual user of the plurality of users. In response to receiving the selection of the representation of the individual user, in accordance with a determination that an ongoing communication session exists, the computer system displays an option for inviting the individual user to join the ongoing communication session, and in accordance with a determination that an ongoing communication session does not exist, the computer system withdraws from displaying the option for inviting the individual user to join the ongoing communication session.
[0052] In some embodiments, a computer system provides options for a user to change the appearance of the user's avatar. The computer system displays a communication user interface for communicating with other users in a real-time communication session. During the real-time communication session, the users are represented by avatars that move during the real-time communication session according to the movements of the user of the computer system. While displaying the communication user interface, the computer system simultaneously displays selectable user interface objects. While simultaneously displaying the communication user interface and the selectable user interface objects, the computer system detects one or more inputs including a selection input directed to the selectable user interface object. In response to detecting the one or more inputs including a selection input directed to the selectable user interface object, the computer system simultaneously displays an avatar editing user interface including an avatar representing the user of the computer system and one or more options for modifying the appearance of the avatar representing the user of the computer system.
[0053] In some embodiments, a computer system switches between a spatial communication session and a non-spatial communication session. While participating in a communication session that is a spatial communication session including the computer system, the computer system displays representations of multiple participants in the communication session in a spatially distributed arrangement in a 3D environment. Displaying the multiple participants in a spatially distributed arrangement includes displaying representations of the multiple participants spaced apart from each other and the user by at least a threshold amount in a first non-vertical direction in the 3D environment and representations of the multiple participants spaced apart from each other and the user by at least a threshold amount in a second non-vertical direction different from the first non-vertical direction. While displaying the representations of the multiple participants distributed in the 3D environment, the computer system detects an event, and in response to detecting the event, the computer system transitions the communication session from the spatial communication session to a non-spatial communication session. Transitioning to the non-spatial communication session includes displaying representations of at least a subset of the multiple participants in the communication session in a grouped arrangement. In the grouped arrangement, representations of multiple participants are spaced apart from one another in a first non-vertical direction within the 3D environment by less than a threshold amount, and a representation of a first participant in the grouped arrangement has a different position than a representation of the first participant in the spatially distributed arrangement, and a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement.
[0054] In some embodiments, the computer system provides information during a live communication session based on a user's gaze. During a communication session with one or more participants in the communication session, the computer system detects a gaze input of a user of the computer system. In response to detecting the gaze input, in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria, the computer system displays information about a first participant in the communication session, and in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria, the computer system ceases to display information about the first participant in the communication session.
[0055] In some embodiments, the computer system displays content in a first region of a user interface. In some embodiments, while the computer system is displaying the content and while the first set of controls are not displayed in a first state, the computer system detects a first input from a first portion of a user. In some embodiments, in response to detecting the first input and in accordance with a determination that the user's gaze is directed toward a second region of the user interface when the first input is detected, the computer system displays the first set of one or more controls in the user interface in the first state, and in accordance with a determination that the user's gaze is not directed toward the second region of the user interface when the first input is detected, the computer system ceases displaying the first set of one or more controls in the first state.
[0056] In some embodiments, a computer system displays content in a user interface. In some embodiments, while displaying the content, the computer system detects a first input based on movement of a first portion of a user of the computer system. In some embodiments, in response to detecting the first input, the computer system displays a first set of one or more controls within the user interface, the first set of one or more controls being displayed in a first state and being displayed within a first region of the user interface. In some embodiments, based on movement of a second portion of the user different from the first portion of the user while displaying the first set of one or more controls in the first state, in accordance with determining that one or more first criteria are met, including criteria that are met when the user's attention is directed to the first region of the user interface, the computer system transitions from displaying the first set of one or more controls in the first state to displaying a second set of one or more controls in a second state, the second state being different from the first state.
[0057] FIGS. 1A-6 provide an illustration of an exemplary computer system for providing an XR experience to a user. FIGS. 7A-7Q illustrate an exemplary technique for managing a live communication session, according to some embodiments. FIG. 8 is a flow diagram of a method for managing a live communication session, according to various embodiments. FIG. 9 is a flow diagram of a method for providing an avatar in a live communication session, according to various embodiments. The user interfaces of FIGS. 7A-7Q are used to illustrate the processes of FIGS. 8 and 9. FIGS. 10A-10E illustrate an exemplary technique for providing a representation in a live communication session, according to some embodiments. FIG. 11 is a flow diagram of a method for providing a representation in a live communication session, according to various embodiments. The user interfaces of FIGS. 10A-10E are used to explain the process of FIG. 11. FIGS. 12A-12F illustrate an exemplary technique for providing information in a live communication session, according to some embodiments. FIG. 13 is a flow diagram of a method for providing information in a live communication session, according to various embodiments. The user interfaces of FIGS. 10A-10E are used to explain the process of FIG. 11.
[0058] The processes described below enhance device usability and make user-device interfaces more efficient (e.g., by helping users provide appropriate inputs and reducing user errors when operating / interacting with the device) through various techniques, including providing improved visual feedback to the user, reducing the number of inputs required to perform an action, providing additional control options without cluttering the user interface with additional controls, performing an action without requiring further user input when a set of conditions is met, improving privacy and / or security, providing a more diverse, detailed, and / or realistic user experience while saving storage space, and / or additional techniques. These techniques also reduce power usage and improve device battery life by allowing users to use the device more quickly and efficiently. Saving battery power, and therefore weight, improves device ergonomics. These techniques also enable real-time communication and the use of fewer and / or less accurate sensors, resulting in more compact, lighter, and less expensive devices, and allowing devices to be used in a variety of lighting conditions. These techniques reduce energy use and thereby reduce the heat given off by the device, which is particularly important for wearable devices where a device that is well within the operating parameters for the device components may become uncomfortable for the user to wear if it is generating too much heat.
[0059] Furthermore, for methods described herein in which one or more steps are conditioned on one or more conditions being satisfied, it should be understood that the described method can be repeated in multiple iterations, such that over the course of the iterations, all of the conditions on which the method steps are conditioned are satisfied in different iterations of the method. For example, if a method requires performing a first step if a condition is satisfied and a second step if the condition is not satisfied, one skilled in the art will understand that the steps recited in the claim are repeated in a particular order until the conditions are satisfied and then no longer satisfied. Thus, a method described with one or more steps that depend on one or more conditions being satisfied can be rewritten as a method that is repeated until each condition recited in the method is satisfied. However, this is not required for system or computer-readable medium claims in which the system or computer-readable medium includes instructions for performing a conditional action based on the satisfaction of the corresponding one or more conditions, and thus can determine whether a contingency is met without explicitly repeating the method steps until all conditions on which the method steps are conditioned are satisfied. Those skilled in the art will also understand that, as with methods having conditional steps, the system or computer-readable storage medium may repeat the steps of the method as many times as necessary to ensure that all of the conditional steps have been performed.
[0060] 1A, an XR experience is provided to a user via an operating environment 100 that includes a computer system 101. The computer system 101 includes a controller 110 (e.g., a processor of a portable electronic device or a remote server), a display generation component 120 (e.g., a head-mounted device (HMD), a display, a projector, a touchscreen, etc.), one or more input devices 125 (e.g., an eye-tracking device 130, a hand-tracking device 140, other input devices 150), one or more output devices 155 (e.g., a speaker 160, a tactile output generator 170, and other output devices 180), one or more sensors 190 (e.g., an image sensor, a light sensor, a depth sensor, a tactile sensor, an orientation sensor, a proximity sensor, a temperature sensor, a location sensor, a motion sensor, a speed sensor, etc.), and optionally one or more peripheral devices 195 (e.g., a consumer electronics device, a wearable device, etc.). In some embodiments, one or more of input device 125, output device 155, sensor 190, and peripheral device 195 are integrated with display generation component 120 (e.g., within a head-mounted or handheld device).
[0061] When describing an XR experience, various terms are used to individually refer to several related, but distinct, environments that a user can sense and / or interact with (e.g., using inputs detected by the computer system 101 generating the XR experience that cause the computer system generating the XR experience to generate audio, visual, and / or haptic feedback corresponding to various inputs provided to the computer system 101). The following is a subset of these terms:
[0062] Physical Environment: The physical environment refers to the physical world that people can sense and / or interact with without the aid of electronic systems. A physical environment, such as a physical park, includes physical objects such as physical trees, physical buildings, and physical people. People can directly sense and / or interact with the physical environment through their senses, such as sight, touch, hearing, taste, and smell.
[0063] Extended reality: In contrast, an extended reality (XR) environment refers to a wholly or partially simulated environment that people sense and / or interact with through electronic systems. In XR, a subset of a person's physical movements or representations thereof are tracked, and one or more properties of one or more virtual objects simulated within the XR environment are adjusted accordingly to behave with at least one law of physics. For example, an XR system may detect the rotation of a person's head and adjust the graphical content and sound field presented to the person accordingly, in a manner similar to how such views and sounds change in a physical environment. In some situations (e.g., for accessibility reasons), adjustments to the characteristic(s) of a virtual object(s) in an XR environment may be made in response to the representation of a physical movement (e.g., a voice command). A person may sense and / or interact with an XR object using any one of their senses, including sight, sound, touch, taste, and smell. For example, a person may sense and / or interact with audio objects that create a 3D or spatial audio environment that provides the perception of a point audio source in 3D space. In another example, audio objects may enable audio transparency that selectively incorporates ambient sounds from the physical environment, with or without computer-generated audio. In some XR environments, a person may sense and / or interact with only audio objects.
[0064] Examples of XR include virtual reality and mixed reality.
[0065] Virtual Reality: A virtual reality (VR) environment refers to a simulated environment designed to be based entirely on computer-generated sensory input for one or more senses. A VR environment includes multiple virtual objects that a person can sense and / or interact with. For example, computer-generated images of trees, buildings, and avatars representing people are examples of virtual objects. A person can sense and / or interact with virtual objects in a VR environment through a simulation of the person's presence in the computer-generated environment and / or through a simulation of a subset of the person's physical movement within the computer-generated environment.
[0066] Mixed reality: A mixed reality (MR) environment refers to a simulated environment designed to incorporate sensory input from or representations of a physical environment in addition to including computer-generated sensory input (e.g., virtual objects), as opposed to a VR environment designed to be based entirely on computer-generated sensory input. On a virtual continuum, a mixed reality environment is anywhere between, but not including, a complete physical environment at one end and a virtual reality environment at the other. In some MR environments, computer-generated sensory input may respond to changes in sensory input from the physical environment. Some electronic systems for presenting MR environments may also track location and / or orientation relative to the physical environment to allow virtual objects to interact with real objects (i.e., physical items from the physical environment or representations thereof). For example, the system may take into account movement so that a virtual tree appears stationary relative to the physical ground.
[0067] Examples of mixed reality include augmented reality and augmented virtuality.
[0068] Augmented reality: An augmented reality (AR) environment refers to a simulated environment in which one or more virtual objects are superimposed on a physical environment or a representation thereof. For example, an electronic system for presenting an AR environment may have a transparent or translucent display through which a person can directly view the physical environment. The system may be configured to present virtual objects on the transparent or translucent display, whereby a person using the system perceives the virtual objects superimposed on the physical environment. Alternatively, the system may have an opaque display and one or more imaging sensors that capture images or videos of the physical environment that are representations of the physical environment. The system composites the images or videos with the virtual objects and presents the composite on the opaque display. The person uses the system to indirectly view the physical environment through the images or videos of the physical environment and perceive the virtual objects superimposed on the physical environment. As used herein, video of a physical environment shown on an opaque display is referred to as “pass-through video,” meaning that the system captures images of the physical environment using one or more image sensors and uses those images in presenting the AR environment on the opaque display. Alternatively, the system may include a projection system that projects virtual objects, e.g., as holograms, into the physical environment or onto a physical surface, such that a person using the system perceives the virtual objects superimposed on the physical environment. Augmented reality environments also refer to simulated environments in which a representation of the physical environment is transformed by computer-generated sensory information. For example, when providing pass-through video, the system may distort one or more sensor images to impose a selected perspective (e.g., viewpoint) different from the perspective captured by the imaging sensor. As another example, the representation of the physical environment may be distorted by graphically modifying (e.g., enlarging) portions thereof, thereby rendering the modified portions a non-photorealistic, altered version of the originally captured image. As a further example, the representation of the physical environment may be distorted by graphically removing or obscuring portions thereof.
[0069] Augmented Virtuality: An augmented virtuality (AV) environment refers to a simulated environment in which a virtual or computer-generated environment incorporates one or more sensory inputs from a physical environment. The sensory inputs may be representations of one or more characteristics of the physical environment. For example, an AV park may have virtual trees and virtual buildings, while people with faces are realistically recreated from images taken of physical people. As another example, virtual objects may adopt the shape or color of physical items imaged by one or more imaging sensors. As a further example, virtual objects may adopt shadows that match the position of the sun in the physical environment.
[0070] In an augmented reality, mixed reality, or virtual reality environment, a view of a three-dimensional environment is visible to a user. The view of the three-dimensional environment is typically visible to a user via one or more display generating components (e.g., a display or pair of display modules providing stereoscopic content to different eyes of the same user) through a virtual viewport having a viewport boundary that defines the extent of the three-dimensional environment visible to the user via the one or more display generating components. In some embodiments, the area defined by the viewport boundary is smaller in one or more dimensions than the user's field of view (e.g., based on the user's field of view, the size, optical properties, or other physical characteristics of the one or more display generating components, and / or the location and / or orientation of the one or more display generating components relative to the user's eyes). In some embodiments, the area defined by the viewport boundary is larger in one or more dimensions than the user's field of view (e.g., based on the user's field of view, the size, optical properties, or other physical characteristics of the one or more display generating components, and / or the location and / or orientation of the one or more display generating components relative to the user's eyes). The viewport and viewport boundaries typically move as one or more display-generating components move (e.g., with the user's head in the case of a head-mounted device, or with the user's hands in the case of a handheld device such as a tablet or smartphone). The user's viewpoint determines what content is visible within the viewport; the viewpoint generally specifies a location and orientation relative to the three-dimensional environment; as the viewpoint shifts, the view of the three-dimensional environment also shifts within the viewport. In the case of a head-mounted device, the viewpoint is typically based on the location and orientation of the user's head, face, and / or eyes to provide a view of the three-dimensional environment that is perceptually accurate and provides an immersive experience when the user is using the head-mounted device.In the case of a handheld or stationary device, the viewpoint shifts as the handheld or stationary device is moved and / or as the user's position relative to the handheld or stationary device changes (e.g., as the user moves toward, away from, above, below, to the right of, and / or to the left of the device). In a device that includes a display generation component with virtual pass-through, the portion of the physical environment that is visible (e.g., displayed and / or projected) through one or more display generation components typically moves with the display generation components (e.g., moves with the user's head in a head-mounted device, or moves with the user's hand in a handheld device such as a tablet or smartphone) as the user's viewpoint moves as the field of view of one or more cameras moves (and the appearance of one or more virtual objects displayed through the one or more display generation components is updated based on the user's viewpoint (e.g., the displayed position and pose of the virtual objects are updated based on the movement of the user's viewpoint). In the case of display generating components that have an optical pass-through, the portion of the physical environment that is visible through one or more display generating components (e.g., optically visible through one or more partially or fully transparent portions of the display generating components) is based on the user's view through the partially or fully transparent portions of the display generating components (e.g., moves with the user's head in the case of a head-mounted device, or moves with the user's hand in the case of a handheld device such as a tablet or smartphone), such that the user's viewpoint moves (and the appearance of the one or more virtual objects is updated based on the user's viewpoint) as the user's viewpoint moves through the partially or fully transparent portion(s) of the display generating components.
[0071] In some embodiments, a representation of the physical environment (e.g., displayed via a virtual pass-through or optical pass-through) can be partially or completely obscured by the virtual environment. In some embodiments, the amount of the virtual environment that is displayed (e.g., the amount of the physical environment that is not displayed) is based on the immersion level of the virtual environment (e.g., relative to the representation of the physical environment). For example, increasing the immersion level optionally causes more of the virtual environment to be displayed, replacing and / or obscuring more of the physical environment, and decreasing the immersion level optionally causes less of the virtual environment to be displayed, revealing portions of the physical environment that were not previously displayed and / or obscured. In some embodiments, at a particular immersion level, one or more first background objects (e.g., in the representation of the physical environment) are visually less highlighted (e.g., dimmed, blurred, and / or displayed with increased transparency) than one or more second background objects, and one or more third background objects are discontinued. In some embodiments, the immersion level includes the relative extent to which the virtual content (e.g., the virtual environment and / or virtual content) displayed by the computer system obscures background content (e.g., content other than the virtual environment and / or virtual content) around / behind the virtual content, and optionally includes the number of items of background content displayed and / or the visual characteristics (e.g., color, contrast, and / or opacity) with which the background content is displayed, the angular range of the virtual content displayed via the display generating components (e.g., 60-degree content displayed at low immersion, 120-degree content displayed at medium immersion, or 180-degree content displayed at high immersion), and / or the percentage of the field of view displayed via the display generating components that is consumed by the virtual content (e.g., 33% of the field of view consumed by the virtual content at low immersion, 66% of the field of view consumed by the virtual content at medium immersion, or 100% of the field of view consumed by the virtual content at high immersion). In some embodiments, the background content is included in the background against which the virtual content is displayed (e.g., background content within a representation of the physical environment).In some embodiments, background content includes user interfaces (e.g., user interfaces generated by a computer system corresponding to an application), virtual objects (e.g., files or representations of other users generated by a computer system) that are not associated with or included in the virtual environment and / or virtual content, and / or real objects (e.g., pass-through objects that represent real objects in the physical environment around the user that are visible as displayed through the display generating components and / or that are visible through transparent or translucent components of the display generating components because the computer system does not obscure / prevent their visibility through the display generating components). In some embodiments, at a low immersion level (e.g., a first immersion level), background, virtual, and / or real objects are displayed in an unobscured manner. For example, a virtual environment at a low immersion level is optionally displayed simultaneously with background content, and the background content is optionally displayed at full brightness, color, and / or translucency. In some embodiments, at a higher immersion level (e.g., a second immersion level higher than the first immersion level), background, virtual, and / or real objects are displayed in an obscured manner (e.g., dimmed, blurred, or removed from the display). For example, a separate virtual environment having a high immersion level is displayed without simultaneously displaying background content (e.g., in full screen or fully immersive mode). As another example, a virtual environment displayed at an intermediate immersion level is simultaneously displayed with dimmed, blurred, or otherwise de-highlighted background content. In some embodiments, the visual characteristics of the background objects differ among the background objects. For example, at a particular immersion level, one or more first background objects are visually less highlighted (e.g., dimmed, blurred, and / or displayed with increased transparency) than one or more second background objects, and one or more third background objects are discontinued.In some embodiments, a null or zero level of immersion corresponds to ceasing to display the virtual environment, and instead displaying a representation of the physical environment (optionally along with one or more virtual objects, such as applications, windows, or virtual three-dimensional objects), without the representation of the physical environment being obscured by the virtual environment. Adjusting the immersion level using physical input elements provides a fast and efficient way to adjust immersion, improving usability of computer systems and making user device interfaces more efficient.
[0072] Perspective-Locked Virtual Object: A virtual object is perspective-locked when the computer system displays the virtual object in the same location and / or position within the user's perspective, even as the user's perspective shifts (e.g., changes). In embodiments in which the computer system is a head-mounted device, the user's perspective is locked to the forward-facing orientation of the user's head (e.g., the user's perspective is at least a portion of the user's field of view when the user is looking straight ahead). Thus, the user's perspective remains fixed even as the user's line of sight moves without moving the user's head. In embodiments in which the computer system has a display generating component (e.g., a display screen) that can be repositioned relative to the user's head, the user's perspective is the augmented reality view being presented to the user on the display generating component of the computer system. For example, a perspective-locked virtual object that is displayed in the upper left corner of the user's perspective when the user's perspective is in a first orientation (e.g., the user's head is facing north) will continue to be displayed in the upper left corner of the user's perspective even if the user's perspective changes to a second orientation (e.g., the user's head is facing west). In other words, the location and / or position at which a viewpoint-locked virtual object is displayed in a user's viewpoint is independent of the user's position and / or orientation in the physical environment. In embodiments in which the computer system is a head-mounted device, the user's viewpoint is locked to the orientation of the user's head, such that the virtual object is also referred to as a "head-locked virtual object."
[0073] Environment-Locked Virtual Object: A virtual object is environment-locked (or "world-locked") when a computer system displays the virtual object at a location and / or position within a user's viewpoint that is based on (e.g., selected with reference to and / or anchored to) locations and / or objects within a three-dimensional environment (e.g., a physical environment or a virtual environment). As the user's viewpoint shifts, the locations and / or objects within the environment relative to the user's viewpoint change, resulting in the environment-locked virtual object appearing at a different location and / or position within the user's viewpoint. For example, an environment-locked virtual object locked to a tree directly in front of the user will appear centered within the user's viewpoint. If the user's viewpoint shifts to the right (e.g., the user's head is turned to the right) and the tree becomes more left-leaning in the user's viewpoint (e.g., the position of the tree in the user's viewpoint shifts), the environment-locked virtual object locked to the tree will appear more left-leaning in the user's viewpoint. In other words, the location and / or position at which the environment-locked virtual object appears within the user's viewpoint depends on the position and / or orientation of the location and / or object in the environment to which the virtual object is locked. In some embodiments, the computer system uses a stationary reference frame (e.g., a coordinate system fixed to a fixed location and / or object in the physical environment) to determine a position at which to display an environment-locked virtual object in the user's viewpoint. The environment-locked virtual object can be locked to a stationary portion of the environment (e.g., a floor, wall, table, or other stationary object) or can be locked to a moving portion of the environment (e.g., a vehicle, an animal, a person, or a representation of a part of the user's body that moves independent of the user's viewpoint, such as the user's hand, wrist, arm, or leg), so that the virtual object moves as the viewpoint or part of the environment moves in order to maintain a fixed relationship between the virtual object and the part of the environment.
[0074] In some embodiments, an environment-locked or viewpoint-locked virtual object exhibits delayed-following behavior, which reduces or delays the movement of the environment-locked or viewpoint-locked virtual object relative to the movement of a reference point that the virtual object is following. In some embodiments, when exhibiting delayed-following behavior, the computer system intentionally delays the movement of the virtual object when it detects movement of the reference point that the virtual object is following (e.g., a part of the environment, the viewpoint, or a point fixed relative to the viewpoint, such as a point between 5 and 300 cm from the viewpoint). For example, when the reference point (e.g., a part of the environment or the viewpoint) moves at a first speed, the virtual object is moved by the device to remain locked to the reference point, but at a second speed that is slower than the first speed (e.g., until the reference point stops or slows down, at which point the virtual object begins to catch up with the reference point). In some embodiments, when the virtual object exhibits delayed-following behavior, the device ignores small amounts of movement of the reference point (e.g., ignores movement of the reference point that is less than a threshold amount of movement, such as movement between 0 and 5 degrees or movement between 0 and 50 cm). For example, when the reference point (e.g., a portion of the environment or a viewpoint to which the virtual object is locked) moves by a first amount, the distance between the reference point and the virtual object increases (e.g., because the virtual object is displayed to maintain a fixed or substantially fixed position relative to a viewpoint or portion of the environment different from the reference point to which the virtual object is locked), and when the reference point (e.g., a portion of the environment or a viewpoint to which the virtual object is locked) moves by a second amount greater than the first amount, the distance between the reference point and the virtual object initially increases (e.g., because the virtual object is displayed to maintain a fixed or substantially fixed position relative to a viewpoint or portion of the environment different from the reference point to which the virtual object is locked), and then decreases as the amount of movement of the reference point increases beyond a threshold (e.g., a “delayed following” threshold) as the virtual object is moved by the computer system to maintain a fixed or substantially fixed position relative to the reference point.In some embodiments, a virtual object maintaining a substantially fixed position relative to a reference point includes the virtual object being displayed within a threshold distance (e.g., 1, 2, 3, 5, 15, 20, 50 cm) of the reference point in one or more dimensions (e.g., above / below, left / right, and / or forward / backward relative to the position of the reference point).
[0075] Hardware: There are many different types of electronic systems that allow a person to sense and / or interact with various XR environments. Examples include head-mounted systems, projection-based systems, head-up displays (HUDs), vehicle windshields with integrated viewing capabilities, windows with integrated viewing capabilities, displays formed as lenses designed to be placed over a person's eyes (e.g., contact lenses), headphones / earphones, speaker arrays, input systems (e.g., wearable or handheld controllers with or without haptic feedback), smartphones, tablets, and desktop / laptop computers. A head-mounted system may include speakers and / or other audio output devices integrated into the head-mounted system to provide audio output. A head-mounted system may have one or more speaker(s) and an integrated opaque display. Alternatively, a head-mounted system may be configured to accept an external opaque display (e.g., a smartphone). A head-mounted system may incorporate one or more imaging sensors for capturing images or video of the physical environment and / or one or more microphones for capturing audio of the physical environment. The head-mounted system may have a transparent or translucent display rather than an opaque display. The transparent or translucent display may have a medium through which light representing an image is directed to a person's eyes. The display may utilize digital light projection, OLED, LED, uLED, liquid crystal on silicon, laser-scanned light source, or any combination of these technologies. The medium may be an optical waveguide, a holographic medium, an optical combiner, an optical reflector, or any combination thereof. In one embodiment, the transparent or translucent display may be configured to be selectively opaque. The projection-based system may employ retinal projection technology that projects a graphical image onto a person's retina.The projection system may also be configured to project virtual objects into the physical environment, for example, as holograms or onto physical surfaces. In some embodiments, controller 110 is configured to manage and coordinate the XR experience for the user. In some embodiments, controller 110 includes a suitable combination of software, firmware, and / or hardware. Controller 110 is described in more detail below with respect to FIG. 2. In some embodiments, controller 110 is a computing device that is local or remote to scene 105 (e.g., the physical environment). For example, controller 110 is a local server located within scene 105. In another example, controller 110 is a remote server (e.g., a cloud server, a central server, etc.) located outside scene 105. In some embodiments, controller 110 is communicatively coupled to display generating components 120 (e.g., HMD, display, projector, touchscreen, etc.) via one or more wired or wireless communication channels 144 (e.g., BLUETOOTH, IEEE802.11x, IEEE802.16x, IEEE802.3x, etc.). In another example, controller 110 is contained within or shares the same physical housing or support structure as display generating components 120 (e.g., HMD or portable electronic device including a display and one or more processors, etc.), one or more of input devices 125, one or more of output devices 155, one or more of sensors 190, and / or peripheral devices 195.
[0076] In some embodiments, display generation component 120 is configured to provide an XR experience (e.g., at least a visual component of the XR experience) to a user. In some embodiments, display generation component 120 includes a suitable combination of software, firmware, and / or hardware. Display generation component 120 is described in more detail below with respect to FIG. 3. In some embodiments, the functionality of controller 110 is provided by and / or combined with display generation component 120.
[0077] According to some embodiments, the display generation component 120 provides an XR experience to the user while the user is virtually and / or physically present in the scene 105.
[0078] In some embodiments, the display generating component is worn on a part of the user's body (e.g., on their head, their hand, etc.). Thus, display generating component 120 includes one or more XR displays provided for displaying XR content. For example, in various embodiments, display generating component 120 surrounds the user's field of view. In some embodiments, display generating component 120 is a handheld device (e.g., a smartphone or tablet) configured to present XR content, where the user holds the device with a display pointed toward the user's field of view and a camera pointed toward scene 105. In some embodiments, the handheld device is optionally located within a housing worn on the user's head. In some embodiments, the handheld device is optionally located on a support (e.g., a tripod) in front of the user. In some embodiments, display generating component 120 is an XR chamber, housing, or room configured to present XR content without the user wearing or holding display generating component 120. Many user interfaces described with reference to one type of hardware for displaying XR content (e.g., a handheld device or a device on a tripod) may be implemented on another type of hardware for displaying XR content (e.g., an HMD or other wearable computing device). For example, a user interface illustrating interactions with XR content that are triggered based on interactions occurring in the space in front of a handheld or tripod-mounted device may be implemented similarly to an HMD in which the interactions occur in the space in front of the HMD and the XR content responses are displayed via the HMD. Similarly, a user interface illustrating interactions with XR content that are triggered based on movement of a handheld or tripod-mounted device relative to the physical environment (e.g., scene 105 or a part of the user's body (e.g., the user's eye(s), head, or hands)) may be implemented similarly to an HMD in which the movement is caused by movement of the HMD relative to the physical environment (e.g., scene 105 or a part of the user's body (e.g., the user's eye(s), head, or hands)).
[0079] While relevant features of operating environment 100 are shown in FIG. 1A, those skilled in the art will understand from this disclosure that various other features are not shown for the sake of brevity and so as not to obscure more relevant aspects of the exemplary embodiments disclosed herein.
[0080] 1A-1P illustrate various examples of computer systems that can be used to perform methods and provide audio, visual, and / or haptic feedback as part of the user interfaces described herein. In some embodiments, the computer system optionally includes one or more display generation components (e.g., first and second display assemblies 1-120a, 1-120b and / or first and second optical modules 11.1.1-104a and 11.1.1-104b) for displaying representations of virtual elements and / or the physical environment to a user of the computer system, the representations being generated based on detected events and / or user input detected by the computer system. The user interface generated by the computer system is optionally corrected by one or more corrective lenses 11.3.2-216, optionally removably attached to one or more of the optical modules, allowing the user interface to be more easily viewed by users who otherwise use glasses or contacts to correct their vision. While many user interfaces shown herein show a single view of the user interface, the user interface in the HMD is optionally displayed using two optical modules (e.g., first and second display assemblies 1-120a, 1-120b and / or first and second optical modules 11.1.1-104a and 11.1.1-104b), one for the user's right eye and a different one for the user's left eye, with slightly different images presented to the two different eyes to create the illusion of stereoscopic depth, and the single view of the user interface is typically either a right-eye or left-eye view, and the depth effect is explained in text or using other schematic diagrams or views.In some embodiments, the computer system includes one or more external displays (e.g., display assembly 1-108) for displaying status information of the computer system to a user of the computer system (when the computer system is not attached) and / or other people near the computer system, optionally generated based on detected events and / or user input detected by the computer system. In some embodiments, the computer system includes one or more audio output components (e.g., electronic components 1-112) for generating audio feedback, optionally generated based on detected events and / or user input detected by the computer system. In some embodiments, the computer system includes one or more input devices for detecting inputs, such as one or more sensors (e.g., sensor assembly 1-356 and / or one or more sensors in FIG. 1I) for detecting information about the physical environment of a device that can be used (optionally in conjunction with one or more illuminators, such as the illuminators described in FIG. 1I) to generate a digital pass-through image, capture visual media (e.g., photographs and / or videos) corresponding to the physical environment, or determine the pose (e.g., position and / or orientation) of physical objects and / or surfaces within the physical environment, so that virtual objects can be positioned based on the detected pose of the physical objects and / or surfaces. In some embodiments, the computer system includes one or more input devices for detecting input, such as one or more sensors for detecting hand position and / or movement (e.g., sensor assembly 1-356 and / or one or more sensors of FIG. 1I), which can be used (optionally in conjunction with one or more illuminators, such as illuminator 6-124 shown in FIG. 1I) to determine when one or more air gestures are performed.In some embodiments, the computer system includes one or more input devices for detecting input, such as one or more sensors for detecting eye movement (e.g., the eye-tracking and gaze-tracking sensors of FIG. 1I), which may be used (optionally in conjunction with one or more lights, such as lights 11.3.2-110 of FIG. 1O) to determine attention or gaze position and / or gaze movement, which may optionally be used to detect gaze-only input based on gaze movement and / or dwell. Combinations of the various sensors described above may be used to determine a user's facial expressions and / or hand movements for use in generating an avatar or representation of the user, such as an anthropomorphic avatar or representation for use in a real-time communication session, the avatar having facial expressions, hand movements, and / or body movements based on or similar to the detected facial expressions, hand movements, and / or body movements of the user of the device. Gaze and / or attention information is optionally combined with hand tracking information to determine interactions between the user and one or more user interfaces based on direct and / or indirect inputs, such as air gestures or inputs using one or more hardware input devices, such as one or more buttons (e.g., first button 1-128, button 11.1.1-114, second button 1-132, and / or dial or button 1-328), knobs (e.g., first button 1-128, button 11.1.1-114, and / or dial or button 1-328), digital crowns (e.g., pressable and twistable or rotatable first button 1-128, button 11.1.1-114, and / or dial or button 1-328), trackpads, touchscreens, keyboards, mice, and / or other input devices. One or more buttons (e.g., first button 1-128, button 11.1.1-114, second button 1-132, and / or dial or button 1-328) are optionally used to perform system operations such as re-centering content within the three-dimensional environment visible to the device user, displaying a home user interface for launching an application, initiating a real-time communication session, or initiating the display of a virtual three-dimensional background.The knob or digital crown (e.g., a first button 1-128, button 11.1.1-114, and / or a dial or button 1-328 that is depressible and twistable or rotatable) is optionally rotatable to adjust parameters of the visual content, such as the immersion level of the virtual three-dimensional environment (e.g., the degree to which the virtual content occupies the user's viewport into the three-dimensional environment), or other parameters associated with the three-dimensional environment and the virtual content displayed via the optical modules (e.g., first and second display assemblies 1-120a, 1-120b and / or first and second optical modules 11.1.1-104a and 11.1.1-104b).
[0081] 1B shows a front, top, and perspective view of an example head-mounted display (HMD) device 1-100 configured to be worn by a user and provide a virtual and altered / mixed reality (VR / AR) experience. The HMD 1-100 can include a display unit 1-102 or assembly, an electronic strap assembly 1-104 connected to and extending from the display unit 1-102, and a band assembly 1-106 secured at either end to the electronic strap assembly 1-104. The electronic strap assembly 1-104 and band 1-106 can be part of a retention assembly configured to wrap around a user's head to hold the display unit 1-102 against the user's face.
[0082] In at least one example, the band assembly 1-106 can include a first band 1-116 configured to wrap around the back of the user's head and a second band 1-117 configured to extend over the top of the user's head. The second strap can extend between the first electronic strap 1-105a and the second electronic strap 1-105b of the electronic strap assembly 1-104, as shown. The strap assembly 1-104 and the band assembly 1-106 can be part of a fastening mechanism that extends rearward from the display unit 1-102 and is configured to hold the display unit 1-102 against the user's face.
[0083] In at least one example, the anchoring mechanism includes a first electronics strap 1-105a including a first proximal end 1-134 coupled to the display unit 1-102, e.g., a housing 1-150 of the display unit 1-102, and a first distal end 1-136 opposite the first proximal end 1-134. The anchoring mechanism can also include a second electronics strap 1-105b including a second proximal end 1-138 coupled to the housing 1-150 of the display unit 1-102, and a second distal end 1-140 opposite the second proximal end 1-138. The anchoring mechanism can also include a first band 1-116 including a first end 1-142 coupled to the first distal end 1-136 and a second end 1-144 coupled to the second distal end 1-140, and a second band 1-117 extending between the first electronic strap 1-105a and the second electronic strap 1-105b. The straps 1-105a-b and the band 1-116 can be coupled via a connection mechanism or assembly 1-114. In at least one example, the second band 1-117 includes a first end 1-146 coupled to the first electronic strap 1-105a between a first proximal end 1-134 and a first distal end 1-136, and a second end 1-148 coupled to the second electronic strap 1-105b between a second proximal end 1-138 and a second distal end 1-140.
[0084] In at least one example, the first and second electronic straps 1-105a-b include plastic, metal, or other structural material that forms the shape of the substantially rigid straps 1-105a-b. In at least one example, the first and second bands 1-116, 1-117 are formed from a resilient, flexible material including woven fabric, rubber, etc. The first and second bands 1-116, 1-117 can be flexible to conform to the shape of a user's head when wearing the HMD 1-100.
[0085] In at least one example, one or more of the first and second electronic straps 1-105a-b can define an internal strap volume and can include one or more electronic components disposed within the internal strap volume. In one example, as shown in FIG. 1B, the first electronic strap 1-105a can include an electronic component 1-112. In one example, the electronic component 1-112 can include a speaker. In one example, the electronic component 1-112 can include a computing component such as a processor.
[0086] In at least one example, the housing 1-150 defines a first, forward-facing opening 1-152. The display assembly 1-108 is disposed to block the first opening 1-152 from view when the HMD 1-100 is assembled, and therefore the forward-facing opening is labeled 1-152 with a dotted line in FIG. 1B . The housing 1-150 may also define a rear-facing second opening 1-154. The housing 1-150 also defines an interior volume between the first opening 1-152 and the second opening 1-154. In at least one example, the HMD 1-100 includes a display assembly 1-108, which may include a front cover and a display screen (shown in other figures) disposed within or across the front opening 1-152 to block the front opening 1-152. In at least one example, the display screen of the display assembly 1-108, as well as the entire display assembly 1-108, has a curvature configured to follow the curvature of the user's face. The display screen of the display assembly 1-108 can curve to complement the user's facial features and the overall curvature from one side of the face to the other, e.g., from left to right and / or top to bottom when the display unit 1-102 is pressed, as shown.
[0087] In at least one example, the housing 1-150 can define a first aperture 1-126 between the first opening 1-152 and the second opening 1-154, and a second aperture 1-130 between the first opening 1-152 and the second opening 1-154. The HMD 1-100 can also include a first button 1-128 disposed in the first aperture 1-126 and a second button 1-132 disposed in the second aperture 1-130. The first and second buttons 1-128, 1-132 can be depressible through the respective apertures 1-126, 1-130. In at least one example, the first button 1-126 and / or the second button 1-132 can be twistable dials and depressible buttons. In at least one example, the first button 1-128 is a depressible and twistable dial button, and the second button 1-132 is a depressible button.
[0088] FIG. 1C shows a rear perspective view of the HMD 1-100. The HMD 1-100 can include a light seal 1-110 extending rearward from the housing 1-150 around the periphery of the housing 1-150 of the display assembly 1-108, as shown. The light seal 1-110 can be configured to extend from the housing 1-150 to the user's face around the user's eyes to block external light from being seen. In one example, the HMD 1-100 can include first and second display assemblies 1-120a, 1-120b disposed at or within a rearward-facing second opening 1-154 defined by the housing 1-150 and / or disposed within the interior volume of the housing 1-150 and configured to project light through the second opening 1-154. In at least one example, each display assembly 1-120a-b can include a respective display screen 1-122a, 1-122b configured to project light in a rearward direction through the second opening 1-154 toward the user's eyes.
[0089] In at least one example, with reference to both FIG. 1B and FIG. 1C , the display assembly 1-108 can be a front-facing display assembly including a display screen configured to project light in a first, forward direction, and the rear-facing display screens 1-122a-b can be configured to project light in a second, rearward direction opposite the first direction. As described above, the light seal 1-110 can be configured to block light external to the HMD 1-100, including light projected by the front-facing display screen of the display assembly 1-108 shown in the front perspective view of FIG. 1B, from reaching the user's eyes. In at least one example, the HMD 1-100 can also include a curtain 1-124 blocking a second opening 1-154 between the housing 1-150 and the rear-facing display assemblies 1-120a-b. In at least one example, the curtain 1-124 can be elastic or at least partially elastic.
[0090] Any of the features, components, and / or parts, including their arrangements and configurations, shown in Figures 1B and 1C, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1D-1F and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1D-1F may be included, alone or in any combination, in the example devices, features, components, and parts shown in Figures 1B and 1C.
[0091] FIG. 1D shows an exploded view of an example of an HMD 1-200 including various portions or components separated according to modularity and selective coupling of those components. For example, the HMD 1-200 can include a band 1-216 that can be selectively coupled to first and second electronic straps 1-205a, 1-205b. The first anchoring strap 1-205a can include a first electronic component 1-212a, and the second anchoring strap 1-205b can include a second electronic component 1-212b. In at least one example, the first and second straps 1-205a, 1-205b can be removably coupled to the display unit 1-202.
[0092] Additionally, the HMD 1-200 may include a light seal 1-210 configured to be removably coupled to the display unit 1-202. The HMD 1-200 may also include lenses 1-218 that may be removably coupled to the display unit 1-202, for example, on first and second display assemblies including a display screen. The lenses 1-218 may include customized prescription lenses configured for vision correction. As noted, each component shown in the exploded view of FIG. 1D and described above may be removably coupled, attached, reattached, or interchangeable to update or replace components for different users. For example, bands such as band 1-216, light seals such as light seal 1-210, lenses such as lens 1-218, and electronic straps such as straps 1-205a-b may be interchangeable depending on the user, such that these components are customized to fit and accommodate individual users of the HMD 1-200.
[0093] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1D, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1B, 1C, and 1E-1F and described herein. Similarly, any of the features, components, and / or parts, including their arrangement and configuration, shown and described with reference to Figures 1B, 1C, and 1E-1F, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1D.
[0094] 1E shows an exploded view of an example of a display unit 1-306 of an HMD. The display unit 1-306 may include a front display assembly 1-308, a frame / housing assembly 1-350, and a curtain assembly 1-324. The display unit 1-306 may also include a sensor assembly 1-356, a logic board assembly 1-358, and a cooling assembly 1-360 disposed between the frame assembly 1-350 and the front display assembly 1-308. In at least one example, the display unit 1-306 may also include a rear-facing display assembly 1-320 including first and second rear-facing display screens 1-322a, 1-322b disposed between the frame 1-350 and the curtain assembly 1-324.
[0095] In at least one example, the display unit 1-306 can also include a motor assembly 1-362 configured as an adjustment mechanism for adjusting the position of the display screens 1-322a-b of the display assembly 1-320 relative to the frame 1-350. In at least one example, the display assembly 1-320 is mechanically coupled to the motor assemblies 1-362 with at least one motor for each display screen 1-322a-b such that the motors can translate the display screens 1-322a-b to match the interpupillary distance of a user's eyes.
[0096] In at least one example, the display unit 1-306 can include a dial or button 1-328 that is depressible relative to the frame 1-350 and accessible to a user outside of the frame 1-350. The button 1-328 can be electronically connected to the motor assembly 1-362 via a controller such that a user can operate the button 1-328 to cause motors in the motor assembly 1-362 to adjust the position of the display screen 1-322a-b.
[0097] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1E, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1B-1D and 1F and described herein. Similarly, any of the features, components, and / or parts, including their arrangement and configuration, shown and described with reference to Figures 1B-1D and 1F, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1E.
[0098] 1F shows an exploded view of another example display unit 1-406 of an HMD device similar to other HMD devices described herein. The display unit 1-406 can include a forward display assembly 1-402, a sensor assembly 1-456, a logic board assembly 1-458, a cooling assembly 1-460, a frame assembly 1-450, a rear-facing display assembly 1-421, and a curtain assembly 1-424. The display unit 1-406 can also include a motor assembly 1-462 for adjusting the position of first and second display subassemblies 1-420a, 1-420b of the rear-facing display assembly 1-421, including respective first and second display screens for interpupillary adjustment, as described above.
[0099] The various components, systems, and assemblies shown in the exploded view of Figure 1F are described in more detail herein with reference to Figures 1B-1E and subsequent figures referenced in this disclosure. The display unit 1-406 shown in Figure 1F can be assembled and integrated with the fastening mechanisms shown in Figures 1B-1E, including electronic straps, bands, and other components including light seals, connection assemblies, etc.
[0100] Any of the features, components, and / or parts shown in Figure 1F, including their arrangement and configuration, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1B-1E and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1B-1E, including their arrangement and configuration, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1F.
[0101] FIG. 1G illustrates a perspective exploded view of a front cover assembly 3-100 of an HMD device described herein, such as the front cover assembly 3-1 of the HMD 3-100 shown in FIG. 1G, or any other HMD device illustrated and described herein. The front cover assembly 3-100 shown in FIG. 1G can include a transparent or translucent cover 3-102, a shroud 3-104 (or "canopy"), an adhesive layer 3-106, a display assembly 3-108 including a lenticular lens panel or array 3-110, and structural trim 3-112. The adhesive layer 3-106 can adhere the shroud 3-104 and / or the transparent cover 3-102 to the display assembly 3-108 and / or the trim 3-112. The trim 3-112 can adhere various components of the front cover assembly 3-100 to the frame or chassis of the HMD device.
[0102] In at least one example, as shown in FIG. 1G, a display assembly 3-108 including a transparent cover 3-102, a shroud 3-104, and a lenticular lens array 3-110 can be curved to accommodate the curvature of a user's face. The transparent cover 3-102 and the shroud 3-104 can be curved in two or three dimensions, for example, vertically in the Z direction in or out of the ZX plane and horizontally in the X direction in or out of the ZX plane. In at least one example, the display assembly 3-108 can include a display panel having pixels configured to project light through the lenticular lens array 3-110 and the shroud 3-104 and the transparent cover 3-102. The display assembly 3-108 can be curved in at least one direction, for example, horizontally, to accommodate the curvature of the user's face from one side (e.g., left side) to the other side (e.g., right side) of the face. In at least one example, shown and described in more detail in subsequent figures, each layer or component of the display assembly 3-108, which may include the lenticular lens array 3-110 and the display layer, can be curved horizontally in a similar or concentric manner to accommodate the curvature of the user's face.
[0103] In at least one example, the shroud 3-104 can include a transparent or translucent material through which the display assembly 3-108 projects light. In one example, the shroud 3-104 can include one or more opaque portions, such as opaque ink prints or other opaque film portions, on a rear surface of the shroud 3-104. The rear surface can be the surface of the shroud 3-104 that faces the user's eyes when the HMD device is worn. In at least one example, the opaque portion can be on a front surface of the shroud 3-104 opposite the rear surface. In at least one example, the one or more opaque portions of the shroud 3-104 can include a peripheral portion that visually obscures any components around the perimeter of the display screen of the display assembly 3-108. In this manner, the opaque portions of the shroud hide any other components, including electronic components, structural components, etc., of the HMD device that would otherwise be visible through the transparent or translucent cover 3-102 and / or shroud 3-104.
[0104] In at least one example, the shroud 3-104 can define one or more aperture transparent portions 3-120 through which sensors can transmit and receive signals. In one example, the portions 3-120 are apertures through which sensors can extend or transmit and receive signals. In one example, the portions 3-120 are transparent portions, or portions that are more transparent than the surrounding translucent or opaque portions of the shroud, through which sensors can transmit and receive signals through the shroud and through the transparent cover 3-102. In one example, the sensors can include a camera, an IR sensor, a LUX sensor, or any other visual or non-visual environmental sensor of the HMD device.
[0105] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1G, alone or in any combination, may be included in any of the other example devices, features, components, and parts described herein. Similarly, any of the features, components, and / or parts, including their arrangement and configuration, shown and described herein, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1G.
[0106] 1H shows an exploded view of an example of an HMD device 6-100. The HMD device 6-100 can include a sensor array or system 6-102 including one or more sensors, cameras, projectors, etc. attached to one or more components of the HMD 6-100. In at least one example, the sensor system 6-102 can include a bracket 1-338 to which one or more sensors of the sensor system 6-102 can be secured / fixed.
[0107] FIG. 1I shows a portion of an HMD device 6-100, including a front transparent cover 6-104 and a sensor system 6-102. The sensor system 6-102 can include multiple different sensors, emitters, and receivers, including cameras, IR sensors, projectors, etc. The transparent cover 6-104 is shown in front of the sensor system 6-102 to indicate the relative positions of the various sensors and emitters and the orientation of each sensor / emitter in the system 6-102. As referenced herein, terms such as "sideways," "sideways," "horizontal," and similar terms refer to the orientation or direction indicated by the X-axis shown in FIG. 1J. Terms such as "vertical," "upper," "lower," and similar terms refer to the orientation or direction indicated by the Z-axis shown in FIG. 1J. Terms such as "forward," "rearward," "forward," and "rearward," and similar terms refer to the orientation or direction indicated by the Y-axis shown in FIG. 1J.
[0108] In at least one example, a transparent cover 6-104 can define the front exterior surface of the HMD device 6-100, and a sensor system 6-102 including various sensors and their components can be disposed behind the cover 6-104 in the Y axis / direction. The cover 6-104 can be transparent or translucent to allow light, both detected by and emitted by the sensor system 6-102, to pass through the cover 6-104.
[0109] As discussed elsewhere herein, the HMD device 6-100 may include one or more controllers including a processor for electrically coupling the various sensors and emitters of the sensor system 6-102 with other electronic devices, such as one or more motherboards, processing units, and display screens. Additionally, as discussed in more detail below with reference to other figures, the various sensors, emitters, and other components of the sensor system 6-102 may be coupled to various structural frame members, brackets, etc. of the HMD device 6-100 that are not shown in FIG. 1I. For clarity of illustration, FIG. 1I shows the components of the sensor system 6-102 unattached to and electrically coupled to other components.
[0110] In at least one example, the device can include one or more controllers having a processor configured to execute instructions stored on a memory component electrically coupled to the processor, the instructions including, or capable of being executed by, one or more algorithms for self-correcting the various camera angles and positions described herein over time with use as the initial camera position, angle, or orientation is bumped or distorted due to an unintentional drop event or other event.
[0111] In at least one example, the sensor system 6-102 can include one or more scene cameras 6-106. The system 6-102 can include two scene cameras 6-106 disposed on either side of the bridge or arch of the nose of the HMD device 6-100, such that each of the two cameras 6-102 approximately corresponds to the position of the user's left and right eyes behind the cover 6-103. In at least one example, the scene cameras 6-106 are oriented generally forward in the Y direction to capture images in front of the user while the HMD 6-100 is in use. In at least one example, the scene cameras are color cameras and provide images and content for MR video pass-through to a display screen facing the user's eyes when using the HMD device 6-100. The scene cameras 6-106 can also be used for environment and object reconstruction.
[0112] In at least one example, the sensor system 6-102 may include a first depth sensor 6-108 oriented generally forward in the Y direction. In at least one example, the first depth sensor 6-108 may be used for environment and object reconstruction and hand and body tracking of the user. In at least one example, the sensor system 6-102 may include a second depth sensor 6-110 centrally disposed along the width of the HMD device 6-100 (e.g., along the X axis). For example, the second depth sensor 6-110 may be positioned in alignment with the center bridge or feature above the user's nose when wearing the HMD 6-100. In at least one example, the second depth sensor 6-110 may be used for environment and object reconstruction and hand and body tracking. In at least one example, the second depth sensor may include a LIDAR sensor.
[0113] In at least one example, the sensor system 6-102 can include a generally forward-facing depth projector 6-112 for projecting electromagnetic waves, e.g., in the form of a predetermined pattern of light dots, into and within a field of view of, or including and beyond, the user and / or scene camera 6-106. In at least one example, the depth projector can project electromagnetic waves of light in the form of a dot light pattern that reflects off objects and returns to the depth sensors described above, including the depth sensors 6-108, 6-110. In at least one example, the depth projector 6-112 can be used for environment and object reconstruction and hand and body tracking.
[0114] In at least one example, the sensor system 6-102 may include downward-facing cameras 6-114 having fields of view directed generally downward relative to the HMD device 6-100 in the Z-axis. In at least one example, the downward-facing cameras 6-114 may be disposed on the left and right sides of the HMD device 6-100 as shown and may be used for hand and body tracking, headset tracking, and facial avatar detection and creation to display a user avatar on the forward-facing display screen of the HMD device 6-100 as described elsewhere herein. The downward-facing cameras 6-114 may be used to capture facial expressions and movements of the user below the HMD device 6-100, including, for example, the cheeks, mouth, and chin.
[0115] In at least one example, the sensor system 6-102 may include chin cameras 6-116. In at least one example, the chin cameras 6-116 are disposed on the left and right sides of the HMD device 6-100 as shown and may be used for hand and body tracking, headset tracking, and facial avatar detection and creation to display a user avatar on the forward-facing display screen of the HMD device 6-100 as described elsewhere herein. The chin cameras 6-116 may be used to capture the expressions and movements of the user's face below the HMD device 6-100, including, for example, the user's chin, cheeks, mouth, and jaw. For hand and body tracking, headset tracking, and facial avatar,
[0116] In at least one example, the sensor system 6-102 can include a side camera 6-118. The side camera 6-118 can be oriented to capture left and right side views in the X-axis or direction relative to the HMD device 6-100. In at least one example, the side camera 6-118 can be used for hand and body tracking, headset tracking, and facial avatar detection and reconstruction.
[0117] In at least one example, the sensor system 6-102 can include multiple eye tracking and gaze tracking sensors for determining the identity, status, and gaze direction of a user's eyes during and / or before use. In at least one example, the eye / gaze tracking sensors can include nose-eye cameras 6-120 disposed on either side of and adjacent to the user's nose when the HMD device 6-100 is worn. The eye / gaze sensors can also include under-eye cameras 6-122 disposed below each user's eye for capturing eye images for facial avatar detection and creation, gaze tracking, and iris identification functions.
[0118] In at least one example, the sensor system 6-102 includes an infrared illuminator 6-124 directed outward from the HMD device 6-100 to illuminate the external environment and any objects therein with IR light for IR detection by one or more IR sensors of the sensor system 6-102. In at least one example, the sensor system 6-102 can include a flicker sensor 6-126 and an ambient light sensor 6-128. In at least one example, the flicker sensor 6-126 can detect the overhead light refresh rate to avoid display flicker. In one example, the infrared illuminator 6-124 can include a light-emitting diode and can be used, among other things, in low-light environments to illuminate a user's hands and other objects in low light for detection by the infrared sensors of the sensor system 6-102.
[0119] In at least one example, multiple sensors including a scene camera 6-106, a downward-facing camera 6-114, a chin camera 6-116, a side camera 6-118, a depth projector 6-112, and depth sensors 6-108, 6-110 can be used in combination with an electrically coupled controller to combine depth data with camera data for hand tracking and sizing for better hand tracking and object recognition and tracking capabilities of the HMD device 6-100. In at least one example, the downward-facing camera 6-114, chin camera 6-116, and side camera 6-118 described above and shown in FIG. 1I can be wide-angle cameras capable of operating in the visible and infrared spectrum. In at least one example, these cameras 6-114, 6-116, 6-118 can operate with only black and white light detection to simplify image processing and increase sensitivity.
[0120] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1I, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1J-1L and described herein. Similarly, any of the features, components, and / or parts shown and described with reference to Figures 1J-1L may be included, alone or in any combination, in the example devices, features, components, and parts shown in Figure 1I.
[0121] 1J shows a bottom perspective view of an example of an HMD 6-200 including a cover or shroud 6-204 secured to a frame 6-230. In at least one example, the sensors 6-203 of the sensor system 6-202 can be disposed around the periphery of the HDM 6-200 such that the sensors 6-203 are disposed outwardly around the periphery of the display region or area 6-232 so as not to obstruct the view of the displayed light. In at least one example, the sensors can be disposed behind the shroud 6-204 and aligned with a transparent portion of the shroud to allow the sensors and projector to pass light back and forth through the shroud 6-204. In at least one example, an opaque ink or other opaque material or film / layer can be disposed on the shroud 6-204 around the display area 6-232 to obscure components of the HMD 6-200 outside of the display area 6-232 other than the transparent portion defined by the opaque portion, through which the sensors and projector transmit and receive light and electromagnetic signals during operation. In at least one example, the shroud 6-204 allows light to pass through it from the display (e.g., within the display area 6-232), but not radially outward from the display area around the outer periphery of the shroud 6-204.
[0122] In some examples, the shroud 6-204 includes a transparent portion 6-205 and an opaque portion 6-207, as described above and elsewhere herein. In at least one example, the opaque portion 6-207 of the shroud 6-204 can define one or more transparent areas 6-209 through which the sensors 6-203 of the sensor system 6-202 can send and receive signals. In the illustrated example, the sensors 6-203 of the sensor system 6-202, which transmit and receive signals through the shroud 6-204, or more specifically through the transparent region 6-209 of (or defined by) the opaque portion 6-207 of the shroud 6-204, may include sensors the same as or similar to those shown in the example of FIG. 1I, such as depth sensors 6-108 and 6-110, a depth projector 6-112, first and second scene cameras 6-106, first and second downward-facing cameras 6-114, first and second side cameras 6-118, and first and second infrared illuminators 6-124. These sensors are also shown in the examples of FIGS. 1K and 1L. Other sensors, sensor types, numbers of sensors, and their relative positions may be included in one or more other examples of the HMD.
[0123] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1J, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figure 1I and Figures 1K-1L and described herein. Similarly, any of the features, components, and / or parts, including their arrangement and configuration, shown and described with reference to Figure 1I and Figures 1K-1L, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1J.
[0124] FIG. 1K shows a front view of a portion of an example HMD device 6-300, including a display 6-334, brackets 6-336, 6-338, and a frame or housing 6-330. The example shown in FIG. 1K does not include a front cover or shroud, so as to show the brackets 6-336, 6-338. For example, the shroud 6-204 shown in FIG. 1J includes an opaque portion 6-207 that visually covers / blocks the view of anything outside (e.g., radially / circumferentially outward) of the display / display area 6-334, including the sensor 6-303 and bracket 6-338.
[0125] In at least one example, the various sensors of the sensor system 6-302 are coupled to brackets 6-336, 6-338. In at least one example, the scene cameras 6-306 include tight tolerances on their angles relative to one another. For example, the tolerance on the mounting angle between the two scene cameras 6-306 can be 0.5 degrees or less, e.g., 0.3 degrees or less. To achieve and maintain such tight tolerances, in one example, the scene camera 6-306 can be mounted to the bracket 6-338 rather than the shroud. The bracket can include a cantilever arm to which the scene camera 6-306 and other sensors of the sensor system 6-302 can be mounted such that their position and orientation remain undeformed in the event of a drop event by the user that results in any deformation of the other brackets 6-226, the housing 6-330, and / or the shroud.
[0126] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1K, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1I, 1J, and 1L and described herein. Similarly, any of the features, components, and / or parts, including their arrangement and configuration, shown and described with reference to Figures 1I, 1J, and 1L, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1K.
[0127] FIG. 1L shows a bottom view of an example HMD 6-400 including a front display / cover assembly 6-404 and a sensor system 6-402. The sensor system 6-402 can be similar to other sensor systems described above and elsewhere herein, including with reference to FIGS. 1I-1K. In at least one example, the chin camera 6-416 can face downward to capture images of the user's lower facial features. In one example, the chin camera 6-416 can be directly coupled to a frame or housing 6-430 or to one or more internal brackets directly coupled to the illustrated frame or housing 6-430. The frame or housing 6-430 can include one or more apertures / openings 6-415 through which the chin camera 6-416 can send and receive signals.
[0128] Any of the features, components, and / or parts, including their arrangements and configurations, shown in Figure 1L, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in Figures 1I-1K and described herein. Similarly, the example devices, features, components, and parts shown in Figure 1L may include any of the features, components, and / or parts, including their arrangements and configurations, shown and described with reference to Figures 1I-1K, alone or in any combination.
[0129] 1M shows a rear perspective view of an interpupillary distance (IPD) adjustment system 11.1.1-102 including first and second optical modules 11.1.1-104a-b slidably engaged / coupled to respective guide rods 11.1.1-108a-b and motors 11.1.1-110a-b of left and right adjustment subsystems 11.1.1-106a-b. The IPD adjustment system 11.1.1-102 can be coupled to a bracket 11.1.1-112 and can include a button 11.1.1-114 in electrical communication with the motors 11.1.1-110a-b. In at least one example, the button 11.1.1-114 is in electrical communication with the first and second motors 11.1.1-110a-b via a processor or other circuit components to activate the first and second motors 11.1.1-110a-b and cause the first and second optical modules 11.1.1-104a-b, respectively, to change position relative to one another.
[0130] In at least one example, the first and second optical modules 11.1.1-104a-b can include respective display screens configured to project light toward the user's eyes when wearing the HMD 11.1.1-100. In at least one example, the user can manipulate (e.g., press and / or rotate) the button 11.1.1-114 to actuate position adjustments of the optical modules 11.1.1-104a-b to match the interpupillary distance of the user's eyes. The optical modules 11.1.1-104a-b can also include one or more cameras or other sensors / sensor systems for imaging and measuring the user's IPD so that the optical modules 11.1.1-104a-b can be adjusted to match the IPD.
[0131] In one example, a user can actuate the button 11.1.1-114 to trigger an automatic position adjustment of the first and second optical modules 11.1.1-104a-b. In one example, a user can actuate the button 11.1.1-114 to trigger a manual adjustment, such as moving the optical modules 11.1.1-104a-b farther or closer together when the user rotates the button 11.1.1-114 in one direction or the other, until the user visually aligns their IPD. In one example, the manual adjustment is communicated electronically via one or more circuits, and power for movement of the optical modules 11.1.1-104a-b via the motors 11.1.1-110a-b is provided by a power source. In one example, the adjustment and movement of the optical modules 11.1.1-104a-b via actuation of the button 11.1.1-114 is mechanically actuated via movement of the button 11.1.1-114.
[0132] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1M, alone or in any combination, may be included in any of the other example devices, features, components, and parts shown in any other figure shown and described herein. Similarly, in the example devices, features, components, and parts shown in Figure 1M, any of the features, components, and / or parts, including their arrangement and configuration, shown and described with reference to any other figure shown and described herein, either alone or in any combination.
[0133] FIG. 1N shows a front perspective view of a portion of an HMD 11.1.2-100 including an outer structural frame 11.1.2-102 and an inner or intermediate structural frame 11.1.2-104 that define first and second apertures 11.1.2-106a, 11.1.2-106b. The apertures 11.1.2-106a-b are shown with dashed lines in FIG. 1N because the view of the apertures 11.1.2-106a-b may be obstructed by one or more other components of the HMD 11.1.2-100 coupled to the inner frame 11.1.2-104 and / or the outer frame 11.1.2-102, as shown. In at least one example, the HMD 11.1.2-100 can include a first mounting bracket 11.1.2-108 coupled to the inner frame 11.1.2-104. In at least one example, a mounting bracket 11.1.2-108 is coupled to the inner frame 11.1.2-104 between the first and second apertures 11.1.2-106a-b.
[0134] The mounting bracket 11.1.2-108 may include an intermediate or central portion 11.1.2-109 coupled to the inner frame 11.1.2-104. In some examples, the intermediate or central portion 11.1.2-109 may not be the geometric middle or center of the bracket 11.1.2-108. Rather, the intermediate / central portion 11.1.2-109 may be disposed between first and second cantilevered extension arms extending away from the intermediate portion 11.1.2-109. In at least one example, the mounting bracket 108 includes first and second cantilevered arms 11.1.2-112 and 11.1.2-114 extending away from the intermediate portion 11.1.2-109 of the mounting bracket 11.1.2-108 coupled to the inner frame 11.1.2-104.
[0135] As shown in FIG. 1N, the outer frame 11.1.2-102 can define a curved shape on its underside to accommodate a user's nose when the user is wearing the HMD 11.1.2-100. The curved shape can be referred to as a nose bridge 11.1.2-111 and can be centrally located on the underside of the HMD 11.1.2-100 as shown. In at least one example, the mounting bracket 11.1.2-108 can be connected to the inner frame 11.1.2-102 between the apertures 11.1.2-106a-b such that the cantilever arms 11.1.2-112, 11.1.2-114 extend downward and laterally outward away from the intermediate portion 11.1.2-109 to complement the shape of the nose bridge 11.1.2-111 of the outer frame 11.1.2-104. In this manner, the mounting bracket 11.1.2-108 is configured to accommodate the user's nose as described above. The shape of the nose bridge 11.1.2-111 accommodates the nose in that the nose bridge 11.1.2-111 provides a curvature that curves with, over, on and around the user's nose for comfort and fit.
[0136] The first cantilevered arm 11.1.2-112 can extend in a first direction away from the intermediate portion 11.1.2-109 of the mounting bracket 11.1.2-108, and the second cantilevered arm 11.1.2-114 can extend in a second direction opposite the first direction away from the intermediate portion 11.1.2-109 of the mounting bracket 11.1.2-10. The first and second cantilevered arms 11.1.2-112, 11.1.2-114 are referred to as "cantilevered" or "cantilever" arms because each arm 11.1.2-112, 11.1.2-114 includes a distal free end 11.1.2-116, 11.1.2-118, respectively, that is not secured to the inner and outer frames 11.1.2-102, 11.1.2-104. In this way, the arms 11.1.2-112, 11.1.2-114 are cantilevered from intermediate portions 11.1.2-109 which may be connected to the inner frame 11.1.2-104 with the distal ends 11.1.2-102, 11.1.2-104 unattached.
[0137] In at least one example, the HMD 11.1.2-100 can include one or more components coupled to the mounting bracket 11.1.2-108. In one example, the components include a plurality of sensors 11.1.2-110a-f. Each sensor of the plurality of sensors 11.1.2-110a-f can include various types of sensors, including cameras, IR sensors, etc. In some examples, one or more of the sensors 11.1.2-110a-f can be used for object recognition in three-dimensional space, such that maintaining accurate relative positions of two or more of the plurality of sensors 11.1.2-110a-f is important. The cantilevered nature of the mounting bracket 11.1.2-108 can protect the sensors 11.1.2-110a-f from damage and repositioning in the event of an accidental drop by the user. Because the sensors 11.1.2-110a-f are cantilevered onto the arms 11.1.2-112, 11.1.2-114 of the mounting bracket 11.1.2-108, stresses and deformations of the inner and / or outer frames 11.1.2-104, 11.1.2-102 are not transferred to the cantilevered arms 11.1.2-112, 11.1.2-114 and therefore do not affect the relative positioning of the sensors 11.1.2-110a-f coupled / attached to the mounting bracket 11.1.2-108.
[0138] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1N, alone or in any combination, may be included in any of the other example devices, features, and parts described herein. Similarly, any of the features, components, and / or parts, including their arrangement and configuration, shown and described herein, alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1N.
[0139] FIG. 10 shows an example of an optical module 11.3.2-100 for use in an electronic device such as an HMD, including the HDM device described herein. As shown in one or more other examples described herein, optical module 11.3.2-100 may be one of two optical modules in an HMD, each aligned to project light toward a user's eye. In this manner, a first optical module can project light toward a first eye of a user through a display screen, and a second optical module of the same device can project light toward a second eye of the user through another display screen.
[0140] In at least one example, the optical module 11.3.2-100 can include an optical frame or housing 11.3.2-102, which can also be referred to as a barrel or optical module barrel. The optical module 11.3.2-100 can also include a display 11.3.2-104, including a display screen or multiple display screens, coupled to the housing 11.3.2-102. The display 11.3.2-104 can be coupled to the housing 11.3.2-102 such that the display 11.3.2-104 is configured to project light toward a user's eyes when the HMD of which the display module 11.3.2-100 is a part is worn during use. In at least one example, the housing 11.3.2-102 can surround the display 11.3.2-104 and provide a connection mechanism for coupling other components of the optical module described herein.
[0141] In one example, the optical module 11.3.2-100 may include one or more cameras 11.3.2-106 coupled to the housing 11.3.2-102. The cameras 11.3.2-106 may be positioned relative to the display 11.3.2-104 and the housing 11.3.2-102 such that the cameras 11.3.2-106 are configured to capture one or more images of a user's eyes during use. In at least one example, the optical module 11.3.2-100 may also include a light strip 11.3.2-108 surrounding the display 11.3.2-104. In one example, the light strip 11.3.2-108 is disposed between the display 11.3.2-104 and the camera 11.3.2-106. The light strip 11.3.2-108 may include a plurality of lights 11.3.2-110. The plurality of lights may include one or more light-emitting diodes (LEDs) or other lights configured to project light toward the user's eyes when the HMD is worn. The individual lights 11.3.2-110 of the light strip 11.3.2-108 may be spaced around the strip 11.3.2-108 and thus may be evenly or unevenly spaced around the display 11.3.2-104 at various locations on the strip 11.3.2-108 and around the display 11.3.2-104.
[0142] In at least one example, the housing 11.3.2-102 defines a viewing opening 11.3.2-101 through which a user can view the display 11.3.2-104 when the HMD device is worn. In at least one example, the LEDs are configured and arranged to emit light onto the user's eyes through the viewing opening 11.3.2-101. In one example, the camera 11.3.2-106 is configured to capture one or more images of the user's eyes through the viewing opening 11.3.2-101.
[0143] As noted above, each of the components and features of optical module 11.3.2-100 shown in FIG. 1O may be replicated in another (e.g., a second) optical module disposed with the HMD to interact with (e.g., project light and capture images from) the user's other eye.
[0144] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1O may be included, alone or in any combination, in any of the other example devices, features, components, and parts shown in Figure 1P or otherwise described herein. Similarly, any of the features, components, and / or parts, including their arrangement and configuration, shown and described with reference to Figure 1P or otherwise described herein may be included, either alone or in any combination, in the example devices, features, components, and parts shown in Figure 1O.
[0145] 1P shows a cross-sectional view of an example optical module 11.3.2-200 including a housing 11.3.2-202, a display assembly 11.3.2-204 coupled to the housing 11.3.2-202, and a lens 11.3.2-216 coupled to the housing 11.3.2-202. In at least one example, the housing 11.3.2-202 defines a first aperture or channel 11.3.2-212 and a second aperture or channel 11.3.2-214. The channels 11.3.2-212, 11.3.2-214 can be configured to slidably engage respective rails or guide rods of an HMD device to enable the optical module 11.3.2-200 to be positioned relative to a user's eyes to match the user's inter-papillary distance (IPD). The housing 11.3.2-202 can slidably engage guide rods to secure the optical module 11.3.2-200 in place within the HMD.
[0146] In at least one example, the optical module 11.3.2-200 may also include a lens 11.3.2-216 coupled to the housing 11.3.2-202 and disposed between the display assembly 11.3.2-204 and the user's eyes when the HMD is worn. The lens 11.3.2-216 may be configured to direct light from the display assembly 11.3.2-204 toward the user's eyes. In at least one example, the lens 11.3.2-216 may be part of a lens assembly that includes a corrective lens removably attached to the optical module 11.3.2-200. In at least one example, the lens 11.3.2-216 is disposed over the light strip 11.3.2-208 and one or more eye tracking cameras 11.3.2-206, such that the camera 11.3.2-206 is configured to capture images of the user's eyes through the lens 11.3.2-216, and the light strip 11.3.2-208 includes lights configured to project light into the user's eyes through the lens 11.3.2-216 during use.
[0147] Any of the features, components, and / or parts, including their arrangement and configuration, shown in Figure 1P, alone or in any combination, may be included in any of the other example devices, features, components, and parts described herein. Similarly, any of the features, components, and / or parts, including their arrangement and configuration, shown and described herein, either alone or in any combination, may be included in the example devices, features, components, and parts shown in Figure 1P.
[0148] 2 is a block diagram of an example controller 110 according to some embodiments. While certain features are shown, those skilled in the art will understand from this disclosure that various other features are not shown for the sake of brevity so as not to obscure more pertinent aspects of the embodiments disclosed herein. Thus, by way of non-limiting example, in some embodiments, the controller 110 includes one or more processing units 202 (e.g., a microprocessor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a graphics processing unit (GPU), a central processing unit (CPU), a processing core, etc.), one or more input / output (I / O) devices 206, one or more communication interfaces 208 (e.g., Universal Serial Bus (USB), FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Global Positioning System (GPS), Infrared (IR), BLUETOOTH, ZIGBEE, or similar types of interfaces), one or more programming (e.g., I / O) interfaces 210, memory 220, and one or more communication buses 204 for interconnecting these and various other components.
[0149] In some embodiments, one or more communication buses 204 include circuitry that interconnects and controls communications between system components. In some embodiments, one or more I / O devices 206 include at least one of a keyboard, a mouse, a touchpad, a joystick, one or more microphones, one or more speakers, one or more image sensors, one or more displays, etc.
[0150] Memory 220 includes high-speed random-access memory, such as dynamic random-access memory (DRAM), static random-access memory (SRAM), double-data-rate random-access memory (DDRRAM), or other random-access solid-state memory devices. In some embodiments, memory 220 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 220 optionally includes one or more storage devices located remotely from the one or more processing units 202. Memory 220 includes a non-transitory computer-readable storage medium. In some embodiments, memory 220, or the non-transitory computer-readable storage medium of memory 220, stores the following programs, modules, and data structures, or a subset thereof, including an optional operating system 230 and an XR experience module 240:
[0151] Operating system 230 includes instructions for handling various basic system services and performing hardware-dependent tasks. In some embodiments, XR experience module 240 is configured to manage and coordinate one or more XR experiences for one or more users (e.g., a single XR experience for one or more users, or multiple XR experiences for respective groups of one or more users). To that end, in various embodiments, XR experience module 240 includes a data acquisition unit 241, a tracking unit 242, an adjustment unit 246, and a data transmission unit 248.
[0152] 1A , and optionally one or more of input device 125, output device 155, sensor 190, and / or peripheral device 195. To that end, in various embodiments, data acquisition unit 241 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0153] In some embodiments, tracking unit 242 is configured to map scene 105 and track the position / location of at least display generating component 120 relative to scene 105 of FIG. 1A , and optionally relative to one or more of input device 125, output device 155, sensor 190, and / or peripheral device 195. To that end, in various embodiments, tracking unit 242 includes instructions and / or logic therefor, as well as heuristics and metadata therefor. In some embodiments, tracking unit 242 includes hand tracking unit 244 and / or eye tracking unit 243. In some embodiments, hand tracking unit 244 is configured to track the position / location of one or more parts of a user's hand and / or the movement of one or more parts of a user's hand relative to scene 105 of FIG. 1A , relative to display generating component 120, and / or relative to a coordinate system defined relative to the user's hand. Hand tracking unit 244 is described in more detail below with respect to FIG. 4. In some embodiments, eye tracking unit 243 is configured to track the position and movement of the user's gaze (or, more broadly, the user's eyes, face, or head) relative to scene 105 (e.g., relative to the physical environment and / or the user (e.g., the user's hands)), or relative to XR content displayed via display generation component 120. Eye tracking unit 243 is described in more detail below with respect to FIG. 5.
[0154] In some embodiments, coordination unit 246 is configured to manage and coordinate the XR experience presented to the user by display generation component 120 and, optionally, by one or more of output devices 155 and / or peripheral devices 195. To that end, in various embodiments, coordination unit 246 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0155] In some embodiments, data transmission unit 248 is configured to transmit data (e.g., presentation data, location data, etc.) to at least display generation component 120, and optionally to one or more of input device 125, output device 155, sensor 190, and / or peripheral device 195. To that end, in various embodiments, data transmission unit 248 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0156] Although the data acquisition unit 241, the tracking unit 242 (e.g., including the eye tracking unit 243 and the hand tracking unit 244), the adjustment unit 246, and the data transmission unit 248 are shown as being present on a single device (e.g., the controller 110), it should be understood that in other embodiments, any combination of the data acquisition unit 241, the tracking unit 242 (e.g., including the eye tracking unit 243 and the hand tracking unit 244), the adjustment unit 246, and the data transmission unit 248 can be located within separate computing devices.
[0157] Furthermore, Figure 2 is intended more to illustrate the functionality of various features that may be present in a particular implementation, as opposed to a structural overview of the embodiments described herein. As will be recognized by those skilled in the art, items shown separately can be combined and some items can be separated. For example, some functional modules shown separately in Figure 2 can be implemented in a single module, and various functions of a single functional block can be implemented by one or more functional blocks in various embodiments. The actual number of modules, as well as the division of specific functions and how features are allocated among them, will vary from implementation to implementation and, in some embodiments, will depend in part on the particular combination of hardware, software, and / or firmware selected for a particular implementation.
[0158] 3 is a block diagram of an example of a display generation component 120, according to some embodiments. While certain features are shown, those skilled in the art will understand from this disclosure that, for the sake of brevity, various other features are not shown so as to not obscure more pertinent aspects of the embodiments disclosed herein. To that end, by way of non-limiting example, in some embodiments, the display generation component 120 (e.g., an HMD) includes one or more processing units 302 (e.g., microprocessors, ASICs, FPGAs, GPUs, CPUs, processing cores, etc.), one or more input / output (I / O) devices and sensors 306, one or more communication interfaces 308 (e.g., USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, infrared, BLUETOOTH, ZIGBEE, and / or similar types of interfaces), one or more programming (e.g., I / O) interfaces 310, one or more XR displays 312, one or more optional inward-facing and / or outward-facing image sensors 314, memory 320, and one or more communication buses 304 for interconnecting these and various other components.
[0159] In some embodiments, the one or more communication buses 304 include circuitry that interconnects and controls communications between system components. In some embodiments, the one or more I / O devices and sensors 306 include at least one of an inertial measurement unit (IMU), an accelerometer, a gyroscope, a thermometer, one or more physiological sensors (e.g., a blood pressure monitor, a heart rate monitor, a blood oxygen sensor, a blood glucose sensor, etc.), one or more microphones, one or more speakers, a haptic engine, one or more depth sensors (e.g., structured light, time of flight, etc.), etc.
[0160] In some embodiments, the one or more XR displays 312 are configured to provide an XR experience to a user. In some embodiments, the one or more XR displays 312 correspond to holographic, digital light processing (DLP), liquid crystal display (LCD), liquid crystal on silicon (LCoS), organic light-emitting field-effect transistor (OLET), organic light-emitting diode (OLED), surface-conduction electron-emissive element display (SED), field-emission display (FED), quantum dot light-emitting diode (QD-LED), MEMS, and / or similar display types. In some embodiments, the one or more XR displays 312 correspond to a waveguide display, such as a diffractive, reflective, polarized, holographic, etc. For example, the display generation component 120 (e.g., an HMD) includes a single XR display. In another example, the display generation component 120 includes an XR display for each eye of the user. In some embodiments, the one or more XR displays 312 are capable of presenting mixed reality (MR) or virtual reality (VR) content. In some embodiments, the one or more XR displays 312 are capable of presenting mixed reality (MR) or virtual reality (VR) content.
[0161] In some embodiments, the one or more image sensors 314 are configured to acquire image data corresponding to at least a portion of the user's face, including the user's eyes (and may be referred to as eye-tracking cameras). In some embodiments, the one or more image sensors 314 are configured to acquire image data corresponding to at least a portion of the user's hand(s) and optionally the user's arm(s) (and may be referred to as hand-tracking cameras). In some embodiments, the one or more image sensors 314 are configured to face forward to acquire image data corresponding to a scene as the user would view it if the display generating component 120 (e.g., an HMD) were not present (and may be referred to as a scene camera). The one or more optional image sensors 314 may include one or more RGB cameras (e.g., with a complementary metal-oxide semiconductor (CMOS) image sensor or a charge-coupled device (CCD) image sensor), one or more infrared (IR) cameras, one or more event-based cameras, and / or the like.
[0162] Memory 320 includes high-speed random-access memory, such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices. In some embodiments, memory 320 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 320 optionally includes one or more storage devices located remotely from the one or more processing units 302. Memory 320 includes a non-transitory computer-readable storage medium. In some embodiments, memory 320, or its non-transitory computer-readable storage medium, stores the following programs, modules, and data structures, or a subset thereof, including an optional operating system 330 and an XR presentation module 340:
[0163] The operating system 330 includes instructions for handling various basic system services and for performing hardware-dependent tasks. In some embodiments, the XR presentation module 340 is configured to present XR content to a user via one or more XR displays 312. To that end, in various embodiments, the XR presentation module 340 includes a data acquisition unit 342, an XR presentation unit 344, an XR map generation unit 346, and a data transmission unit 348.
[0164] In some embodiments, the data acquisition unit 342 is configured to acquire data (e.g., presentation data, interaction data, sensor data, location data, etc.) from at least the controller 110 of Figure 1A. To that end, in various embodiments, the data acquisition unit 342 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0165] In some embodiments, the XR presentation unit 344 is configured to present XR content via one or more XR displays 312. To that end, in various embodiments, the XR presentation unit 344 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0166] In some embodiments, the XR map generation unit 346 is configured to generate an XR map (e.g., a 3D map of a mixed reality scene or a map of a physical environment in which computer-generated objects can be placed to generate an extended reality) based on the media content data. To that end, in various embodiments, the XR map generation unit 346 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0167] In some embodiments, data transmission unit 348 is configured to transmit data (e.g., presentation data, location data, etc.) to at least controller 110, and optionally to one or more of input device 125, output device 155, sensor 190, and / or peripheral device 195. To that end, in various embodiments, data transmission unit 348 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0168] Although the data acquisition unit 342, the XR presentation unit 344, the XR map generation unit 346, and the data transmission unit 348 are shown as residing on a single device (e.g., the display generation component 120 of FIG. 1A), it should be understood that in other embodiments, any combination of the data acquisition unit 342, the XR presentation unit 344, the XR map generation unit 346, and the data transmission unit 348 can be located in separate computing devices.
[0169] Furthermore, Figure 3 is intended more to illustrate the functionality of various features that may be present in a particular implementation, as opposed to a structural overview of the embodiments described herein. As will be recognized by those skilled in the art, items shown separately can be combined and some items can be separated. For example, some functional modules shown separately in Figure 3 can be implemented within a single module, and various functions of a single functional block can be implemented by one or more functional blocks in various embodiments. The actual number of modules, as well as the division of specific functions and how features are allocated among them, will vary from implementation to implementation and, in some embodiments, will depend in part on the particular combination of hardware, software, and / or firmware selected for a particular implementation.
[0170] 4 is a schematic diagram of an example embodiment of hand tracking device 140. In some embodiments, hand tracking device 140 (FIG. 1A) is controlled by hand tracking unit 244 (FIG. 2) to track the position / location of one or more parts of a user's hand and / or the movement of one or more parts of a user's hand relative to scene 105 of FIG. 1A (e.g., relative to a portion of the physical environment surrounding the user, relative to display generating component 120, or relative to a portion of the user (e.g., the user's face, eyes, or head), and / or relative to the user's hand). In some embodiments, hand tracking device 140 is part of display generating component 120 (e.g., embedded in or attached to a head-mounted device). In some embodiments, hand tracking device 140 is separate from display generating component 120 (e.g., located in a separate housing or attached to a separate physical support structure).
[0171] In some embodiments, the hand tracking device 140 includes an image sensor 404 (e.g., one or more IR cameras, 3D cameras, depth cameras, and / or color cameras) that captures three-dimensional scene information including at least the hand 406 of a human user. The image sensor 404 captures hand images with sufficient resolution to allow for differentiation of the fingers and their respective positions. The image sensor 404 typically captures images of other parts of the user's body, or all of the body, and can have either zoom capabilities or a dedicated sensor with high magnification to capture hand images at a desired resolution. In some embodiments, the image sensor 404 also captures 2D color video images of the hand 406 and other elements of the scene. In some embodiments, the image sensor 404 is used in conjunction with or functions as an image sensor that captures the physical environment of the scene 105. In some embodiments, the image sensor 404 is positioned relative to the user or the user's environment such that the field of view of the image sensor, or a portion thereof, is used to define an interaction space in which hand movements captured by the image sensor are processed as inputs to the controller 110.
[0172] In some embodiments, image sensor 404 outputs a sequence of frames containing 3D map data (and possibly color image data) to controller 110, which extracts high-level information from the map data. This high-level information is typically provided via an application program interface (API) to an application running on the controller, which drives display generation component 120 accordingly. For example, a user can interact with software running on controller 110 by moving their hand 406 and changing the posture of their hand.
[0173] In some embodiments, the image sensor 404 projects a spot pattern onto a scene including the hand 406 and captures an image of the projected pattern. In some embodiments, the controller 110 calculates the 3D coordinates of points in the scene (including points on the surface of the user's hand) by triangulation based on the lateral shift of the spots of the pattern. This approach is advantageous in that it does not require the user to hold or wear any type of beacon, sensor, or other marker. This provides depth coordinates of points in the scene relative to a predetermined reference plane at a specific distance from the image sensor 404. In this disclosure, the image sensor 404 is assumed to define an orthogonal set of x, y, and z axes such that the depth coordinate of a point in the scene corresponds to the z component measured by the image sensor. Alternatively, the image sensor 404 (e.g., a hand tracking device) can use other 3D mapping methods, such as stereoscopic imaging or time-of-flight measurements, based on single or multiple cameras or other types of sensors.
[0174] In some embodiments, the hand tracking device 140 captures and processes a time sequence of depth maps containing the user's hand while the user moves the hand (e.g., the entire hand or one or more fingers). Software running on the image sensor 404 and / or a processor in the controller 110 processes the 3D map data to extract patch descriptors of the hand in these depth maps. The software matches these descriptors to patch descriptors stored in the database 408, based on a previous training process, to estimate the pose of the hand in each frame. The pose typically includes the 3D locations of the user's wrist joints and fingertips.
[0175] The software can also analyze hand and / or finger trajectories across multiple frames in a sequence to identify gestures. The pose estimation functionality described herein may be interleaved with motion tracking functionality, whereby patch-based pose estimation is performed only once every two (or more) frames, while tracking is used to discover pose changes that occur across the remaining frames. The pose, motion, and gesture information is provided to an application program running on controller 110 via the API described above. This program can, for example, move and modify an image presented on display generation component 120 or perform other functions in response to the pose and / or gesture information.
[0176] In some embodiments, the gesture includes an air gesture, which is detected without (or independent of) the user touching an input element that is part of a device (e.g., computer system 101, one or more input devices 125, and / or hand tracking device 140) and is based on detected movement of a part of the user's body in the air (e.g., head, one or more arms, one or more hands, one or more fingers, and / or one or more legs), including movement of the user's body relative to an absolute reference (e.g., the angle of the user's arm relative to the ground or the distance of the user's hand relative to the ground), movement of the user's body relative to another part of the user's body (e.g., movement of the user's hand relative to the user's shoulder, movement of one of the user's hands relative to another of the user's hands, and / or movement of a user's finger relative to another finger or part of the user's hand), and / or absolute movement of the user's body part (e.g., a tap gesture involving movement of a hand in a predetermined posture by a predetermined amount and / or speed, or a shake gesture involving a predetermined speed or amount of rotation of the user's body part).
[0177] In some embodiments, input gestures used in various examples and embodiments described herein include air gestures performed by movement of a user's finger(s) relative to other finger(s) or part(s) of the user's hand to interact with an XR environment (e.g., a virtual or mixed reality environment), according to some embodiments. In some embodiments, an air gesture is a gesture that is detected without the user touching an input element that is part of the device (or independent of an input element that is part of the device) and is based on detected movement of a part of the user's body in the air, including movement of the user's body relative to an absolute reference (e.g., the angle of the user's arm relative to the ground or the distance of the user's hand relative to the ground), movement of the user's body relative to another part of the user's body (e.g., movement of the user's hand relative to the user's shoulder, movement of the user's other hand relative to one of the user's hands, and / or movement of the user's fingers relative to another finger or part of the user's hand), and / or absolute movement of the user's body part (e.g., a tap gesture that includes movement of the hand in a predetermined pose by a predetermined amount and / or speed, or a shake gesture that includes rotation of the user's body part at a predetermined speed or amount).
[0178] In some embodiments where the input gesture is an air gesture (e.g., in the absence of physical contact with an input device that provides a computer system with information about which user interface element is the target of the user input, such as contact with a user interface element displayed on a touchscreen or contact with a mouse or trackpad to move a cursor to a user interface element), the gesture takes into account the user's attention (e.g., gaze) to determine the target of the user input (e.g., in the case of direct input, as described below). Thus, in implementations that include air gestures, the input gesture is detected attention (e.g., gaze) to a user interface element in combination with (e.g., simultaneous with) movement of the user's finger(s) and / or hand to perform pinch and / or tap input, as described in more detail below.
[0179] In some embodiments, an input gesture directed at a user interface object is performed directly or indirectly with reference to the user interface object. For example, user input is performed directly at a user interface object in response to performing an input gesture with the user's hand at a position corresponding to the user interface object's position in the three-dimensional environment (e.g., as determined based on the user's current viewpoint). In some embodiments, an input gesture is performed indirectly at a user interface object in response to detecting the user's attention (e.g., gaze) to the user interface object while performing the input gesture while the user's hand position is not at a position corresponding to the user interface object's position in the three-dimensional environment. For example, for a direct input gesture, a user can direct the user's input at a user interface object by initiating the gesture at or near a position corresponding to the user interface object's displayed position (e.g., within a distance of 0.5 cm, 1 cm, 5 cm, or 0-5 cm, measured from an outer edge of the option or a central portion of the option). For indirect input gestures, a user can direct their input to a user interface object by paying attention to the user interface object (e.g., by gazing at the user interface object), and while paying attention to the option, the user initiates an input gesture (e.g., at any position detectable by the computer system) (e.g., at a position that does not correspond to the displayed position of the user interface object).
[0180] In some embodiments, input gestures (e.g., air gestures) used in various examples and embodiments described herein include pinch inputs and tap inputs for interacting with a virtual or mixed reality environment, according to some embodiments. For example, pinch inputs and tap inputs, as described below, are performed as air gestures.
[0181] In some embodiments, the pinch input is part of an air gesture, including one or more of a pinch gesture, a long pinch gesture, a pinch-and-drag gesture, or a double pinch gesture. For example, a pinch gesture that is an air gesture includes moving two or more fingers of a hand to contact each other, i.e., optionally with a short break (e.g., within 0-1 second) after contact with each other. A long pinch gesture that is an air gesture includes moving two or more fingers of a hand to contact each other for at least a threshold amount of time (e.g., at least 1 second) before detecting a break in contact with each other. For example, a long pinch gesture includes a user holding a pinch gesture (e.g., when two or more fingers are in contact), and the long pinch gesture continues until a break in contact between the two or more fingers is detected. In some embodiments, a double pinch gesture that is an air gesture includes two (e.g., or more) pinch inputs (e.g., performed by the same hand) that are detected immediately in succession (e.g., within a predetermined period of time) after each other. For example, a user performs a first pinch input (e.g., a pinch input or a long pinch input), releases the first pinch input (e.g., breaking contact between two or more fingers), and performs a second pinch input within a predetermined period of time (e.g., within 1 second or 2 seconds) after releasing the first pinch input.
[0182] In some embodiments, a pinch-and-drag gesture that is an air gesture includes a pinch gesture (e.g., a pinch gesture or a long pinch gesture) performed in conjunction with (e.g., followed by) a drag input that changes the position of a user's hand from a first position (e.g., a start position of the drag) to a second position (e.g., an end position of the drag). In some embodiments, a user maintains the pinch gesture while performing the drag input and releases the pinch gesture (e.g., spreading two or more fingers apart) to end the drag gesture (e.g., at the second position). In some embodiments, the pinch input and the drag input are performed by the same hand (e.g., a user pinches two or more fingers together and moves the same hand to a second position in the air with a drag gesture). In some embodiments, the pinch input is performed by a user's first hand and the drag input is performed by the user's second hand (e.g., the user's second hand moves from a first position to a second position in the air while the user continues the pinch input with the user's first hand). In some embodiments, an input gesture that is an air gesture includes an input (e.g., a pinch input and / or a tap input) performed using both of a user's hands. For example, the input gesture includes two (e.g., or more) pinch inputs performed in conjunction with each other (e.g., simultaneously or within a predetermined period of time). For example, a first pinch gesture (e.g., a pinch input, a long pinch input, or a pinch and drag input) performed using a first hand of the user and a second pinch input performed using the other hand (e.g., a second of the user's hands) in conjunction with performing the pinch input using the first hand. In some embodiments, a movement between the user's hands occurs (e.g., to increase and / or decrease the distance or relative orientation between the user's hands).
[0183] In some embodiments, a tap input (e.g., directed toward a user interface element) performed as an air gesture includes movement(s) of a user's finger(s) toward the user interface element, movement of a user's hand toward a user interface element, optionally with the user's finger(s) extended toward the user interface element, a downward movement of a user's finger (e.g., mimicking a mouse click action or a tap on a touchscreen), or other predefined movement of the user's hand. In some embodiments, a tap input performed as an air gesture is detected based on movement characteristics of the finger or hand performing the tap gesture, moving the finger or hand away from the user's viewpoint and / or toward the object that is the target of the tap input followed by an end of the movement. In some embodiments, an end of the movement is detected based on a change in movement characteristics of the finger or hand performing the tap gesture (e.g., an end of movement away from the user's viewpoint and / or toward the object that is the target of the tap input, a reversal of the direction of movement of the finger or hand, and / or a reversal of the direction of acceleration of the movement of the finger or hand).
[0184] In some embodiments, the user's attention is determined to be directed to a portion of the three-dimensional environment based on detecting a gaze directed to the portion of the three-dimensional environment (optionally, without requiring other conditions). In some embodiments, the device determines that the user's attention is directed to the portion of the three-dimensional environment based on detecting a gaze directed to the portion of the three-dimensional environment with one or more additional conditions, such as requiring the gaze to be directed to the portion of the three-dimensional environment for at least a threshold duration (e.g., dwell time) while the user's viewpoint is within a distance threshold from the portion of the three-dimensional environment, and / or requiring the gaze to be directed to the portion of the three-dimensional environment, and if one of the additional conditions is not met, the device determines that the user's attention is not directed to the portion of the three-dimensional environment to which the gaze is directed (e.g., until one or more additional conditions are met).
[0185] In some embodiments, detection of a ready configuration of a user or a portion of a user is detected by a computer system, and detection of a ready configuration of the hands is used by the computer system as an indication that the user is likely preparing to interact with the computer system using one or more air gesture inputs performed with the hands (e.g., pinch, tap, pinch and drag, double pinch, long pinch, or other air gestures described herein). For example, the ready state of a hand is determined based on whether the hand has a predetermined hand geometry (e.g., a pre-pinch geometry in which the thumb and one or more fingers are extended and spaced apart, ready to perform a pinch or grab gesture, or a pre-tap geometry in which one or more fingers are extended and the palm is facing away from the user), whether the hand is in a predetermined position relative to the user's viewpoint (e.g., below the user's head, above the user's waist, extended at least 15 cm, 20 cm, 25 cm, 30 cm, or 50 cm from the body), and / or whether the hand has moved in a particular manner (e.g., above the user's waist, moved toward an area in front of the user below the user's head, or away from the user's body or legs). In some embodiments, the ready state is used to determine whether an interactive element of a user interface is responsive to attentional (e.g., gaze) input.
[0186] In scenarios where input is described with reference to air gestures, it should be understood that similar gestures can also be detected using a hardware input device attached to or held by one or more of the user's hands, where the position of the hardware input device in space can be tracked using optical tracking, one or more accelerometers, one or more gyroscopes, one or more magnetometers, and / or one or more inertial measurement units, and where the position and / or movement of the hardware input device is substituted for the position and / or movement of the one or more hands in the corresponding air gesture(s). It should be understood that in scenarios where input is described with reference to air gestures, similar gestures can also be detected using a hardware input device attached to or held by one or more of the user's hands. User input can be detected using controls included in a hardware input device, such as one or more touch-sensitive input elements, one or more pressure-sensitive input elements, one or more buttons, one or more knobs, one or more dials, one or more joysticks, one or more hand or finger covers capable of detecting the position or change in position of parts of the hands and / or fingers relative to each other, relative to the user's body, and / or relative to the user's physical environment, and / or other hardware input device controls, where user input using controls included in a hardware input device is used in place of a hand and / or finger gesture, such as an air tap or air pinch, in a corresponding air gesture(s). For example, a selection input described as being made with an air tap or air pinch input can alternatively be detected with a button press, a tap on a touch-sensitive surface, a press on a pressure-sensitive surface, or other hardware input.As another example, movement input described as being made by an air pinch and drag may alternatively be detected based on interaction with a hardware input control, such as a press and hold of a button, a touch on a touch-sensitive surface, a press on a pressure-sensitive surface, or based on hardware input followed by the movement of another hardware input device in space (e.g., accompanying the hand with which the hardware input device is associated). Similarly, two-handed input, including the movement of both hands relative to one another, may be made using one air gesture and one hardware input device held in the hand not making the air gesture, two hardware input devices held in separate hands, or two air gestures made by separate hands, using various combinations of air gestures and / or input detected by one or more of the hardware input devices described above.
[0187] In some embodiments, the software may be downloaded to the controller 110 in electronic form, for example, over a network, or alternatively may be provided on a tangible, non-transitory medium, such as an optical, magnetic, or electronic memory medium. In some embodiments, the database 408 is similarly stored in memory associated with the controller 110. Alternatively, or additionally, some or all of the described functions of the computer may be implemented in dedicated hardware, such as a custom or semi-custom integrated circuit or a programmable digital signal processor (DSP). While the controller 110 is shown in FIG. 4 as, by way of example, a separate unit from the image sensor 404, some or all of the processing functions of the controller may be implemented by a suitable microprocessor and software, or by dedicated circuitry within the housing of the image sensor 404 (e.g., a hand tracking device), or otherwise associated with the image sensor 404. In some embodiments, at least some of these processing functions may be implemented by a suitable processor integrated with the display generation component 120 (e.g., in a television set, handheld device, or head-mounted device) or using any other suitable computerized device, such as a game console or media player. The sensing function of the image sensor 404 may likewise be integrated into a computer or other computerized device that is controlled by the sensor output.
[0188] FIG. 4 also includes a schematic diagram of a depth map 410 captured by the image sensor 404, according to some embodiments. The depth map includes a matrix of pixels having respective depth values, as described above. A pixel 412 corresponding to the hand 406 is segmented from the background and wrist in this map. The intensity of each pixel in the depth map 410 is inversely proportional to the depth value, i.e., the measured z-distance from the image sensor 404, with increasing depth resulting in darker shades. The controller 110 processes these depth values to identify and segment components of the image (i.e., groups of adjacent pixels) that have characteristics of a human hand. These characteristics can include, for example, the overall size, shape, and frame-to-frame motion of the depth map sequence.
[0189] 4 also schematically illustrates a hand skeleton 414 that the controller 110 ultimately extracts from the depth map 410 of the hand 406, according to some embodiments. In FIG. 4, the hand skeleton 414 is overlaid on a hand background 416 that was segmented from the original depth map. In some embodiments, key feature points on the hand (e.g., knuckles, fingertips, center of the palm, end of the hand where it connects to the wrist, etc.), and optionally the wrist or arm connected to the hand, are identified and positioned on the hand skeleton 414. In some embodiments, the location and movement of these key feature points over multiple image frames are used by the controller 110 to determine hand gestures performed by the hand or the current state of the hand, according to some embodiments.
[0190] FIG. 5 shows an exemplary embodiment of eye tracking device 130 ( FIG. 1A ). In some embodiments, eye tracking device 130 is controlled by eye tracking unit 243 ( FIG. 2 ) to track the position and movement of a user's gaze relative to scene 105 or relative to XR content displayed via display generation component 120. In some embodiments, eye tracking device 130 is integrated with display generation component 120. For example, in some embodiments, if display generation component 120 is a head-mounted device such as a headset, helmet, goggles, or glasses, or a handheld device disposed in a wearable frame, the head-mounted device includes both components for generating XR content for viewing by the user and components for tracking the user's gaze relative to the XR content. In some embodiments, eye tracking device 130 is separate from display generation component 120. For example, if the display generation component is a handheld device or an XR chamber, eye tracking device 130 is optionally a device separate from the handheld device or the XR chamber. In some embodiments, eye tracking device 130 is a head-mounted device or part of a head-mounted device. In some embodiments, head-mounted eye tracking device 130 is optionally used in conjunction with head-mounted or non-head-mounted display generating components. In some embodiments, eye tracking device 130 is not a head-mounted device, and is optionally used in combination with head-mounted display generating components. In some embodiments, eye tracking device 130 is not a head-mounted device, and is optionally part of non-head-mounted display generating components.
[0191] In some embodiments, the display generation component 120 uses a display mechanism (e.g., left and right near-eye display panels) that displays frames including left and right images in front of the user's eyes to provide the user with a 3D virtual view. For example, the head-mounted display generation component may include left and right optical lenses (referred to herein as eyepieces) positioned between the display and the user's eyes. In some embodiments, the display generation component may include or be coupled to one or more external video cameras that capture video of the user's environment for display. In some embodiments, the head-mounted display generation component may have a transparent or translucent display that allows the user to view the physical environment directly and display virtual objects on the transparent or translucent display. In some embodiments, the display generation component projects virtual objects into the physical environment. The virtual objects are projected, for example, onto a physical surface or as a hologram, allowing an individual using the system to observe the virtual objects superimposed on the physical environment. In such cases, separate display panels and image frames for the left and right eyes may not be required.
[0192] As shown in FIG. 5 , in some embodiments, eye tracking device 130 (e.g., gaze tracking device) includes at least one eye tracking camera (e.g., an infrared (IR) camera or near-IR (NIR) camera) and an illumination source (e.g., an IR or NIR light source such as an array or ring of LEDs) that emits light (e.g., IR or NIR light) toward a user's eyes. The eye tracking camera may be aimed at the user's eyes to receive reflected IR or NIR light from the light source directly from the eyes, or alternatively, may be aimed at a “hot” mirror positioned between the user's eyes and a display panel that reflects IR or NIR light from the eyes to the eye tracking camera while allowing visible light to pass through. Eye tracking device 130 optionally captures images of the user's eyes (e.g., as a video stream captured at 60-120 frames per second (fps)), analyzes the images to generate eye tracking information, and communicates the eye tracking information to controller 110. In some embodiments, the user's eyes are tracked separately by separate eye tracking cameras and illumination sources. In some embodiments, only one eye of the user is tracked by a separate eye-tracking camera and lighting source.
[0193] In some embodiments, the eye tracking device 130 is calibrated using a device-specific calibration process to determine the eye tracking device's parameters for the particular operating environment 100, such as the 3D geometric relationships and parameters of the LEDs, camera, hot mirror (if present), eyepiece, and display screen. The device-specific calibration process may be performed at a factory or another facility before delivery of the AR / VR equipment to the end user. The device-specific calibration process may be an automatic or manual calibration process. The user-specific calibration process may include estimation of a particular user's eye parameters, such as pupil location, central visual location, optical axis, visual axis, eye spacing, etc. According to some embodiments, once the device-specific and user-specific parameters for the eye tracking device 130 have been determined, images captured by the eye tracking camera can be processed using a glint-assisted method to determine the user's current visual axis and point of gaze relative to the display.
[0194] As shown in FIG. 5, eye tracking device 130 (e.g., 130A or 130B) includes an eyepiece(s) 520 and a gaze tracking system including at least one eye tracking camera 540 (e.g., an infrared (IR) or near-IR (NIR) camera) positioned on the side of the user's face where eye tracking occurs and an illumination source 530 (e.g., an IR or NIR light source such as an array or ring of NIR light emitting diodes (LEDs)) that emits light (e.g., IR or NIR light) toward the user's eye(s) 592. The eye tracking camera 540 may be positioned between the user's eye(s) 592 and the display 510 (e.g., the left or right display panel of a head-mounted display, or the display of a handheld device, a projector, etc.) and may be directed at a mirror 550 that reflects IR or NIR light from the eye(s) 592 while transmitting visible light (e.g., as shown at the top of FIG. 5), or may be directed at the user's eye(s) 592 to receive reflected IR or NIR light from the eye(s) 592 (e.g., as shown at the bottom of FIG. 5).
[0195] In some embodiments, controller 110 renders AR or VR frames 562 (e.g., left and right frames for left and right display panels) and provides frames 562 to display 510. Controller 110 uses gaze tracking input 542 from eye tracking camera 540 for various purposes, such as in processing frames 562 for display. Controller 110 optionally estimates the user's viewpoint on display 510 based on gaze tracking input 542 obtained from eye tracking camera 540, using a glint-assisted method or other suitable method. The viewpoint estimated from gaze tracking input 542 is optionally used to determine the direction the user is currently looking.
[0196] Some possible use cases of the user's current gaze direction are described below, but are not intended to be limiting. As an exemplary use case, the controller 110 can render virtual content differently based on the determined user's gaze direction. For example, the controller 110 may generate virtual content with higher resolution in a central visual area determined from the user's current gaze direction than in a peripheral area. As another example, the controller may position or move virtual content within a view based at least in part on the user's current gaze direction. As another example, the controller may display particular virtual content within a view based at least in part on the user's current gaze direction. As another exemplary use case in an AR application, the controller 110 can orient an external camera to capture the physical environment of the XR experience and focus in the determined direction. The external camera's autofocus mechanism can then focus on an object or surface within the environment the user is currently viewing on the display 510. As another exemplary use case, eyepiece 520 may be a focusable lens, and eye-tracking information is used by the controller to adjust the focus of eyepiece 520 so that the virtual object the user is currently looking at has the proper binocular coordination to match the convergence of the user's eyes 592. Controller 110 can utilize the eye-tracking information to orient and focus eyepiece 520 so that close objects the user is looking at appear at the correct distance.
[0197] In some embodiments, the eye tracking device is part of a head-mounted device that includes a display (e.g., display 510), two eyepieces (e.g., eyepiece 520), an eye tracking camera (e.g., eye tracking camera(s) 540), and a light source (e.g., illumination source 530 (e.g., IR or NIR LED)) mounted within a wearable housing. The light source emits light (e.g., IR light or NIR light) toward the user's eye(s) 592. In some embodiments, the light sources may be arranged in a ring or circle around each lens, as shown in FIG. 5. In some embodiments, as an example, eight illumination sources 530 (e.g., LEDs) are arranged around each lens 520. However, more or fewer illumination sources 530 may be used, and other arrangements and locations of the illumination sources 530 may be used.
[0198] In some embodiments, the display 510 emits light in the visible light range and not in the IR or NIR range, and therefore does not introduce noise into the gaze tracking system. Note that the location and angle of the eye tracking camera(s) 540 are given by way of example and are not intended to be limiting. In some embodiments, a single eye tracking camera 540 is located on each side of the user's face. In some embodiments, two or more NIR cameras 540 may be used on each side of the user's face. In some embodiments, a camera 540 with a wider field of view (FOV) and a camera 540 with a narrower FOV may be used on each side of the user's face. In some embodiments, a camera 540 operating at one wavelength (e.g., 850 nm) and a camera 540 operating at a different wavelength (e.g., 940 nm) may be used on each side of the user's face.
[0199] Embodiments of an eye tracking system such as that shown in FIG. 5 may be used, for example, in computer-generated reality, virtual reality, and / or mixed reality applications to provide a user with a computer-generated reality, virtual reality, augmented reality, and / or augmented virtual experience.
[0200] FIG. 6 illustrates a glint-assisted gaze tracking pipeline according to some embodiments. In some embodiments, the gaze tracking pipeline is implemented by a glint-assisted gaze tracking system (e.g., eye tracking device 130 as shown in FIGS. 1A and 5). The glint-assisted gaze tracking system can maintain a tracking state. Initially, the tracking state is off or "no." When in the tracking state, the glint-assisted gaze tracking system tracks the pupil contour and glint in the current frame using prior information from the previous frame when analyzing the current frame. When not in the tracking state, the glint-assisted gaze tracking system attempts to detect the pupil and glint in the current frame, and if successful, initializes the tracking state to "yes" and continues to the next frame in the tracking state.
[0201] As shown in FIG. 6, an eye-tracking camera can capture left and right images of a user's left and right eyes. The captured images are then input into an eye-tracking pipeline for processing beginning at 610. As indicated by the arrow returning to element 600, the eye-tracking system can continue to capture images of the user's eyes at a rate of, for example, 60-120 frames per second. In some embodiments, each set of captured images may be input into the pipeline for processing. However, in some embodiments, or under some conditions, not all captured frames are processed by the pipeline.
[0202] At 610, if the tracking status is yes for the currently captured image, the method proceeds to element 640. If the tracking status is no at 610, the image is analyzed to detect the user's pupil and glint in the image, as shown at 620. If the pupil and glint are successfully detected at 630, the method proceeds to element 640. If not, the method returns to element 610 to process the next image of the user's eyes.
[0203] At 640, proceeding from element 610, the current frame is analyzed to track pupils and glints based in part on previous information from the previous frame. At 640, proceeding from element 630, a tracking state is initialized based on the detected pupils and glints in the current frame. The results of the processing at element 640 are checked to ensure that the tracking or detection results are reliable. For example, the results can be checked to determine whether a sufficient number of glints are successfully tracked or detected in the current frame to perform pupil and gaze estimation. At 650, if the results are not reliable, the tracking state is set to no at element 660 and the method returns to element 610 to process the next image of the user's eyes. At 650, if the results are reliable, the method proceeds to element 670. At 670, the tracking state is set to yes (if not already yes) and the pupil and glint information is passed to element 680 to estimate the user's gaze point.
[0204] 6 is intended to serve as an example of eye-tracking technology that may be used in particular implementations. As will be recognized by those skilled in the art, other eye-tracking technologies, now existing or developed in the future, may be used in place of or in combination with the glint-assisted eye-tracking technology described herein in computer system 101 to provide a user with an XR experience according to various embodiments.
[0205] In some embodiments, the captured portion of the real-world environment 602 is used to provide the user with an XR experience, e.g., a mixed reality environment in which one or more virtual objects are overlaid on a representation of the real-world environment 602.
[0206] Accordingly, the description herein describes several embodiments of three-dimensional environments (e.g., XR environments) that include representations of real-world objects and representations of virtual objects. For example, the three-dimensional environment optionally includes a representation of a table present in a physical environment that is captured and displayed within the three-dimensional environment (e.g., actively via a camera and display of the computer system, or passively via a transparent or translucent display of the computer system). As described above, the three-dimensional environment is optionally a mixed reality system based on a physical environment, where the three-dimensional environment is captured by one or more sensors of the computer system and displayed via a display generation component. As a mixed reality system, the computer system can optionally selectively display portions and / or objects of the physical environment such that each portion and / or object of the physical environment appears to exist within the three-dimensional environment displayed by the computer system. Similarly, the computer system can optionally display virtual objects in the three-dimensional environment such that each portion and / or object of the physical environment appears to exist within the real world (e.g., the physical environment) by placing the virtual objects at respective locations within the three-dimensional environment that have corresponding locations in the real world. For example, the computer system optionally displays the vase so that it appears as if the real vase were placed on a table in the physical environment, hi some embodiments, distinct locations in the three-dimensional environment have corresponding locations in the physical environment.Thus, when a computer system is described as displaying a virtual object at a location distinct from a physical object (e.g., at or near the location of a user's hand, or on or near a physical table, etc.), the computer system displays the virtual object at a particular location in the three-dimensional environment so that the virtual object appears to be at or near the physical object in the physical world (e.g., the virtual object is displayed at a location in the three-dimensional environment that corresponds to the location in the physical environment where the virtual object would be displayed if the virtual object were a real object at that particular location).
[0207] In some embodiments, real-world objects present in the physical environment (e.g., and / or visible via display generation components) that are displayed in the three-dimensional environment can interact with virtual objects that exist only in the three-dimensional environment. For example, the three-dimensional environment can include a table and a vase placed on the table, where the table is a view (or representation) of the physical table in the physical environment and the vase is a virtual object.
[0208] In a three-dimensional environment (e.g., a real environment, a virtual environment, or an environment containing a mixture of real and virtual objects), objects may be referred to as having depth or simulated depth, or objects may be referred to as being visible, displayed, or located at different depths. In this context, depth refers to a dimension other than height or width. In some embodiments, depth is defined relative to a fixed set of coordinates (e.g., a room or object has a height, depth, and width defined relative to a fixed set of coordinates). In some embodiments, depth is defined relative to a user's location or viewpoint, where the depth dimension varies based on the user's location and / or the location and angle of the user's viewpoint. In some embodiments where depth is defined relative to the location of the user positioned relative to a surface of the environment (e.g., the floor or ground surface of the environment), objects that are farther away from the user along a line extending parallel to the surface are considered to have a greater depth within the environment, and / or the depth of an object is measured along an axis that extends outward from the user's location and is parallel to the surface of the environment (e.g., depth is defined in a cylindrical or substantially cylindrical coordinate system with the user's position at the center of the cylinder extending from the user's head toward the user's feet). Depth is defined relative to the user's viewpoint (e.g., a direction relative to a point in space that determines which parts of the environment are visible through a head-mounted device or other display). In some embodiments, objects that are further away from the user's viewpoint along a line that extends parallel to the direction of the user's viewpoint are considered to have greater depth in the environment, and / or the depth of an object is measured along an axis that extends from the user's viewpoint and extends outward from a line that is parallel to the direction of the user's viewpoint (e.g., depth is defined in a spherical or substantially spherical coordinate system with the origin of the viewpoint at the center of a sphere extending outward from the user's head).In some embodiments, depth is defined relative to a user interface container (e.g., a window or application in which application and / or system content is displayed), where the user interface container has a height and / or width, and depth is a dimension orthogonal to the height and / or width of the user interface container. In some embodiments, in situations where depth is defined relative to a user interface container, the height and / or width of the container are typically orthogonal or substantially orthogonal to a line extending from a user-based location (e.g., a user's viewpoint or location) to the user interface container (e.g., a center of the user interface container or another feature of the user interface container) when the container is placed or initially displayed in a three-dimensional environment (e.g., such that the depth dimension of the container extends outward, away from the user or the user's viewpoint). In some embodiments, in situations where depth is defined relative to a user interface container, the depth of an object relative to the user interface container refers to the object's position along the depth dimension of the user interface container. In some embodiments, different containers can have different depth dimensions (e.g., different depth dimensions extending in different directions and / or away from different starting points from a user or a user's viewpoint). In some embodiments, when depth is defined for a user interface container, the direction of the depth dimension remains constant for the user interface container when the location of the user interface container, the user, and / or the user's viewpoint changes (e.g., or when multiple different viewers are viewing the same container in a three-dimensional environment, such as during a face-to-face collaboration session, and / or when multiple participants are in a real-time communication session with shared virtual content that includes the container). In some embodiments, in the case of curved containers (e.g., including containers with curved surfaces or curved content regions), the depth dimension optionally extends into the surface of the curved container.In some situations, z separation (e.g., the separation of two objects in the depth dimension), z height (e.g., the distance of one object from another object in the depth dimension), z position (e.g., the position of one object in the depth dimension), z depth (e.g., the position of one object in the depth dimension), or simulated z dimension (e.g., depth used as an object's dimension, an environment's dimension, a direction in space, and / or a direction in a simulated space) are used to refer to the concept of depth as described above.
[0209] In some embodiments, a user can optionally use one or more hands to interact with virtual objects in the three-dimensional environment as if the virtual objects were actual objects in the physical environment. For example, as described above, one or more sensors of the computer system optionally capture one or more of the user's hands and display a representation of the user's hands in the three-dimensional environment (e.g., in a manner similar to displaying real-world objects in the three-dimensional environment described above), or in some embodiments, due to the transparency / translucency of the user interface, or the projection of the user interface onto a transparent / translucent surface, or the portion of the display generating components displaying the projection of the user interface to the user's eyes or the field of view of the user's eyes, the user's hands are visible through the display generating components by the ability to see the physical environment through the user interface. Thus, in some embodiments, the user's hands are displayed at discrete locations in the three-dimensional environment and are treated as if they were objects in the three-dimensional environment that can interact with virtual objects in the three-dimensional environment as if they were actual physical objects in the physical environment. In some embodiments, the computer system can update the display of the representation of the user's hands in the three-dimensional environment in conjunction with the movement of the user's hands in the physical environment.
[0210] In some of the embodiments described below, for example, for purposes of determining whether a physical object is directly interacting with a virtual object (e.g., whether a hand is touching, grabbing, holding, etc., a virtual object, or whether it is within a threshold distance from the virtual object), the computer system can optionally determine an “effective” distance between the physical object in the physical world and the virtual object in the three-dimensional environment. For example, a hand directly interacting with a virtual object optionally includes one or more of the fingers of a hand pressing a virtual button, a user's hand grasping a virtual vase, two fingers of a user's hand pinching / holding an application's user interface together, and any other types of interactions described herein. For example, when determining whether and / or how a user is interacting with a virtual object, the computer system optionally determines the distance between the user's hand and the virtual object. In some embodiments, the computer system determines the distance between the user's hand and the virtual object by determining the distance between the location of the hand in the three-dimensional environment and the location of the target virtual object in the three-dimensional environment. For example, one or more hands of a user are positioned at particular positions in the physical world, which the computer system optionally captures and displays at particular corresponding positions in the three-dimensional environment (e.g., positions in the three-dimensional environment at which the hands are displayed, if the hands are virtual rather than physical hands). The positions of the hands in the three-dimensional environment are optionally compared to positions of target virtual objects in the three-dimensional environment to determine a distance between the user's one or more hands and the virtual objects. In some embodiments, the computer system optionally determines the distance between a physical object and a virtual object by comparing positions in the physical world (e.g., as opposed to comparing positions in the three-dimensional environment).For example, when determining the distance between one or more of a user's hands and a virtual object, the computer system optionally determines the corresponding location in the physical world of the virtual object (e.g., the position where the virtual object would be located in the physical world if the virtual object were a physical object rather than a virtual object), and then determines the distance between the corresponding physical position and the user's one or more hands. In some embodiments, the same technique is optionally used to determine the distance between any physical object and any virtual object. Thus, as described herein, when determining whether a physical object is in contact with a virtual object or whether a physical object is within a threshold distance of a virtual object, the computer system optionally performs any of the above-mentioned techniques to map the location of the physical object to the three-dimensional environment and / or to map the location of the virtual object to the physical environment.
[0211] In some embodiments, the same or similar techniques are used to determine where or what a user's gaze is directed at and / or where or what a physical stylus held by the user is directed at. For example, if a user's gaze is directed at a particular position in the physical environment, the computer system optionally determines a corresponding position in the three-dimensional environment (e.g., a virtual position of the gaze), and if a virtual object is located at that corresponding virtual position, the computer system optionally determines that the user's gaze is directed at that virtual object. Similarly, the computer system can optionally determine where the physical stylus is pointing in the physical environment based on the orientation of the stylus. In some embodiments, based on this determination, the computer system determines a corresponding virtual position in the three-dimensional environment that corresponds to the location in the physical environment where the stylus is pointing, and optionally determines that the stylus is pointing to the corresponding virtual position in the three-dimensional environment.
[0212] Similarly, embodiments described herein may refer to the location of a user (e.g., a user of a computer system) and / or the location of the computer system within a three-dimensional environment. In some embodiments, a user of a computer system is holding, wearing, or otherwise located at or near the computer system. Thus, in some embodiments, the location of the computer system is used as a proxy for the location of the user. In some embodiments, the location of the computer system and / or the user within the physical environment corresponds to a distinct location within the three-dimensional environment. For example, if a user stands at a location facing a distinct portion of the physical environment that is visible through the display generating components, the location of the computer system is the location within the physical environment (and its corresponding location within the three-dimensional environment) at which the user would see objects within the physical environment in the same position, orientation, and / or size (e.g., absolutely and / or relative to each other) as the objects are visible through the display generating components of the computer system within the three-dimensional environment. Similarly, if the virtual objects displayed in the three-dimensional environment were physical objects in the physical environment (e.g., the physical objects were located in the same physical environment location and had the same physical environment size and orientation as in the three-dimensional environment), the location of the computer system and / or user is the position at which the user would see the virtual objects in the physical environment in the same position, orientation, and / or size (e.g., absolutely and / or relative to each other and to real-world objects) as they were displayed by the display generation components of the computer system in the three-dimensional environment.
[0213] In this disclosure, various input methods are described with respect to interaction with a computer system. Where one example is provided using one input device or input method and another example is provided using a different input device or input method, it should be understood that each example may be compatible with, and optionally utilize, the input device or input method described with respect to the other example. Similarly, various output methods are described with respect to interaction with a computer system. Where one example is provided using one output device or output method and another example is provided using a different output device or output method, it should be understood that each example may be compatible with, and optionally utilize, the output device or output method described with respect to the other example. Similarly, various methods are described with respect to interaction with a virtual environment or a mixed reality environment via a computer system. Where one example is provided using interaction with a virtual environment and another example is provided using a mixed reality environment, it should be understood that each example may be compatible with, and optionally utilize, the method described with respect to the other example. Thus, this disclosure discloses embodiments that are combinations of features of multiple examples, without exhaustively listing all features of the embodiments in the description of each exemplary embodiment. User Interface and Related Processes
[0214] Attention is now directed to embodiments of a user interface (“UI”) and associated processes that may be implemented on a computer system, such as a portable multifunction device or a head-mounted device, in communication with display generation components and (optionally) one or more sensors.
[0215] Examples described herein illustrate how a user of a computer system (e.g., device 700) may initiate and / or modify a live communication session in which the user communicates with one or more users of other respective computer systems. In some embodiments, the live communication session is an audio communication session (e.g., a voice call or telephone call). In some embodiments, the live communication session is a video communication session (e.g., video telephony and / or video conferencing). In some embodiments, the live communication session is an XR communication session, such as a spatial communication session or a non-spatial communication session. During a spatial communication session, one or more users are represented in the XR environment by three-dimensional (3D) representations (e.g., avatars) corresponding to the user(s). In some embodiments, the 3D representations have spatial intermediation such that the 3D representations can move within the XR environment relative to other elements and / or users within the XR environment. During a non-spatial communication session, one or more users are represented in the XR environment by two-dimensional (2D) representations corresponding to the user(s). In some embodiments, the 2D representation includes a video feed of the user, optionally having a fixed position (e.g., location) within the XR environment.
[0216] Figures 7A-7Q show examples of managing a live communication session. Figure 8 is a flow diagram of an example method 800 for managing a live communication session. Figure 9 is a flow diagram of an example method 900 for providing an avatar in a live communication session. The user interfaces of Figures 7A-7Q are used to illustrate processes described below, including the processes of Figures 8 and / or 9.
[0217] 7A-7Q depict device 700 as a handheld device (e.g., a tablet, smartphone, or laptop) having a display 702, in some embodiments, device 700 is a head-mounted device (HMD). The HMD is configured to be worn on the head of a user of device 700 and includes a display 702 on and / or within the HMD. The display 702 is visible to the user when device 700 is worn on the user's head. For example, in some embodiments, the HMD at least partially covers the user's eyes when worn on the user's head, such that the display 702 is positioned above and / or in front of the user's eyes. In such embodiments, the display 702 is configured to display an XR environment during a live communication session in which a user of the HMD is participating.
[0218] 7A , device 700 displays on display 702 an XR environment 704 including elements (e.g., virtual elements and / or physical elements) such as a table 704a and a couch 704b. While displaying XR environment 704, device 700 receives a request to display a communication interface. In some embodiments, the request to display the communication interface is a press of button 703 on device 700. As shown in FIG. 7B , in response to receiving the request, device 700 displays communication interface 710. In some embodiments, communication interface 710 is displayed within XR environment 704.
[0219] Generally, communication interface 710 can be used to initiate and / or modify a live communication session (e.g., an audio communication session, a video communication session, or an XR communication session). Communication interface 710 includes pinned contacts 712 (e.g., pinned contacts 712a-712g) and recent contacts 714 (e.g., recent contacts 714a-714i). In some embodiments, pinned contacts 712 are a set of contacts (e.g., favorited or pinned contacts) selected by a user of device 700 to be included in communication interface 710. In some embodiments, recent contacts 714 are contacts with which a user of device 700 has recently communicated (e.g., via text, phone, and / or live communication session) using device 700 and, optionally, one or more other devices associated with the user of device 700. In some embodiments, recent contacts 714 are arranged (e.g., ordered or ranked) based on the recency of communication between recent contacts 714 and the user of device 700.
[0220] In some embodiments, one or more of the pinned contacts 712 and / or recent contacts 714 correspond to a defined group of contacts. As one example, pinned contacts 712d corresponds to the group of contacts "surfers." As another example, recent contacts 714d corresponds to the group of contacts "lake crew."
[0221] In some embodiments, pinned contacts 712 and / or recent contacts 714 indicate recent communications between the user of device 700 and various contacts. As one example, pinned contact 712b (“John”) indicates that the contact last sent a text message one minute ago. Optionally, communication interface 710 includes a preview 716b that shows the content of the text message sent by pinned user 712b. As another example, pinned user 712c indicates that the contact last sent a text reaction (e.g., a “heart” reaction) at 2:10. As yet another example, recent contact 714a (“Mom”) indicates that the user of device 700 most recently communicated with contact 714a in an XR communication session (e.g., a spatial live communication session or a non-spatial live communication session) at 3:32. As yet another example, recent contact 714e ("Uncle Bob") indicates that the user of device 700 most recently communicated with contact 714e in an audio communication session (eg, a call) at 9:41.
[0222] In some embodiments, pinned contacts 712 and / or recent contacts 714 indicate pending invitations to live communication sessions. As one example, recent contact 714b ("Dad") indicates that the user of device 700 can join a live communication session with recent contact 714b. As yet another example, recent contact 714d ("Lake Crew") indicates that three members of a group are currently in an ongoing live communication session that the user of device 700 has been invited to join.
[0223] In some embodiments, contacts 712 and 714 of communication interface 710 can be used to manage contacts. By way of example, while displaying communication interface 710, device 700 detects a selection of contact 712e (“Jo”). In some embodiments, the selection of contact 712e is a tap gesture 705b on contact 712e. In some embodiments, the selection of contact 712e is, for example, an air gesture indicating selection of contact 712e. As shown in FIG. 7C1 and / or FIG. 7C2, in response to detecting the selection of contact 712e, device 700 displays a contact menu 720 associated with contact 712e.
[0224] The contacts menu 720 includes an invite option 720a and an expand option 720b. When selected, the invite option 720a causes the device 700 to invite the contact 712e to an XR communication session. When selected, the expand option 720b causes the device 700 to display one or more additional options for managing the contact 712e. For example, while displaying the contacts menu 720, the device 700 detects a selection of the expand option 720b. In some embodiments, the selection of the expand option 720b is a tap gesture 705c on the expand option 720b. In some embodiments, the selection of the expand option 720b is, for example, an air gesture indicating selection of the expand option 720b. As shown in FIG. 7D , in response to detecting the selection of the expand option 720b, the device 700 expands the contacts menu 720 to display one or more additional options (e.g., options 720c-720f) (e.g., replaces the display of the expand option 720b with the one or more additional options).
[0225] In some embodiments, when expanded, contacts menu 720 includes audio option 720c, message option 720d, information option 720e, and edit option 720f. Audio option 720c, when selected, causes device 700 to initiate an audio communication session (e.g., without a live video component) with contact 712e. In some embodiments, device 700 is not capable of communicating over a cellular network and / or is configured to use an external device for audio calls. Thus, in some examples, device 700 initiates an audio communication session using a nearby device (e.g., a mobile phone and / or tablet) (e.g., capable of communicating over a cellular network). Edit option 720f, when selected, allows a user of device 700 to remove contact 712e from pinned contacts 712 (or, in embodiments where contact 712e is not already a pinned contact, add contact 712e to pinned contacts). Message option 720d, when selected, allows a user to send a message to contact 712e. For example, while displaying contacts menu 720, device 700 detects selection of message option 720d. In some embodiments, the selection of message option 720d is a tap gesture 705d on message option 720d. In some embodiments, the selection of message option 720d is, for example, an air gesture indicating selection of message option 720d. As shown in FIG. 7E, in response to detecting the selection of message option 720d, device 700 displays message interface 730 (e.g., replacing the display of communication interface 710). Message interface 730 can then be used to send a message to contact 712e.
[0226] 7D , when selected, information option 720e causes device 700 to display information corresponding to contact 712e (e.g., without displaying additional information corresponding to other contacts). For example, while displaying contacts menu 720, device 700 detects selection of information option 720e. In some embodiments, selection of information option 720e is a tap gesture 707d on information option 720e. In some embodiments, selection of information option 720e is, for example, an air gesture indicating selection of information option 720e. As shown in FIG. 7F , in response to detecting selection of information option 720e, device 700 displays information interface 740. Information interface 740 includes various details corresponding to contact 712e, including, but not limited to, name and contact information.
[0227] In some embodiments, the contact's device is unable to participate in an XR communication session with device 700. Accordingly, in some embodiments, one or more options in the contacts menu may be omitted, dehighlighted (e.g., grayed out or dimmed), and / or replaced to accurately reflect the capabilities of the contact's device. For example, referring again to FIG. 7B , while displaying communication interface 710, device 700 detects a selection of contact 712g (“Sam”). In some embodiments, the selection of contact 712g is a tap gesture 709b on contact 712g. In some embodiments, the selection of contact 712g is, for example, an air gesture indicating selection of contact 712g. As shown in FIG. 7C1 , in response to detecting the selection of contact 712g, device 700 displays contacts menu 722 associated with contact 712g.
[0228] In some embodiments, because the device of contact 712g cannot communicate with device 700 in an XR communication session, menu 722 does not include an invite option (e.g., invite option 720a) and instead includes audio option 722a, which, when selected, causes device 700 to initiate an audio communication session with contact 712g. Menu 722 further includes expand option 722b, which, when selected, causes device 700 to display one or more additional options for contact 712g.
[0229] In some embodiments, a contact menu associated with a contact includes one or more additional options based on the state of device 700. As an example, in some embodiments, if device 700 is participating in a live communication session (e.g., an XR communication session or an audio communication session), the contact menu includes an option to invite the contact to the live communication session. For example, with reference to FIG. 7B , while participating in an XR communication session and while displaying communication interface 710, device 700 detects a selection of contact 714g (“Dylan”). In some embodiments, the selection of contact 714g is a tap gesture 711b on contact 714g. In some embodiments, the selection of contact 714g is an air gesture indicating, for example, the selection of contact 714f. As shown in FIG. 7C1 , in response to detecting the selection of contact 714g, device 700 displays contact menu 724 associated with contact 714g.
[0230] The contacts menu 724 includes an invite option 724a, an invite option 724b, and an expand option 724c. The invite option 724a, when selected (e.g., with a tap gesture 709c), causes the device 700 to invite the contact 714g to a new live communication session. The invite option 724b, when selected, causes the device 700 to invite the contact 714g to a live communication session in which the device 700 is currently participating. The expand option 720c, when selected, causes the device 700 to display one or more additional options for the contact 714g.
[0231] In some embodiments, inviting a contact to a new live communication session (e.g., in response to selection of option 724a) causes device 700 to disconnect from and / or terminate the live communication session in which device 700 is currently participating. In some embodiments, before terminating an existing live communication session in this manner, device 700 confirms that the user wishes to disconnect from the current live communication session before starting a new live communication session. For example, as shown in FIG. 7G , in response to selection of invite option 724a, device 700 displays a confirmation interface 740 that includes a confirmation affordance 742. In response to selection of confirmation affordance 742, device 700 terminates the current live communication session and invites contact 714f to the new live communication session.
[0232] In some embodiments, the user optionally sends a message to a contact using communication interface 710. For example, referring to FIG. 7B , while displaying communication interface 710, device 700 detects a selection of preview 716b associated with pinned contact 712b. In some embodiments, the selection of preview 716b is a tap gesture 707b on preview 716b. In some embodiments, the selection of preview 716b is, for example, an air gesture indicating selection of preview 716b. As shown in FIG. 7C1 , in response to detecting the selection of preview 716b, device 700 expands preview 716b to display reply option 718.
[0233] Reply option 718, when selected, causes device 700 to display a reply interface for sending a message to contact 712b. For example, while displaying reply option 718 in preview 716b, device 700 detects selection of reply option 718. In some embodiments, selection of reply option 718 is a tap gesture 707c on reply option 718. In some embodiments, selection of reply option 718 is, for example, an air gesture indicating selection of reply option 718. As shown in FIG. 7H, in response to detecting selection of reply option 718, device 700 displays reply interface 750 that can be used to send a message to contact 712b.
[0234] In some embodiments, the techniques and user interface(s) described in FIG. 7C1 are provided by one or more of the devices described in FIGS. 1A-1P. FIG. 7C2 illustrates an embodiment in which a communication interface X710 (e.g., as described in FIGS. 7B and 7C1) is displayed on a display module X702 of a head-mounted device (HMD) X700. In some embodiments, the device X700 includes a pair of display modules that provide stereoscopic content to different eyes of the same user. For example, the HMD X700 includes a display module X702 (providing content to the user's left eye) and a second display module (providing content to the user's right eye). In some embodiments, the second display module displays a slightly different image than the display module X702 to create the illusion of stereoscopic depth.
[0235] As shown in FIG. 7C2, in response to detecting the selection of the contact X712e, the HMD X700 displays the contact menu X720 associated with the contact X712e. In some embodiments, the HMD X700 detects the selection of the contact X712e based on an air gesture performed by a user of the HMD X700. In some embodiments, the HMD X700 detects the hand X750a and / or X750b of the user of the HMD X700 and determines whether movement of the hand X750a and / or X750b performs a predefined air gesture corresponding to the selection of the contact X712e. In some embodiments, the predefined air gesture for selecting the contact X712e includes a pinch gesture. In some embodiments, the pinch gesture includes detecting movement of a finger X750c and a thumb X750d toward each other. In some embodiments, the HMD X700 detects the selection of the contact X712e based on gaze and air gesture input performed by the user of the HMD X700. In some embodiments, the gaze and air gesture input includes detecting that a user of the HMD X700 is looking at a contact X712e (e.g., for more than a predetermined amount of time) and that the user's hands X750a and / or X750b of the HMD X700 perform a pinch gesture.
[0236] The contacts menu X720 includes an invite option X720a and an expand option X720b. The invite option X720a, when selected (e.g., via an air gesture such as a pinch gesture and / or via a gaze and pinch gesture), causes the HMD X700 to invite the contact X712e to an XR communication session. The expand option X720b, when selected, causes the HMD X700 to display one or more additional options for managing the contact X712e. For example, while displaying the contacts menu X720, the HMD X700 detects selection of the expand option X720b. In some embodiments, selection of the expand option X720b is, for example, an air gesture (e.g., a pinch gesture and / or a gaze and pinch gesture) indicating selection of the expand option X720b. In response to detecting selection of the extension option X720b, the HMD X700 extends the contact menu X720 to display one or more additional options (e.g., options 720c-720f, as shown in FIG. 7D ) (e.g., replacing the display of the extension option X720b with the one or more additional options).
[0237] In some embodiments, when expanded, the contacts menu X720 includes an audio option (e.g., 720c), a message option (e.g., 720d), an information option (e.g., 720e), and an edit option (e.g., 720f), for example, as described with respect to FIG. 7D . The audio option, when selected, causes the HMD X700 to initiate an audio communication session (e.g., without a live video component) with the contact X712e. In some embodiments, the HMD X700 is not capable of communicating over a cellular network and / or is configured to use an external device for audio calls. Thus, in some examples, the HMD X700 initiates an audio communication session using a nearby device (e.g., a mobile phone and / or tablet) (e.g., capable of communicating over a cellular network). The edit option, when selected, allows a user of the HMD X700 to remove the contact X712e from the pinned contacts X712 (or, in embodiments where the contact X712e is not already a pinned contact, add the contact X712e to the pinned contacts), for example, as described with respect to FIG. 7D . The message option, when selected, allows a user to send a message to the contact X712e, for example, as described with respect to FIG. 7D . For example, while displaying the expanded contacts menu X720, the HMD X700 detects selection of a message option (e.g., 720d). In some embodiments, the selection of the message option is, for example, an air gesture (e.g., a pinch gesture and / or a gaze and pinch gesture) indicating selection of the message option. In some embodiments, as shown in FIG. 7E , in response to detecting selection of the message option (e.g., 720d), the HMD X700 displays a message interface (e.g., 730) (e.g., replacing the display of the communication interface X710 with the message interface). The message interface can then be used to send a message to the contact X712e.
[0238] In some embodiments, the contact menu associated with the contact includes one or more additional options based on the state of the HMD X700. As an example, in some embodiments, when the HMD X700 is participating in a live communication session (e.g., an XR communication session or an audio communication session), the contact menu includes an option to invite the contact to the live communication session. For example, while participating in the XR communication session and while displaying the communication interface X710, the HMD X700 detects a selection of the contact X714g (“Dylan”). In some embodiments, the selection of the contact X714g is an air gesture (e.g., a pinch gesture and / or a gaze and pinch gesture), for example, indicating a selection of the contact X714f. As shown in FIG. 7C2, in response to detecting the selection of the contact X714g, the HMD X700 displays the contact menu X724 associated with the contact X714g.
[0239] The contacts menu X724 includes an invite option X724a, an invite option X724b, and an expand option X724c. The invite option X724a, when selected (e.g., via a pinch gesture and / or an air gesture such as a gaze and pinch gesture), causes the HMD X700 to invite the contact X714g to a new live communication session. The invite option X724b, when selected (e.g., via a pinch gesture and / or an air gesture such as a gaze and pinch gesture), causes the HMD X700 to invite the contact X714g to a live communication session in which the HMD X700 is currently participating. The expand option X724c, when selected, causes the HMD X700 to display one or more additional options for the contact X714g.
[0240] In some embodiments, inviting a contact to a new live communication session (e.g., in response to selection of option X724a) causes the HMD X700 to disconnect from and / or terminate the live communication session in which the HMD X700 is currently participating. In some embodiments, before terminating an existing live communication session in this manner, the HMD X700 confirms that the user wishes to disconnect from the current live communication session before starting a new live communication session. For example, as shown in FIG. 7G , in response to selection of invite option X724a, the HMD X700 may display a confirmation interface 740 that includes a confirmation affordance 742. In response to selection of the confirmation affordance 742 (e.g., via a pinch gesture and / or an air gesture such as a gaze and pinch gesture), the HMD X700 terminates the current live communication session and invites the contact X714f to the new live communication session.
[0241] In some embodiments, the user optionally sends a message to a contact using the communication interface X710. For example, while displaying the communication interface X710, the HMD X700 detects a selection of a preview 716b (e.g., as shown in FIG. 7B ) associated with the pinned contact X712b. In some embodiments, the selection of the preview 716b is, for example, an air gesture (e.g., a pinch gesture and / or a gaze and pinch gesture) indicating selection of the preview 716b. As shown in FIG. 7C2 , in response to detecting the selection of the preview 716b, the HMD X700 expands the preview 716b to display a reply option X718.
[0242] The reply option X718, when selected, causes the HMD X700 to display a reply interface for sending a message to the contact X712b. For example, while displaying the reply option X718 in the preview 716b, the HMD X700 detects selection of the reply option X718. In some embodiments, the selection of the reply option X718 is, for example, an air gesture (e.g., a pinch gesture and / or a gaze and pinch gesture) indicating selection of the reply option X718. As shown in FIG. 7H, in response to detecting selection of the reply option X718, the HMD X700 can display a reply interface 750 that can be used to send a message to the contact X712b.
[0243] 1B-1P, including their arrangements and configurations, alone or in any combination, may be included in HMD X700. For example, in some embodiments, HMD X700 includes any of the features, components, and / or portions of HMDs 1-100, 1-200, 3-100, 6-100, 6-200, 6-300, 6-400, 11.1.1-100, and / or 11.1.2-100, alone or in any combination. In some embodiments, the display module X702 includes a display unit 1-102, a display unit 1-202, a display unit 1-306, a display unit 1-406, a display generating component 120, a display screen 1-122a-b, a first and second rear-facing display screen 1-322a, 1-322b, a display 11.3.2-104, a first and second display assemblies 1-120a, 1-120b, a display assembly 1-320, a display assembly 1-421, The invention includes any of the features, components, and / or portions of the first and second display subassemblies 1-420a, 1-420b, display assembly 3-108, display assembly 11.3.2-204, first and second optical modules 11.1.1-104a and 11.1.1-104b, optical module 11.3.2-100, optical module 11.3.2-200, lenticular lens array 3-110, display region or area 6-232, and / or display / display region 6-334, alone or in any combination. In some embodiments, HMD X700 includes sensors, including any of the features, components, and / or portions of any of sensor 190, sensor 306, image sensor 314, image sensor 404, sensor assembly 1-356, sensor assembly 1-456, sensor system 6-102, sensor system 6-202, sensor 6-203, sensor system 6-302, sensor 6-303, sensor system 6-402, and / or sensors 11.1.2-110a-f, either alone or in any combination.In some embodiments, input device X703 includes any of the features, components, and / or portions of first button 1-128, button 11.1.1-114, second button 1-132, and / or any of dials or buttons 1-328, alone or in any combination. In some embodiments, HMD X700 optionally includes one or more audio output components (e.g., electronic components 1-112) for generating audio feedback (e.g., audio output), generated based on detected events and / or user input detected by HMD X700.
[0244] In some embodiments, the communication interface 710 is used to generate an avatar. In some embodiments, the avatar serves as a representation (e.g., a 3D representation) of the user of the device 700 in an XR communication session. For example, with reference to FIG. 7B , while displaying the communication interface 710, the device 700 detects a selection of an avatar option 715. In some embodiments, the selection of the avatar option 715 is a tap gesture 713b on the avatar option 715. In some embodiments, the selection of the avatar option 715 is, for example, an air gesture indicating selection of the avatar option 715. As shown in FIG. 7I , in response to detecting a selection of the avatar option 715, the device 700 displays an avatar interface 760.
[0245] In FIG. 7I , avatar interface 760 includes a first option 762 (e.g., more realistic than the second option) and a second option 764 (e.g., less realistic than the first option). When enabled, first option 762 causes the device 700 user's avatar to reflect the user's appearance. For example, in some embodiments, when first option 762 is enabled, the avatar includes one or more visual characteristics corresponding to one or more physical features of the user. When enabled, second option 764 causes the device 700 user's avatar to show the user's movements (e.g., during a live communication session) without reflecting the user's appearance. For example, in some embodiments, when second option 764 is enabled, an avatar with a default appearance is used. In some embodiments, when the first option 762 is enabled (compared to the second option 764), the avatar of the user of the device 700 is represented by a first representation style, and the avatar is displayed at a first level of detail (e.g., a first level of detail regarding the appearance of the user and / or one or more parts of the user) and showing the position and movement of a first user part of the user relative to the position and movement of a second user part of the user in a first manner. In some embodiments, when the second option 764 is enabled (compared to the first option 762), the avatar of the user of the device 700 is represented in a second representation style different from the first representation style, and the avatar is displayed at a second level of detail (e.g., a second level of detail regarding the user's appearance and / or one or more parts of the user) that is lower than the first level of detail (e.g., less detail and / or a lower amount of detail than and / or mimics the user's appearance), and shows the position and movement of a first user part of the user relative to the position and movement of a second user part of the user in a second manner that is different from the first manner.
[0246] Avatar interface 760 further includes menu option 766 that, when selected, causes device 700 to display an avatar menu, as shown in FIG. 7I. For example, in FIG. 7I, while displaying avatar interface 760, device 700 detects selection of menu option 766. In some embodiments, selection of menu option 766 is a tap gesture 705i on menu option 766. In some embodiments, selection of menu option 766 is, for example, an air gesture indicating selection of menu option 766. As shown in FIG. 7J, in response to detecting selection of menu option 766, device 700 displays avatar menu 768.
[0247] 7J , avatar menu 768 includes edit option 768a, create option 768b, and / or delete option 768c. In some embodiments, if an avatar has not yet been created for the user of device 700, avatar menu 768 includes create option 768b and does not include edit option 768a and delete option 768c. In some embodiments, if an avatar has been created for the user of device 700, avatar menu 768 includes edit option 768a and delete option 768c and does not include create option 768b.
[0248] 7J, while displaying avatar menu 768, device 700 detects selection of create option 768b. In some embodiments, the selection of create option 768b is a tap gesture 705j on create option 768b. In some embodiments, the selection of create option 768b is, for example, an air gesture indicating selection of create option 768b. As shown in FIG. 7K, in response to detecting selection of create option 768b, device 700 displays setup interface 770.
[0249] 7K, setup interface 770 includes setup option 772 that, when selected, causes device 700 to display an avatar editing interface. For example, while displaying setup interface 770, device 700 detects selection of setup affordance 772. In some embodiments, selection of setup affordance 772 is a tap gesture 705k on setup affordance 772. In some embodiments, selection of setup affordance 772 is, for example, an air gesture indicating selection of setup affordance 772. As shown in FIG. 7L1, in response to detecting selection of setup affordance 772, device 700 displays avatar editing interface 780.
[0250] In FIG. 7L1 , avatar editing interface 780 includes a live view 781 of the avatar of the user of device 700. In some embodiments, device 700 displays live view 781 of avatar editing interface 780, which is updated in real time according to the movements and / or habits of the user of device 700, as detected by device 700. Avatar editing interface 780 further includes various settings and / or parameters by which the visual characteristics of the avatar are adjusted. As one example, avatar editing interface 780 includes settings 782, including a brightness setting 782a and a warmth setting 782b. Brightness setting 782a and warmth setting 782b are used to adjust the simulated lighting and temperature of the avatar's skin, respectively. As another example, avatar editing interface 780 includes a color palette 783, which includes a set of one or more colors and / or shades from which the avatar's skin color is selected.
[0251] In some embodiments, as shown in FIG. 7L1, avatar editing interface 780 includes a set of parameters 784, such as shirt parameter 784a and hat parameter 784b. In some embodiments, selecting a parameter allows the visual characteristics of one or more aspects of the avatar to be selected. With reference to FIG. 7M, for example, selecting shirt parameter 784a (e.g., tap input 705l or an air gesture corresponding to the location of parameter 784a) causes device 700 to display a parameter menu 790 from which the user can select from any number of options for shirt parameter 784a (e.g., options 790a-790c). With reference to FIG. 7N, once an option is selected (e.g., tap input 705m or an air gesture corresponding to the location of option 790b), the user can select from styles 792 (e.g., 792a-792f) of the selected option, and the visual characteristics of the avatar are updated accordingly. Similarly, in some embodiments, selecting a headwear parameter 784b causes the device 700 to display the headwear options of the headwear parameter 784b, and selecting an option causes the device 700 to display the type of option selected.
[0252] Although described herein with respect to parameters 784a and 784b corresponding to a shirt and a hat, respectively, it will be understood that in some embodiments, parameters of avatar editing interface 780 optionally correspond to other / additional visual aspects of the avatar. By way of example, in some embodiments, parameters 784 are used to select one or more aspects of the avatar's eyewear (e.g., parameter 784a corresponds to glasses and parameter 784b corresponds to an eyepatch). In an example where device 700 receives a user selection of parameter 784a corresponding to glasses, device 700 displays options for various designs of glasses (e.g., frameless, thin frame, thick frame, etc.). When device 700 receives a user selection of a design, device 700 displays various styles of the selected design as types 792 for selection by the user. In an example where device 700 receives a user selection of an eyepatch, device 700 displays options for various designs of eyepatch (e.g., left eyepatch or right eyepatch). Once device 600 receives the user selection of a design, device 700 displays various styles of the selected design as types 792 for selection by the user.
[0253] In some embodiments, avatar editing interface 780 includes a set of parameters 786. As shown, in some embodiments, parameters 786 are used to select one or more aspects of hair. By way of example, parameter 786a corresponds to a hairstyle, parameter 786b corresponds to a hair color, and parameter 786c corresponds to hair highlights. In other embodiments, parameters 786 are used to select one or more aspects of an accessibility feature. By way of example, in some embodiments, parameter 786a corresponds to a prosthetic limb, parameter 786b corresponds to a hearing aid, and parameter 786c corresponds to a wheelchair.
[0254] In some embodiments, the techniques and user interface(s) described in FIG. 7L1 are provided by one or more of the devices described in FIGS. 1A-1P. FIG. 7L2 shows an embodiment in which an avatar editing interface X780 (e.g., as described in FIGS. 7L1-7N) is displayed on a display module X702 of a head-mounted device (HMD) X700. In some embodiments, the device X700 includes a pair of display modules that provide stereoscopic content to different eyes of the same user. For example, the HMD X700 includes a display module X702 (providing content to the user's left eye) and a second display module (providing content to the user's right eye). In some embodiments, the second display module displays a slightly different image than the display module X702 to create the illusion of stereoscopic depth.
[0255] In FIG. 7L2, the avatar editing interface X780 includes a live view X781 of the avatar of the user of the HMD X700. In some embodiments, the HMD X700 displays the live view X781 of the avatar editing interface X780, which is updated in real time according to the movements and / or habits of the user of the HMD X700 detected by the HMD X700. The avatar editing interface X780 further includes various settings and / or parameters by which the visual characteristics of the avatar are adjusted. As one example, the avatar editing interface X780 includes settings X782, including a brightness setting X782a and a warmth setting X782b. The brightness setting X782a and the warmth setting X782b are used to adjust the simulated lighting and temperature of the avatar's skin, respectively. As another example, the avatar editing interface X780 includes a color palette X783, which includes a set of one or more colors and / or shades from which the avatar's skin color is selected.
[0256] In some embodiments, as shown in FIG. 7L2, the avatar editing interface X780 includes a set of parameters X784, such as shirt parameters X784a and hat parameters X784b. In some embodiments, selecting a parameter allows the visual characteristics of one or more aspects of the avatar to be selected. For example, selecting the shirt parameter X784a (e.g., a gaze and pinch gesture, with the gaze represented by gaze indicator X705L, corresponding to the location of parameter X784a) causes the HMD X700 to display a parameter menu 790 from which the user can select from any number of options for the shirt parameter X784a (e.g., options 790a-790c), as shown in FIG.
[0257] In some embodiments, the HMD X700 detects the selection of the shirt parameter X784a based on an air gesture performed by a user of the HMD X700. In some embodiments, the HMD X700 detects the hand X750a and / or X750b of the user of the HMD X700 and determines whether movement of the hand X750a and / or X750b performs a pre-defined air gesture corresponding to the selection of the shirt parameter X784a. In some embodiments, the pre-defined air gesture for selecting the shirt parameter X784a includes a pinch gesture. In some embodiments, the pinch gesture includes detecting movement of the finger X750c and thumb X750d toward each other. In some embodiments, the HMD X700 detects the selection of the shirt parameter X784a based on gaze and air gesture input performed by the user of the HMD X700. In some embodiments, the gaze and air gesture input includes detecting that a user of the HMD X700 is looking at the shirt parameter X784a (e.g., for more than a predetermined amount of time) and that the user's hands X750a and / or X750b of the HMD X700 are performing a pinch gesture.
[0258] 7N, once an option is selected (e.g., a tap input 705m or an air gesture corresponding to the location of option 790b), the user can choose from styles 792 (e.g., 792a-792f) of the selected option, and the avatar's visual characteristics are updated accordingly. Similarly, in some embodiments, selecting headwear parameters 784b causes device 700 to display the headwear options for headwear parameters 784b, and selecting an option causes device 700 to display the type of option selected.
[0259] Although described herein with respect to parameters X784a and X784b corresponding to a shirt and a hat, respectively, it will be understood that in some embodiments, the parameters of the avatar editing interface X780 optionally correspond to other / additional visual aspects of the avatar. By way of example, in some embodiments, the parameters X784 are used to select one or more aspects of the avatar's eyewear (e.g., parameter X784a corresponds to glasses and parameter X784b corresponds to an eyepatch). In an example where the HMD X700 receives a user selection of parameter X784a corresponding to glasses, the HMD X700 displays options for various designs of glasses (e.g., frameless, thin frame, thick frame, etc.). When the HMD X700 receives a user selection of a design, the HMD X700 displays various styles of the selected design as types 792 for selection by the user. In an example where the HMD X700 receives a user selection of an eyepatch, the HMD X700 displays options for various designs of eyepatch (e.g., left eyepatch or right eyepatch). Once the HMD X700 receives the user selection of a design, the HMD X700 displays various styles of the selected design as types 792 for selection by the user.
[0260] In some embodiments, the avatar editing interface X780 includes a set of parameters X786. As shown, in some embodiments, the parameters X786 are used to select one or more aspects of hair. By way of example, parameter X786a corresponds to a hairstyle, parameter X786b corresponds to a hair color, and parameter X786c corresponds to hair highlights. In other embodiments, the parameters X786 are used to select one or more aspects of an accessibility feature. By way of example, in some embodiments, parameter X786a corresponds to a prosthetic limb, parameter X786b corresponds to a hearing aid, and parameter X786c corresponds to a wheelchair.
[0261] 1B-1P, including their arrangements and configurations, alone or in any combination, may be included in HMD X700. For example, in some embodiments, HMD X700 includes any of the features, components, and / or portions of HMDs 1-100, 1-200, 3-100, 6-100, 6-200, 6-300, 6-400, 11.1.1-100, and / or 11.1.2-100, alone or in any combination. In some embodiments, the display module X702 includes a display unit 1-102, a display unit 1-202, a display unit 1-306, a display unit 1-406, a display generating component 120, a display screen 1-122a-b, a first and second rear-facing display screen 1-322a, 1-322b, a display 11.3.2-104, a first and second display assemblies 1-120a, 1-120b, a display assembly 1-320, a display assembly 1-421, The invention includes any of the features, components, and / or portions of the first and second display subassemblies 1-420a, 1-420b, display assembly 3-108, display assembly 11.3.2-204, first and second optical modules 11.1.1-104a and 11.1.1-104b, optical module 11.3.2-100, optical module 11.3.2-200, lenticular lens array 3-110, display region or area 6-232, and / or display / display region 6-334, alone or in any combination. In some embodiments, HMD X700 includes sensors, including any of the features, components, and / or portions of any of sensor 190, sensor 306, image sensor 314, image sensor 404, sensor assembly 1-356, sensor assembly 1-456, sensor system 6-102, sensor system 6-202, sensor 6-203, sensor system 6-302, sensor 6-303, sensor system 6-402, and / or sensors 11.1.2-110a-f, either alone or in any combination.In some embodiments, input device X703 includes any of the features, components, and / or portions of first button 1-128, button 11.1.1-114, second button 1-132, and / or any of dials or buttons 1-328, alone or in any combination. In some embodiments, HMD X700 optionally includes one or more audio output components (e.g., electronic components 1-112) for generating audio feedback (e.g., audio output), generated based on detected events and / or user input detected by HMD X700.
[0262] 7N , while displaying avatar editing interface 780, device 700 detects selection of save option 788. In some embodiments, the selection of save option 788 is a tap gesture 705n on save option 788. In some embodiments, the selection of save option 788 is, for example, an air gesture indicating selection of save option 788. In response to detecting selection of save option 788, device 700 stores (e.g., stores locally and / or stores remotely) the selected configuration of the avatar for the user of device 700 for subsequent use in XR communication sessions. As shown in FIG. 7O , further in response to detecting selection of setup affordance 772, device 700 displays completion interface 795 indicating that the user successfully created and / or updated the user's avatar.
[0263] In FIG. 7P, a user of device 700 is participating in an XR communication session with contact 712f (“Ann,” FIG. 7B) in XR environment 704. In some embodiments, the XR communication session is a spatial communication session. Thus, in some embodiments, contact 712f and / or the user of device 700 are represented in XR environment 704 by 3D representations (e.g., avatars). For example, as shown in FIG. 7P, the user of device 700 is represented by representation 700A (as shown in selfie preview 706A), and contact 712f is represented by representation 701A.
[0264] In some embodiments, a view of the XR environment 704 for a user of device 700 is provided from the perspective of representation 700A within XR environment 704. Because this may prevent the user from viewing representation 700A otherwise, device 700 displays a self-preview 706A that includes a live view of representation 700A within XR environment 704. While self-preview 706A is shown as being located in the lower right corner of display 702, it will be understood that self-preview 706A is, optionally, displayed in any location on display 702. By way of example, in some embodiments, self-preview 706A is located adjacent to a representation of a contact in an XR communication session. In some embodiments, self-preview 706A is located at position 708A, for example, proximate to representation 701A.
[0265] In some embodiments, participants represented by 3D representations within the XR environment have spatial agency. Thus, during an XR communication session, the 3D representations optionally move within the XR environment 704 such that the 3D representations move relative to elements within the XR environment 704 (e.g., table 704a and couch 704b) and / or other participants. In some embodiments, the 3D representations move in accordance with corresponding device movements. By way of example, 3D representation 700A may move within the XR environment 704 in response to movement of device 700. In some embodiments, the 3D representations move in a manner corresponding to the device movements. For example, if device 700 first moves in a first direction (e.g., left) and then moves in a second direction (e.g., right), 3D representation 700A will move in the first and second directions within the XR environment 704 in a similar manner.
[0266] In some embodiments, while participating in an XR communication session, the device 700 displays a set of controls 704A for managing one or more aspects of the XR communication session, as shown in FIG. 7P. The set of controls 704A includes a message option 704Aa, an information option 704Ab, a microphone option 704Ac, an avatar option 704Ad, a camera option 704Ae, and an end option 704Af. When selected, the message option 704Aa causes the device 700 to display a message interface for sending a message to a contact 712f. When selected, the information option 704Ab causes the device 700 to display an information interface corresponding to the contact 712f. When selected, the microphone option 704Ac toggles the state of the microphone of the device 700 (e.g., enables or disables it). In some embodiments, disabling the microphone of the device 700 prevents the device 700 from providing audio during the XR communication session. Camera option 704Ae, when selected, toggles (e.g., enables or disables) the state of the camera of device 700. In some embodiments, disabling the camera of device 700 prevents device 700 from providing video (e.g., a video feed of the user of device 700 and / or movements of the expression of the user of device 700) during an XR communication session. Exit option 704Af, when selected, causes device 700 to disconnect from the XR communication session.
[0267] When selected, the avatar option 704Ad toggles (e.g., enables or disables) the use of 3D representations in the XR environment 704. For example, while displaying the XR environment 704, the device 700 detects a selection of the avatar option 704Ad. In some embodiments, the selection of the avatar option 704Ad is a tap gesture 705p on the avatar option 704Ad. In some embodiments, the selection of the avatar option 704Ad is, for example, an air gesture indicating selection of the avatar option 704Ad. As shown in FIG. 7Q, in response to the selection of the avatar option 704Ad, the device 700 disables the use of 3D representations in the XR environment 704.
[0268] In some embodiments, when toggling the use of 3D representations within the XR environment 704, the device 700 transitions the XR communication session between a spatial communication session and a non-spatial communication session. Disabling the use of 3D representations causes the device 700 to transition the XR communication session from a spatial communication session to a non-spatial communication session. Enabling the use of 3D representations causes the device 700 to transition the XR communication session from a non-spatial communication session to a spatial communication session.
[0269] In some embodiments, in a non-spatial communication session, participants in the XR communication session are represented by 2D representations. By way of example, as shown in FIG. 7Q, the user of device 700 is represented by 2D representation 710A (as shown in self-preview 706A), and contacts 712f are represented by 2D representations 712A.
[0270] In some embodiments, the 2D representation includes a video feed of the user (e.g., a live video feed). In some embodiments, if a video feed of the user is not available (e.g., the device's camera is disabled), the 2D representation of the user instead includes an image associated with the user (e.g., a thumbnail), a monogram corresponding to the user, and / or another 2D representation. In some embodiments, the user represented by the 2D representation in the XR environment has no spatial agency and is, optionally, positioned at one or more pre-defined locations in the XR environment 704. In some embodiments, device 600 is configured to move the 2D representation of the remote participant in the XR environment based on user input received at device 700 (e.g., input to drag the representation from a first location to a second location). In some embodiments, device 600 is not configured to move the 3D representation of the remote participant in the XR environment based on user input received at device 700.
[0271] Additional description regarding FIGS. 7A-7Q is provided below with reference to method 800 and method 900, each of which is described with respect to FIGS. 7A-7Q.
[0272] 8 is a flow diagram of an example method 800 for managing a live communication session, according to some embodiments. In some embodiments, method 800 is performed on a computer system (e.g., computer system 101, computer system 700, and / or HMD X700 of FIG. 1A ) (e.g., a smartphone, a tablet, and / or a head-mounted device) in communication with a display generation component (e.g., display generation component 120, display 702, and / or display X702 of FIGS. 1A , 3, and 4 ) (e.g., a visual output device, a 3D display, a display having at least a transparent or semi-transparent portion onto which an image can be projected (e.g., a see-through display), a projector, a head-up display, and / or a display controller) and one or more sensors (e.g., a touch-sensitive surface, a gyroscope, an accelerometer, a motion sensor, a movement sensor, a microphone, an infrared sensor, a camera sensor, a depth camera, a visible light camera, an eye-tracking sensor, a gaze-tracking sensor, a physiological sensor, and / or an image sensor). In some embodiments, method 800 is governed by instructions stored on a non-transitory (or transitory) computer-readable storage medium and executed by one or more processors of a computer system, such as one or more processors 202 (e.g., control 110 of FIG. 1A) of computer system 101. Some operations of method 800 are optionally combined and / or the order of some operations is optionally changed.
[0273] The computer system (e.g., 700 and / or X700) displays (802) representations (e.g., 712a-712g and 714a-714i) (e.g., static avatars, animated avatars, images, and / or monograms) of multiple users (e.g., users not operating the computer system (remote users) and / or users other than the user of the computer system) via a display generation component.
[0274] A computer system (e.g., 700 and / or X700) receives (804) via one or more sensors (e.g., via touch input on a touch-sensitive surface and / or via air gestures) a selection (e.g., 705b and / or 711b) of a representation (e.g., 712e, X712e, 714g, and / or X714g) (e.g., a static avatar, an animated avatar, an image, and / or a monogram) of an individual one of a plurality of users.
[0275] In response to receiving (806) a selection of an individual user's representation (e.g., 712e, X712e, 714g, and / or X714g), in accordance with a determination that there is an ongoing (e.g., active and / or currently established) communication session (e.g., a video communication session, an audio communication session, an extended reality communication session, a spatial communication session, and / or a non-spatial communication session), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays (808) an option (e.g., 724b of FIG. 7C1 and / or X724b of FIG. 7C2) for inviting the individual user to join the ongoing communication session.
[0276] In response to receiving 806 a selection of an individual user's representation (e.g., 712e, X712e, 714g, and / or X714g), and in accordance with determining that no communication session is in progress, the computer system (e.g., 700 and / or X700) ceases displaying 810 an option to invite the individual user to join the ongoing communication session (e.g., menu 720 of FIG. 7C1 and / or menu X720 of FIG. 7C2). Conditionally displaying an option to invite the individual user to join the ongoing communication session allows a user of the computer system to invite the individual user without having to navigate to a different user interface, thereby reducing the number of inputs required to perform the invite operation.
[0277] In some embodiments, in response to receiving a selection of an individual user's representation (e.g., 712e, X712e, 714g, and / or X714g) (e.g., regardless of whether there is an ongoing communication session), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays an option for starting a new spatial communication session with the individual user (e.g., 720a and / or 724a in FIG. 7C1 and / or X720a and / or X724a in FIG. 7C2), as well as options for additional features (e.g., 720b and / or 724c in FIG. 7C1 and / or X720b and / or X724c in FIG. 7C2) (e.g., without displaying an option for sending a text message to the individual user and / or without displaying additional information about the individual user). In some embodiments, while displaying an additional feature option (e.g., 720a and / or 724a in FIG. 7C1 and / or X720a and / or X724a in FIG. 7C2), the computer system (e.g., 700 and / or X700) receives a selection (e.g., 705c and / or 709d) of the additional feature option (e.g., 720a and / or 724a in FIG. 7C1 and / or X720a and / or X724a in FIG. 7C2). In some embodiments, in response to receiving a selection of an option for an additional feature, the computer system (e.g., 700 and / or X700), via a display generation component (e.g., 702 and / or X702), displays one or more options (e.g., 720c-720f in FIG. 7D ) associated with the individual user (e.g., by replacing the display of options to invite the individual user to join an ongoing communication session) (e.g., one or more options for communicating with the individual user, such as by sending a text message to the individual user and / or displaying additional information about the individual user).In some embodiments, a spatial communication session is a communication session having representations of at least some (e.g., fewer than all, a plurality, and / or all) of the users participating in the communication session distributed within a 3D environment. Displaying options for initiating new spatial communication sessions with individual users and options for accessing additional features allows a user of a computer system to quickly access the option for initiating a new spatial communication session without cluttering the user interface, while still providing access to additional (and potentially less used) features, thereby improving the human-machine interface.
[0278] In some embodiments, in response to receiving a selection of an expression of an individual user (e.g., independent of determining whether there is an ongoing communication session), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays an additional feature option (e.g., 720b of FIG. 7C1 and / or X720b of FIG. 7C2) (e.g., without displaying an option for sending a text message to the individual user and / or without displaying additional information about the individual user). In some embodiments, while displaying the additional feature option (e.g., 720b of FIG. 7C1 and / or X720b of FIG. 7C2), the computer system (e.g., 700 and / or X700) receives a selection (e.g., 705c) of the additional feature option (e.g., 720b of FIG. 7C1 and / or X720b of FIG. 7C2) via one or more sensors (e.g., via touch input on the touch-sensitive surface and / or via an air gesture). In some embodiments, in response to receiving a selection of the additional feature option (e.g., 720b of FIG. 7C1 and / or X720b of FIG. 7C2), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays (e.g., as part of one or more options associated with the individual user) an option (e.g., 720c of FIG. 7D ) for initiating an audio communication session with the individual user (e.g., that does not include a live visual representation of the participants and / or does not include a video component) (e.g., by replacing the display of an option for inviting the individual user to join an ongoing communication session). In some embodiments, the computer system receives the selection of the option (e.g., 720c of FIG. 7D ) for initiating an audio communication session with the individual user (e.g., via touch input on a touch-sensitive surface and / or via an air gesture) via one or more sensors.In some embodiments, in response to receiving a selection of an option (e.g., 720c in FIG. 7D ) to initiate an audio communication session with the individual user, the computer system (e.g., 700 and / or X700) initiates an audio communication session with the individual user (e.g., not with other users) (e.g., not including live visual representations of participants and / or not including a video component). Displaying the option to initiate an audio communication session allows a user of the computer system to initiate a video communication session and to initiate a communication session that does not include a live visual representation of the user without having to separately disable the video portion, thereby reducing the number of inputs required to initiate an audio communication session.
[0279] In some embodiments, the computer system initiating the audio communication session includes initiating an audio call (e.g., a voice call and / or a telephone call) using an external electronic device (e.g., a smartphone and / or a mobile phone) that is within a predetermined range (e.g., distance and / or wireless range) of the computer system (e.g., 700 and / or X700). In some embodiments, the option to initiate the audio communication session is displayed for each user that does not have an account (or does not have an active account) with a particular online service (e.g., a user of the computer system has an account with a particular online service used for video and / or extended reality communications, but the individual user does not). Initiating the audio communication session via an audio call using an external electronic device allows the computer system to use the resources of the external computer system (e.g., the external computer system's cellular connection and / or CPU processing), thereby improving the computer system's functionality while reducing the computer system's workload.
[0280] In some embodiments, in response to receiving a selection (e.g., 705c and / or 711b) of an individual user's representation (e.g., 712e, X712e, 714g, and / or X714g) (e.g., regardless of whether there is an ongoing communication session), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays additional feature options (e.g., 720b, X720b, 724c, and / or X724c) (e.g., without displaying an option for initiating the process of sending a message to the individual user and / or without displaying additional information about the individual user). In some embodiments, while displaying options for additional features (e.g., 720b, X720b, 724c, and / or X724c), the computer system (e.g., 700 and / or X700) receives a selection (e.g., 705c) of an option for an additional feature (e.g., 720b and / or X720b) via one or more sensors (e.g., via touch input on the touch-sensitive surface and / or via an air gesture). In some embodiments, in response to receiving a selection (e.g., 705c) of the additional feature option (e.g., 720b and / or X720b), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays (e.g., by replacing the display of an option for inviting the individual user to join an ongoing communication session) an option (e.g., 720d) for initiating a process of sending a message (e.g., not including a live audio and / or video transmission) to the individual user (e.g., as part of one or more options associated with the individual user). In some embodiments, the computer system receives (e.g., 705d) the selection (e.g., 705d) of the option (e.g., 720d) for initiating a process of sending a message to the individual user via one or more sensors (e.g., via touch input on the touch-sensitive surface and / or via an air gesture).In some embodiments, in response to receiving a selection (e.g., 705d) of an option (e.g., 720d) to initiate a process of sending a message to an individual user, a computer system (e.g., 700 and / or X700) initiates a process of sending a message (e.g., 730 of FIG. 7E and / or 750 of FIG. 7H) (e.g., not including a live visual representation of a participant and / or not including a video component) to the individual user (e.g., without sending the message to other users). In some embodiments, initiating the process of sending the message to the individual user includes displaying a user interface including a conversation between the user of the computer system and the individual user, displaying a keyboard, and / or displaying a text entry field for entering the message. Providing the option to initiate the process of sending a message to an individual user via an additional feature selection allows a user of the computer system to quickly initiate the process without having to specify a recipient, thereby reducing the number of inputs required to send a message.
[0281] In some embodiments, in response to receiving a selection (e.g., 705c and / or 711b) of an individual user's representation (e.g., 712e, X712e, 714g, and / or X714g) (e.g., regardless of whether there is an ongoing communication session), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays additional feature options (e.g., 720b, X720b, 724c, and / or X724c) (e.g., without displaying an option for initiating the process of sending a message to the individual user and / or without displaying additional information about the individual user). In some embodiments, while displaying the options for the additional features (e.g., 720b, X720b, 724c, and / or X724c), the computer system receives, via one or more sensors, a selection of the option for the additional feature (e.g., 720b, X720b, 724c, and / or X724c) (e.g., via touch input on the touch-sensitive surface and / or via an air gesture). In some embodiments, in response to receiving a selection of the option for the additional feature (e.g., 720b, X720b, 724c, and / or X724c), the computer system displays, via the display generation component, an option (e.g., 720e) for displaying additional information about the individual user (e.g., without displaying additional information about other users) (e.g., as part of one or more options associated with the individual user) (e.g., by replacing the display of the option for inviting the individual user to join the ongoing communication session). In some embodiments, the computer system receives, via one or more sensors (e.g., via touch input on the touch-sensitive surface and / or via an air gesture), a selection (e.g., 707d) of an option (e.g., 720e) to display additional information about an individual user.In some embodiments, in response to receiving a selection (e.g., 707d) of an option (e.g., 720e) to display additional information about the individual user, the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays additional information about the individual user (e.g., 740 of FIG. 7F) (e.g., previous communication history with the individual user, the individual user's phone number, and / or the individual user's email address) (e.g., that was not displayed when the option for the additional feature was selected and / or that was not displayed when the option for the additional information was selected) (e.g., without displaying additional information about other users). Providing the user with additional information about the individual user provides the user of the computer system with feedback about the individual user and / or the individual user's device, thereby providing improved visual feedback.
[0282] In some embodiments, in response to receiving a selection (e.g., 705c and / or 711b) of an individual user's representation (e.g., 712e, X712e, 714g, and / or X714g) (e.g., regardless of determining whether there is an ongoing communication session), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays additional feature options (e.g., 720b, X720b, 724c, and / or X724c) (e.g., without displaying an option for initiating the process of sending a message to the individual user and / or without displaying additional information about the individual user). In some embodiments, while displaying options for additional features (e.g., 720b, X720b, 724c, and / or X724c), the computer system (e.g., 700 and / or X700) receives, via one or more sensors, a selection (e.g., 705c) of an option for the additional feature (e.g., via touch input on the touch-sensitive surface and / or via an air gesture). In some embodiments, in response to receiving a selection (e.g., 705c) of an option (e.g., 720b and / or X720b) for the additional feature, the computer system displays, via the display generation component (e.g., by replacing the display of options for inviting the individual user to join an ongoing communication session), an option (e.g., 720f) for removing the individual user from favorites (e.g., a list or group of favorite users) (e.g., without removing other users) In some embodiments, removing an individual user from favorites includes ceasing to display a representation of the individual user as part of a plurality of representations (e.g., static avatars, animated avatars, images, and / or monograms) of the user (e.g., optionally displayed as part of a home user interface).In some embodiments, the computer system receives via one or more sensors (e.g., via touch input on the touch-sensitive surface and / or via an air gesture) a selection of an option (e.g., 720f) to remove the individual user from favorites (e.g., 712). In response to receiving a selection of the option (e.g., 720f) to remove the individual user from favorites (e.g., 712), the computer system (e.g., 700 and / or X700) initiates the process of removing the individual user from favorites (e.g., requesting confirmation to remove the individual user from favorites and / or removing the individual user from favorites). Initiating the process of removing the individual user from favorites allows the user to limit users accessible via the favorites and / or home user interface, thereby reducing visual clutter, and allows other users to add favorites, thereby providing improved visual feedback.
[0283] In some embodiments, in response to receiving a selection (e.g., 711b) of a representation (e.g., 714g and / or X714g) of an individual user, and following a determination that there is an ongoing (e.g., active and / or currently established) communication session (e.g., a video communication session, an audio communication session, an extended reality communication session, a spatial communication session, and / or a non-spatial communication session), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays an option (e.g., 724a and / or X724a) for initiating a process to start a new communication session with the individual user, simultaneously with an option (e.g., 724b and / or X724b) for inviting the individual user to join the ongoing communication session. In some embodiments, the computer system (e.g., 700 and / or X700) receives via one or more sensors (e.g., via touch input on the touch-sensitive surface and / or via an air gesture) a selection (e.g., 709c) of an option (e.g., 724a and / or X724a) for initiating a process to initiate a new communication session with the individual user. In some embodiments, in response to receiving a selection (e.g., 709c) of an option (e.g., 724a and / or X724a) for initiating a process to initiate a new communication session with the individual user, the computer system (e.g., 700 and / or X700) terminates the ongoing communication session (e.g., 740 in FIG. 7G ) and initiates a process to initiate a new communication session with the individual user. In some embodiments, in response to receiving a selection of the option for initiating a process to initiate a new communication session with the individual user, the computer system automatically (e.g., without requesting and / or receiving additional input from the user and / or without requiring user confirmation) terminates the ongoing communication session and initiates a new communication session with the individual user.Providing an option to start a new communication session with an individual user allows a computer system to both end an ongoing communication session and start a new communication session without requiring separate user inputs directed to ending the ongoing communication session and starting a new communication session, thereby reducing the number of inputs required to perform an action.
[0284] In some embodiments, during the process of initiating a new communication session with an individual user (e.g., 740 in FIG. 7G ), the computer system (e.g., 700 and / or X700) prompts (e.g., 742) the user to confirm that they want to end the ongoing communication session (e.g., via audio using a speaker and / or via a display using a display generating component). In some embodiments, the computer system (e.g., 700 and / or X700) receives confirmation to end the ongoing communication session via one or more sensors (e.g., while displaying the prompt to confirm that they want to end the ongoing communication session). In some embodiments, in response to receiving confirmation to end the ongoing communication session, the computer system ends the ongoing communication session (and, optionally, starts a new communication session with the individual user). Requiring confirmation from the user of the computer system to end the ongoing communication session allows the computer system to avoid the user unintentionally ending the ongoing communication session, thereby improving the human-machine interface.
[0285] In some embodiments, representations of multiple users (e.g., static avatars, animated avatars, images, and / or monograms) are displayed as part of a home user interface (e.g., optionally including representations of recently communicated contacts) (e.g., as shown in FIGS. 7B-7D ), and displaying an option (e.g., 724b and / or X724b) for inviting individual users to join an ongoing communication session and / or displaying one or more options associated with individual users (e.g., 720a-720b, X720a-X720b, 724a-724c, and / or X724a-X724c) includes obscuring the home user interface (e.g., partially blocking, blurring, and / or otherwise partially obscuring the display). In some embodiments, the home user interface includes multiple user interface objects for displaying respective applications (e.g., a first user interface object that, when activated, causes the display of a user interface of a first application and a second user interface object that, when activated, causes the display of a user interface of a second application different from the first application). In some embodiments, in response to detecting a respective user input (e.g., detecting a press of a physical button and / or detecting a respective gesture, such as an air gesture), the computer system displays the home user interface (e.g., regardless of what the computer system was displaying when the respective user input was received). In some embodiments, following the computer system exiting (e.g., waking) from a low power mode and / or receiving a user input that unlocks the computer system, the computer system automatically displays the home user interface. Continuing to display the home user interface (while hidden) provides the user with context about the content the user is accessing, including information about the respective user (e.g., name and / or contact information).
[0286] In some embodiments, the one or more options associated with the individual user include an option (e.g., 720d) for initiating a process of sending a message (e.g., not including a live audio and / or video transmission) to the individual user (e.g., as part of the one or more options associated with the individual user). In some embodiments, a computer system (e.g., 700 and / or X700) receives a selection (e.g., 705d) of an option (e.g., 720d) for initiating a process of sending a message to the individual user via one or more sensors. In some embodiments, in response to receiving (e.g., 705d) an option (e.g., 720d) to initiate a process of sending a message to the individual user (and optionally following a determination that a message from the individual user was not being displayed when the selection of the individual user's representation was received), the computer system (e.g., 700 and / or X700), via the display generation component (e.g., 702 and / or X702), displays a messaging user interface (for messaging with the individual user) (e.g., 730 in FIG. 7E) having a first appearance (e.g., a messaging user interface of a first size and / or a messaging user interface including a displayed keyboard) without displaying a home user interface. Displaying the messaging user interface having the first appearance and not displaying the home user interface provides feedback to the user that the messaging user interface is in a first state, thereby providing the user with improved visual feedback.
[0287] In some embodiments, the one or more options associated with the individual user include an option (e.g., 718 and / or X718) for initiating a process of sending a message (e.g., not including a live audio and / or video transmission) to the individual user (e.g., as part of the one or more options associated with the individual user). In some embodiments, the computer system (e.g., 700 and / or X700) receives a selection (e.g., 707c) of an option (e.g., 718 and / or X718) for initiating a process of sending a message to the individual user via one or more sensors. In some embodiments, in response to receiving a selection (e.g., 707c) of an option (e.g., 718 and / or X718) for initiating a process of sending a message to the individual user (and optionally following a determination that a message from the individual user was being displayed when the selection of the individual user's representation was received), the computer system (e.g., 700 and / or X700), via the display generation component, simultaneously displays a messaging user interface (e.g., 750) (for messaging with the individual user) having a second appearance (e.g., different from the first appearance) (e.g., a messaging user interface in a second size smaller than the first size and / or a messaging user interface that does not include a displayed keyboard) and at least a portion of a home user interface (e.g., as shown in FIG. 7H) (e.g., displaying an obscured home user interface). Displaying the messaging user interface having the second appearance and the portion of the home user interface provides feedback to the user that the messaging user interface is in the second state, thereby providing the user with improved visual feedback.
[0288] In some embodiments, the home user interface is not user-movable, and the messaging user interface (e.g., 750) (e.g., having a first appearance and / or a second appearance) is user-movable. Allowing the user to move the messaging user interface without allowing the user to move the home user interface provides the user with feedback about which elements are part of the home user interface and which elements are not, thereby providing the user with improved visual feedback.
[0289] In some embodiments, displaying representations (e.g., 712a-712g and 714a-714i) of a plurality of users via a display generation component (e.g., 702 and / or X702) includes displaying a first group (e.g., 712) of a first plurality of representations of a first plurality of users via a display generation component (e.g., 702 and / or X702), wherein the first plurality (e.g., 712a-712g) of users are selected to be included as part of the representation of the plurality of users regardless of the recency of communications between the user of the computer system and the first plurality of users (e.g., included to be displayed based on being manually selected as part of favorite contacts and / or based on frequency of communications). In some embodiments, displaying representations (e.g., 712a-712g and 714a-714i) of the plurality of users via the display generation component includes displaying a second group (e.g., 714) of a second plurality of representations of a second plurality of users via the display generation component (e.g., 702 and / or X702), wherein the users of the second plurality (e.g., 714a-714i) are selected to be included as part of the plurality of users (e.g., included to be displayed based on being the most recently communicated users) based on the recency of communications between the user of the computer system and the second plurality of users. In some embodiments, the ordering of the second plurality of representations of the second plurality of users is based on the recency of communications between the user of the computer system and the second plurality of users.In some embodiments, displaying representations of the plurality of users via the display generation component includes displaying via the display generation component a first group of a first plurality of representations of a first plurality of users, the first plurality of users selected to be included as part of the representation of the plurality of users regardless of recency of communications between the user of the computer system and the first plurality of users and a second group of a second plurality of representations of a second plurality of users, the second plurality of users including the first set of one or more users without including the second set of one or more users in accordance with a determination that recent communications by the user of the computer system include communications with the first set of one or more users without including communications with the second set of one or more users, and the second plurality of users including the second set of one or more users without including the first set of one or more users in accordance with a determination that recent communications by the user of the computer system include communications with the first set of one or more users without including communications with the second set of one or more users. Grouping the first and second plurality of users together allows the computer system to provide feedback to the user regarding which users were selected regardless of the recency of their communications and which users were included based on the recency of their communications, thereby providing improved visual feedback.
[0290] In some embodiments, the recency of communications between a user of a computer system (e.g., 700 and / or X700) and a second plurality of users is based on multiple communication modes (e.g., text messaging, calls, and / or communication sessions (e.g., video communication sessions, audio communication sessions, extended reality communication sessions, spatial communication sessions, and / or non-spatial communication sessions)). Grouping the second plurality of users together based on the recency of communications using multiple communication modes allows the computer system to group recent contacts regardless of how the communication occurred, thereby providing improved visual feedback.
[0291] In some embodiments, the computer system (e.g., 700 and / or X700), via a display generation component (e.g., 702 and / or X702), displays an indication (e.g., 714f and / or X714f) of recent communication activity between a user of the computer system and an individual user (e.g., information about recent calls or communications, information about active calls or communications, and / or information about recent messages) concurrently with an option (e.g., 724b and / or X724b) for inviting an individual user to join an ongoing communication session and / or one or more options associated with the individual user (e.g., 724a, X724a, 724c, and / or X724c). Displaying the indication of recent communication activity along with the one or more options allows a user to see which recent communication methods were used and quickly select a communication method for another communication session, thereby reducing the number of inputs required to initiate an appropriate type of communication session.
[0292] In some embodiments, the one or more options (e.g., 720c-720f) associated with the individual user include an option (e.g., 724a and / or X724a) for initiating a spatial communication session with the individual user (e.g., a communication session with representations of at least some (e.g., less than all, a plurality, and / or all) of the users participating in the communication session distributed within the 3D environment). In some embodiments, the computer system receives a selection (e.g., 709c) of an option (e.g., 724a and / or X724a) for initiating a spatial communication session with the individual user via one or more sensors (e.g., via touch input on a touch-sensitive surface and / or via an air gesture). In some embodiments, in response to receiving a selection (e.g., 709c) of an option (e.g., 724a and / or X724a) for initiating a spatial communication session with the individual user, the computer system (e.g., 700 and / or X700) initiates a spatial communication session with the individual user (e.g., as shown in FIG. 7P). By providing an option to initiate a spatial communication session with an individual user, the computer system is able to initiate a communication session without requiring separate user input directed to selecting users to join the communication session, thereby reducing the number of inputs required to perform an operation.
[0293] In some embodiments, the computer system (e.g., 700 and / or X700), via a display generation component (e.g., 702 and / or X702), displays representations of multiple users (e.g., 712a-712g and 714a-714i) simultaneously with options (e.g., 715) for previewing and / or editing an avatar of a user of the computer system. In some embodiments, the computer system (e.g., 700 and / or X700) receives, via one or more sensors (e.g., via touch input on a touch-sensitive surface and / or via an air gesture), a selection (e.g., 713b) of an option (e.g., 715) for previewing and / or editing an avatar of a user of the computer system. In s...
Claims
1. 1. A method comprising:
1. A computer system in communication with a display generating component and one or more sensors, comprising: displaying representations of a plurality of users via said display generation component; receiving, via the one or more sensors, a selection of an expression of a respective one of the plurality of users; In response to receiving the individual user's selection of the representation, pursuant to determining that an ongoing communication session exists, displaying, via the display generating component, an option for inviting the individual user to join the ongoing communication session; and ceasing to display the option to invite the individual user to join the ongoing communication session in accordance with determining that there is no ongoing communication session.
2. via the display generation component in response to receiving the individual user's selection of the representation; an option to initiate a new spatial communication session with the individual user; Displaying options for additional features; and receiving a selection of the option for an additional feature while displaying the option for the additional feature; and 10. The method of claim 1, further comprising: in response to receiving a selection of the option for an additional feature, displaying, via the display generation component, one or more options associated with the individual user.
3. displaying, via the display generation component, options for additional features in response to receiving the individual user's selection of the representation; and receiving, via the one or more sensors, a selection of the option for an additional feature while displaying the option for the additional feature; In response to receiving a selection of the option for an additional feature, displaying, via the display generation component, an option for initiating an audio communication session with the individual user; receiving, via the one or more sensors, a selection of the option to initiate an audio communication session with the individual user; 3. The method of claim 1, further comprising: initiating an audio communication session with the individual user in response to receiving a selection of the option to initiate an audio communication session with the individual user.
4. The method of claim 3 , wherein initiating an audio communication session includes initiating an audio call using an external electronic device within a predetermined range of the computer system.
5. displaying, via the display generation component, options for additional features in response to receiving the individual user's selection of the representation; and receiving, via the one or more sensors, a selection of the option for an additional feature while displaying the option for the additional feature; In response to receiving a selection of the option for an additional feature, displaying, via the display generation component, an option for initiating a process of sending a message to the individual user; receiving a selection of the option to initiate a process of sending a message to the individual user via the one or more sensors; 5. The method of claim 1, further comprising: initiating a process of sending a message to the individual user in response to receiving a selection of the option to initiate a process of sending a message to the individual user.
6. displaying, via the display generation component, options for additional features in response to receiving the individual user's selection of the representation; and receiving, via the one or more sensors, a selection of the option for an additional feature while displaying the option for the additional feature; displaying, via the display generation component, an option for displaying additional information about the individual user in response to receiving a selection of the option for an additional feature; receiving, via the one or more sensors, a selection of the option to display additional information about the individual user; 6. The method of claim 1, further comprising: displaying, via the display generation component, additional information about the individual user in response to receiving a selection of the option to display additional information about the individual user.
7. displaying, via the display generation component, options for additional features in response to receiving the individual user's selection of the representation; and receiving, via the one or more sensors, a selection of the option for an additional feature while displaying the option for the additional feature; In response to receiving a selection of the option for an additional feature, displaying, via the display generation component, an option to remove the individual user from favorites; receiving, via the one or more sensors, a selection of the option to remove the individual user from favorites; 7. The method of claim 1, further comprising: initiating a process of removing the individual user from favorites in response to receiving a selection of the option to remove the individual user from favorites.
8. in response to receiving a selection of the representation of the individual user and in accordance with a determination that there is an ongoing communication session, displaying, via the display generation component, an option for initiating a process to initiate a new communication session with the individual user, concurrently with the option for inviting the individual user to join the ongoing communication session; receiving, via the one or more sensors, a selection of the option to initiate a process to initiate a new communication session with the individual user; in response to receiving a selection of the option to initiate the process of initiating a new communication session with the individual user; terminating the ongoing communication session; The method of claim 1 , further comprising: initiating a process for initiating the new communication session with the individual user.
9. prompting the individual user to confirm that they wish to terminate the ongoing communication session during the process of initiating the new communication session with the individual user; receiving, via the one or more sensors, a confirmation to terminate the ongoing communication session; 10. The method of claim 8, further comprising: terminating the ongoing communication session in response to receiving confirmation to terminate the ongoing communication session.
10. 10. The method of claim 2, wherein the representations of the plurality of users are displayed as part of a home user interface, and wherein displaying the option to invite the individual users to join the ongoing communication session and / or displaying the one or more options associated with the individual users includes obscuring the home user interface.
11. wherein the one or more options associated with the individual user include an option for initiating a process of sending a message to the individual user, the method comprising: receiving a selection of the option to initiate a process of sending a message to the individual user via the one or more sensors; 11. The method of claim 10, further comprising: in response to receiving a selection of the option to initiate a process of sending a message to the individual user, displaying, via the display generation component, a messaging user interface having a first appearance without displaying the home user interface.
12. wherein the one or more options associated with the individual user include an option to initiate a process of sending a message to the individual user, the method comprising: receiving a selection of the option to initiate a process of sending a message to the individual user via the one or more sensors; 12. The method of claim 10 or 11, further comprising: simultaneously displaying, via the display generation component, a messaging user interface having a second appearance and at least a portion of the home user interface in response to receiving a selection of the option to initiate a process of sending a message to the individual user.
13. The method of claim 11 or 12, wherein the home user interface is not user portable and the messaging user interface is user portable.
14. Displaying representations of the plurality of users via the display generation component includes: displaying, via the display generation component, a first group of a first plurality of representations of a first plurality of users, the first plurality of users being selected to be included as part of the representation of the plurality of users regardless of the recency of communications between the user of the computer system and the first plurality of users; and displaying, via the display generation component, a second group of a second plurality of representations of a second plurality of users, the second plurality of users being selected to be included as part of the plurality of users based on recency of communications between the user of the computer system and the second plurality of users.
15. The method of claim 14 , wherein the recency of communications between the computer system user and the second plurality of users is based on multiple modes of communication.
16. 16. The method of claim 2, further comprising displaying, via the display generation component, an indication of recent communication activity between the user of the computer system and the individual user simultaneously with the option to invite the individual user to join the ongoing communication session and / or the one or more options associated with the individual user.
17. and wherein the one or more options associated with the individual user include an option for initiating a spatial communication session with the individual user, the method comprising: receiving, via the one or more sensors, a selection of the option to initiate a spatial communication session with the individual user; 17. The method of claim 2, further comprising: initiating a spatial communication session with the individual user in response to receiving a selection of the option to initiate a spatial communication session with the individual user.
18. displaying, via the display generation component, options for previewing and / or editing avatars of users of the computer system simultaneously with the representations of the plurality of users; and receiving, via the one or more sensors, a selection of the option to preview and / or edit the avatar of the user of the computer system; 18. The method of claim 1, further comprising: in response to receiving a selection of the option to preview and / or edit the avatar of the user of the computer system, displaying, via the display generation component, a user interface for previewing and / or editing the avatar of the user of the computer system.
19. via the display generation component, simultaneously with the representations of the plurality of users; a first indication of a recent communication between a user of the computer system and a first user of the plurality of users; 19. The method of claim 1, further comprising displaying a second indication of a recent communication between the user of the computer system and a second user of the plurality of users that is different from the first user.
20. 20. The method of claim 1, wherein a first representation of the representations of the plurality of users corresponding to a first user includes a recent message from the first user.
21. receiving a selection of the recent messages from the first user via the one or more sensors; 21. The method of claim 20, further comprising: in response to receiving a selection of the recent message from the first user, displaying, via the display generation component, an option to reply to the recent message.
22. receiving, via the one or more sensors, a selection of the option to reply to the recent message from the first user; 22. The method of claim 21, further comprising: in response to receiving a selection of the option to reply to the recent message from the first user, displaying, via the display generation component, a user interface for replying to the recent message from the first user.
23. 23. The method of claim 1, wherein the representations of the plurality of users are displayed as part of a home user interface, the home user interface being displayed in response to detecting activation of a hardware button.
24. 24. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generating component and one or more sensors, the one or more programs including instructions for performing the method of any one of claims 1 to 23.
25. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 1 to 23.
26. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: A computer system comprising means for carrying out the method of any one of claims 1 to 23.
27. 24. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs comprising instructions for performing the method of any one of claims 1 to 23.
28. 1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs comprising: displaying representations of a plurality of users via said display generation component; receiving, via the one or more sensors, a selection of an expression of a respective user of the plurality of users; In response to receiving the individual user's selection of the representation, pursuant to determining that an ongoing communication session exists, displaying, via the display generating component, an option for inviting the individual user to join the ongoing communication session; 12. A non-transitory computer-readable storage medium comprising instructions for, in accordance with a determination that no ongoing communication session exists, ceasing to display the option to invite the individual user to join the ongoing communication session.
29. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: displaying representations of a plurality of users via said display generation component; receiving, via the one or more sensors, a selection of an expression of a respective user of the plurality of users; In response to receiving the individual user's selection of the representation, pursuant to determining that an ongoing communication session exists, displaying, via the display generating component, an option for inviting the individual user to join the ongoing communication session; pursuant to determining that no ongoing communication session exists, ceasing to display the option to invite the individual user to join the ongoing communication session.
30. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: means for displaying representations of a plurality of users via said display generation component; means for receiving, via the one or more sensors, a selection of an expression of a respective one of the plurality of users; In response to receiving the individual user's selection of the representation, pursuant to determining that an ongoing communication session exists, displaying, via the display generating component, an option for inviting the individual user to join the ongoing communication session; means for ceasing to display the option to invite the individual user to join the ongoing communication session in accordance with a determination that no ongoing communication session exists.
31. 1. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs comprising: displaying representations of a plurality of users via said display generation component; receiving, via the one or more sensors, a selection of an expression of a respective user of the plurality of users; In response to receiving the individual user's selection of the representation, pursuant to determining that an ongoing communication session exists, displaying, via the display generating component, an option for inviting the individual user to join the ongoing communication session; pursuant to a determination that no ongoing communication session exists, ceasing to display the option to invite the individual user to join the ongoing communication session.
32. 1. A method comprising:
1. A computer system in communication with a display generating component and one or more sensors, comprising: displaying, via the display generation component, a communication user interface for communicating with other users in a real-time communication session, during which a user of the computer system is represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; displaying, via the display generation component, selectable user interface objects while displaying the communication user interface; detecting one or more inputs via the one or more sensors, the input including a selection input directed at the selectable user interface object; via the display generation component, in response to detecting the one or more inputs including the selection input directed to the selectable user interface object; the avatar representing the user of the computer system; and one or more options for modifying the appearance of the avatar representing the user of the computer system.
33. the real-time communication session is an extended reality communication session taking place within an extended reality environment; the communication user interface is displayed within the extended reality environment; The method of claim 32 , wherein the avatar editing user interface is displayed within the extended reality environment.
34. 34. The method of claim 32 or 33, further comprising, subsequent to displaying the selectable user interface object, participating in a communications session using the avatar representing the user of the computer system.
35. displaying, via the display generation component, an option for initiating a communication session concurrently with the selectable user interface object; detecting, via the one or more sensors, a selection input directed at the option for initiating a communication session; 35. The method of claim 34, further comprising initiating a communication session in response to detecting the selection input directed to the option to initiate a communication session.
36. 36. The method of any one of claims 32 to 35, wherein the selectable user interface object is displayed during an ongoing communication session.
37. detecting, via the one or more sensors, input directed to the one or more options for modifying the appearance of the avatar representing the user of the computer system; 37. The method of any one of claims 32 to 36, further comprising: modifying the appearance of the avatar representing the user of the computer system in response to detecting input directed at the one or more options for modifying the appearance of the avatar, wherein modifying the appearance of the avatar comprises editing the avatar.
38. 38. The method of claim 37, wherein a first option of the avatar representing the user of the computer system is editable through the avatar editing user interface, and a second option of the avatar representing the user of the computer system is not editable through the avatar editing user interface.
39. 39. The method of claim 37 or 38, wherein editing the avatar representing the user of the computer system comprises adding eyewear to the avatar representing the user of the computer system.
40. 40. The method of claim 39, wherein the one or more options for modifying the appearance of the avatar representing the user of the computer system include an option for a first eyewear template and an option for a second eyewear template that is different from the first eyewear template.
41. 41. The method of any one of claims 37 to 40, wherein editing the avatar representing the user of the computer system comprises adding one or more accessibility options to the avatar representing the user of the computer system.
42. 42. The method of claim 41 , wherein adding one or more accessibility options to the avatar representing the user of the computer system includes adding accessibility options to a first eye of the avatar without adding accessibility options to a second eye of the avatar.
43. The one or more options include one or more options for modifying simulated lighting, and the method further comprises: detecting, via the one or more sensors, an input directed to the one or more options for modifying simulated lighting; 43. The method of any one of claims 32 to 42, further comprising: modifying the appearance of the avatar representing the user of the computer system in response to detecting input directed toward the one or more options for changing simulated lighting, wherein modifying the appearance of the avatar comprises changing simulated lighting.
44. 44. The method of claim 43, wherein modifying the simulated lighting comprises changing an exposure setting.
45. 45. The method of claim 43 or 44, wherein modifying the simulated lighting comprises changing a color temperature setting.
46. the one or more options include one or more options for changing the fidelity of the avatar representing the user of the computer system, the method comprising: detecting, via the one or more sensors, input directed to the one or more options for changing the fidelity of the avatar representing the user of the computer system; 46. The method of any one of claims 32 to 45, further comprising: modifying the fidelity of the avatar representing the user of the computer system in response to detecting input directed at the one or more options for changing the fidelity of the avatar.
47. the avatar representing the user of the computer system is a simulated three-dimensional avatar, and the method comprises: displaying, via the display generation component, an option to discontinue use of the avatar in the real-time communication session while the user is represented by the avatar that moves according to the user's movements of the computer system during the real-time communication session; and detecting, via the one or more sensors, a selection of the option to discontinue use of the avatar in the real-time communication session; 47. The method of any one of claims 32 to 46, further comprising: discontinuing use of the avatar in the real-time communication session in response to detecting selection of the option to discontinue use of the avatar in the real-time communication session.
48. 48. The method of any one of claims 32 to 47, wherein the avatar editing user interface includes one or more avatar management options.
49. wherein the one or more avatar management options include an option for creating a new avatar representing the user of the computer system, the method comprising: detecting, via the one or more sensors, a selection of the option to create a new avatar representing the user of the computer system; 49. The method of claim 48, further comprising: initiating a process to create a new avatar representing the user of the computer system in response to detecting selection of the option to create a new avatar representing the user of the computer system.
50. wherein the one or more avatar management options include an option for deleting an avatar representing the user of the computer system, the method comprising: detecting, via the one or more sensors, a selection of the option to delete an avatar representing the user of the computer system; 50. The method of claim 48 or 49, further comprising initiating a process to delete an avatar representing the user of the computer system in response to detecting selection of the option to delete an avatar representing the user of the computer system.
51. a simulated three-dimensional avatar representing the user of the computer system is not available, and the method comprises:
51. The method of any one of claims 32 to 50, further comprising using a representation of the user of the computer system that moves according to the movements of the user of the computer system without reflecting the appearance of the user of the computer system during the real-time communication session while a simulated three-dimensional avatar representing the user of the computer system is not available.
52. enabling the user of the computer system to participate in a spatial communication session in accordance with a determination that the avatar representing the user of the computer system is a simulated three-dimensional avatar; and 52. The method of any one of claims 32 to 51, further comprising: withdrawing from enabling the user of the computer system to participate in a spatial communication session in accordance with a determination that the avatar representing the user of the computer system is not a simulated three-dimensional avatar.
53. while a simulated three-dimensional avatar representing the user of the computer system is not available, displaying, via the display generation component, an option to create an avatar representing the user of the computer system in response at least in part to the detected one or more inputs; 53. The method of any one of claims 32 to 52, further comprising: initiating a process to create an avatar representing the user of the computer system in response to detecting selection of the option to create an avatar representing the user of the computer system.
54. displaying, via the display generation component, an option to use a default avatar to represent the user of the computer system while a simulated three-dimensional avatar representing the user of the computer system is not available, in response at least in part to the detected one or more inputs; 54. The method of any one of claims 32 to 53, further comprising: in response to detecting a selection of the option to use the default avatar to represent the user of the computer system, using the default avatar to represent the user of the computer system.
55. 55. The method of claim 54, wherein the default avatar moves with the movements of the user of the computer system without reflecting the appearance of the user of the computer system.
56. 56. A method according to claim 54 or 55, wherein the default avatar represents a user of the computer system when the computer system is in guest mode.
57. 57. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generating component and one or more sensors, the one or more programs including instructions for performing the method of any one of claims 32 to 56.
58. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 32 to 56.
59. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising:
57. A computer system comprising means for carrying out the method of any one of claims 32 to 56.
60. 57. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs comprising instructions for performing the method of any one of claims 32 to 56.
61. 1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs comprising: via the display generation component, displaying a communication user interface for communicating with other users in a real-time communication session during which a user of the computer system is represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; displaying, via the display generation component, selectable user interface objects while displaying the communication user interface; detecting one or more inputs via the one or more sensors, including a selection input directed at the selectable user interface object; via the display generation component, in response to detecting the one or more inputs including the selection input directed to the selectable user interface object; the avatar representing the user of the computer system; and one or more options for modifying the appearance of the avatar representing the user of the computer system.
62. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: via the display generation component, displaying a communication user interface for communicating with other users in a real-time communication session during which a user of the computer system is represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; displaying, via the display generation component, selectable user interface objects while displaying the communication user interface; detecting one or more inputs via the one or more sensors, including a selection input directed at the selectable user interface object; via the display generation component, in response to detecting the one or more inputs including the selection input directed to the selectable user interface object; the avatar representing the user of the computer system; and one or more options for modifying the appearance of the avatar representing the user of the computer system.
63. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: means for displaying, via the display generation component, a communication user interface for communicating with other users in a real-time communication session, during which a user of the computer system is represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; means for displaying selectable user interface objects via said display generation component while displaying said communications user interface; means for detecting one or more inputs, including a selection input, directed at the selectable user interface object via the one or more sensors; via the display generation component, in response to detecting the one or more inputs including the selection input directed to the selectable user interface object; the avatar representing the user of the computer system; and one or more options for modifying the appearance of the avatar representing the user of the computer system.
64. 1. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs comprising: via the display generation component, displaying a communication user interface for communicating with other users in a real-time communication session during which a user of the computer system is represented by an avatar that moves according to movements of the user of the computer system detected by the one or more sensors during the real-time communication session; displaying, via the display generation component, selectable user interface objects while displaying the communication user interface; detecting one or more inputs via the one or more sensors, including a selection input directed at the selectable user interface object; via the display generation component, in response to detecting the one or more inputs including the selection input directed to the selectable user interface object; the avatar representing the user of the computer system; and one or more options for modifying the appearance of the avatar representing the user of the computer system.
65. 1. A method comprising:
1. A computer system in communication with a display generation component, comprising: While participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes: the representations of the plurality of participants spaced apart from each other and from a user of the computer system by at least a threshold amount in a first non-perpendicular direction in the 3D environment; displaying the representations of the plurality of participants in the spatially distributed arrangement, the representations of the plurality of participants being spaced apart from each other and from the user by at least the threshold amount in a second non-vertical direction different from the first non-vertical direction; Detecting an event while displaying the representations of the plurality of participants distributed within the 3D environment; and transitioning the communication session from the spatial communication session to a non-spatial communication session in response to detecting the event, wherein transitioning includes displaying, via the display generation component, representations of at least a subset of the plurality of participants in the communication session in a grouped arrangement, wherein in the grouped arrangement: the representations of the plurality of participants are spaced apart from one another in the first non-vertical direction in the 3D environment by less than the threshold amount; a representation of a first participant in the grouped arrangement having a different position than a representation of the first participant in the spatially distributed arrangement; A method wherein a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement.
66. In the non-spatial communication session, a representation of a first participant of the plurality of participants in a first window area; a representation of a second one of the plurality of participants in a second window area different from the first window area; In the spatial communication session, a representation of the first participant of the plurality of participants is not within a window region; 66. The method of claim 65, wherein the representation of the second one of the plurality of participants is not within a window region.
67. 67. The method of claim 66, wherein the representation of the first participant is a simulated three-dimensional representation and the representation of the second participant is a two-dimensional representation.
68. 67. The method of claim 66, wherein the plurality of participants are two-dimensional representations.
69. 67. The method of claim 66, wherein the plurality of participants are three-dimensional representations.
70. 70. The method of any one of claims 65 to 69, wherein the event is a request received during the communication session to transition a representation of the user of the computer system from a 3D representation to a 2D representation.
71. 71. The method of claim 70, wherein the request is based on an input in a communication session control area.
72. 72. The method of claim 71 , wherein the communication session control area includes an option for transitioning the representation of the user of the computer system from the 3D representation to the 2D representation and one or more options corresponding to other communication session control.
73. 70. The method of any one of claims 65 to 69, wherein the event is a request received during the communication session to transition the communication session from the spatial communication session to the non-spatial communication session.
74. 70. The method of any one of claims 65 to 69, wherein the event is an additional participant joining the communication session.
75. 75. The method of claim 74, wherein the joining of the additional participant to the communication session causes the number of participants represented by the simulated three-dimensional representation to exceed a threshold number of participants.
76. 76. The method of any one of claims 65 to 75, further comprising shifting the positions of individual window regions corresponding to individual participants based on movement of the individual participants while the communication session is a non-spatial communication session.
77. 77. The method of claim 76, wherein the individual window regions move forward and / or backward within the virtual environment based on individual participant head positions.
78. 78. The method of claim 76 or 77, wherein the individual window regions tilt based on the head positions of the individual participants.
79. 79. The method of any one of claims 76 to 78, wherein a first window region shifts in a first direction based on a movement of a participant displayed in the first window, and a second window shifts in a second direction different from the first direction based on a movement of a participant displayed in the second window.
80. Detecting a second event while participating in the communication session, the communication session being a non-spatial communication session; 80. The method of any one of claims 65 to 79, further comprising: in response to detecting the second event, transitioning the communications session from the non-spatial communications session to the spatial communications session.
81. 81. The method of claim 80, wherein the second event is a participant leaving the communication session.
82. 81. The method of claim 80, wherein the second event is a request received during the communication session to transition a representation of the user of the computer system from a 2D representation to a 3D representation.
83. 81. The method of claim 80, wherein the second event is a request received during the communication session to transition the communication session from a non-spatial communication session to a spatial communication session.
84. 84. The method of any one of claims 65 to 83, further comprising displaying, via the display generation component, a self-view of a representation of the user of the computer system in a self-view window area during a spatial communication session.
85. 85. The method of claim 84, wherein the self-view window area overlaps a window area containing a representation of another participant in an ongoing communication session.
86. 86. A method according to claim 84 or 85, wherein the self-view window area is smaller than a window area containing a representation of another participant.
87. During a spatial communication session, a first participant in the communication session can move a separate representation of the first participant and a second participant in the communication session can move a separate representation of the second participant; 87. A method according to any one of claims 65 to 86, wherein during a non-spatial communication session, the user of a computer system is able to move respective window regions containing respective representations of the plurality of participants in the communication session.
88. detecting, via one or more sensors in communication with the computer system, user input to reposition the individual window regions containing the individual representations of the participants; 88. The method of claim 87, further comprising: re-arranging a plurality of window regions of the plurality of participants in response to detecting the user input to re-arrange the individual window regions containing the individual representations of the participants.
89. 89. A method according to claim 87 or 88, wherein the respective representations of the participants are arranged in an initial arrangement based on predetermined arrangement rules.
90. displaying, via said display generation component, representations of invited users who are not currently participants in said communication session; enabling a user of the computer system to reposition the representations of the invited users who are not current participants in accordance with a determination that the communication session is a non-spatial communication session; 90. The method of any one of claims 87 to 89, further comprising: pursuant to a determination that the communication session is a spatial communication session, ceasing to allow the user of the computer system to reposition the representation of the invited user who is not currently a participant.
91. 91. The method of any one of claims 65 to 90, further comprising, in response to changing between a spatial communication session and a non-spatial communication session, displaying via the display generation component an indication that the mode of the communication session has changed.
92. 92. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs including instructions for performing the method of any one of claims 65 to 91.
93. 1. A computer system configured to communicate with a display generation component, the computer system comprising: one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 65 to 91.
94. 1. A computer system configured in communication with a display generation component, the computer system comprising:
92. A computer system comprising means for carrying out the method of any one of claims 65 to 91.
95. 92. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs comprising instructions for performing the method of any one of claims 65 to 91.
96. 1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs comprising: While participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes: the representations of the plurality of participants spaced apart from each other and from a user of the computer system by at least a threshold amount in a first non-perpendicular direction in the 3D environment; displaying the representations of the plurality of participants in the spatially distributed arrangement, the representations of the plurality of participants spaced apart from each other and from the user by at least the threshold amount in a second non-vertical direction different from the first non-vertical direction; Detecting an event while displaying the representations of the plurality of participants distributed within the 3D environment; 10. A non-transitory computer-readable storage medium comprising instructions for transitioning the communication session from the spatial communication session to a non-spatial communication session in response to detecting the event, the transitioning including displaying, via the display generation component, representations of at least a subset of the plurality of participants of the communication session in a grouped arrangement, wherein in the grouped arrangement: the representations of the plurality of participants are spaced apart from one another in the first non-vertical direction in the 3D environment by less than the threshold amount; a representation of a first participant in the grouped arrangement having a different position than a representation of the first participant in the spatially distributed arrangement; a representation of a second participant in the grouped arrangement having a different position than a representation of the second participant in the spatially distributed arrangement;
97. 1. A computer system configured in communication with a display generation component, the computer system comprising: one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: While participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes: the representations of the plurality of participants spaced apart from each other and from a user of the computer system by at least a threshold amount in a first non-perpendicular direction in the 3D environment; displaying the representations of the plurality of participants in the spatially distributed arrangement, the representations of the plurality of participants spaced apart from each other and from the user by at least the threshold amount in a second non-vertical direction different from the first non-vertical direction; Detecting an event while displaying the representations of the plurality of participants distributed within the 3D environment; responsive to detecting the event, transitioning the communication session from the spatial communication session to a non-spatial communication session, wherein transitioning includes displaying, via the display generation component, representations of at least a subset of the plurality of participants of the communication session in a grouped arrangement, wherein in the grouped arrangement: the representations of the plurality of participants are spaced apart from one another in the first non-vertical direction in the 3D environment by less than the threshold amount; a representation of a first participant in the grouped arrangement having a different position than a representation of the first participant in the spatially distributed arrangement; A computer system, wherein a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement.
98. 1. A computer system configured in communication with a display generation component, the computer system comprising: While participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes: the representations of the plurality of participants spaced apart from each other and from a user of the computer system by at least a threshold amount in a first non-perpendicular direction in the 3D environment; means for displaying the plurality of participants in the spatially distributed arrangement, the means including: displaying the representations of the plurality of participants spaced apart from each other and from the user by at least the threshold amount in a second non-vertical direction different from the first non-vertical direction; means for detecting an event while displaying the representation of the plurality of participants distributed within the 3D environment; means for transitioning the communication session from the spatial communication session to a non-spatial communication session in response to detecting the event, wherein transitioning includes displaying, via the display generation component, representations of at least a subset of the plurality of participants in the communication session in a grouped arrangement, wherein in the grouped arrangement: the representations of the plurality of participants are spaced apart from one another in the first non-vertical direction in the 3D environment by less than the threshold amount; a representation of a first participant in the grouped arrangement having a different position than a representation of the first participant in the spatially distributed arrangement; A computer system, wherein a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement. A position higher than the representation of the second participant in the spatially distributed arrangement.
99. 1. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component, the one or more programs comprising: While participating in a communication session that is a spatial communication session, displaying via the display generation component representations of a plurality of participants in the communication session in a spatially distributed arrangement in a 3D environment includes: the representations of the plurality of participants spaced apart from each other and from a user of the computer system by at least a threshold amount in a first non-perpendicular direction in the 3D environment; displaying the representations of the plurality of participants in the spatially distributed arrangement, the representations of the plurality of participants spaced apart from each other and from the user by at least the threshold amount in a second non-vertical direction different from the first non-vertical direction; Detecting an event while displaying the representations of the plurality of participants distributed within the 3D environment; responsive to detecting the event, transitioning the communication session from the spatial communication session to a non-spatial communication session, wherein transitioning includes displaying, via the display generation component, representations of at least a subset of the plurality of participants in the communication session in a grouped arrangement, wherein in the grouped arrangement: the representations of the plurality of participants are spaced apart from one another in the first non-vertical direction in the 3D environment by less than the threshold amount; a representation of a first participant in the grouped arrangement having a different position than a representation of the first participant in the spatially distributed arrangement; A computer program product, wherein a representation of a second participant in the grouped arrangement has a different position than a representation of the second participant in the spatially distributed arrangement.
100. 1. A method comprising:
1. A computer system in communication with a display generating component and one or more sensors, comprising: detecting eye gaze input of a user of the computer system via the one or more sensors during the communication session with one or more participants in the communication session; In response to detecting the gaze input, displaying, via the display generation component, information regarding a first participant in the communication session in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria; and ceasing to display the information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
101. 101. The method of claim 100, wherein the set of one or more gaze criteria includes a first location criterion that is satisfied when the gaze input is directed at a location corresponding to the first participant.
102. 102. The method of claim 100 or 101, further comprising, in response to detecting the gaze input and in accordance with a determination that the gaze input satisfies the set of one or more gaze criteria, ceasing to display information regarding a second participant of the communication session that is different from the first participant.
103. 101. The method of claim 100, wherein the set of one or more gaze criteria includes a second location criterion that is satisfied when the gaze input is directed at a location that does not correspond to the first participant.
104. 104. The method of claim 103, wherein the location that does not correspond to the first participant is a location of a system user interface element.
105. In response to detecting the gaze input, 105. The method of claim 104, further comprising: displaying, via the display generation component, controls for the communication session in accordance with a determination that the gaze input satisfies a second set of one or more gaze criteria, the second set of one or more gaze criteria including the set of one or more gaze criteria, including a duration criterion that is met when the gaze input remains directed at the location of the system user interface element for a predetermined duration.
106. In response to detecting the gaze input, 106. The method of claim 104 or 105, further comprising displaying, via the display generation component, a system control for the computer system in accordance with a determination that the gaze input satisfies a third set of one or more gaze criteria, the third set of one or more gaze criteria including the set of one or more gaze criteria, including a second duration criterion that is met when the gaze input remains directed at the location of the system user interface element for a second predetermined duration.
107. 107. The method of any one of claims 104 to 106, wherein the system user interface element indicates a state of the communication session.
108. 108. The method of claim 107, wherein the color of the system user interface element indicates the state of the communication session.
109. 109. The method of any one of claims 100 to 108, further comprising automatically ceasing displaying the information about the first participant in the communication session subsequent to displaying the information about the first participant in the communication session.
110. In response to detecting the gaze input, displaying, via the display generation component, information regarding a second participant of the communication session that is different from the first participant of the communication session in accordance with a determination that the gaze input satisfies the set of one or more gaze criteria; 110. The method of claim 100, further comprising: ceasing to display the information regarding the second participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
111. 111. The method of any one of claims 100 to 110, wherein the information about the first participant includes the first participant's name.
112. 112. The method of any one of claims 100 to 111, wherein the information about the first participant is displayed near a representation of the first participant.
113. 113. The method of any one of claims 100 to 112, wherein the information about the first participant includes a connection status of the first participant.
114. 114. The method of any one of claims 100 to 113, wherein the information about the first participant includes an availability status of the first participant.
115. 115. The method of claim 114, wherein the availability status of an individual participant is based on whether the individual participant is wearing an electronic device.
116. 116. The method of any one of claims 100 to 115, wherein the information about the first participant includes a microphone status of the first participant.
117. 117. The method of any one of claims 100 to 116, wherein the information about the first participant includes an indication of whether the first participant is a guest.
118. 118. The method of any one of claims 100 to 117, wherein the information about the first participant includes an identifier associated with a device of the first participant.
119. during the communication session with the one or more participants in the communication session; displaying a first representation of the first participant in accordance with a determination that the first participant is an owner of a device being used to connect to the communication session; 119. The method of any one of claims 100 to 118, further comprising: displaying a second representation of the first participant in accordance with a determination that the first participant is not the owner of the device being used to connect to the communication session.
120. 120. The method of claim 119, wherein the second representation is a default or placeholder avatar that is not customized to include facial features of the first participant.
121. detecting a change in the state of a second participant in the communication session; 121. The method of any one of claims 100 to 120, further comprising: in response to detecting the change in the state of the second participant, displaying information about the second participant via the display generation component.
122. in response to detecting the gaze input and in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria, displaying, via the display generation component, individual information for each of a plurality of participants in the communication session; 122. The method of claim 121, further comprising: in response to detecting the change in the state of the second participant, ceasing to display, via the display generation component, information about a third participant different from the second participant.
123. 123. The method of any one of claims 100 to 122, further comprising, in response to detecting that tracking has been lost for an individual participant in the communication session, displaying an indication that tracking has been lost for the individual participant.
124. 124. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generating component and one or more sensors, the one or more programs including instructions for performing the method of any one of claims 100 to 123.
125. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 100 to 123.
126. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: A computer system comprising means for carrying out the method of any one of claims 100 to 123.
127. 124. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs comprising instructions for performing the method of any one of claims 100 to 123.
128. 1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs comprising: detecting eye gaze input of a user of the computer system via the one or more sensors during the communication session with one or more participants in the communication session; In response to detecting the gaze input, displaying, via the display generation component, information regarding a first participant in the communication session in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria; 12. A non-transitory computer-readable storage medium comprising instructions for ceasing display of the information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
129. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: detecting eye gaze input of a user of the computer system via the one or more sensors during the communication session with one or more participants in the communication session; In response to detecting the gaze input, displaying, via the display generation component, information regarding a first participant in the communication session in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria; 11. A computer system comprising: instructions for ceasing to display the information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
130. 1. A computer system configured to communicate with a display generation component and one or more sensors, the computer system comprising: means for detecting eye gaze input of a user of the computer system via the one or more sensors during the communication session with one or more participants in the communication session; In response to detecting the gaze input, displaying, via the display generation component, information regarding a first participant in the communication session in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria; means for ceasing to display the information regarding the first participant in the communication session according to a determination that the gaze input does not satisfy the set of one or more gaze criteria.
131. 1. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a display generation component and one or more sensors, the one or more programs comprising: detecting eye gaze input of a user of the computer system via the one or more sensors during the communication session with one or more participants in the communication session; In response to detecting the gaze input, displaying, via the display generation component, information regarding a first participant in the communication session in accordance with a determination that the gaze input satisfies a set of one or more gaze criteria; 11. A computer program product comprising: instructions for ceasing display of the information regarding the first participant in the communication session in accordance with a determination that the gaze input does not satisfy the set of one or more gaze criteria.
Citation Information
Patent Citations
Information processing device and program
JP2022109048A
Shared virtual area communication environment based apparatus and methods
US20140237393A1
Controls and Interfaces for User Interactions in Virtual Spaces
US20180095635A1
3D object annotation
US20210256261A1
Interfaces for presenting avatars in three-dimensional environments
US20220262080A1