Device, method, and graphical user interface for presenting virtual object in virtual environment
The computer system addresses inefficiencies in augmented and virtual reality interactions by reducing user inputs and improving feedback, resulting in more efficient and intuitive user experiences with reduced power consumption.
Patent Information
- Application Number
- JP2025105721
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-09-25
- Filing Date
- 2025-06-23
- Publication Date
- 2025-11-05
AI Technical Summary
Existing methods for interacting with augmented and virtual reality environments are cumbersome, inefficient, and complex, leading to a significant cognitive burden on users and unnecessary energy consumption, particularly in battery-operated devices.
A computer system with improved methods and interfaces that reduce the number and type of user inputs by providing intuitive interactions through touch-sensitive displays, eye-tracking, hand-tracking, and spatial arrangement of virtual objects, enhancing user feedback and reducing power consumption.
The system enhances user interaction efficiency, reduces errors, and conserves battery life by minimizing unnecessary inputs and providing efficient navigation within three-dimensional environments.
Smart Images

Figure 2025165924000001_ABST
Abstract
Description
Cross-reference to related applications
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Patent Application No. 63 / 261,667, filed September 25, 2021, the contents of which are incorporated herein by reference in their entirety for all purposes. [Technical Field]
[0002] It generally relates to a computer system having a display generation component and one or more input devices, including but not limited to electronic devices, that present a graphical user interface within a virtual environment via the display generation component. [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, including digital images, video, text, icons, and control elements such as buttons and other graphics. Summary of the Invention
[0004] Some methods and interfaces for interacting with environments 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 feedback for performing actions associated with virtual objects, systems that require a series of inputs to achieve a desired result in an augmented reality environment, and systems in which manipulating virtual objects is complex and error-prone create a significant cognitive burden for users and detract from the experience of the virtual / augmented reality environment. In addition, these methods are unnecessarily time-consuming, thereby wasting energy. This latter consideration is particularly important in battery-operated devices.
[0005] Therefore, there is a need for a computer system having improved methods and interfaces for providing users with computer-generated experiences that make interaction with the computer system more efficient and intuitive for the user. Such methods and interfaces can optionally complement or replace conventional methods of providing users with augmented reality experiences. Such methods and interfaces reduce the number, extent, and / or type of inputs from the 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 for 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 generation component, 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 the 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 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, spreadsheet creation, game playing, making phone calls, video conferencing, emailing, instant messaging, training support, digital photography, digital videography, web browsing, digital music playback, note taking, and / or digital video playback, and executable instructions to perform those functions are optionally contained in a transitory 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 navigating a user interface. Such methods and interfaces can complement or replace conventional methods for interacting with graphical user interfaces. Such methods and interfaces reduce the number, extent, and / or type of inputs 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 electronic device updates the spatial arrangement of one or more virtual objects in the three-dimensional environment. In some embodiments, the electronic device updates the positions of multiple virtual objects together. In some embodiments, the electronic device displays the objects in the three-dimensional environment based on the estimated location of a floor in the three-dimensional environment. In some embodiments, the electronic device moves (e.g., repositions) the objects in the three-dimensional environment.
[0009] 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. [Brief explanation of the drawings]
[0010] 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:
[0011] [Figure 1] FIG. 1 is a block diagram illustrating an operating environment for a computer system for providing an XR experience, according to some embodiments.
[0012] [Figure 2] FIG. 1 is a block diagram illustrating a controller of a computer system configured to manage and coordinate a user's XR experience, according to some embodiments.
[0013] [Figure 3] FIG. 1 is a block diagram illustrating display generation components of a computer system configured to provide a visual component of an XR experience to a user, according to some embodiments.
[0014] [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.
[0015] [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.
[0016] [Figure 6A] 1 is a flowchart illustrating a glint-assisted gaze tracking pipeline, according to some embodiments.
[0017] [Figure 6B] 1 illustrates an exemplary environment of an electronic device for providing an XR experience, according to some embodiments.
[0018] [Figure 7A] 10A-10C illustrate examples of how an electronic device updates the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7B] 10A-10C illustrate examples of how an electronic device updates the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7C] 10A-10C illustrate examples of how an electronic device updates the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7D] 10A-10C illustrate examples of how an electronic device updates the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7E] 10A-10C illustrate examples of how an electronic device updates the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7F] 10A-10C illustrate examples of how an electronic device updates the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 7G] 10A-10C illustrate examples of how an electronic device updates the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments.
[0019] [Figure 8A] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8B] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8C] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8D] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8E] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8F] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8G] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8H] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8I] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8J] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments. [Figure 8K] 1 is a flowchart illustrating a method for updating the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments.
[0020] [Figure 9A] 10 illustrates an example of how an electronic device can update the positions of multiple virtual objects together, according to some embodiments. [Figure 9B] 10 illustrates an example of how an electronic device can update the positions of multiple virtual objects together, according to some embodiments. [Figure 9C] 10 illustrates an example of how an electronic device can update the positions of multiple virtual objects together, according to some embodiments. [Figure 9D] 10 illustrates an example of how an electronic device can update the positions of multiple virtual objects together, according to some embodiments. [Figure 9E] 10 illustrates an example of how an electronic device can update the positions of multiple virtual objects together, according to some embodiments. [Figure 9F] 10 illustrates an example of how an electronic device can update the positions of multiple virtual objects together, according to some embodiments. [Figure 9G] 10 illustrates an example of how an electronic device can update the positions of multiple virtual objects together, according to some embodiments.
[0021] [Figure 10A] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10B] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10C] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10D] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10E] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10F] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10G] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10H] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10I] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10J] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. [Figure 10K] 10 is a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments.
[0022] [Figure 11A] 1 illustrates an example method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 11B] 1 illustrates an example method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 11C] 1 illustrates an example method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 11D] 1 illustrates an example method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 11E] 1 illustrates an example method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments.
[0023] [Figure 12A] 1 is a flowchart illustrating a method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 12B] 1 is a flowchart illustrating a method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 12C] 1 is a flowchart illustrating a method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 12D] 1 is a flowchart illustrating a method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 12E] 1 is a flowchart illustrating a method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 12F] 1 is a flowchart illustrating a method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments. [Figure 12G] 1 is a flowchart illustrating a method for displaying an object in a three-dimensional environment based on an estimated location on a floor of the three-dimensional environment, according to some embodiments.
[0024] [Figure 13A] 1 illustrates an exemplary method for moving an object within a three-dimensional environment, according to some embodiments of the present disclosure. [Figure 13B] 1 illustrates an exemplary method for moving an object within a three-dimensional environment, according to some embodiments of the present disclosure. [Figure 13C] 1 illustrates an exemplary method for moving an object within a three-dimensional environment, according to some embodiments of the present disclosure. [Figure 13D]1 illustrates an exemplary method for moving an object within a three-dimensional environment, according to some embodiments of the present disclosure.
[0025] [Figure 14A] 1 is a flowchart illustrating a method for moving an object within a three-dimensional environment, according to some embodiments. [Figure 14B] 1 is a flowchart illustrating a method for moving an object within a three-dimensional environment, according to some embodiments. [Figure 14C] 1 is a flowchart illustrating a method for moving an object within a three-dimensional environment, according to some embodiments. [Figure 14D] 1 is a flowchart illustrating a method for moving an object within a three-dimensional environment, according to some embodiments. [Figure 14E] 1 is a flowchart illustrating a method for moving an object within a three-dimensional environment, according to some embodiments. [Figure 14F] 1 is a flowchart illustrating a method for moving an object within a three-dimensional environment, according to some embodiments. [Figure 14G] 1 is a flowchart illustrating a method for moving an object within a three-dimensional environment, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0026] The present disclosure relates to a user interface that provides a computer-generated reality (XR) experience to a user, according to some embodiments.
[0027] The systems, methods, and GUIs described herein provide improved ways for electronic devices to present content that corresponds to a physical location indicated within a navigation user interface element.
[0028] In some embodiments, a computer system displays one or more virtual objects (e.g., a user interface of an application, a representation of another user, a content item, etc.) within a three-dimensional environment. In some embodiments, the computer system evaluates the spatial placement of the virtual objects relative to a user's viewpoint within the three-dimensional environment according to one or more spatial criteria, which are described in more detail below. In some embodiments, the computer system detects user input corresponding to a request to update the position and / or orientation of the virtual objects to satisfy the one or more spatial criteria. In some embodiments, in response to the input, the computer system updates the position and / or orientation of the virtual objects to satisfy the one or more spatial criteria. Updating the position and / or orientation of the virtual objects in this manner provides an efficient way to allow a user to access, view, and / or interact with the virtual objects, which further reduces power usage and improves the battery life of the computer system by allowing a user to use the computer system more quickly and efficiently.
[0029] In some embodiments, a computer system updates the positions and / or orientations of multiple virtual objects relative to a viewpoint of a user of the computer system in a three-dimensional environment. In some embodiments, the computer system receives input corresponding to a request to update the positions and / or orientations of the multiple virtual objects relative to the viewpoint of the user. In some embodiments, in response to the input, the computer system updates the positions and / or orientations of the multiple virtual objects relative to the viewpoint of the user while maintaining spatial relationships between the multiple virtual objects. Updating the positions and / or orientations of the multiple virtual objects relative to the viewpoint of the user in this manner provides an efficient way of updating a view of the three-dimensional environment from the viewpoint of the user, which further reduces power usage and improves battery life of the computer system by allowing a user to use the computer system more quickly and efficiently.
[0030] In some embodiments, the computer system presents an object within the three-dimensional environment based on an estimated location of a physical floor in the computer system's physical environment. In some embodiments, while the computer system is presenting the object within the three-dimensional environment based on an estimated location of the physical floor within the computer system's physical environment, the computer system determines a new estimated location of the physical floor within the computer system's physical environment. In some embodiments, the computer system continues to present the object within the three-dimensional environment based on a previous estimated location of the physical floor within the computer system's physical environment until certain conditions / criteria are met. Displaying the object within the three-dimensional environment based on a previous estimated location of the physical floor until certain conditions / criteria are met provides an efficient method for updating the location of the object within the three-dimensional environment when certain conditions / criteria are met, rather than before these conditions / criteria are met. This further reduces power usage and improves the battery life of the computer system by allowing a user to use the computer system more quickly and efficiently.
[0031] In some embodiments, a computer system presents one or more user interface objects in a three-dimensional environment. In some embodiments, the computer system receives a request to move (e.g., reposition) an individual user interface object within the three-dimensional environment to a new location within the three-dimensional environment. In some embodiments, while moving (e.g., repositioning) the individual user interface object to a new location within the three-dimensional environment, the computer system visually de-emphasizes one or more portions of the individual user interface object. Visually de-emphasizing portions of the individual user interface object while moving the individual user interface object within the three-dimensional environment reduces potential disorientation that may lead to dizziness or motion sickness, thus providing a mechanism by which a user can safely interact with the three-dimensional environment, thereby reducing the cognitive burden on the user when interacting with the three-dimensional environment.
[0032] FIGS. 1-6 provide an illustration of an exemplary computer system for providing an XR experience to a user (as described below with respect to methods 800, 1000, 1200, and 1400). FIGS. 7A-7G illustrate an exemplary technique for updating the spatial arrangement of one or more virtual objects in a three-dimensional environment, according to some embodiments. FIGS. 8A-8K are a flowchart illustrating a method for updating the spatial arrangement of one or more virtual objects in a three-dimensional environment, according to some embodiments. FIGS. 9A-9G illustrate an exemplary technique for jointly updating the positions of multiple virtual objects, according to some embodiments. FIGS. 10A-10K are a flowchart illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. FIGS. 11A-11E illustrate an exemplary technique for displaying an object in a three-dimensional environment based on an estimated location of a floor of the three-dimensional environment, according to some embodiments. FIGS. 12A-12G are a flowchart illustrating a method for displaying an object in a three-dimensional environment based on an estimated location of a floor of the three-dimensional environment, according to some embodiments. 13A-13D illustrate an exemplary technique for moving an object within a three-dimensional environment according to some embodiments of the present disclosure. Figures 14A-14G are flowcharts illustrating a method for moving an object within a three-dimensional environment according to some embodiments.
[0033] The processes described below enhance the usability of the device and streamline the user-device interface (e.g., by helping the user 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 operation, providing additional control options without cluttering the user interface with additional controls that are displayed, performing an operation without requiring further user input when a set of conditions is met, improving privacy and / or security, and / or other techniques. These techniques also reduce power usage and improve the device's battery life by allowing the user to use the device more quickly and efficiently.
[0034] 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 can be repeated in any order until the conditions are met and are no longer met. 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 met. 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.
[0035] 1, 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 velocity 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 the input device 125, the output device 155, the sensor 190, and the peripheral device 195 are integrated with the display generation component 120 (e.g., within a head-mounted or handheld device).
[0036] When describing an XR experience, various terms are used to individually refer to several related, but distinct, environments that a user senses and / or can interact with (e.g., using inputs detected by computer system 101 that cause the computer system generating the XR experience to generate audio, visual, and / or haptic feedback corresponding to various inputs provided to computer system 101 generating the XR experience). The following is a subset of these terms:
[0037] 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.
[0038] Augmented reality: In contrast, an extended reality (XR) environment refers to a wholly or partially mimicked environment that people sense and / or interact with through electronic systems. In XR, a subset of a person's body 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 according to at least one law of physics. For example, an XR system may detect a person's head rotation 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 circumstances (e.g., for accessibility reasons), adjustments to property(ies) of virtual object(s) in the XR environment may be made in response to representations of body movements (e.g., voice commands). A person may sense and / or interact with an XR object using any one of these senses, including sight, hearing, 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.
[0039] Examples of XR include virtual reality and mixed reality.
[0040] Virtual Reality: A virtual reality (VR) environment refers to an emulated 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 the 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.
[0041] Mixed Reality: A mixed reality (MR) environment refers to a mimicked 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 virtuality 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 or representations thereof from the physical environment). For example, the system may take movement into account so that a virtual tree appears stationary relative to the physical ground.
[0042] Examples of mixed reality include augmented reality and augmented virtuality.
[0043] 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, which are representations of the physical environment. The system composites the images or videos with 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 a 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 mimic environments in which a representation of a physical environment is transformed by computer-generated sensory information. For example, when providing pass-through video, a 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, a representation of a 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, a representation of a physical environment may be distorted by graphically removing or obscuring portions thereof.
[0044] Augmented Virtual: An augmented virtual (AV) environment refers to a mimicking 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.
[0045] 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 generation 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 generation 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) continues 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."
[0046] 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.
[0047] 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).
[0048] Hardware: There are many different types of electronic systems that enable a person to sense and / or interact with various XR environments. Examples include head-mounted systems, projection-based systems, heads-up displays (HUDs), vehicle windshields with integrated display capabilities, windows with integrated display capabilities, displays formed as lenses designed to be placed over a person's eyes (e.g., similar to 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 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. A 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 a light guide, 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 to project 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 as physical surfaces.In some embodiments, controller 110 is configured to manage and coordinate the user's XR experience. In some embodiments, controller 110 includes a suitable combination of software, firmware, and / or hardware. Controller 110 is described in more detail below with reference 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 generation component 120 (e.g., an HMD, a display, a projector, a touchscreen, etc.) via one or more wired or wireless communication channels 144 (e.g., BLUETOOTH, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x, etc.). In another example, the controller 110 is contained within the housing (e.g., physical housing) of, or shares the same physical housing or support structure as, one or more of the display generation component 120 (e.g., an HMD or a portable electronic device including a display and one or more processors), one or more of the input devices 125, one or more of the output devices 155, one or more of the sensors 190, and / or one or more of the peripheral devices 195.
[0049] In some embodiments, display generation component 120 is configured to provide an XR experience (e.g., at least a visual component of an 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 reference to FIG. 3. In some embodiments, functionality of controller 110 is provided by and / or combined with display generation component 120.
[0050] 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.
[0051] In some embodiments, the display generation component is worn on a part of the user's body (e.g., on their head, their hand, etc.). Thus, display generation component 120 includes one or more XR displays provided for displaying XR content. For example, in various embodiments, display generation component 120 surrounds the user's field of view. In some embodiments, display generation 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 generation component 120 is an XR chamber, housing, or room configured to present XR content without the user wearing or holding display generation 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 showing interactions with XR content 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 showing interactions with CRG content 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)).
[0052] While relevant features of operating environment 100 are shown in FIG. 1, 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 exemplary embodiments disclosed herein.
[0053] 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.
[0054] 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.
[0055] 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 its non-transitory computer-readable storage medium, stores the following programs, modules, and data structures, or a subset thereof, including an optional operating system 230 and an XR experience module 240:
[0056] Operating system 230 includes instructions for handling various basic system services and for 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.
[0057] 1 , and optionally one or more of input devices 125, output devices 155, sensors 190, and / or peripheral devices 195. To that end, in various embodiments, data acquisition unit 241 includes instructions and / or logic therefor, as well as heuristics and metadata therefor.
[0058] In some embodiments, tracking unit 242 is configured to map scene 105 and track the position / location of at least display generation component 120 relative to scene 105 of FIG. 1 , 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. 1 , relative to display generation 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.
[0059] 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.
[0060] 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.
[0061] 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 may be located within separate computing devices.
[0062] Furthermore, Figure 2 is intended more to illustrate the functionality of various features that may be present in particular embodiments, as opposed to a structural overview of the embodiments described herein. As will be recognized by those skilled in the art, items shown separately may be combined and some items may be separated. For example, some functional modules shown separately in Figure 2 may be implemented within a single module, and various functions of a single functional block may be performed by one or more functional blocks in various embodiments. The actual number of modules, as well as the division of specific functions and how functions are allocated among them, will vary depending on implementation and, in some embodiments, will depend in part on the particular combination of hardware, software, and / or firmware selected for a particular implementation.
[0063] 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 not to 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., a microprocessor, an ASIC, an FPGA, a GPU, a CPU, a processing core, etc.), one or more input / output (I / O) devices and sensors 306, one or more communication interfaces 308 (e.g., USB, FIREWIRE, THUNDERBOLT, IEEE802.3x, IEEE802.11x, IEEE802.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.
[0064] 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.
[0065] 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 waveguide displays, such as 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.
[0066] 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 generation 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.
[0067] 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:
[0068] 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.
[0069] 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 1. To that end, in various embodiments, the data acquisition unit 342 includes its instructions and / or logic, as well as heuristics and metadata therefor.
[0070] 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 its instructions and / or logic, as well as heuristics and metadata therefor.
[0071] 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 augmented 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.
[0072] 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.
[0073] 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. 1), 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 may be located in separate computing devices.
[0074] Furthermore, Figure 3 is intended more to illustrate the functionality of various features that may be present in particular implementations, 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 performed by one or more functional blocks in various embodiments. The actual number of modules, as well as the division of specific functions and how functions 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.
[0075] 4 is a schematic diagram of an example embodiment of a hand tracking device 140. In some embodiments, the hand tracking device 140 (FIG. 1) is controlled by a hand tracking unit 244 (FIG. 2) to track the location / position 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 the scene 105 of FIG. 1 (e.g., relative to a portion of the physical environment surrounding the user, relative to the display generation component 120, or relative to a portion of the user (e.g., the user's face, eyes, or head), and / or relative to a coordinate system defined relative to the user's hand). In some embodiments, the hand tracking device 140 is part of the display generation component 120 (e.g., embedded in or attached to a head-mounted device). In some embodiments, the hand tracking device 140 is separate from the display generation component 120 (e.g., located in a separate housing or attached to a separate physical support structure).
[0076] 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.
[0077] 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.
[0078] 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 pattern's spots. 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 a set of orthogonal 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 measurement, based on single or multiple cameras or other types of sensors.
[0079] 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 with patch descriptors stored in the database 408, based on a previous learning 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.
[0080] 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.
[0081] 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 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 involving movement of a hand in a predetermined posture by a predetermined amount and / or speed, or a shake gesture involving rotation of the user's body part at a predetermined speed or amount).
[0082] 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, 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 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 the hand in a predetermined posture by a predetermined amount and / or speed, or a shake gesture involving rotation of the user's body part at a predetermined speed or amount).
[0083] 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.
[0084] 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).
[0085] 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.
[0086] 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.
[0087] 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 hand of the user) in conjunction with performing the pinch input using the first hand. In some embodiments, a movement between a user's hands (e.g., to increase and / or decrease the distance or relative orientation between the user's hands).
[0088] 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).
[0089] 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).
[0090] 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 with the thumb and one or more fingers extended and spaced apart, ready to perform a pinch or grab gesture, or a pre-tap geometry with one or more fingers extended and the palm 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.
[0091] 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 performed by 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 performed 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 performed 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.
[0092] 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 gray levels as depth increases. 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.
[0093] 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.
[0094] FIG. 5 illustrates an exemplary embodiment of eye tracking device 130 ( FIG. 1 ). In some embodiments, eye tracking device 130 is controlled by eye tracking unit 245 ( 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 generation components. In some embodiments, eye tracking device 130 is not a head-mounted device, and is optionally used in conjunction with head-mounted display generation components. In some embodiments, eye tracking device 130 is not a head-mounted device, and is optionally part of non-head-mounted display generation components.
[0095] 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 a 3D virtual view to the user. For example, a 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.
[0096] As shown in FIG. 5 , in some embodiments, the gaze tracking device 130 includes at least one eye tracking camera (e.g., an infrared (IR) 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 the 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 the IR or NIR light from the eyes to the eye tracking camera while allowing visual light to pass through. The gaze 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, generates gaze tracking information, and communicates the gaze tracking information to the controller 110. In some embodiments, the user's eyes are tracked separately by their respective 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.
[0097] 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 glint-assisted methods to determine the user's current visual axis and viewpoint relative to the display.
[0098] 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).
[0099] 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.
[0100] 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.
[0101] 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(s) 520), an eye tracking camera (e.g., eye tracking camera(s) 540), and a light source (e.g., light source 530 (e.g., IR or NIR LED)) attached to the wearable housing. The light source emits light (e.g., IR 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, eight light sources 530 (e.g., LEDs) are arranged around each lens 520, as an example. However, more or fewer light sources 530 may be used, and other arrangements and locations of the light sources 530 may be used.
[0102] 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.
[0103] 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.
[0104] FIG. 6A 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. 1 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.
[0105] As shown in FIG. 6A, an eye-tracking camera may 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 may 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.
[0106] 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.
[0107] 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.
[0108] 6A 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.
[0109] 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.
[0110] 6B shows an exemplary environment for the electronic device 101 for providing an XR experience, according to some embodiments. In FIG. 6B , a real-world environment 602 includes the electronic device 101, a user 608, and a real-world object (e.g., a table 604). As shown in FIG. 6B , the electronic device 101 is optionally tripod-mounted or otherwise secured to the real-world environment 602 so that one or more hands of the user 608 are free (e.g., the user 608 is optionally not holding the device 101 with one or more hands). As described above, the device 101 optionally has one or more groups of sensors positioned on different sides of the device 101. For example, the device 101 optionally includes a sensor group 612-1 and a sensor group 612-2 located on the “rear” and “front” sides of the device 101, respectively (e.g., capable of capturing information from each side of the device 101). As used herein, the front side of the device 101 is the side that faces the user 608 and the back side of the device 101 is the side that faces away from the user 608 .
[0111] In some embodiments, sensor group 612-2 includes an eye tracking unit (e.g., eye tracking unit 245 described above with reference to FIG. 2) that includes one or more sensors for tracking the eyes and / or gaze of a user, and the eye tracking unit can "watch" user 608 and track the eye(s) of user 608 in the manner described above. In some embodiments, the eye tracking unit of device 101 can capture the movement, orientation, and / or gaze of the eyes of user 608 and process the movement, orientation, and / or gaze as input.
[0112] In some embodiments, sensor group 612-1 includes a hand tracking unit (e.g., hand tracking unit 243 described above with reference to FIG. 2) that can track one or more hands of user 608 held on the “back” side of device 101, as shown in FIG. 6B. In some embodiments, a hand tracking unit is optionally included in sensor group 612-2 so that user 608 can additionally or alternatively hold one or more hands on the “front” side of device 101 while device 101 tracks the position of the one or more hands. As described above, the hand tracking unit of device 101 can capture the movements, positions, and / or gestures of one or more hands of user 608 and process the movements, positions, and / or gestures as input.
[0113] In some embodiments, sensor group 612-1 optionally includes one or more sensors (e.g., image sensor 404 described above with reference to FIG. 4 ) configured to capture images of real-world environment 602, including table 604. As described above, device 101 can capture images of portions (e.g., part or all) of real-world environment 602 and present the captured portions of real-world environment 602 to the user via one or more display generation components of device 101 (e.g., a display of device 101 optionally located on a side of device 101 facing the user, opposite the side of device 101 facing the captured portions of real-world environment 602).
[0114] 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.
[0115] 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 the virtual objects appear 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).
[0116] In some embodiments, real-world objects that exist in the physical environment (e.g., and / or that are viewable via a view generation component) 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.
[0117] Similarly, 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 real 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 generation component displaying the projection of the user interface into the user's eyes or field of view of the user's eyes, the user's hands are visible through the display generation component 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.
[0118] 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.
[0119] 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.
[0120] 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 displayed by the display generation component, 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 displayed by the display generation component 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 virtual objects are located in the same physical environment location and have 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 component of the computer system in the three-dimensional environment.
[0121] 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.
[0122] User Interface and Related Processes We now turn our attention to embodiments of user interfaces (“UIs”) and associated processes that may be executed in a computer system, such as a portable multifunction device or a head-mounted device, equipped with a display generation component, one or more input devices, and (optionally) one or more cameras.
[0123] 7A-7G show examples of how an electronic device updates the spatial placement of one or more virtual objects in a three-dimensional environment, according to some embodiments.
[0124] FIG. 7A illustrates electronic device 101 displaying a three-dimensional environment 702 via display generation component 120. It should be understood that in some embodiments, electronic device 101 utilizes one or more of the techniques described with reference to FIGS. 7A-7G within a two-dimensional environment without departing from the scope of this disclosure. As described above with reference to FIGS. 1-6 , electronic device 101 optionally includes display generation component 120 (e.g., a touchscreen) and multiple image sensors 314. The image sensors optionally include one or more of a visible light camera, an infrared camera, a depth sensor, or any other sensor that electronic device 101 can use to capture one or more images of a user or a portion of a user while the user interacts with electronic device 101. In some embodiments, display generation component 120 is a touchscreen capable of detecting a user's hand gestures and movements. In some embodiments, the user interfaces described below may also be implemented in a head-mounted display that includes a display generation component that displays the user interface to the user and sensors that detect the physical environment and / or the movement of the user's hands (e.g., external sensors facing outward from the user) and / or the user's line of sight (e.g., internal sensors facing inward toward the user's face).
[0125] 7A , electronic device 101 displays three-dimensional environment 702 including, for example, a first user interface 704 of a first application, a second user interface 706 of a second application, a representation 708 of a second user of a second electronic device having access to three-dimensional environment 702, and a representation 710 of the second electronic device. In some embodiments, electronic device 101 displays three-dimensional environment 702 from the perspective of a user of electronic device 101. In some embodiments, the perspective of the user of electronic device 101 is located at a location within three-dimensional environment 702 that corresponds to the physical location of electronic device 101 within the physical environment of electronic device 101.
[0126] In some embodiments, the first application is private to the electronic device 101 and is not shared with the second electronic device, so the electronic device 101 displays the user interface 704 of the first application, but the second electronic device does not display the user interface 704 of the first application. In some embodiments, the second application is shared between the electronic device 101 and the second electronic device, so the first electronic device 101 and the second electronic device display the user interface 706 of the second application.
[0127] In some embodiments, the representation 708 of the second user and / or the representation 710 of the second electronic device are views of the second user and second electronic device through a transparent portion of the display generation component 120 (e.g., a true or actual pass-through). For example, the second electronic device is located in the physical environment of the electronic device 101 with a spatial relationship to the electronic device 120 that is the same as the spatial relationship between the representation 710 of the second electronic device and the user's viewpoint in the three-dimensional environment 702. In some embodiments, the representation 708 of the second user and / or the representation 710 of the second electronic device are representations displayed via the display generation component 120 (e.g., a virtual or video pass-through). For example, the second electronic device is located remotely from the electronic device 101 or is located in a spatial relationship to the electronic device 101 that differs from the spatial relationship between the representation 710 of the second electronic device and the user's viewpoint in the three-dimensional environment. In some embodiments, electronic device 101 displays representations 708 and 710 via a display generation component, and the second electronic device is located within electronic device 101's physical environment having the same spatial relationship to electronic device 120 as the spatial relationship between representation 710 of the second electronic device and the user's viewpoint within three-dimensional environment 702. In some embodiments, electronic device 101 displays representation 708 of the second user without displaying representation 710 of the second electronic device.
[0128] In some embodiments, the spatial arrangement of user interfaces 704 and 706 and representations 708 and 710 relative to a viewpoint of a user of electronic device 101 satisfies one or more criteria that specify a range of positions and / or orientations of (e.g., virtual) objects relative to the user's viewpoint within three-dimensional environment 702. For example, the one or more criteria define a spatial arrangement of user interfaces 704 and 706 and representations 708 and 710 relative to a viewpoint of a user of electronic device 101 that allows a user of electronic device 101 (and optionally a second user of a second electronic device) to see and interact with user interfaces 704 and 706 and representations 708 and 710. For example, the spatial arrangement of user interfaces 704 and 706 and representations 708 and 710 relative to a user's viewpoint shown in FIG. 7A allows a user of electronic device 101 to see and / or interact with user interfaces 704 and 706.
[0129] In some embodiments, the electronic device 101 updates the user's perspective from which the electronic device 101 displays the three-dimensional environment 702 in response to detecting movement of the electronic device 101 (e.g., and / or the display generation component 120) in the physical environment of the electronic device 101 (e.g., and / or the display generation component 120), as shown in Figure 7A. In some embodiments, the electronic device 101 updates the user's perspective in response to detecting movement of the user and / or the user of the electronic device 101 in the physical environment of the electronic device 101 and / or the display generation component 120 (e.g., via the input device 314).
[0130] 7B illustrates an example of electronic device 101 updating its display of three-dimensional environment 702 in response to detecting movement of electronic device 101 as illustrated in FIG. 7A. In some embodiments, electronic device 101 similarly updates three-dimensional environment 702 in response to input corresponding to requests to update the positions of virtual objects (e.g., user interfaces 704 and 706 and representations 708 and 710), together or separately, according to one or more steps of method 1000. As illustrated in FIG. 7B, the position of electronic device 101 in its physical environment is updated in response to the movement illustrated in FIG. 7A, and the user's viewpoint in three-dimensional environment 702 from which electronic device 101 displays three-dimensional environment 702 is updated accordingly. For example, user interfaces 704 and 706 and representations 708 and 710 are farther from the user's viewpoint in FIG. 7B than in FIG. 7A.
[0131] In some embodiments, the spatial arrangement of user interfaces 704 and 706 and representations 708 and 710 relative to a viewpoint of a user of electronic device 101 does not meet one or more criteria. For example, the criteria are not met because user interface 704 and / or user interface 706 are greater than a threshold distance from the user's viewpoint in the three-dimensional environment (e.g., a threshold distance for the user's readability and / or ability to provide input to user interfaces 704 and / or 706). Additional criteria are provided below with reference to method 800. In some embodiments, because the spatial arrangement does not meet one or more criteria, electronic device 101 displays selectable option 712 that, when selected, causes electronic device 101 to update three-dimensional environment 702 so that the spatial arrangement of user interfaces 704 and 706 and representations 708 and 710 relative to the user's viewpoint meets one or more criteria (e.g., “re-center” three-dimensional environment 702).
[0132] In some embodiments, the electronic device 101 detects an input corresponding to a request to recenter the three-dimensional environment 702, such as by detecting a selection of a selectable recenter option 712 or by detecting an input directed at a mechanical input device in communication with the electronic device 101, such as a button 703.
[0133] In some embodiments, electronic device 101 detects selection of one of the user interface elements, such as selectable options 712, by detecting an indirect selection input, a direct selection input, an air gesture selection input, or an input device selection input. In some embodiments, detecting the selection of a user interface element includes detecting that the user's hand 713a has performed a respective gesture (e.g., "hand state B"). In some embodiments, detecting the indirect selection input includes detecting the user's gaze directed at the respective user interface element via input device 314 while detecting that the user's hand 713a has performed a selection gesture (e.g., "hand state B"), such as a pinch hand gesture in which the user touches their thumb to another finger of their hand. In some embodiments, detecting the direct selection input includes detecting, via input device 314, the user's hand 713 a making a selection gesture (e.g., “hand state B”), such as a pinch gesture within a predetermined threshold distance (e.g., 1, 2, 3, 5, 10, 15, or 30 centimeters) of the location of the individual user interface element, or a press gesture that “presses” the location of the individual user interface element while the user's hand or fingers are in a pointing hand configuration. In some embodiments, detecting the air gesture input includes detecting the user's gaze directed at the individual user interface element while detecting a press gesture at the location of the air gesture user interface element displayed in three-dimensional environment 702 via display generation component 120. In some embodiments, detecting an input device selection includes detecting manipulation of a kinematic input device (e.g., a stylus, mouse, keyboard, trackpad, etc.) in a predetermined manner corresponding to selection of a user interface element while a cursor controlled by the input device is associated with the location of the respective user interface element and / or while a user's gaze is directed at the respective user interface element.
[0134] In some embodiments, button 703 is a multi-function button. For example, in response to detecting that a user has pressed button 703 a for less than a threshold period (e.g., 0.1, 0.2, 0.3, 0.5, 1, or 2 seconds), electronic device 101 displays a home user interface (e.g., a user interface of an operating system of electronic device 101), and in response to detecting that a user has pressed button 703 a for more than the threshold period, electronic device 101 recenters the three-dimensional environment 702. In some embodiments, electronic device 101 communicates with a crown or dial configured to detect when a user presses or turns a dial. In some embodiments, in response to detecting that a user has turned a dial, the electronic device updates the level of visual emphasis of the virtual object (e.g., user interfaces 704 and 706, representations 708 and 710) relative to other portions of the three-dimensional environment 702 according to the direction and magnitude that the dial was turned. In some embodiments, in response to detecting that the user has pressed the dial for less than the threshold period, the electronic device 101 displays a home user interface, and in response to detecting that the user has pressed the dial for more than the threshold period, the electronic device 101 recenters the three-dimensional environment 702.
[0135] In some embodiments, the input directed to recenter option 712 and the input directed to button 703 in FIG. 7B correspond to a request to recenter three-dimensional environment 702. While FIG. 7B shows both inputs, it should be understood that in some embodiments, electronic device 101 detects one of these inputs at a time, rather than simultaneously. In some embodiments, in response to one (or more) of the inputs shown in FIG. 7B, electronic device 101 updates three-dimensional environment 702 as shown in FIG. 7C. In some embodiments, electronic device 101 does not recenter three-dimensional environment 702 unless an input corresponding to a request to do so is received (e.g., even if the spatial placement of the virtual object relative to the user's viewpoint does not meet one or more criteria).
[0136] 7C shows electronic device 101 displaying three-dimensional environment 702 updated according to one or more of the inputs shown in FIG. 7B. In some embodiments, because the viewpoint of a user of electronic device 101 was moved away from user interfaces 704 and 706 and representations 708 and 710 as shown in FIG. 7A before electronic device 101 received the recentering input shown in FIG. 7B, in response to the recentering input, electronic device 101 updates the positions of user interfaces 704 and 706 and representations 708 and 710 in three-dimensional environment 702 so that the spatial arrangement of user interfaces 704 and 706 and representations 708 and 710 relative to the user's viewpoint satisfies one or more of the criteria described above. For example, electronic device 101 updates the positions and / or orientations of user interfaces 704 and 706 and representations 708 and 710 based on the user's updated viewpoint in three-dimensional environment 702 so that the spatial arrangement of user interfaces 704 and 706 and representations 708 and 710 relative to the user's updated viewpoint satisfies one or more of the criteria described above. In some embodiments, when the spatial arrangement of user interfaces 704 and 706 and representations 708 and 710 relative to the user's updated viewpoint meets one or more criteria, user interfaces 704 and 706 are at a distance from and / or an orientation relative to the viewpoint of the user of electronic device 101 that facilitates user interaction with the user interface.
[0137] In some embodiments, electronic device 101 uses a spatial template associated with one or more virtual objects to recenter the three-dimensional environment 702. For example, user interface 706 of a second application is shared content (e.g., video content) being consumed by a user of electronic device 101 and a second user of a second electronic device and is associated with the shared content spatial template. In some embodiments, the shared content spatial template includes positioning user interface 706 and representations 708 and 710 relative to the viewpoint of the user of electronic device 101 such that the viewpoint of the user of electronic device 101 and the viewpoint of the user of the second electronic device (e.g., represented by representations 708 and 710) are on the same side of user interface 706 at a distance that makes the content included in user interface 706 visible to the users.
[0138] 7B-7C , in some embodiments, in response to detecting a request to recenter three-dimensional environment 702 after a user's viewpoint has been updated (e.g., in response to moving electronic device 101 as shown in FIG. 7A ), electronic device 101 recenters three-dimensional environment 702 by updating the position and / or orientation of user interfaces 704 and 706 and representations 708 and 710. In some embodiments, electronic device 101 detects an input corresponding to a request to move user interfaces 704 and 706 and representations 708 and 710 away from the user's viewpoint before detecting the recentering input. In some embodiments, in response to detecting a recentering input after detecting a request(s) to move user interfaces 704 and 706 and representations 708 and 710, electronic device 101 updates the user's viewpoint within three-dimensional environment 702 (e.g., as opposed to updating the position and / or orientation of user interfaces 704 and 706 and / or representations 708 and 710). For example, the electronic device 101 moves the user's viewpoint to a new location within the three-dimensional environment (e.g., independent of the location of the electronic device 101 within the physical environment) and updates the spatial arrangement of the user interfaces 704 and 706 and the representations 708 and 710 relative to the user's viewpoint to satisfy one or more of the criteria described above.
[0139] 7C also illustrates an example of electronic device 101 detecting an input corresponding to a request to update the position of first application's user interface 704 within three-dimensional environment 702. For example, hand 713a provides a selection input directed at first application's user interface 704, as described above. In some embodiments, after detecting a portion of the selection input, e.g., a pinch hand shape in which the thumb touches another finger, but before the thumb and fingers separate to complete the pinch gesture, electronic device 101 detects movement of hand 713a. In some embodiments, electronic device 101 updates the position of first application's user interface 704 according to the detected movement of hand 713a midway through the selection input, as shown in FIG. 7D.
[0140] 7D illustrates an example of electronic device 101 displaying first application user interface 704 at an updated location within three-dimensional environment 702 in response to the input illustrated in FIG. 7C . In some embodiments, updating the location of first application user interface 704 causes the spatial arrangement of user interfaces 704 and 706 and representations 708 and 710 relative to the user's viewpoint to not satisfy one or more criteria. For example, first application user interface 704 is not entirely within the field of view of electronic device 101. As another example, the distance between first application user interface 704 and second application user interface 706 exceeds a predetermined threshold included in one or more criteria described below with reference to method 800. In some embodiments, in response to detecting that one or more criteria are not satisfied, electronic device 101 displays recenter option 712.
[0141] In some embodiments, the electronic device 101 detects an input corresponding to a request to recenter the three-dimensional environment 702. For example, the electronic device 101 detects a selection of the recenter option 712 with the hand 713a, as described in more detail above, or detects an input via the button 703 of Figure 7D. In some embodiments, in response to detecting an input corresponding to a request to recenter the three-dimensional environment 101 after the position of the user interface 704 has been updated, the electronic device 101 updates the position of the user interface 704 to satisfy one or more criteria, as shown in Figure 7E.
[0142] 7E shows the electronic device 101 displaying the user interface 704 of the first application at an updated location (e.g., and / or orientation) within the three-dimensional environment 702 in response to the recentering input shown in FIG. 7D. In some embodiments, because the position (e.g., and / or orientation) of the user interface 704 of the first application was updated before receiving the input corresponding to the request to recenter the three-dimensional environment 702 (as opposed to, e.g., a movement of the user's viewpoint that causes one or more criteria to not be met), the electronic device 101 updates the position (e.g., and / or orientation) of the user interface 704 of the first application in the three-dimensional environment 702 in response to the recentering input (e.g., without updating the user's viewpoint). For example, the electronic device 101 updates the position and / or orientation of the user interface 704 of the first application to be within a threshold distance (e.g., included in one or more criteria) of the user interface 706 of the second application, ensuring that the user interface 704 of the first application is within the field of view of the electronic device 101. In some embodiments, if the electronic device 101 detects movement of a different virtual object, such as the user interface 706 of the second application, before detecting the re-centering input, the electronic device 101 instead updates the position (e.g., and / or orientation) of that virtual object in response to the re-centering input.
[0143] In some embodiments, the electronic device 101 updates the position of the user interface 704 of the first application in response to the recentering input, regardless of which electronic device provided a previous request to reposition and / or reorient the user interface 704 before the electronic device 101 detected the recentering input. For example, if a second user of a second electronic device updates the position of the user interface 706 of a second application (e.g., to which both electronic devices have access), the second electronic device and the electronic device 101 display the user interface 706 at an updated position and / or orientation within the three-dimensional environment 702 according to the input provided by the second user of the second electronic device. If the electronic device 101 detects the recentering input while the user interface 706 is displayed at a position and orientation according to the input detected by the second electronic device, the electronic device 101 updates the position and / or orientation of the user interface 706 in the three-dimensional environment 702 to meet one or more of the criteria described above. In some embodiments, updating the position of the user interface 706 within the three-dimensional environment 702 causes the electronic device 101 and the second electronic device to display the user interface 706 at the updated position and / or location.
[0144] 7F illustrates an example of an electronic device 101 displaying a three-dimensional environment 702 that includes a user interface 714 of a third application. As illustrated in FIG. 7F, a portion of the user interface 714 of the third application is within the field of view of the electronic device 101, and a portion of the user interface 714 of the third application is outside the field of view of the electronic device 101. Although a second user 708 is included in the three-dimensional environment 702, the electronic device 101 does not display a representation of the second user or a representation of the second electronic device because the second user 708 is not within the field of view of the electronic device 101. In some embodiments, the user's viewpoint, the user interface 714 of the third application, and the spatial arrangement of the second user 708 do not meet one or more of the criteria described above. For example, one or more criteria are not met because at least the second user 708 is not within the field of view of the electronic device 101 and a portion of the user interface 714 of the third application is not within the field of view of the electronic device 101. Because one or more criteria are not met, the electronic device 101 displays a recentering option 712 within the three-dimensional environment 702 .
[0145] In some embodiments, as shown in FIG. 7F, electronic device 101 detects an input corresponding to a request to recenter three-dimensional environment 702. In some embodiments, the input includes detecting an input directed at button 703. In some embodiments, the input includes detecting a selection of recenter option 712 with hand 713a. While FIG. 7F shows both inputs, it should be understood that in some embodiments, the inputs are not detected simultaneously. In some embodiments, in response to the recentering input, electronic device 101 updates three-dimensional environment 702 as shown in FIG. 7G.
[0146] 7G illustrates an example of electronic device 101 displaying three-dimensional environment 702 in response to the recentering input described above with reference to FIG. 7F. In some embodiments, in response to the recentering input, electronic device 101 updates the user's viewpoint within three-dimensional environment 702 so that the field of view of electronic device 101 includes representation 708 of the second user, representation 710 of the second electronic device, and user interface 714 of the third application.
[0147] In some embodiments, the electronic device 101 updates the three-dimensional environment 702 according to a shared activity space template associated with the third application's user interface 714. For example, the third application's user interface 714 includes a virtual board game or other content intended to be viewed by the user from a different side of the third application's user interface 714. Thus, in some embodiments, updating the three-dimensional environment 702 in response to the recentering request includes updating the spatial arrangement of the user's viewpoint, the third application's user interface 714, the second user's representation 708, and the second electronic device's representation 710 to position the third application's user interface 714 between the user's viewpoint and the second user's representation 708.
[0148] In some embodiments, electronic device 101 updates three-dimensional environment 702 according to other spatial templates depending on which spatial template is applied to three-dimensional environment 702. For example, in some embodiments, three-dimensional environment 702 is associated with a group activity spatial template, which may not be associated with a particular user interface within three-dimensional environment 702. For example, the group activity spatial template is used for (e.g., virtual) meetings between users. In some embodiments, electronic device 101 applies the group activity spatial template by recentering users' viewpoints to positions where the users' viewpoints face each other and multiple users are within the user's field of view of electronic device 101.
[0149] 7G , the three-dimensional environment 702 is updated according to the position and / or movement of the second user's representation 708. For example, recentering the three-dimensional environment 702 includes updating the three-dimensional environment 702 so that the users face each other with respect to the user interface 714 of the third application. In some embodiments, if the second user 708 had a different position within the three-dimensional environment 702 than the position shown in FIG. 7F when the recentering input was received, the electronic device 101 recenters the three-dimensional environment 702 in a different manner than shown in FIG. 7G (e.g., according to the position of the second user 708 within the three-dimensional environment 702) in response to the recentering input shown in FIG.
[0150] Additional or alternative details regarding the embodiment shown in Figures 7A-7G are provided below in the description of method 800, which is described with reference to Figures 8A-8K.
[0151] 8A-8K are flowcharts illustrating a method for updating the spatial arrangement of one or more virtual objects in a three-dimensional environment, according to some embodiments. In some embodiments, method 800 is performed on a computer system (e.g., computer system 101 of FIG. 1 ) that includes a display generation component (e.g., display generation component 120 of FIGS. 1 , 3 , and 4 ) (e.g., a heads-up display, a display, a touchscreen, a projector, etc.) and one or more cameras (e.g., a camera placed in a user's hand and facing downward (e.g., color sensors, infrared sensors, and other depth-sensing cameras) or a camera facing forward from the user's head). In some embodiments, method 800 is governed by instructions stored on a non-transitory computer-readable storage medium and executed by one or more processors of the computer system, such as one or more processors 202 of computer system 101 (e.g., control unit 110 of FIG. 1A ). Some operations of method 800 are optionally combined and / or the order of some operations is optionally changed.
[0152] In some embodiments, method 800 is performed in an electronic device (e.g., 101) that communicates with a display generation component and one or more input devices (e.g., a mobile device (e.g., a tablet, smartphone, media player, or wearable device), or a computer). In some embodiments, the display generation component is a display integrated with the electronic device (optionally a touchscreen display), an external display such as a monitor, projector, television, or a hardware component (optionally built-in or external) for projecting a user interface and making the user interface visible to one or more users, etc. In some embodiments, the one or more input devices include electronic devices or components that can receive user input (e.g., capture user input, detect user input, etc.) and transmit information related to the user input to the electronic device. Examples of input devices include a touchscreen, a mouse (e.g., external), a trackpad (optionally integrated or external), a touchpad (optionally integrated or external), a remote control device (e.g., external), another mobile device (e.g., separate from the electronic device), a handheld device (e.g., external), a controller (e.g., external), a camera, a depth sensor, an eye tracking device, and / or a motion sensor (e.g., hand tracking device, hand motion sensor), etc. In some embodiments, the electronic device is in communication with a hand tracking device (e.g., one or more cameras, depth sensors, proximity sensors, touch sensors (e.g., touchscreen, trackpad). In some embodiments, the hand tracking device is a wearable device such as a smart glove. In some embodiments, the hand tracking device is a handheld input device such as a remote control or a stylus.
[0153] In some embodiments, such as FIG. 7A , the electronic device (e.g., 101) detects (802a) via one or more input devices (e.g., 314) movement of a user's current viewpoint in the three-dimensional environment (e.g., 702) from a first viewpoint to a second viewpoint while displaying, via a display generation component (e.g., 120), a three-dimensional environment (e.g., 702) including multiple virtual objects (e.g., 704, 706) having a first spatial arrangement relative to a current viewpoint of the user of the electronic device (e.g., 101). In some embodiments, the three-dimensional environment includes virtual objects such as application windows, operating system elements, representations of other users, and / or representations of content items and / or physical objects in the electronic device's physical environment. In some embodiments, representations of the physical objects are displayed in the three-dimensional environment via a display generation component (e.g., virtual pass-through or video pass-through). In some embodiments, the representations of the physical objects are views of the physical objects in the electronic device's physical environment seen through a transparent portion (e.g., true pass-through or actual pass-through) of the display generation component. In some embodiments, the electronic device displays the three-dimensional environment from a user's viewpoint at a location within the three-dimensional environment that corresponds to the electronic device's physical location within the electronic device's physical environment. In some embodiments, the three-dimensional environment is generated, displayed, or otherwise made viewable by the device (e.g., a computer-generated reality (XR) environment such as a virtual reality (VR) environment, a mixed reality (MR) environment, or an augmented reality (AR) environment). In some embodiments, detecting movement of the user's viewpoint includes detecting movement of at least a portion of the user (e.g., the user's head, torso, hands, etc.). In some embodiments, detecting movement of the user's viewpoint includes detecting movement of the electronic device or a display generation component. In some embodiments, displaying the three-dimensional environment from the user's viewpoint includes displaying the three-dimensional environment from a perspective associated with the location of the user's viewpoint in the three-dimensional environment.In some embodiments, updating the user's viewpoint causes the electronic device to display the virtual objects from a perspective associated with the location of the user's updated viewpoint. For example, if the user's viewpoint moves to the left, the electronic device updates the positions of the virtual objects displayed via the display generation component to move to the right.
[0154] In some embodiments, such as in FIG. 7B , in response to detecting a movement corresponding to a movement of a user's current viewpoint from a first viewpoint to a second viewpoint, the electronic device (e.g., 101), via the display generation component (e.g., 120), displays (e.g., 802b) a three-dimensional environment (e.g., 702) from a second viewpoint, the three-dimensional environment including a plurality of virtual objects having a second spatial arrangement, different from the first spatial arrangement, relative to the user's current viewpoint. In some embodiments, the locations of the plurality of virtual objects in the three-dimensional environment remain the same, and the location of the user's viewpoint in the three-dimensional environment changes, thereby changing the spatial arrangement of the plurality of objects relative to the user's viewpoint. For example, if the user's viewpoint moves away from the plurality of virtual objects, the electronic device displays the virtual objects in the same location in the three-dimensional environment before the movement of the user's viewpoint, and increases the amount of space between the user's viewpoint and the virtual objects (e.g., by displaying the virtual objects at a smaller size, by increasing the stereoscopic depth of the objects, etc.).
[0155] 7B , while displaying a three-dimensional environment (e.g., 702) from a second perspective including a plurality of virtual objects (e.g., 704, 706) having a second spatial arrangement relative to the user's current perspective, the electronic device (e.g., 101) receives (802c) an input via one or more input devices (e.g., 314) corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the user's current perspective to satisfy one or more criteria (e.g., not based on the user's previous perspective) that specify a range of distances or a range of orientations of the virtual objects relative to the user's current perspective. In some embodiments, the input and / or one or more inputs described with reference to method 800 are air gesture inputs. 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, 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 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 the hand in a predetermined posture by a predetermined amount and / or speed, or a shake gesture involving rotation of the user's body part at a predetermined speed or amount).
[0156] As described in more detail below, in some embodiments, the input corresponding to the request to update the spatial arrangement of the plurality of objects relative to the user's viewpoint to satisfy one or more criteria is an input directed to a hardware button, switch, etc. in communication with (e.g., incorporated into) the electronic device. As described in more detail below, in some embodiments, the input corresponding to the request to update the three-dimensional environment to satisfy one or more criteria is an input directed to a selectable option displayed via a display generation component. In some embodiments, the user's viewpoint is a second viewpoint, and the plurality of virtual objects are displayed in a second spatial arrangement relative to the user's viewpoint, but the spatial orientation of the plurality of virtual objects is not based on the user's current viewpoint. For example, the spatial arrangement of the plurality of objects is based on the user's first viewpoint or another viewpoint of the user prior to the second viewpoint. In some embodiments, the electronic device initially presents the virtual objects in a location within the three-dimensional environment based on the user's viewpoint when the virtual objects were initially displayed. In some embodiments, the virtual objects are initially positioned according to one or more criteria, including criteria that are met when an interactive portion of the virtual object is directed toward the user's viewpoint, the virtual objects do not obstruct the view of other virtual objects from the user's viewpoint, the virtual objects are within a threshold distance (e.g., 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, or 2000 centimeters) of the user's viewpoint, the virtual objects are within a threshold distance (e.g., 1, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, or 2000 centimeters) of each other, etc. In some embodiments, the input is different from an input that requires updating the position of one or more objects in the three-dimensional environment (e.g., relative to the user's viewpoint), such as the input described herein with reference to method 1000.
[0157] In some embodiments, such as FIG. 7C , in response to an input corresponding to a request to update the three-dimensional environment (e.g., 702), the electronic device (e.g., 101), via the display generation component (e.g., 120), displays (e.g., 802b) the three-dimensional environment (e.g., 702) from a second perspective, including displaying a plurality of virtual objects (e.g., 704, 706) in a third spatial arrangement relative to the user's perspective that is different from the second spatial arrangement, and the third spatial arrangement of the plurality of virtual objects satisfies one or more criteria. In some embodiments, the one or more criteria include criteria that are met when an interactive portion of a virtual object is oriented toward the user's viewpoint, a virtual object does not obstruct a view of other virtual objects from the user's viewpoint, a virtual object is within a threshold distance (e.g., 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, or 2000 centimeters) of the user's viewpoint, virtual objects are within a threshold distance (e.g., 1, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, or 2000 centimeters) of each other, etc. In some embodiments, the third spatial arrangement is the same as the first spatial arrangement (e.g., the first spatial arrangement was based on the user's first viewpoint). In some embodiments, the third spatial arrangement is different from the first spatial arrangement (e.g., the first spatial arrangement is not based on the user's first viewpoint, and real objects in the three-dimensional environment prevent placement of the virtual objects in the first spatial arrangement while the user's viewpoint is in the second viewpoint). In some embodiments, displaying the plurality of virtual objects in the third spatial arrangement includes updating the location (e.g., and / or pose) of one or more of the virtual objects while maintaining the user's second viewpoint at a constant location in the three-dimensional environment. In some embodiments, in response to the input, the electronic device updates the position of the virtual object from a location not necessarily oriented around the user's viewpoint to a location oriented around the user's viewpoint.
[0158] Updating the three-dimensional environment to include displaying a plurality of virtual objects in a third spatial arrangement that meets one or more criteria in response to the input enhances user interaction with the electronic device by providing an efficient way to display virtual objects in a spatial arrangement based on the user's updated perspective, thereby enhancing the arrangement of virtual objects in the three-dimensional environment and enabling a user to use the electronic device quickly and efficiently.
[0159] In some embodiments, such as in FIG. 7B , receiving input corresponding to the request to update the spatial arrangement of the plurality of virtual objects includes receiving the input via a hardware input device (e.g., 703) of one or more input devices (804). In some embodiments, the hardware input device detects the input by detecting physical manipulation of a kinematic input device by a user. In some embodiments, the kinematic input device is a button, switch, dial, or the like.
[0160] Updating the spatial arrangement of multiple virtual objects in response to input received via a kinematic input device provides an efficient and consistent method for updating the spatial arrangement of multiple virtual objects in a three-dimensional environment, thereby enabling users to quickly and efficiently use electronic devices with enhanced input mechanisms.
[0161] In some embodiments, such as in FIG. 7B , an input corresponding to a request to update the spatial arrangement of the plurality of virtual objects satisfies one or more first input criteria (806a). In some embodiments, the one or more first input criteria are associated with the input corresponding to the request to update the spatial arrangement of the plurality of virtual objects. In some embodiments, the electronic device is configured to accept multiple inputs corresponding to different respective actions via the mechanical input device that satisfy different sets of criteria to determine the action to which the received input corresponds. For example, the mechanical input device is a button or dial configured to be pressed like a button, and the one or more first criteria are met when the electronic device detects that the mechanical input device has been pressed for a time period that meets (e.g., longer or shorter than) a threshold time period (e.g., 0.1, 0.2, 0.3, 0.5, 1, 2, 3, 4, or 5 seconds).
[0162] 7B, the electronic device (e.g., 101) receives (806b) a second input via a hardware input device (e.g., 703). In some embodiments, the second input does not satisfy one or more of the first input criteria.
[0163] In some embodiments, in response to receiving the second input, in accordance with a determination that the second input satisfies one or more second input criteria different from the one or more first input criteria, the electronic device (e.g., 101) performs a respective action corresponding to the second input (806c) without updating the spatial arrangement of the plurality of virtual objects (e.g., displaying a home user interface via a display generation component). For example, the one or more first input criteria are satisfied when the input includes detecting the mechanical input device being pressed for more than a threshold time period, and the one or more second input criteria are satisfied when the input includes detecting the mechanical input device being pressed for less than the threshold time period. As another example, the one or more first input criteria are satisfied when the input includes detecting the mechanical input device being pressed for less than the threshold time period, and the one or more second input criteria are satisfied when the input includes detecting the mechanical input device being pressed for more than the threshold time period. In some embodiments, in response to a determination that the second input satisfies one or more third input criteria different from the one or more first input criteria and the one or more second input criteria, the electronic device modifies an amount of visual emphasis with which the electronic device displays one or more representations of real objects in the three-dimensional environment via the display generation component. In some embodiments, the one or more third input criteria include a criterion that is met when the input includes a directional aspect, such as rotating a dial, selecting a directional button, or moving a contact on the touch-sensitive surface. In response to the third input criterion being met, the electronic device optionally modifies the visual emphasis of the representation of the physical environment displayed in the three-dimensional environment relative to other portions of the three-dimensional environment (e.g., without updating the spatial arrangement of multiple virtual objects and / or without performing a separate action). In some embodiments, the electronic device modifies the amount of relative visual emphasis according to a movement metric (e.g., a direction, speed, duration, distance, etc. of a movement or directional component of the input) of the input that satisfies the third input criterion.
[0164] Determining whether input received via a kinematic input device corresponds to a request to update the spatial arrangement of multiple virtual objects based on one or more input criteria provides an efficient method of performing multiple actions in response to input received via a single kinematic input device, thereby improving user interaction with an electronic device by providing a streamlined human-machine interface.
[0165] In some embodiments, such as in FIG. 7B , receiving input corresponding to a request to update the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) includes detecting 808 a selection of a user interface element (e.g., 712) displayed in the three-dimensional environment (e.g., 702) via a display generation component (e.g., 120). In some embodiments, the selection of the user interface element is detected via an input device (e.g., keyboard, trackpad, stylus, hand tracking device, eye tracking device) that manipulates a cursor and detects the selection of the user interface element at a location where the cursor is displayed. In some embodiments, the selection of the user interface element is detected via an input device (e.g., touch-sensitive surface, hand tracking device) that tracks locations corresponding to individual parts of a user (e.g., hands) and detects the selection when a selection gesture (e.g., individual hand shapes, three-dimensional gestures made with the hands, touch gestures detected via a touch-sensitive surface) is performed at a location corresponding to a selectable user interface element. In some embodiments, detecting the selection of a user interface element includes detecting the user's attention (e.g., gaze) directed toward the user interface element while detecting a predetermined gesture of a discrete part of the user (e.g., hand). For example, the gesture is a pinch gesture in which the thumb touches another finger of the hand. As another example, the gesture is a press gesture in which an outstretched finger of the hand presses against a user interface element within a three-dimensional environment (e.g., while one or more other fingers are curled toward the palm).
[0166] Receiving input corresponding to a request to update the spatial arrangement of the plurality of virtual objects by detecting a selection of a user interface element provides an efficient way of indicating to a user how to update the spatial arrangement of the plurality of virtual objects, thereby enhancing the user's interaction with the electronic device with improved visual feedback and allowing the user to use the device more quickly and efficiently.
[0167] 7B , displaying the plurality of virtual objects (e.g., 704, 706) in the second spatial arrangement includes displaying (810a) the plurality of virtual objects (e.g., 704, 706) at a first position (e.g., relative to a respective reference point in the three-dimensional environment) in the three-dimensional environment (e.g., 702) via a display generation component (e.g., 120). In some embodiments, the electronic device displays the plurality of virtual objects having the second spatial arrangement in response to detecting a movement of the user's viewpoint.
[0168] 7C , in response to receiving the input, the electronic device (e.g., 101) moves the plurality of virtual objects from a first position to a second position within the three-dimensional environment (e.g., relative to a respective reference point within the three-dimensional environment) (810a) (810b). In some embodiments, the electronic device updates the positions of the plurality of virtual objects within the three-dimensional environment (e.g., rather than updating the position of the user's viewpoint within the three-dimensional environment) to satisfy one or more criteria in response to receiving the input. In some embodiments, the electronic device updates the positions of the plurality of virtual objects and updates the position of the user's viewpoint to satisfy one or more criteria in response to receiving the input.
[0169] Updating the positions of multiple virtual objects in response to receiving input after detecting a movement of a user's viewpoint to satisfy one or more criteria provides an efficient way of presenting multiple virtual objects in a manner that is comfortable for the user, thereby improving user interaction with the electronic device by reducing the cognitive load, time, and input required to interact with the multiple virtual objects.
[0170] 7C , while displaying, via the display generation component (e.g., 120), a three-dimensional environment (e.g., 702) including an individual virtual object (e.g., 704) of a plurality of virtual objects (e.g., 704, 706) at a first position within the three-dimensional environment (e.g., 702), the spatial arrangement of the plurality of virtual objects relative to a user's current viewpoint is a first individual spatial arrangement that satisfies one or more criteria, and the electronic device (e.g., 101) receives, via one or more input devices, input (e.g., similar to the object movement input described with reference to methods 1000 and / or 1400) corresponding to a request to update the position of the individual virtual object (e.g., 704) within the three-dimensional environment (e.g., 702). In some embodiments, the input is directed to a user interface element displayed in proximity to the individual virtual object, which, when selected, causes the electronic device to initiate a process to move the individual virtual object within the three-dimensional environment.
[0171] 7D , in response to an input corresponding to a request to update the position of an individual virtual object (e.g., 704) within the three-dimensional environment (e.g., 702), the electronic device (e.g., 101), via the display generation component (e.g., 120), displays (812b) the plurality of virtual objects (e.g., 704, 706) in a second individual spatial arrangement that does not satisfy the one or more criteria, including displaying the individual virtual object (e.g., 704) in a second position different from the first position within the three-dimensional environment (e.g., 702). In some embodiments, the electronic device does not detect any additional input corresponding to a request to update the position of other virtual objects within the three-dimensional environment. In some embodiments, the electronic device receives one or more additional inputs corresponding to a request to update the position of one or more other virtual objects in a manner that continues to satisfy the one or more criteria.
[0172] In some embodiments, such as FIG. 7D , while displaying the three-dimensional environment (e.g., 702) including displaying an individual virtual object (e.g., 706) at a second position within the three-dimensional environment, the electronic device (e.g., 101) receives (812c) a second input via one or more input devices corresponding to a request to update the spatial arrangement of the multiple virtual objects (e.g., 704, 704) relative to the user's current viewpoint to satisfy one or more criteria.
[0173] 7E , in response to receiving the second input, the electronic device (e.g., 101) updates (812b) the position of the individual virtual object (e.g., 704) to satisfy the one or more criteria without updating the positions of one or more other virtual objects (e.g., 706) within the plurality of virtual objects (e.g., without updating the position and / or orientation of the user's viewpoint within the three-dimensional environment). In some embodiments, if movement of the second virtual object in the three-dimensional environment causes it to not satisfy the one or more criteria, in response to the second input, the electronic device updates the position of the second virtual object to satisfy the one or more criteria without updating the positions of one or more other virtual objects.
[0174] Updating the position of the individual virtual object in response to a second input without updating the positions of one or more other virtual objects provides enhanced access to the individual virtual object while maintaining the display of the other virtual objects in their individual positions, thereby reducing the cognitive burden, time, and input required to interact with multiple virtual objects.
[0175] In some embodiments, such as in FIG. 7C , displaying the plurality of virtual objects (e.g., 704, 706) in a third spatial arrangement includes, in accordance with determining that the three-dimensional environment (e.g., 702) is associated with the first spatial template, displaying the plurality of virtual objects (e.g., 704, 706) in the third spatial arrangement via the display generation component (e.g., 120), displaying an individual virtual object (e.g., 706) of the plurality of virtual objects at an orientation relative to the user's current viewpoint that satisfies one or more criteria associated with the first spatial template (814b) (814b). In some embodiments, the spatial template identifies one or more criteria used by the electronic device to select a position and orientation of one or more users' virtual objects and / or viewpoints within the three-dimensional environment. In some embodiments, the spatial template is set based on virtual objects included in the three-dimensional environment (e.g., spatial templates associated with each virtual object) and / or based on user-defined settings. Exemplary spatial templates according to some embodiments are described in more detail below. For example, if the spatial template is a shared content spatial template and the individual virtual objects are content items consumed by multiple users in a three-dimensional environment, the electronic device displays the individual virtual objects in positions and orientations that direct individual faces of the content items that contain the content toward the user's viewpoint in the three-dimensional environment.
[0176] 7G , displaying the plurality of virtual objects (e.g., 714) in a third spatial arrangement, via the display generation component (e.g., 120), in accordance with a determination that the three-dimensional environment (e.g., 702) is associated with a second spatial template, wherein displaying the plurality of virtual objects in the third spatial arrangement includes displaying, via the display generation component (e.g., 120), individual objects (e.g., 714) of the plurality of virtual objects in an orientation relative to the user's current viewpoint that satisfies one or more criteria associated with the second spatial template (814c) (814). For example, if the spatial template is a shared activity space template and the individual virtual objects are a virtual board game being played by multiple users in the three-dimensional environment, the electronic device displays the individual virtual objects between the users' viewpoints in the three-dimensional environment such that the users' viewpoints face different sides of the individual virtual objects.
[0177] Displaying individual virtual objects at different orientations to satisfy different criteria associated with different spatial templates in response to input corresponding to a request to update the spatial arrangement of multiple virtual objects provides an efficient and versatile method of presenting virtual objects at locations and orientations in a three-dimensional environment that facilitate user interaction with the virtual objects for a variety of functions, thereby enabling quick and efficient user-to-user interaction with an electronic device.
[0178] In some embodiments, such as in FIG. 7C , displaying the plurality of virtual objects (e.g., 704, 706) in a third spatial arrangement includes, in accordance with determining that the three-dimensional environment (e.g., 702) is associated with a shared content space template, displaying, via the display generation component (e.g., 120), an individual object (e.g., 706) of the plurality of virtual objects in a pose that faces an individual face of the individual object (e.g., 706) toward a user's viewpoint and a second viewpoint of a second user (or more users) within the three-dimensional environment (e.g., 702) (816). In some embodiments, the shared content space template is associated with virtual objects that include content or a user interface of a content (e.g., distribution, playback, streaming, etc.) application. In some embodiments, the individual faces of the individual virtual objects include (visual content of) a content item (e.g., displaying content such as a movie, television program, etc.). In some embodiments, the shared content space template enables multiple users to consume a content item together from the same side of the content item by facing the content toward both (or more) users' viewpoints.
[0179] Positioning individual faces of individual virtual objects toward a user's viewpoint provides an efficient way to facilitate shared consumption of content items associated with individual virtual objects, thereby enabling users to quickly and efficiently configure three-dimensional environments for shared consumption of content items.
[0180] In some embodiments, such as in FIG. 7G , displaying the plurality of virtual objects (e.g., 714, 708) in a third spatial arrangement includes, in accordance with determining that the three-dimensional environment (e.g., 702) is associated with a shared activity space template, displaying, via a display generation component (e.g., 120), an individual object (e.g., 714) of the plurality of virtual objects in an orientation such that a first side of the individual object (e.g., 714) faces a user's viewpoint and a second side of the individual object, different from the first side, faces a second viewpoint of a second user (818). In some embodiments, the shared activity space template is associated with the individual virtual object configured for interaction by multiple users from multiple sides of the virtual object. For example, the individual virtual object is a virtual board game for multiple users to play or a virtual table around which multiple users' viewpoints are arranged. In some embodiments, the shared activity space template enables users to view the individual virtual object simultaneously with representations of other users in the three-dimensional environment that are displayed at the locations of the other users' viewpoints in the three-dimensional environment.
[0181] Positioning different sides of individual virtual objects toward different users within a three-dimensional environment provides an efficient way to facilitate interaction between users and / or with individual virtual objects, thereby allowing users to quickly and efficiently configure the three-dimensional environment for shared activities associated with the individual virtual objects.
[0182] 7G , displaying the plurality of virtual objects (e.g., 708, 710) in the third spatial arrangement includes, pursuant to a determination that the three-dimensional environment (e.g., 702) is associated with a group activity space template, displaying, via a display generation component (e.g., 120), a representation of the second user (e.g., 708) in a pose oriented toward a current viewpoint of the user of the electronic device (820). In some embodiments, the group activity space template is optionally associated with a user-defined setting for interacting with one or more other users in the three-dimensional environment in a manner unrelated to individual virtual objects (e.g., virtual meetings between users) other than the representations of the one or more other users. In some embodiments, the group activity space template causes the electronic device to position the user's viewpoint within the three-dimensional environment (and, e.g., a corresponding representation of the user within the three-dimensional environment) in a location (e.g., without updating the position of the representations and / or viewpoints of the other users) such that the user's viewpoint is oriented toward the representations and / or viewpoints of the one or more other users within the three-dimensional environment.
[0183] Directing a user's viewpoint toward a representation of a second user within the three-dimensional environment provides an efficient way to facilitate interaction between users, thereby enabling users to quickly and efficiently configure the three-dimensional environment for group activities.
[0184] In some embodiments, such as FIG. 7B , while displaying via a display generation component (e.g., 120) a three-dimensional environment (e.g., 702) including a second user associated with a second viewpoint within the three-dimensional environment (e.g., 702), where the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) relative to the user's current viewpoint (and a second viewpoint of a second user) is a first distinct spatial arrangement that satisfies one or more criteria, the electronic device (e.g., 101) detects (822a) an indication of movement of the second user's second viewpoint from the first distinct viewpoint to a second distinct viewpoint within the three-dimensional environment. In some embodiments, the movement of the second user's second viewpoint causes the one or more criteria to no longer be satisfied at the electronic device. In some embodiments, the movement of the second user's second viewpoint causes the one or more criteria to no longer be satisfied at a second electronic device being used by the user. In some embodiments, the electronic device detects the indication of movement of the second user's second viewpoint without receiving one or more inputs corresponding to a request to update the user's viewpoint and / or the pose of the plurality of virtual objects. In some embodiments, the electronic device further detects movement of the user's viewpoint and / or movement of one or more of the virtual objects in a manner that continues to satisfy one or more criteria on the electronic device and / or a second electronic device being used by a second user.
[0185] In some embodiments, such as FIG. 7B , while displaying the three-dimensional environment having a second perspective of a second user at a second individual perspective, the electronic device (e.g., 101) receives (822b) a second input via one or more input devices (e.g., 314) corresponding to a request to update the spatial arrangement of multiple virtual objects (e.g., 704, 706) relative to the user's current perspective to satisfy one or more criteria.
[0186] In some embodiments, such as in FIG. 7C , the electronic device (e.g., 101), in response to receiving the second input, updates the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) to a second individual spatial arrangement that satisfies one or more criteria according to a second individual viewpoint of the second user (822c). In some embodiments, the electronic device updates the spatial arrangement of the plurality of virtual objects such that the one or more criteria are satisfied with respect to the user's viewpoint and the second user's second viewpoint. For example, if the second user's second viewpoint moves to the left of the user's viewpoint, updating the spatial arrangement of the plurality of virtual objects includes moving or orienting one or more of the virtual objects toward the left relative to the user's viewpoint (e.g., in an orientation based on the user's viewpoint and the second user's new viewpoint). As another example, if the second user's second viewpoint moves to the right of the user's viewpoint, updating the spatial arrangement of the plurality of virtual objects includes moving or orienting one or more of the virtual objects toward the right relative to the user's viewpoint.
[0187] Updating the spatial arrangement according to a second individual viewpoint of the second user provides an efficient way of satisfying one or more criteria on the electronic device and the second electronic device of the second user in response to a single input, thereby reducing the number of inputs, time, and cognitive burden required to configure the three-dimensional environment in a manner that is comfortable for the user and the second user.
[0188] In some embodiments, such as in FIG. 7C , while displaying via the display generation component (e.g., 120) a three-dimensional environment (e.g., 702) in which the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) relative to a user's current viewpoint is a first individual spatial arrangement that satisfies one or more criteria, the electronic device (e.g., 101) receives (824a) a sequence of one or more inputs via one or more input devices corresponding to a request to update the positions of one or more of the plurality of virtual objects (e.g., 704) in the three-dimensional environment (e.g., 702). In some embodiments, the sequence of inputs are inputs directed to user interface elements for repositioning the respective virtual objects within the three-dimensional environment, as described with reference to method 1400. In some embodiments, the sequence of inputs are inputs corresponding to a request to reposition the plurality of virtual objects together according to one or more steps of method 1000, described in more detail below.
[0189] In some embodiments, such as in FIG. 7D , in response to receiving the sequence of one or more inputs, the electronic device (e.g., 101), via the display generation component (e.g., 120), displays (824b) the plurality of virtual objects (e.g., 704, 706) at respective positions within the three-dimensional environment (e.g., 702) according to the sequence of one or more inputs in a second distinct spatial arrangement that does not satisfy the one or more criteria. In some embodiments, the electronic device does not receive an input corresponding to a request to update the user's viewpoint. In some embodiments, the electronic device receives an input corresponding to a request to update the user's viewpoint that does not cause the one or more criteria to be satisfied.
[0190] In some embodiments, such as FIG. 7D , while displaying a three-dimensional environment (e.g., 702) that includes displaying multiple virtual objects (e.g., 704, 706) at respective positions within the three-dimensional environment (e.g., 702), the electronic device (e.g., 101) receives (824c) a second input via one or more input devices (e.g., 314) corresponding to a request to update the spatial arrangement of the multiple virtual objects (e.g., 704, 706) relative to the user's current viewpoint to satisfy one or more criteria.
[0191] In some embodiments, such as in FIG. 7E , in response to receiving the second input, the electronic device (e.g., 101) updates (824d) the positions of the plurality of virtual objects (e.g., 704, 706) according to their respective positions in the three-dimensional environment (e.g., 702) to a third distinct spatial arrangement that satisfies one or more criteria. In some embodiments, the third distinct spatial arrangement is the same as the first distinct spatial arrangement. In some embodiments, the third distinct spatial arrangement is different from the first distinct spatial arrangement. In some embodiments, the third distinct spatial arrangement involves minimal movement and / or reorientation of the plurality of virtual objects in the three-dimensional environment (e.g., from their respective positions and / or orientations in response to the sequence of inputs corresponding to the request to update the positions of one or more of the plurality of virtual objects in the three-dimensional environment) that is required to satisfy the one or more criteria.
[0192] Updating the positions of the multiple virtual objects according to their respective positions in the three-dimensional environment after the multiple virtual objects are repositioned to satisfy one or more criteria provides an efficient method for facilitating user interaction with the multiple virtual objects, thereby reducing the cognitive burden, time, and inputs required for convenient user interaction with the multiple virtual objects.
[0193] In some embodiments, while displaying a three-dimensional environment (e.g., 120) via the display generation component (e.g., 120) in which the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) relative to a user's current viewpoint is a first individual spatial arrangement that satisfies one or more criteria, such as that of FIG. 7A , the electronic device (e.g., 101) detects one or more indications of a request by a second user in the three-dimensional environment (e.g., 702) to update the positions of one or more of the plurality of virtual objects (e.g., 704, 706) in the three-dimensional environment (e.g., 702). In some embodiments, the request by the second user in the three-dimensional environment includes one or more requests to update (e.g., individually) the positions of one or more virtual objects. In some embodiments, the request by the second user in the three-dimensional environment does not include a request by the second user to update the second user's second viewpoint in the three-dimensional environment.
[0194] In some embodiments, in response to detecting the one or more indications, the electronic device (e.g., 101), via the display generation component (e.g., 120), displays (826b) a plurality of virtual objects (e.g., 704, 706) at respective positions within the three-dimensional environment (e.g., 702) according to the sequence of one or more inputs in a second distinct spatial arrangement that does not satisfy one or more criteria, such as in FIG. 7B. In some embodiments, the electronic device does not receive input corresponding to a request to update the pose of the virtual object or the user's viewpoint and does not detect an indication of a request by the second user to update the position of the second user's second viewpoint. In some embodiments, the electronic device receives input corresponding to a request to update the pose of the virtual object and / or the user's viewpoint and / or detects an indication of a request by the second user to update the position of the user's second viewpoint, but these updates do not satisfy one or more criteria.
[0195] In some embodiments, while displaying a three-dimensional environment (e.g., 702) that includes displaying a plurality of virtual objects (e.g., 704, 706) at respective positions within the three-dimensional environment (e.g., 702), the electronic device (e.g., 101) receives (826c) a second input via one or more input devices (e.g., 314) corresponding to a request to update the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) relative to the user's current viewpoint to satisfy one or more criteria, such as in FIG. 7B.
[0196] In some embodiments, in response to receiving the second input, the electronic device (e.g., 101) updates (826d) the positions of the plurality of virtual objects (e.g., 704, 706) according to their respective positions within the three-dimensional environment (e.g., 702) to a third distinct spatial arrangement that satisfies one or more criteria, such as that of FIG. 7C . In some embodiments, the third distinct spatial arrangement is the same as the first distinct spatial arrangement. In some embodiments, the third distinct spatial arrangement is different from the first distinct spatial arrangement. In some embodiments, the third distinct spatial arrangement involves minimal movement and / or reorientation of the plurality of virtual objects within the three-dimensional environment (e.g., from the respective positions and / or orientations at which the virtual objects are displayed in response to the indication corresponding to the request to update the positions of one or more of the plurality of virtual objects within the three-dimensional environment) that is required to satisfy the one or more criteria.
[0197] Updating the positions of the multiple virtual objects according to their respective positions in the three-dimensional environment to satisfy one or more criteria after the multiple virtual objects are repositioned by a second user provides an efficient way to facilitate user interaction with the multiple virtual objects, thereby reducing the cognitive burden, time, and inputs required for convenient user interaction with the multiple virtual objects.
[0198] In some embodiments, pursuant to determining that input corresponding to a request to update the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) has not been received while the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) does not satisfy one or more criteria, such as in FIG. 7B , the electronic device (e.g., 101) maintains the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) until input corresponding to a request to update the spatial arrangement of the plurality of objects (e.g., 704, 706) is received (828). In some embodiments, the electronic device does not update the spatial arrangement of the plurality of objects to satisfy one or more criteria unless and until input corresponding to a request to update the spatial arrangement of the plurality of objects is received. In some embodiments, the electronic device does not update the spatial arrangement of the one or more virtual objects to satisfy one or more criteria automatically.
[0199] Maintaining the spatial arrangement of multiple virtual objects until input is received provides an efficient method of displaying virtual objects in familiar locations and / or orientations within a three-dimensional environment, thereby enhancing user interaction with the electronic device by allowing the user to quickly and efficiently position virtual objects within the three-dimensional environment for interaction.
[0200] In some embodiments, the electronic device (e.g., 101) displays (830a) multiple virtual objects (e.g., 704, 706) in a three-dimensional environment (e.g., 702), including displaying a first virtual object (e.g., 704, 706) of the multiple virtual objects at a location that is greater than a predetermined threshold distance (e.g., 1, 2, 3, 4, 5, 10, 15, 30, or 50 meters) from a user's current viewpoint, such as in FIG. 7B . In some embodiments, the second virtual object is positioned at a location that is greater than a predetermined threshold distance from the user's viewpoint. In some embodiments, the multiple (e.g., all) virtual objects are positioned at locations that are greater than a predetermined threshold distance from the user's viewpoint. In some embodiments, the one or more criteria include a criterion that is met when the multiple (e.g., all) virtual objects are positioned within a predetermined threshold distance from the user's current viewpoint.
[0201] In some embodiments, such as in FIG. 7B , while the plurality of virtual objects (e.g., 704, 706) are displayed in the three-dimensional environment (e.g., 702), a first virtual object of the plurality of virtual objects (e.g., 704, 706) is displayed at a location that exceeds a predetermined threshold distance from the user's current viewpoint, and the electronic device (e.g., 101) receives (830b) a second input via one or more input devices corresponding to a request to update the spatial arrangement of the plurality of virtual objects (e.g., 704, 706) relative to the user's current viewpoint to satisfy one or more criteria.
[0202] In some embodiments, such as in FIG. 7C , in response to receiving the second input, the electronic device (e.g., 101) updates (830c) the user's viewpoint to a distinct viewpoint that is within a predetermined threshold distance of the first virtual object (e.g., 704, 706), and the spatial arrangement of the multiple virtual objects (e.g., 704, 706) relative to the distinct viewpoint satisfies one or more criteria. In some embodiments, the electronic device updates the user's viewpoint without updating the location and / or orientation of the virtual objects. In some embodiments, the electronic device updates the user's viewpoint and updates the location and / or orientation of the virtual objects. In some embodiments, if it is possible to satisfy one or more criteria by updating the user's viewpoint without updating the position and / or orientation of the virtual objects, the electronic device updates the user's viewpoint without updating the position and / or orientation of the virtual objects, in response to the second input.
[0203] Updating the user's viewpoint to meet one or more criteria according to the second viewpoint when the first virtual object is located farther than a predetermined threshold distance from the user's viewpoint provides an efficient way to access the virtual object for interaction, thereby reducing the cognitive burden, time, and input required to interact with the virtual object.
[0204] 7D , the electronic device (e.g., 101), via the display generation component (e.g., 120), displays (832a) a plurality of virtual objects (e.g., 704, 706) having a first spacing between a first virtual object (e.g., 704) of the plurality of virtual objects and a second virtual object (e.g., 704) of the plurality of virtual objects, where the first spacing does not satisfy one or more spacing criteria of the one or more criteria. In some embodiments, the one or more spacing criteria include a criterion that is satisfied when the distance between the respective (e.g., pair of) virtual objects is between a first predetermined threshold distance (e.g., 1, 2, 3, 5, 10, 15, 30, 50, or 100 centimeters) and a second predetermined threshold distance (e.g., 1, 2, 3, 5, 10, 15, 30, or 50 meters).
[0205] In some embodiments, such as FIG. 7D , while displaying multiple virtual objects (e.g., 704, 706) having a first spacing between a first virtual object (e.g., 704) and a second virtual object (e.g., 706), the electronic device (e.g., 101) receives (832b), via one or more input devices (e.g., 314), a second input corresponding to a request to update the spatial arrangement of the multiple virtual objects (e.g., 704, 706) relative to the user's current viewpoint to satisfy one or more criteria (e.g., including one or more spacing criteria).
[0206] In some embodiments, such as FIG. 7E , in response to receiving the second input, the electronic device (e.g., 101), via the display generation component (e.g., 120), displays (832c) multiple virtual objects (e.g., 704, 706) having a second spacing between the first virtual object (e.g., 704) and the second virtual object (e.g., 706), where the second spacing satisfies one or more spacing criteria. In some embodiments, displaying the multiple virtual objects having the second spacing between the first virtual object and the second virtual object includes displaying the multiple virtual objects having a spatial arrangement that satisfies the one or more criteria. In some embodiments, the electronic device updates the position and / or orientation of one or more virtual objects other than the first and second virtual objects as necessary to satisfy the one or more criteria. In some embodiments, the second spacing is less than the first spacing. In some embodiments, displaying the plurality of virtual objects with a second spacing between the first virtual object and the second virtual object includes changing the position and / or orientation of the first and / or second object, such as updating the position (e.g., without updating the orientation) or updating both the position and the orientation.
[0207] Displaying multiple virtual objects with a second spacing between the first and second virtual objects in response to a second input provides an efficient way to allow a user to simultaneously view and / or interact with the first and second virtual objects, thereby reducing the time, input, and cognitive burden required to interact with the first and second virtual objects.
[0208] 7A , detecting a movement of a user's current viewpoint in the three-dimensional environment from a first viewpoint to a second viewpoint includes detecting, via one or more input devices (e.g., 314), a movement of the electronic device (e.g., 101) in its physical environment or a movement of a display generation component (e.g., 120) in its physical environment (834). In some embodiments, detecting a movement of the electronic device or display generation component includes detecting a movement of the user (e.g., when the electronic device or display generation component is a wearable device).
[0209] Updating the user's viewpoint in response to detecting movement of the electronic device or display generating component provides an efficient and intuitive way to traverse the three-dimensional environment, thereby enhancing user interaction with the three-dimensional environment.
[0210] 9A-9G show examples of how an electronic device may update the positions of multiple virtual objects together, according to some embodiments.
[0211] FIG. 9A illustrates electronic device 101a displaying a three-dimensional environment 902a via display generation component 120a. It should be understood that in some embodiments, electronic device 101a utilizes one or more of the techniques described with reference to FIGS. 9A-9G within a two-dimensional environment without departing from the scope of this disclosure. As described above with reference to FIGS. 1-6, electronic device 101a optionally includes display generation component 120a (e.g., a touchscreen) and multiple image sensors 314a. The image sensors optionally include one or more of a visible light camera, an infrared camera, a depth sensor, or any other sensor that electronic device 101a can use to capture one or more images of a user or a portion of a user while the user interacts with electronic device 101a. In some embodiments, display generation component 120a is a touchscreen capable of detecting a user's hand gestures and movements. In some embodiments, the user interfaces described below may also be implemented in a head-mounted display that includes a display generation component that displays the user interface to the user and sensors that detect the physical environment and / or the movement of the user's hands (e.g., external sensors facing outward from the user) and / or the user's line of sight (e.g., internal sensors facing inward toward the user's face).
[0212] In FIG. 9A , a first electronic device 101a and a second electronic device 101b have access to a three-dimensional environment 902 that includes a representation of the first electronic device 101a, a representation of the second electronic device 101b, a first user 916a of the first electronic device 101a, a second user 916b of the second electronic device 101b, a user interface 904 of a first application accessible to both electronic devices 101a and 101b, a user interface 906 of a second application accessible to the first electronic device 101a but not the second electronic device 101b, and a user interface 908 of a third application accessible to both electronic devices 101a and 101b. In some embodiments, the first electronic device 101a and the second electronic device 101b are located in a shared physical environment, and the spatial arrangement of the first electronic device 101a and the second electronic device 101b in the physical environment corresponds to (e.g., is the same as) the spatial arrangement of the first electronic device 101a and the second electronic device 101b in the three-dimensional environment 902. In some embodiments, the first electronic device 101a and the second electronic device 101b are located in different physical environments (e.g., different rooms, different buildings, different cities, etc.), and the spatial arrangement of the first electronic device 101a and the second electronic device 101b in the physical world is different from the spatial arrangement of the first electronic device 101a and the second electronic device 101b in the three-dimensional environment 902. In some embodiments, the electronic device 101b has one or more of the characteristics of the electronic device 101a.
[0213] 9A-9G include top-down views of a three-dimensional environment 902 displayed by electronic devices 101a and 101b. The first electronic device 101a presents the three-dimensional environment 902a from the perspective of a first user 916a within the three-dimensional environment 902, including, for example, displaying a user interface 904a of a first application, a user interface 906a of a second application, a user interface 908a of a third application, a representation 916b of the second user, and a representation of the second electronic device 101b. As another example, the second electronic device 101b presents the three-dimensional environment 902b from the perspective of a second user 916b within the three-dimensional environment 902, including displaying a user interface 908b of a first application, a user interface 904b of a third application, a representation 916a of the first user, and a representation of the first electronic device 101a. In some embodiments, the second electronic device 101b does not display the user interface 906 of the second application because the second electronic device 101b does not have access to the user interface 906 of the second application, although FIG. 9A shows a location 906b within the three-dimensional environment 902b where the user interface 906 of the second application would be displayed if the second electronic device 101b had access to the user interface 906 of the second application.
[0214] In some embodiments, the first electronic device 101a is associated with a digital origin 912 within the three-dimensional environment 902. In some embodiments, the second electronic device 101b is associated with a different digital origin (not shown) within the three-dimensional environment 902. In some embodiments, the digital origin 912 is a location within the three-dimensional environment 902 that the electronic device 101a uses to select a location and / or orientation of a virtual object (e.g., user interface 904, 906, 908) and / or a viewpoint of the first user 101a in response to a request to recenter the three-dimensional environment 902a according to one or more steps of the method 800. For example, in response to a request to recenter the three-dimensional environment 902a, the electronic device 101a evaluates one or more criteria regarding the spatial placement of the virtual object and / or the viewpoint of the user 916a relative to the digital origin 912 and updates the position and / or orientation of the one or more virtual objects and / or the viewpoint of the user 916a to satisfy the one or more criteria. In some embodiments, electronic device 101a, in response to the request to recenter, updates the viewpoint of first user 916a to be at the location of digital origin 912. In some embodiments, electronic device 101a updates the position and / or orientation of user interfaces 904a, 904b, and 904c relative to digital origin 912 to select a position and / or orientation that facilitates user interaction with user interfaces 904a, 904b, and 904c. For example, the one or more criteria include criteria specifying a range of distances from and / or a range of orientations relative to digital origin 912, as described with reference to methods 800 and / or 1000.
[0215] In some embodiments, the electronic device 101a selects the digital origin 912 at the start of the AR / VR session. For example, the digital origin 912 is selected based on the position and / or orientation of the electronic device 101a in the physical environment and the position and / or orientation of the electronic device 101a in the three-dimensional environment 902. In some embodiments, the electronic device 101a sets or resets the digital origin 912 in response to detecting a transition of the display generation component 120a from not being in a predetermined pose to a predetermined pose relative to the first user for a threshold amount of time (e.g., 10, 20, 30, or 45 seconds, or 1, 2, 3, 5, 10, or 15 minutes). In some embodiments, the predetermined pose is a range of distances and / or orientations relative to the user. For example, if the display generation component 120a is a wearable device, the display generation component 120a is in the predetermined pose when the user is wearing the display generation component 120a.
[0216] As described in more detail below with respect to method 1000 in FIGS. 9B-9F , in some embodiments, there are several circumstances under which a digital origin becomes invalid. In some embodiments, a digital origin is invalidated when one or more invalidation criteria are met. For example, the invalidation criteria relate to the number of objects (e.g., user interfaces 904a, 904b, 904c, and the viewpoint of user 916a) with spatial relationships to digital origin 912 that do not satisfy one or more spatial criteria described with reference to methods 1000 and / or 800. As another example, the invalidation criteria relate to the extent to which the objects do not satisfy one or more spatial criteria and / or the spatial relationships between the objects themselves. For example, digital origin 912 is invalid when one or more spatial criteria are not met, and updating the location of digital origin 912 satisfies the one or more spatial criteria with fewer or minimal updates to the position and / or orientation of the virtual object than would be required if the digital origin remained at its current location. In some embodiments, electronic device 101a immediately updates the location of digital origin 912 when the location becomes invalid. In some embodiments, the electronic device 101a does not update the location of the digital origin 912 unless and until a request to recenter the three-dimensional environment 902a is received.
[0217] In some embodiments, the electronic device 101a updates the positions of the user interfaces 904a, 906a, and 908a in response to various user inputs. In some embodiments, the user interfaces 904a, 906a, and 908a are displayed in association with respective selectable options that, when selected, cause the electronic device 101a to initiate a process to update the position and / or orientation of the individual user interface 904a, 906a, or 908a, as described above with reference to method 800. Additionally, in some embodiments, in response to a request to jointly update the positions and / or orientations of virtual objects within the three-dimensional environment 902a (e.g., the user interfaces 904a, 906a, and 908a, the representation of the second user 916b, and the representation of the second electronic device 101b), the electronic device 101a updates the positions and / or orientations of the virtual objects relative to the viewpoint of the user 916a without updating the spatial placement of the virtual objects relative to other virtual objects. For example, the electronic device 101a moves the virtual objects together as a group. In some embodiments, the electronic device 101a displays a selectable option that, when selected, causes the electronic device 101a to initiate a process of updating the positions and / or orientations of the virtual objects together as a group. As another example, as shown in FIG. 9A , in response to detecting a selection input by both hands (e.g., by hands 913a and 913b), the electronic device 101a initiates a process of updating the positions and / or orientations of the virtual objects together as a group. For example, as shown in FIG. 9A , the electronic device 101a detects that the user has made a pinch hand shape (e.g., a hand shape in which the thumb touches another finger of the same hand) with both hands 913a and 913b (e.g., for at least a threshold time (e.g., 0.1, 0.2, 0.5, 1, 2, or 3 seconds)). In some embodiments, in response to detecting the pinch hand shape by both hands 913a and 913b, the electronic device 101a initiates a process of updating the positions and / or orientations of the virtual objects according to the movement of the hands 913a and 913b while the pinch hand shape is maintained.
[0218] 9B shows an example in which electronic device 101a detects the start of movement of hands 913a and 913b while the hands are in a pinch hand configuration. In some embodiments, in response to detecting the start of movement of hands 913a and 913b in the pinch hand configuration (or, in some embodiments, in response to detecting the pinch hand configuration of hands 913a and 913b without yet detecting movement of hands 913a and 913b), electronic device 101a updates the representation of the virtual object (e.g., user interfaces 904a, 906a, and 908a, the representation of second user 916b, and the representation of electronic device 101b) to change visual characteristics of the virtual object to indicate that further input will cause electronic device 101a to update the position and / or orientation of the virtual object in three-dimensional environment 902a. For example, the electronic device 101a increases the amount of translucency and / or dimness of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b in response to detecting movement of the two-handed pinching hand shape and / or hands 913a and 913b in the two-handed pinching hand shape, e.g., relative to the amount of translucency and / or dimness of the user interfaces 904a, 906a, and 908a of FIG. 9A and the representations of the second user 916b and the second electronic device 101b. In some embodiments, the electronic device 101a increases the amount of visual emphasis of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b while the input of FIG. 9B is received, such as by blurring and / or darkening and / or dimming areas of the three-dimensional environment 902a other than the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b.In some embodiments, while the electronic device 101a updates the positions of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b according to the movement of the pinched hands 913a and 913b, the electronic device 101a maintains the increased translucency and / or dimness of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b. In some embodiments, while the first electronic device 101a detects the pinched hands, the second electronic device 101b displays the representations of the first user 916a and the first electronic device 101a with an increased translucency and / or dimness relative to the amount of translucency and / or dimness with which the second electronic device 101b displayed the representations of the first user 916a and the first electronic device 101a in FIG. 9A .
[0219] 9B, the first electronic device 101a detects movement of the hands 913a and 913b away from the body of the first user 916a, corresponding to movement away from the viewpoint of the first user 916a in the three-dimensional environment 902a. In response to the input shown in FIG. 9B, the electronic device 101a updates the position and / or orientation of the user interfaces 904a, 906a, and 908a relative to the viewpoint of the first user 916a and the representations of the second user 916b and the second electronic device 101b, without changing the spatial relationship between two or more of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b, as shown in FIG.
[0220] 9C shows how the first electronic device 101a updates the three-dimensional environment 902a displayed by the first electronic device 101a while moving the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b according to the movement of the hands 913a and 913b while in the pinch hand shape. For example, the first electronic device 101a updates the positions of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b to be farther away from the user's viewpoint while maintaining the spatial relationship between the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b. In some embodiments, the amount that the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and second electronic device 101b move relative to the viewpoint of the first user 916a corresponds to the amount of movement of the hands 913a and 913b. The user interfaces 904a, 906a, and 908a and the representations of the second user 916b and second electronic device 101b appear to move from the viewpoint of the first user 916a as shown in the top-down view of the three-dimensional environment 906, but the viewpoint of the user 916a moves away from the user interfaces 904, 906, and 908, and the representations of the second user 916b and second electronic device 101b and the user interfaces 904, 906, and 908 and the representations of the second user 916b and second electronic device 101b remain in their respective locations within the three-dimensional environment 906 in response to the inputs shown in FIG. In some embodiments, in response to the first electronic device 101a receiving the input shown in FIG. 9B, the second electronic device 101b continues to display the user interfaces 904b and 908b at the same location within the three-dimensional environment 902b from the perspective of the second user 916b in FIG. 9C, as in FIG. 9B.
[0221] In some embodiments, the first electronic device 101a updates the location of the digital origin 912 in response to inputs that update the position and / or orientation of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b relative to the viewpoint of the first user 916a. In some embodiments, the first electronic device 101a updates the location of the digital origin 912 in response to the inputs shown in FIG. 9B , according to a determination that one or more spatial criteria are satisfied at the updated location of the digital origin. For example, as shown in FIG. 9C , the first electronic device 101a updates the digital origin 912 to be the location of the viewpoint of the first user 916a in the three-dimensional environment 902. In some embodiments, the updated location of the digital origin 912 satisfies one or more spatial criteria with respect to the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b.
[0222] While the first electronic device 101a detects a two-handed input corresponding to a request to update the position and / or orientation of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b together, the second electronic device 101b continues to display the representations of the first user 916a and the first electronic device 101a, for example, with increased translucency and / or dimness. In some embodiments, the second electronic device 101b does not update the location at which the second electronic device 101b displays the representation of the first user 916a and the representation of the first electronic device 101a until the first electronic device 101a detects the end of the input, in order to update the location of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b together. For example, detecting the end of the input includes detecting that the user has stopped making a pinch hand shape with one or more of the hands 913a and 913b. As shown in Figure 9C, the first electronic device 101a detects a continuation of the two-handed pinch input provided by the hands 913a and 913b. In response to the continuation of the input shown in Figure 9C, the electronic device 101a updates the spatial relationships between the user interfaces 904a, 906a, and 908a, the representations of the second user 916b and the second electronic device 101b, and the viewpoint of the first user 916a according to the continued movement of the hands 913a and 913b in the pinch hand shape.
[0223] 9D shows an example of how the first electronic device 101a updates the three-dimensional environment 902a according to the continuation of the input shown in FIG. 9C. In some embodiments, the electronic device 101a updates the positions of the user interfaces 904a, 906a, and 908a, as well as the representations of the second user 916b and the second electronic device 101b relative to the viewpoint of the user 916a within the three-dimensional environment 902, according to the direction and amount of movement of the hands 913a and 913b in FIG. 9C. For example, the electronic device 101a updates the three-dimensional environment 902a to display the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b further away from the user's viewpoint. As shown in the top-down view of the three-dimensional environment 902, the electronic device 101a updates the viewpoint of the first user 916a in the three-dimensional environment 902 without updating the position and / or orientation of the user interfaces 904, 906, and 908, and the representation of the second user 916b and the second electronic device 101b in the three-dimensional environment 902. Thus, the second electronic device 101b optionally continues to display the user interfaces 904b and 908b in the locations where the user interfaces 904b and 908b were displayed in Figure 9C.
[0224] In some embodiments, the second electronic device 101b, in response to the first electronic device 101a detecting the end of the input, updates the representation of the first user 916a and the position of the representation of the first electronic device 101a to update the position and / or orientation of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b relative to the point of view of the first user 101a. As shown in Figure 9D, the second electronic device 101b displays the representation of the first user 916a and the representation of the first electronic device 101a in the updated location, e.g., with reduced translucency and / or dimness relative to the translucency and / or dimness with which the representations of the first electronic device 101a and the first user 916a were displayed in Figure 9C. In some embodiments, in response to the first electronic device 101a detecting the end of the input shown in Figure 9C, the second electronic device 101b displays an animation that updates the positions of the representations of the first user 916a and the first electronic device 101a. In some embodiments, in response to the first electronic device 101a detecting the end of the input shown in Figure 9C, the second electronic device 101b stops displaying the representations of the first user 916a and the first electronic device 101a at the location shown in Figure 9C and begins displaying the representations of the first user 916a and the first electronic device 101a at the location of Figure 9D (e.g., via a "teleporting" effect).
[0225] In some embodiments, the digital origin 912 is disabled when the first user 916a is more than a threshold distance (e.g., 1, 2, 3, 5, 10, or 15 meters) from one or more of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b. In Figure 9D, for example, the digital origin 912 is shown with a dashed line to indicate that it is disabled due to the first user 916a updating the positions of the user interfaces 904a, 906a, and 908a and the representations of the second user 916b and the second electronic device 101b relative to the first user's 916a's viewpoint such that one or more of the virtual objects are greater than a threshold distance from the first user's 916a's viewpoint. In some embodiments, the digital origin 912 is disabled when one or more of the user interfaces 904a, 906a, and 908a, and the representations of the second user 916b and second electronic device 101b, are more than a threshold distance away from the viewpoint of the first user 916a in response to the second user 916b moving one or more of the user interfaces 904a and 908a, and the representations of the second user 916b and second electronic device 101b (e.g., by individually moving one or more applications) away from the user's viewpoint within the three-dimensional environment 902.
[0226] 9D , moving the user interfaces 904a, 906a, and 908a, and the representations of the second user 916b and the second electronic device 101b away from the viewpoint of the first user 101a, causes one or more spatial criteria described above with reference to method 800 to no longer be satisfied. In some embodiments, in response to the one or more spatial criteria no longer being satisfied, the first electronic device 101a displays a selectable option 914a that, when selected, causes the first electronic device 101a to recenter the three-dimensional environment 902a according to one or more steps of method 800. In some embodiments, in response to detecting selection of option 914a because the digital origin 912 is invalid, the electronic device 101a updates the digital origin 912 and recenters the three-dimensional environment 902a based on the updated digital origin 912. In some embodiments, the first electronic device 101a selects a new location for the digital origin 912 based on the position and / or orientation of the object within the three-dimensional environment 902 and one or more spatial criteria described with reference to methods 800 and / or 1000.
[0227] In some embodiments, digital origin 912 is invalidated in response to one or more users moving more than a threshold amount (e.g., 1, 2, 3, 5, 10, 15, or 25 meters) within three dimensional environment 902. For example, in FIG. 9D , second user 916b moves themselves and / or electronic device 101b, causing second user 916b's location in three dimensional environment 902 to be updated as shown in FIG. 9E . In response to second user 916b thus updating their position within three dimensional environment 902, digital origin 912 is invalidated. FIG. 9E illustrates how, in some embodiments, electronic device 101a automatically selects a new location for digital origin 912 in response to digital origin 912 being invalidated, without receiving user input (e.g., selection of option 914a) requesting electronic device 101a to update digital origin 912. For example, the updated digital origin 912 is positioned in a location such that when a first user 916a recenters the three-dimensional environment 902a to update the viewpoint of the digital origin 912, both users 916a and 916b are on the same side of the user interface 904 of a first application (e.g., the shared content application described above with reference to method 800) and on opposite sides of the user interface 908 of a third application (e.g., the shared activity application described above with reference to method 800).
[0228] As shown in FIG. 9E, in response to the second user 916b updating his or her viewpoint in the three-dimensional environment 902b, the second electronic device 101b updates the position and / or orientation of the user interfaces 904b and 908b relative to the viewpoint of the second user 916b, and the first electronic device 101a stops displaying representations of the second user 916b and the second electronic device 101b because the second user 916b is no longer within the field of view of the first electronic device 101a.
[0229] In some embodiments, as described below with reference to Figures 9F-9G, the first electronic device 101a disables the digital origin 912 in response to a request to share an application with the second electronic device 101b. In Figure 9F, the first electronic device 101a displays a three-dimensional environment 902a including a user interface 918a of a fourth application that is accessible to the first electronic device 101a but not to the second electronic device 101b. Because the user interface 918 of the fourth application is not accessible to the second electronic device 101b, the second electronic device 101b displays a representation of the first user 916a and the first electronic device 101a without displaying the user interface 918 of the fourth application, although Figure 9F shows the location 918b where the user interface 918 of the fourth application would be displayed if the fourth application were accessible to the second electronic device 101b. 9F also shows a digital origin 912 associated with the first electronic device 101a. In some embodiments, the location of the digital origin 912 in FIG. 9F is valid because the user interface 918a of the fourth application and the representation 916b of the second user are at a location and orientation that meets one or more spatial criteria. In some embodiments, the spatial criteria do not require that the second user 916b have an unobstructed view of the user interface 918a of the fourth application because the second electronic device 101b does not have access to the fourth application.
[0230] 9F, the first electronic device 101a detects a selection (e.g., via hand 913a) of a selectable option 920 that, when selected, causes the first electronic device 101a to share the fourth application with the second electronic device 101b. In some embodiments, the selection input is one of a direct selection input, an indirect selection input, an air gesture selection input, or a selection input using an input device, as described above with reference to method 800. In response to the input, the first electronic device 101a makes a user interface 918 of the fourth application accessible to the second electronic device 101b, as shown in FIG. 9G.
[0231] 9F. In response to the input to share the fourth application detected by the first electronic device 101a in FIG. 9F, the first electronic device 101a disables the digital origin 912. In response to the input shown in FIG. 9F, the first electronic device 101a disables the digital origin 912. In some embodiments, the digital origin 912 associated with the first electronic device 101a is disabled in response to the request to share the fourth application's user interface 918b because the first user's representation 916a obscures the fourth application's user interface 918b from the second user's 916b view.
[0232] Additional or alternative details regarding the embodiment shown in FIGS. 9A-9G are provided below in the description of method 1000 described with reference to FIGS. 10A-10K.
[0233] 10A-10K are flowcharts illustrating a method for jointly updating the positions of multiple virtual objects, according to some embodiments. In some embodiments, method 1000 is performed on a computer system (e.g., computer system 101 of FIG. 1 ) that includes a display generation component (e.g., display generation component 120 of FIGS. 1 , 3 , and 4 ) (e.g., a heads-up display, a display, a touchscreen, a projector, etc.) and one or more cameras (e.g., a camera placed on a user's hand and facing downward (e.g., color sensors, infrared sensors, and other depth-sensing cameras) or a camera facing forward from the user's head). In some embodiments, method 1000 is governed by instructions stored on a non-transitory computer-readable storage medium and executed by one or more processors of the computer system, such as one or more processors 202 of computer system 101 (e.g., control unit 110 of FIG. 1A ). Some operations of method 1000 are, optionally, combined, and / or the order of some operations is, optionally, changed.
[0234] In some embodiments, method 1000 is performed in an electronic device in communication with a display generation component and one or more input devices (e.g., a mobile device (e.g., a tablet, smartphone, media player, or wearable device), or a computer). In some embodiments, the display generation component is a display integrated with the electronic device (optionally a touchscreen display), an external display such as a monitor, projector, television, or a hardware component (optionally built-in or external) for projecting a user interface and making the user interface visible to one or more users, etc. In some embodiments, the one or more input devices include electronic devices or components capable of receiving user input (e.g., capturing user input, detecting user input, etc.) and transmitting information related to the user input to the electronic device. Examples of input devices include a touchscreen, a mouse (e.g., external), a trackpad (optionally integrated or external), a touchpad (optionally integrated or external), a remote control device (e.g., external), another mobile device (e.g., separate from the electronic device), a handheld device (e.g., external), a controller (e.g., external), a camera, a depth sensor, an eye tracking device, and / or a motion sensor (e.g., hand tracking device, hand motion sensor), etc. In some embodiments, the electronic device is in communication with a hand tracking device (e.g., one or more cameras, depth sensors, proximity sensors, touch sensors (e.g., touchscreen, trackpad). In some embodiments, the hand tracking device is a wearable device such as a smart glove. In some embodiments, the hand tracking device is a handheld input device such as a remote control or a stylus.
[0235] 9B , while displaying, via a display generation component (e.g., 120a), a three-dimensional environment (e.g., 902a) from a perspective of a user (e.g., 916a) of an electronic device (e.g., 101a), the three-dimensional environment (e.g., 902a) includes a plurality of virtual objects (e.g., 904a, 906a) at a first location within a first spatial arrangement relative to the user's perspective within the three-dimensional environment (e.g., 902a), and the electronic device (e.g., 101) receives (1002a) via one or more input devices an input corresponding to a request to move one or more of the plurality of virtual objects (e.g., 904a, 906a). In some embodiments, the input and / or one or more inputs described with reference to method 1000 are air gesture inputs as described with reference to method 800. In some embodiments, the three-dimensional environment includes virtual objects such as application windows, operating system elements, representations of other users, and / or representations of content items and / or physical objects within the physical environment of the electronic device. In some embodiments, a representation of the physical object is displayed in the three-dimensional environment via a display generation component (e.g., a virtual pass-through or a video pass-through). In some embodiments, the representation of the physical object is a view of the physical object in the electronic device's physical environment seen through a transparent portion of the display generation component (e.g., a true pass-through or an actual pass-through). In some embodiments, the electronic device displays the three-dimensional environment from a user's perspective at a location in the three-dimensional environment that corresponds to the electronic device's physical location in the electronic device's physical environment. In some embodiments, the three-dimensional environment is generated, displayed, or otherwise made visible by the device (e.g., a computer-generated reality (XR) environment, such as a virtual reality (VR) environment, a mixed reality (MR) environment, or an augmented reality (AR) environment). In some embodiments, receiving the input includes detecting a predefined gesture performed by a predefined part of the user (e.g., a hand(s)).In some embodiments, the predefined gesture is a pinch gesture in which a user touches fingers with their thumbs and moves the fingers and thumb apart, performed with one or more of the user's hands. For example, the input includes a user making a pinch hand shape with both hands and moving their hands to cause the electronic device to update the positions of multiple virtual objects according to the movement of the user's hands. In some embodiments, the predefined gesture is a press gesture in which a user makes a pointing hand shape with one or more fingers extended and one or more fingers curled into the palm while moving their hand(s) to a predefined location (e.g., a location corresponding to one or more user interface elements to be moved, a location corresponding to an air gesture user interface element that is different from the one or more user interface elements to which the input is directed). In some embodiments, the input for moving one or more of the multiple virtual objects has one or more characteristics of an object movement input described with reference to method 1400.
[0236] 9C , in response to receiving an input (1002b), and following a determination (1002c) that the input satisfies one or more first criteria (e.g., the input is directed at an individual object of the plurality of virtual objects without being directed at the remainder of the plurality of virtual objects), the electronic device (e.g., 101) updates (1002d) the three-dimensional environment (e.g., 902a) to move an individual object (e.g., 902a) of the plurality of virtual objects in the three-dimensional environment (e.g., 904a) in accordance with the input from a first location to a second location different from the first location, wherein the individual object (e.g., 904a) at the second location has a second spatial orientation relative to a viewpoint of the user (e.g., 916a) that differs from the first spatial orientation relative to a viewpoint of the user (e.g., 916a). In some embodiments, the input changes the location of the individual object within the three-dimensional environment. In some embodiments, the input changes the location of the individual object relative to other virtual objects in the three-dimensional environment. In some embodiments, the input changes a location of the individual object in the three-dimensional environment relative to a user's viewpoint. In some embodiments, updating the location of the individual object includes changing a distance of the virtual object from the user's viewpoint. In some embodiments, the second individual location is based on a movement (e.g., speed, duration, distance, etc.) of a predefined part of the user (e.g., hand(s)) providing the input. In some embodiments, the one or more first criteria include a criterion that is met when the electronic device detects a predefined gesture performed with one hand but not both of the user's hands. In some embodiments, the one or more first criteria include a criterion that is met when the input is directed at a user interface element that, in response to the input directed at the user interface element, causes the electronic device to initiate a process to move the individual virtual object without moving other virtual objects in the three-dimensional environment.
[0237] In some embodiments, in response to receiving the input (1002b), and following a determination (1002c) that the input satisfies one or more first criteria (e.g., the input is directed at an individual object of the plurality of virtual objects without being directed at the remainder of the plurality of virtual objects), the electronic device (e.g., 101) maintains one or more second objects (e.g., 906a of FIG. 9C ) of the plurality of virtual objects at a first location within the three-dimensional environment in a first spatial arrangement relative to a user's viewpoint (1002e). In some embodiments, the input causes the electronic device to maintain the locations of other virtual objects within the three-dimensional environment. In some embodiments, the input causes the electronic device to maintain the locations of the other virtual objects relative to a user's viewpoint. In some embodiments, the input causes the electronic device to maintain the location of each second object relative to the other second objects.
[0238] 9C , in response to receiving the input (1002b), in accordance with determining that the input satisfies one or more second criteria (e.g., the input is directed at a plurality of virtual objects), the electronic device (e.g., 101) updates (1002f) the three-dimensional environment (e.g., 902a) to move a plurality of virtual objects (e.g., 904a, 906a) within the three-dimensional environment (e.g., 902a) in accordance with the input, wherein after the movement, the plurality of virtual objects (e.g., 904a, 904b) have a third spatial arrangement relative to a viewpoint of the user (e.g., 916a), that differs from the first spatial arrangement relative to a viewpoint of the user (e.g., 916a). In some embodiments, the one or more second criteria include a criterion that is met when the electronic device detects a predefined gesture performed with both hands of the user. In some embodiments, the one or more second criteria include criteria that are met when an input is directed to a user interface element, which, in response to the input directed to the user interface element, causes the electronic device to initiate a process of moving multiple virtual objects within the three-dimensional environment. In some embodiments, the input causes the electronic device to update locations of the multiple virtual objects within the three-dimensional environment. In some embodiments, the input causes the electronic device to update locations of the virtual objects relative to a user's viewpoint. In some embodiments, during and / or in response to the input (e.g., while and / or after the multiple elements are moving together based on the input), one or more (e.g., all) of the virtual objects maintain their spatial relationships relative to each other and / or to the other virtual objects. In some embodiments, when the electronic device is in communication with a second electronic device having and / or associated with a second user, the electronic device maintains locations of the virtual objects within the three-dimensional environment and updates the location of the user's viewpoint within the three-dimensional environment such that the spatial orientation of the virtual objects relative to the user's viewpoint is updated without changing the location of the virtual objects relative to the second user's viewpoint.
[0239] Updating the three-dimensional environment to move multiple objects in accordance with a determination that the input satisfies one or more second criteria improves user interaction with the electronic device by reducing the input required to move multiple virtual objects in response to a single input, thereby allowing a user to use the electronic device quickly and efficiently.
[0240] 9C , in response to receiving the input, in accordance with a determination that the input satisfies one or more second criteria, updating the three-dimensional environment (e.g., 902a) to move the plurality of virtual objects (e.g., 904a, 904b) within the three-dimensional environment (e.g., 902a) in accordance with the input includes moving a first virtual object (e.g., 904a) of the plurality of virtual objects by a respective (e.g., lateral, angular) amount in a respective (e.g., lateral, angular) direction and moving a second virtual object (e.g., 906a) of the plurality of virtual objects by a respective amount in a respective direction based on a direction and magnitude of the input (1004). In some embodiments, when moving the plurality of virtual objects, the virtual objects maintain respective spatial orientations relative to the other virtual objects and are displayed in different spatial arrangements relative to the user's viewpoint. For example, in response to an input moving the plurality of virtual objects by a first amount in the first direction, the electronic device moves the first virtual object and the second virtual object by a first amount in the three-dimensional environment. As another example, in response to an input that rotates the plurality of objects by a second amount in a second direction, the electronic device moves the first virtual object and the second virtual object and rotates the first virtual object and the second virtual object by the second amount in the second direction (e.g., around respective reference points in the three-dimensional environment).
[0241] Moving the first and second virtual objects by separate amounts in separate directions in response to receiving input provides an efficient way to adjust the positions and / or orientations of multiple virtual objects (e.g., collectively) while maintaining the separate spatial arrangement of the multiple virtual objects, thereby allowing a user to use the device quickly and efficiently with less input.
[0242] 9C , the one or more second criteria include a criterion that is met when receiving the input includes detecting a first portion (e.g., a first hand) of the user (e.g., 913a) in a posture that satisfies one or more posture criteria and detecting a second portion (e.g., a second hand) of the user (e.g., 913b) in a posture that satisfies one or more posture criteria (1006). In some embodiments, the one or more second criteria include a criterion that is met when the electronic device detects, via one or more input devices (e.g., hand tracking devices), that the user has made a pinch hands shape with both hands (e.g., touching a thumb to another finger of the same hand). In some embodiments, in response to detecting that the user has made a pinch hands shape with both hands, the electronic device initiates a process of moving the multiple virtual objects, and in response to detecting movement of the hands while the pinch hands shape is maintained, the electronic device moves the multiple objects according to the movement (e.g., direction, speed, duration, distance, etc.) of one or more of the hands. In some embodiments, in response to detecting input directed at a user interface element for moving an individual virtual object, including detecting a pinch gesture with one hand (e.g., not two hands), the electronic device initiates a process for moving the individual virtual object (e.g., without moving multiple virtual objects).
[0243] Moving multiple objects in response to detecting first and second portions of a user in poses that satisfy one or more pose criteria provides an efficient way to update the positions of multiple virtual objects at once, thereby enabling a user to use the electronic device quickly and efficiently.
[0244] 9A , while the electronic device (e.g., 101a) is not receiving input, the electronic device (e.g., 101) displays (1008a), via the display generation component (e.g., 120a), multiple virtual objects (e.g., 904a, 906a) within the three-dimensional environment (e.g., 101a) with a first amount of visual emphasis (e.g., opacity, sharpness, color contrast, size, etc.). In some embodiments, while the electronic device is not receiving input, the electronic device displays the multiple virtual objects in full color, opacity, and sharpness. In some embodiments, while the electronic device is not receiving input, the electronic device displays the multiple virtual objects with the first amount of visual emphasis relative to the rest of the three-dimensional environment.
[0245] 9B , in accordance with a determination that the input satisfies one or more second criteria, while receiving the input, the electronic device (e.g., 101), via the display generation component (e.g., 120a), displays (1008db) multiple virtual objects (e.g., 904a, 906a) within the three-dimensional environment (e.g., 902a) with a second amount of visual emphasis (e.g., opacity, sharpness, color contrast, size, etc.) that is less than the first amount of visual emphasis. In some embodiments, while the electronic device is receiving the input, the electronic device displays the multiple virtual objects with reduced opacity and / or sharpness and / or displays the multiple virtual objects with modified colors, such as lighter colors, darker colors, colors with less saturation / contrast, etc. In some embodiments, while the electronic device is receiving the input, the electronic device displays the multiple virtual objects with the second amount of visual emphasis that is less than the first amount of visual emphasis relative to the remainder of the three-dimensional environment.
[0246] Reducing the visual emphasis of the multiple objects while input is received provides an efficient way of presenting portions of a three-dimensional environment that are proximate to and / or overlapped by multiple virtual objects while input is received to update the positions of the virtual objects, which enhances user interaction with the electronic device by providing enhanced visual feedback while input is received to update the positions of the multiple virtual objects, thereby enabling quick and efficient user-to-user interaction with the electronic device using enhanced visual feedback.
[0247] In some embodiments, such as in FIG. 9B , an electronic device (e.g., 101b) displays (1010a) a representation of a second user (e.g., 916a) of a second electronic device (e.g., 101a) within a three-dimensional environment (e.g., 902b) via a display generation component (e.g., 120b). In some embodiments, the electronic device and the second electronic device are in communication with each other (e.g., via a network connection). In some embodiments, the electronic device and the second electronic device have access to the three-dimensional environment. In some embodiments, the electronic device displays a representation of the second user at a location within the three-dimensional environment corresponding to a viewpoint of the second user. In some embodiments, the second electronic device displays a representation of a user of the electronic device at a location within the three-dimensional environment corresponding to a viewpoint of the user of the electronic device.
[0248] 9B , while the second electronic device (e.g., 101a) detects a discrete input (e.g., an input for updating the position of a plurality of virtual objects relative to the perspective of the second user) that satisfies one or more second criteria, the electronic device (e.g., 101a), via the display generation component (e.g., 120a), displays (1010b) a representation of the second user (e.g., 916a) with a first amount of visual emphasis (e.g., opacity, sharpness, color contrast, size, visual emphasis relative to the rest of the three-dimensional environment, etc.). In some embodiments, while the second electronic device detects the discrete input, the electronic device displays the representation of the second user with reduced visual emphasis relative to the visual emphasis at which the representation of the second user is displayed while the second electronic device is not detecting the discrete input. For example, while the second electronic device detects the respective input, the electronic device displays the representation of the second user with reduced opacity and / or sharpness, and / or lighter, paler, or darker colors, and / or reduced contrast and / or saturation compared to how the electronic device displayed the representation of the second user while the second electronic device was not detecting the respective input. In some embodiments, the electronic device maintains display of the representation of the second user at a respective location within the three-dimensional environment while the second electronic device detects the respective input. In some embodiments, the electronic device displays the representation of the second user with a first amount of visual emphasis while moving the representation of the second user in accordance with the respective input detected by the second electronic device. For example, while the second electronic device detects an input corresponding to a request to move multiple virtual objects closer to the second user's viewpoint, the electronic device displays the representation of the second user with the first amount of visual emphasis moving toward the multiple virtual objects as the virtual objects move relative to the second user's viewpoint but without displaying the movement of the virtual objects relative to the user's viewpoint. In some embodiments, the electronic device receives an indication of the respective input from a second electronic device.
[0249] 9A , while the second electronic device (e.g., 101a) does not detect a distinct input that satisfies one or more second criteria, the electronic device (e.g., 101b), via the display generation component (e.g., 120b), displays (1010c) the representation of the second user (e.g., 916a) with a second amount of visual emphasis (e.g., visual emphasis relative to the rest of the three-dimensional environment) that is greater than the first amount of visual emphasis. In some embodiments, while the second electronic device does not detect a distinct input, the electronic device displays the representation of the second user with greater (or complete) opacity and / or sharpness, and / or an increased degree of saturation.
[0250] Displaying a representation of the second user while the second electronic device is detecting the discrete input provides an efficient way to indicate to the user that the second user is involved in providing the discrete input, thereby improving communication between the users and enabling the users to use the electronic device quickly and efficiently.
[0251] In some embodiments, such as in FIG. 9A , the electronic device (e.g., 101b) displays (1012a), via a display generation component (e.g., 120b), a representation of a second user (e.g., 916a) of a second electronic device at a third location within the three-dimensional environment (e.g., 902b). In some embodiments, the electronic device and the second electronic device are in communication with each other (e.g., via a network connection). In some embodiments, the electronic device and the second electronic device have access to the three-dimensional environment. In some embodiments, the third location is a location in the three-dimensional environment at a perspective of the second user. In some embodiments, the second electronic device displays a representation of the user of the electronic device at a location within the three-dimensional environment at a perspective of the user of the electronic device. In some embodiments, the electronic device displays additional representations of other users having access to the three-dimensional environment at locations within the three-dimensional environment at the perspective of the other users.
[0252] 9B , while displaying a representation of a second user (e.g., 916a) at a third location within the three-dimensional environment (e.g., 902b), the electronic device (e.g., 101b) receives an indication that the second electronic device (e.g., 101a) has received a distinct input that satisfies one or more second criteria (1012b). In some embodiments, the distinct input is an input received at the second electronic device that corresponds to a request to update the position of a virtual object relative to the second user's viewpoint in the three-dimensional environment.
[0253] 9D , in response to this indication, the electronic device (e.g., 101b), via the display generation component (e.g., 120b), displays (1012c) a representation (e.g., 916a) of the second user at a fourth location within the three-dimensional environment (e.g., 902b) in accordance with the discrete input, without displaying an animation of the representation of the second user moving from the third location to the fourth location. In some embodiments, the electronic device displays a representation of the second user “jumping” or “teleporting” from the third location to the fourth location. In some embodiments, the fourth location is based on the discrete input received by the second electronic device. For example, in response to a discrete input that rotates the multiple virtual objects clockwise relative to a reference point (e.g., inside a boundary around the multiple virtual objects), in response to an indication of the discrete input, the electronic device updates the location of the representation of the second user from the third location to a fourth location counterclockwise around the multiple virtual objects. In some embodiments, the electronic device displays a representation of the second user at a third location within the three-dimensional environment until the second electronic device detects the end of the input that satisfies one or more second criteria.
[0254] Displaying the representation of the second user at a fourth location without displaying an animation of the representation of the second user moving from a third location to a fourth location provides an efficient way of updating the representation of the second user according to the second user's point of view with reduced distractions, thereby improving user interaction with the electronic device and allowing the user to use the electronic device quickly and efficiently.
[0255] In some embodiments, the one or more second criteria are met when the input is directed to a user interface element displayed via the display generation component (e.g., 120a), and include criteria that, when the input is directed to the user interface element, cause the electronic device (e.g., 101a) to move the multiple virtual objects (e.g., 904a, 906a in FIG. 9A ) in accordance with the input (1014). In some embodiments, the electronic device also displays a respective user interface element associated with each of the multiple virtual objects that causes the electronic device to move the individual virtual object (e.g., without moving the multiple virtual objects) when an input satisfying the one or more first criteria is directed to the individual user interface element. In some embodiments, in response to detecting a selection of a user interface element that causes the electronic device to move the multiple virtual objects, the electronic device initiates a process of moving the multiple virtual objects, and in response to further input including movement (e.g., another directional input such as interaction with a directional button or key, manipulation of a joystick, etc., of a individual part of the user), the electronic device moves the multiple objects in accordance with the movement. In some embodiments, detecting the selection of the user interface element includes detecting the user's attention (e.g., gaze) directed toward the user interface element and detecting (e.g., via a hand tracking device) that the user is performing a predefined gesture with a respective part of the user (e.g., the user's hand), such as making the pinch hand shape described above. In some embodiments, after detecting the selection of the user interface element, the electronic device moves the plurality of virtual objects according to the movement of the respective part of the user (e.g., the user's hand), while the respective part of the user maintains the pinch hand shape. In some embodiments, detecting the input directed toward the user interface element includes detecting an input provided by one hand (but not both hands) of the user.
[0256] Moving multiple virtual objects in response to inputs directed at individual user interface elements provides an efficient way to teach a user how to move multiple virtual objects, thereby enabling the user to use the electronic device quickly and efficiently.
[0257] In some embodiments, in response to a determination that the input satisfies one or more second criteria (1016a), in response to a determination that the input includes a first movement magnitude, such as in FIG. 9B, the electronic device (e.g., 101) moves a plurality of virtual objects (e.g., 904a, 906a) in the three-dimensional environment (e.g., 902a) by a second amount (1016b). In some embodiments, the amount (e.g., velocity, duration, distance) of the second movement corresponds to the magnitude (e.g., velocity, duration, distance) of the first movement.
[0258] In some embodiments, in response to a determination that the input satisfies one or more second criteria (1016a), in response to a determination that the input includes a third movement magnitude, such as in FIG. 9C , that is different from the first movement magnitude, the electronic device (e.g., 101) moves the plurality of virtual objects (e.g., 904a, 906a) within the three-dimensional environment (e.g., 902a) by a fourth amount (1016c), the fourth amount being different from the second amount. In some embodiments, the amount (e.g., speed, duration, distance) of the fourth movement corresponds to the magnitude (e.g., speed, duration, distance) of the third movement. In some embodiments, if the magnitude of the first movement is greater than the magnitude of the third movement, the second amount is greater than the fourth amount. In some embodiments, if the magnitude of the first movement is less than the magnitude of the third movement, the second amount is less than the fourth amount. For example, if the magnitude of the first movement (e.g., of the user's hand(s)) includes faster movement or movement having a longer distance and / or duration than the magnitude of the third movement (e.g., of the user's hand(s)), the second amount is greater than the fourth amount. As another example, if the magnitude of the first movement (e.g., of the user's hand(s)) includes slower movement or movement having a shorter distance and / or duration than the magnitude of the third movement (e.g., of the user's hand(s)), the second amount is less than the fourth amount.
[0259] Moving multiple virtual objects by an amount corresponding to the magnitude of the input movement provides an efficient method for allowing a user to control the amount of movement of multiple objects with enhanced control, thereby allowing the user to use the electronic device quickly and efficiently.
[0260] In some embodiments, prior to receiving input corresponding to a request to move one or more of the plurality of virtual objects (e.g., 904a, 906a in FIG. 9A ), the electronic device (e.g., 101a), via the display generation component (e.g., 120a), displays (1018) a plurality of user interface elements associated with the plurality of virtual objects (e.g., 904a, 906a), wherein the one or more first criteria are met when the input is directed at an individual user interface element associated with the individual object of the plurality of user interface elements, and the one or more first criteria, when directed at the individual user interface element, cause the electronic device to initiate a process of moving the individual object of the plurality of virtual objects within the three-dimensional environment (e.g., 902a). In some embodiments, the plurality of virtual objects include a first virtual object and a second virtual object. In some embodiments, the electronic device displays a first selectable element in proximity to the first virtual object that, when selected, causes the electronic device to initiate a process of moving the first virtual object within the three-dimensional environment. In some embodiments, the electronic device displays a second selectable element in proximity to the second virtual object that, when selected, causes the electronic device to begin a process of moving the second virtual object within the three-dimensional environment. In some embodiments, the electronic device, in response to detecting the user's attention (e.g., gaze) directed toward the first virtual object, optionally displays the first selectable element while detecting a discrete part of the user (e.g., a hand) in a pre-defined shape, such as a pinched hand shape with the thumb within a pre-defined threshold distance (e.g., 0.5, 1, 2, 3, 4, or 5 centimeters) of another finger of the hand, or a pointing hand shape with one or more fingers extended and one or more fingers curled toward the palm, optionally while the hand is within a pre-defined threshold distance (e.g., 1, 2, 3, 5, 10, 15, 30, 50, or 100 centimeters) of the first object.In some embodiments, the electronic device, in response to detecting the user's attention (e.g., gaze) directed toward the second virtual object, optionally detects a discrete part of the user (e.g., a hand) in a pre-defined shape, such as a pre-pinch hand shape or a pointing hand shape, and optionally displays the second selectable element while the hand is within a pre-defined threshold distance (e.g., 1, 2, 3, 5, 10, 15, 30, 50, or 100 centimeters) of the second object.
[0261] Moving individual virtual objects in response to input directed at individual user interface elements that cause the electronic device to initiate the process of moving the individual virtual objects (e.g., without moving multiple virtual objects) improves user interaction with the electronic device by providing an efficient way to select which virtual objects to move, thereby allowing a user to use the electronic device quickly and efficiently.
[0262] In some embodiments, while displaying the three-dimensional environment (e.g., 902a), the electronic device (e.g., 101a) receives (1020a) via one or more input devices an input (e.g., such as an input described with reference to method 800) corresponding to a request to update the three-dimensional environment (e.g., 902a) to satisfy one or more spatial criteria relative to a digital origin (e.g., 912 of FIG. 9D). In some embodiments, the request corresponds to (e.g., is, includes) a request to update the spatial arrangement of multiple virtual objects relative to a user's current viewpoint to satisfy one or more criteria specifying a range of distances and / or a range of orientations of the virtual objects relative to the user's current viewpoint and / or the digital origin, according to one or more steps of method 800. In some embodiments, the digital origin is located at a location within the three-dimensional environment that the electronic device uses to evaluate one or more location and / or orientation criteria relative to the plurality of virtual objects and / or the user's viewpoint when updating the three-dimensional environment in response to a request to update the spatial arrangement of the plurality of virtual objects relative to the user's current viewpoint to satisfy one or more spatial criteria specifying a range of distances and / or a range of orientations of the virtual objects relative to the user's current viewpoint and / or the digital origin in accordance with one or more steps of method 800. In some embodiments, the digital origin and the user's viewpoint are located at the same location within the three-dimensional environment. In some embodiments, the digital origin and the user's viewpoint are located at different locations within the three-dimensional environment.
[0263] In some embodiments, in response to the input, the electronic device (e.g., 101a) updates (1020b) the three-dimensional environment (e.g., 902a) to satisfy one or more spatial criteria relative to the digital origin. In some embodiments, updating the three-dimensional environment to satisfy one or more spatial criteria relative to the digital origin corresponds to (e.g., is, includes) updating the spatial arrangement of one or more virtual objects and / or updating the user's viewpoint according to one or more steps of method 800. In some embodiments, if a virtual object satisfies one or more criteria relative to the digital origin but the user's viewpoint does not satisfy one or more criteria relative to the digital origin, the electronic device updates the user's viewpoint in response to the input. In some embodiments, if the user's viewpoint satisfies one or more criteria relative to the digital origin but one or more virtual objects do not satisfy one or more criteria relative to the digital origin, the electronic device updates the location and / or orientation of one or more virtual objects in response to the input.
[0264] Updating the three-dimensional environment to meet one or more spatial criteria relative to the digital origin improves user interaction with the electronic device by providing a consistent experience when the user makes a request to update the three-dimensional environment, thereby enabling the user to use the electronic device quickly and efficiently.
[0265] In some embodiments, such as in FIG. 9A , the digital origin (e.g., 912) is determined 1022 when the electronic device (e.g., 101a) begins an augmented reality or virtual reality session that includes displaying a three-dimensional environment (e.g., 902a). In some embodiments, the digital origin is determined when the electronic device detects that the spatial orientation of the electronic device or display generating component relative to the user has reached a predetermined spatial orientation. For example, the electronic device and / or display generating component is a wearable device, and the predetermined spatial location is when the user is wearing and / or is wearing the electronic device and / or display generating component. In some embodiments, the digital origin is initially at a location within the three-dimensional environment of the user's viewpoint (e.g., when the AR or VR session begins or when the spatial orientation of the electronic device or display generating component relative to the user initially reaches a predetermined spatial orientation).
[0266] Determining the digital origin when an AR or VR session begins improves user interaction with the electronic device by establishing a reference point at the start of the session, thereby providing the user with a consistent experience and allowing the user to use the electronic device quickly and efficiently with reduced user error.
[0267] In some embodiments, such as in FIG. 9A , the digital origin (e.g., 912) is placed (1024a) at a first distinct location within the three-dimensional environment (e.g., 902a) prior to receiving input that satisfies one or more second criteria. In some embodiments, the first distinct location of the digital origin is selected at the start of a VR or AR session. In some embodiments, the first distinct location of the digital origin is a location selected in response to a request to update the three-dimensional environment to satisfy one or more spatial criteria that is received while the digital origin has an invalid state, as described in more detail below. In some embodiments, the first distinct location of the digital origin is a location selected in response to a previous input that satisfies one or more second criteria, as described below.
[0268] In some embodiments, such as in FIG. 9C , in response to receiving input that meets one or more second criteria, the electronic device (e.g., 101a) updates (1024b) the digital origin (e.g., 912) to be located at a second distinct location within the three-dimensional environment (e.g., 902a) that is different from the first distinct location in accordance with a determination that the input meets the one or more second criteria. In some embodiments, the electronic device updates the digital origin to maintain a spatial relationship between the digital origin and the plurality of virtual objects that existed when the input was received. In some embodiments, the electronic device updates the digital origin to change the spatial relationship between the digital origin and the plurality of virtual objects that existed when the input was received. In some embodiments, the user's viewpoint does not move in response to receiving input that meets the one or more criteria. In some embodiments, the electronic device updates the digital origin to be located at the location of the user's viewpoint within the three-dimensional environment. In some embodiments, after updating the location of the digital origin, in response to receiving input corresponding to a request to satisfy one or more spatial criteria relative to the digital origin and / or the user's viewpoint according to one or more steps of method 800, the electronic device updates the user's viewpoint (e.g., to be located at the location of the digital origin).
[0269] Updating the digital origin in response to input that meets one or more second criteria improves user interaction with the electronic device by updating the spatial orientation of virtual objects and locations within the three-dimensional environment used to assess the user's viewpoint according to the updated spatial arrangement of the multiple objects requested by the user, thereby enabling the user to use the electronic device quickly and efficiently.
[0270] In some embodiments, such as in FIG. 9F , while the three-dimensional environment (e.g., 902) is accessible to a second user of a second electronic device (e.g., 101b) (1026a), the electronic device (e.g., 101a), via the display generation component (e.g., 120a), displays (1026b) multiple virtual objects (e.g., 918a) in the three-dimensional environment (e.g., 101a), including individual virtual objects (e.g., 918a) accessible to the electronic device (e.g., 101a) but not accessible to the second electronic device (e.g., 101b) while the digital origin (e.g., 912) is located at a first individual location within the three-dimensional environment. In some embodiments, the second electronic device does not display the individual virtual objects while the individual virtual objects are not accessible to the second electronic device. In some embodiments, a spatial relationship between two or more of the respective virtual objects, the user's viewpoint, and the digital origin satisfies one or more spatial criteria while the individual virtual objects are not accessible to the second electronic device. In some embodiments, if the individual virtual object were accessible to the second electronic device, one or more spatial relationships between two or more of the respective virtual object, the user's viewpoint, the digital origin, and the viewpoint of the second user of the second electronic device would not satisfy one or more spatial criteria. In some embodiments, the individual virtual object is accessible to the electronic device but not to the second electronic device, but the individual virtual object is a "private" object (e.g., of the user).
[0271] In some embodiments, such as in FIG. 9F , while the three-dimensional environment (e.g., 902) is accessible to a second user of a second electronic device (e.g., 101b) (1026a), the individual virtual object (e.g., 918a) is accessible to the electronic device (e.g., 101a) but not to the second electronic device (e.g., 101b), and the digital origin (e.g., 912) is located at a first individual location within the three-dimensional environment (e.g., 902), the electronic device (e.g., 101) receives input via one or more input devices (e.g., 314) corresponding to a request to make the individual virtual object (e.g., 918a) accessible to the electronic device (e.g., 101a) and the second electronic device (e.g., 101b) (1026c).
[0272] In some embodiments, such as in FIG. 9G , while the three-dimensional environment (e.g., 902) is accessible to a second user of a second electronic device (1026a), in response to an input corresponding to a request to make the individual object (e.g., 918a) accessible to the electronic device (e.g., 101a) and the second electronic device (e.g., 101b) (1026d), the electronic device (e.g., 101a) updates the individual virtual object (e.g., 918a) to be accessible to the electronic device (e.g., 101a) and the second electronic device (e.g., 101b) (1026e). In some embodiments, while the individual virtual object is accessible to the electronic device and the second electronic device, the electronic device displays the virtual object in the three-dimensional environment via a display generation component, and the second electronic device displays the virtual object in the three-dimensional environment via a second display generation component that communicates with the second electronic device. In some embodiments, while the individual virtual object is accessible to the electronic device and the second electronic device, the individual virtual object is a “shared” object.
[0273] 9G , while the three-dimensional environment (e.g., 902) is accessible to a second user of a second electronic device (e.g., 101b) (1026a), in response to an input corresponding to a request to make the individual object (e.g., 918) accessible to the electronic device (e.g., 101a) and the second electronic device (e.g., 101b) (1026d), the electronic device (e.g., 101) updates the digital origin (e.g., 912) to be located at a second individual location within the three-dimensional environment (e.g., 902) that is different from the first individual location according to the location of the individual virtual object (e.g., 918a) (and / or the location of a second viewpoint of the three-dimensional environment associated with the second electronic device) (1026f). In some embodiments, while the digital origin is located at the second individual location, one or more spatial relationships between two or more of the respective virtual object, the user's viewpoint, the digital origin, and the viewpoint of the second user of the second electronic device satisfy one or more spatial criteria. In some embodiments, the digital origin is associated with a viewpoint of a user of the electronic device, and the viewpoint of a second user is associated with a second digital origin different from the digital origin. In some embodiments, the digital origin is associated with the three-dimensional environment, the viewpoint of the first user, and the viewpoint of the second user. In some embodiments, the electronic device does not update the viewpoint of use in response to input corresponding to a request to make the individual objects accessible to the electronic device and the second electronic device. In some embodiments, in response to receiving input corresponding to a request to update the spatial arrangement of the multiple virtual objects, the user's viewpoint, and the digital origin according to one or more steps of method 800 while the digital origin is at the second individual location, the electronic device updates the user's viewpoint (e.g., to be located at the second individual location).In some embodiments, when both the first electronic device and the second electronic device receive input corresponding to a request to update the spatial arrangement of multiple virtual objects, the user's viewpoint, and the digital origin according to one or more steps of method 800, the viewpoints of both users are updated to satisfy one or more spatial criteria, thereby positioning the viewpoints of the users and the individual virtual objects to facilitate interaction with and viewing of the individual virtual objects by both users.
[0274] Updating the digital origin in response to input to make the individual virtual object accessible to a second electronic device provides an efficient way of establishing a reference point within a three-dimensional environment that is compatible with sharing the individual virtual object with a second electronic device, thereby allowing a user to use the electronic device quickly and efficiently.
[0275] 9D , while a user's viewpoint is a first viewpoint within a three-dimensional environment (e.g., 902) and a digital origin (e.g., 912) is located at a first distinct location within the three-dimensional environment (e.g., 902) and has a valid status (e.g., digital origin valid) at the first distinct location within the three-dimensional environment (e.g., 902), the electronic device (e.g., 101b) receives input via one or more input devices corresponding to a request to update the user's viewpoint to a second viewpoint within the three-dimensional environment that is different from the first viewpoint (1028a). In some embodiments, the digital origin has a valid status when the spatial arrangement(s) between two or more of the digital origin, one or more virtual objects, and the user's viewpoint satisfy one or more spatial criteria. In some embodiments, the one or more spatial criteria include a criterion that is met when a threshold number (e.g., 1, 2, or 3, and / or 25%, 50%, or 75%) of the spatial relationships between the digital origin and the virtual objects and / or the user's viewpoint satisfy one or more criteria specifying a distance range or an orientation range of the virtual objects described above with reference to method 800. For example, the criteria for determining whether the digital origin is valid include a criterion that is met when 50% of the spatial relationships satisfy the criterion. In some embodiments, while the digital origin is valid, in response to an input corresponding to a request to update the three-dimensional environment to satisfy one or more criteria specifying a distance range or an orientation range of the virtual objects relative to the user's current viewpoint described above with reference to method 800, the electronic device maintains the location of the digital origin and updates the spatial relationships between the virtual objects and the user's viewpoint according to the digital origin.
[0276] In some embodiments, such as FIG. 9E , in response to an input (1028b) corresponding to a request to update the user's viewpoint to a second viewpoint within the three-dimensional environment (e.g., 902b), the electronic device (e.g., 101b) displays (1028c) the three-dimensional environment (902b) from the second viewpoint via the display generation component (e.g., 120b).
[0277] In some embodiments, such as FIG. 9E , in response to an input corresponding to a request (1028b) to update the user's viewpoint to a second viewpoint within the three-dimensional environment (e.g., 902b), and a determination that the second viewpoint is within a threshold distance of the first viewpoint, the electronic device (e.g., 101) maintains (1028d) a valid status of the digital origin (e.g., 912) at a first discrete location within the three-dimensional environment (e.g., 902b).
[0278] 9E , in response to an input corresponding to a request to update the user's viewpoint to a second viewpoint within the three-dimensional environment (1028b), in response to a determination that the second viewpoint is more than a threshold distance away from the first viewpoint, the electronic device (e.g., 101b) updates the status of the digital origin (e.g., 912) to an invalid status (e.g., determines that the digital origin is not valid) (1028e). In some embodiments, in response to updating the valid status of the digital origin to an invalid status, the electronic device selects a new location within the three-dimensional environment for the digital origin (e.g., according to one or more criteria related to the spatial relationship between the digital origin and the virtual object and / or the user's viewpoint). In some embodiments, while the digital origin is not valid, the electronic device does not update the location of the digital origin until it receives input corresponding to a request to update the three-dimensional environment to satisfy one or more criteria specifying a range of distances or a range of orientations of the virtual object relative to the user's current viewpoint, as described above with reference to method 800. The electronic device then updates the location of the digital origin and, optionally, updates the spatial relationship between the virtual object and the user's viewpoint according to the updated digital origin. In some embodiments, the criteria for valid status of the digital origin include a criterion that is satisfied when the user's viewpoint remains within a threshold distance and is not satisfied when the user's viewpoint moves beyond the threshold distance. In some embodiments, the electronic device does not update the user's viewpoint pursuant to a determination that the second viewpoint is not valid or when updating the location of the digital origin. In some embodiments, in response to an input corresponding to a request to update the spatial arrangement of the virtual object and the user's viewpoint according to one or more spatial criteria according to one or more steps of method 800, the electronic device updates the user's viewpoint according to the updated digital origin.
[0279] Invalidating the digital origin in response to movement of the user's viewpoint beyond a threshold distance provides an efficient way of updating the user interface according to the user's updated viewpoint, which improves user interaction with the electronic device by allowing the user to select a viewpoint within the three-dimensional environment, thereby allowing the user to use the electronic device quickly and efficiently.
[0280] In some embodiments, while a device (e.g., and / or electronic device) including a display generation component (e.g., 120a) is in a pose relative to a distinct portion of a user (e.g., the user's head) that satisfies one or more posture criteria (e.g., the user is wearing the display generation component on their head in a predetermined manner) and a digital origin (e.g., 912, such as in FIG. 9A ) is located at a first distinct location within the three-dimensional environment (e.g., 902), the electronic device (e.g., 101a) detects (1030a) movement of the display generation component (e.g., 120a) to a pose that does not satisfy the one or more posture criteria relative to the distinct portion of the user. In some embodiments, the display generation component (e.g., and / or electronic device) is a wearable device, and the one or more posture criteria are satisfied when the user is wearing the display generation component (e.g., and / or electronic device) on their head. In some embodiments, one or more posture criteria are not met when the user is not wearing the display generating component (e.g., and / or electronic device) on their head, or when the user is wearing the display generating component (e.g., and / or electronic device) on their head but not in front of their face in the predetermined posture.
[0281] In some embodiments, while a device including the display generation component (e.g., 120a) is in a pose relative to a discrete portion of the user that does not satisfy one or more posture criteria, the electronic device (e.g., 101) detects (1030b) movement of the display generation component (e.g., 120a) to a pose relative to a discrete portion of the user that satisfies one or more posture criteria. In some embodiments, after not wearing the display generation component (e.g., and / or electronic device), the user begins wearing the display generation component (e.g., and / or electronic device) in a pose that satisfies one or more posture criteria.
[0282] In some embodiments, in response to moving (1030c) the display generation component (e.g., 120) to a pose for a distinct portion of the user that satisfies one or more posture criteria, the electronic device (e.g., 101a) maintains (1030d) a digital origin (e.g., 912, such as in FIG. 9A ) at a first distinct location within the three-dimensional environment (e.g., 902) in accordance with a determination that the device including the display generation component (e.g., 120a) has been in a pose for a distinct portion of the user that does not satisfy one or more posture criteria for less than a predetermined time threshold (e.g., 1, 2, 3, 5, 30, or 45 seconds, or 1, 2, 3, 5, or 10 minutes). In some embodiments, the electronic device does not reset the digital origin or update the user's viewpoint if the pose does not satisfy one or more posture criteria for less than the predetermined time threshold.
[0283] In some embodiments, in response to (1030c) movement of the display generation component (e.g., 120a) to a pose relative to the individual portion of the user that satisfies one or more pose criteria, and in accordance with a determination that the device including the display generation component (e.g., 120a) has been in a pose relative to the individual portion of the user that does not satisfy one or more pose criteria for a period of time greater than a predetermined time threshold, the electronic device (e.g., 101a) updates (1030e) the digital origin (e.g., 912, such as in FIG. 9A ) to a second individual location within the three-dimensional environment (e.g., 902) that is different from the first individual location. In some embodiments, the second individual location is associated with (e.g., is a location of) the location of the user's viewpoint in the three-dimensional environment based on the physical location of the user and / or the display generation component (e.g., and / or the electronic device). In some embodiments, after a threshold period has elapsed, if the digital origin is still valid at the first individual location when movement of the display generation component to a pose relative to the individual portion of the user satisfies one or more criteria, the electronic device maintains the digital origin at the first individual location. In some embodiments, updating the digital origin does not include updating the user's viewpoint. In some embodiments, in response to an input corresponding to a request to update the spatial arrangement of virtual objects and the user's viewpoint according to one or more spatial criteria according to one or more steps of method 800, the electronic device updates the user's viewpoint according to the updated digital origin.
[0284] Updating the digital origin in response to movement of the display generation component to a posture that satisfies posture criteria when the posture criteria have not been met for a predetermined time threshold improves user interaction with the electronic device by allowing the user to update the three-dimensional environment when the posture of the display generation component (e.g., and / or the electronic device) satisfies one or more posture criteria, thereby allowing the user to use the electronic device quickly and efficiently.
[0285] In some embodiments, such as FIG. 9A , while displaying a three-dimensional environment (e.g., 902a) including a plurality of virtual objects (e.g., 904a, 906a) in a first discrete spatial arrangement relative to a user's viewpoint, the first discrete spatial arrangement including displaying the plurality of virtual objects (e.g., 904a, 906a) within a predetermined threshold distance of the user's viewpoint, and while a digital origin (e.g., 912) is located at the first discrete location within the three-dimensional environment (e.g., 902a) and has a valid status at the first discrete location within the three-dimensional environment (e.g., 902a), the electronic device (e.g., 101) detects (1032a) an indication of one or more inputs corresponding to a request to update the spatial arrangement of the plurality of virtual objects (e.g., 904a, 906a) relative to the user's viewpoint. In some embodiments, the one or more inputs satisfy one or more first criteria and do not satisfy one or more second criteria, such as the inputs described with reference to method 1400 (e.g., the one or more inputs correspond to requests to individually update the positions of virtual objects).
[0286] In some embodiments, such as FIG. 9D , in response to detecting an indication of the one or more inputs, the electronic device (e.g., 101), via the display generation component (e.g., 120a), displays (1032b) the plurality of virtual objects (e.g., 904a, 904b) in a second, distinct spatial arrangement relative to the user's viewpoint.
[0287] 9C , in response to a determination that the second discrete spatial arrangement includes displaying at least one of the plurality of virtual objects (e.g., 904a, 906a) within a predetermined threshold distance (e.g., 1, 2, 3, 5, 10, 15, or 30 meters) of the user's viewpoint, the electronic device (e.g., 101) maintains (1032c) a valid status of the digital origin at the first discrete location within the three-dimensional environment. In some embodiments, while the digital origin has a valid status, in response to a request to update the spatial arrangement of the virtual objects to satisfy one or more criteria described above with reference to method 800, the electronic device updates the three-dimensional environment according to the first discrete location of the digital origin. In some embodiments, the electronic device does not update the user's viewpoint when maintaining the digital origin at the first discrete location.
[0288] 9D , in response to determining that the second distinct spatial arrangement includes displaying multiple virtual objects (e.g., 904a, 906a) beyond a predetermined threshold distance from the user's viewpoint, the electronic device (e.g., 101) updates the status of the digital origin to an invalid status (1032d). In some embodiments, while the digital origin has an invalid status, in response to a request to update the spatial arrangement of the virtual objects to satisfy one or more criteria described above with reference to method 800, the electronic device updates the three-dimensional environment according to the second distinct location of the digital origin. In some embodiments, the second distinct location is determined in response to updating the valid status of the digital origin to an invalid status. In some embodiments, the second distinct location is determined in response to a request to update the spatial arrangement of the virtual objects to satisfy one or more criteria described above with reference to method 800.
[0289] Invalidating the digital origin when objects are further than a predetermined threshold distance from the user provides an efficient way to update the three-dimensional environment to display virtual objects closer to the user's viewpoint using the updated digital origin, thereby enhancing user interaction with the electronic device by enabling use of the electronic device quickly and efficiently.
[0290] 9F , the electronic device (e.g., 101) maintains the digital origin (e.g., 912) at a first discrete location within the three-dimensional environment (1034a) while the location of the digital origin (e.g., 912) satisfies one or more digital origin criteria. In some embodiments, the digital origin criteria include one or more of the criteria described above, such as the user's viewpoint not moving more than a threshold distance, the user's viewpoint being within a threshold distance of one or more virtual objects, and / or other criteria related to the spatial arrangement between two or more of the virtual objects, the user's viewpoint, and the digital origin. In some embodiments, in response to a request to update the spatial arrangement relative to the user's viewpoint according to one or more steps of method 800 while the digital origin is at the first discrete location, the electronic device updates the three-dimensional environment to satisfy the one or more criteria for the digital origin at the first discrete location.
[0291] In some embodiments, such as in FIG. 9G , in response to detecting that the location of the digital origin (e.g., 912) no longer satisfies one or more digital origin criteria, the electronic device (e.g., 101) updates (1034b) the digital origin (e.g., 912) to be located at a second distinct location within the three-dimensional environment (e.g., 902) that is different from the first distinct location, where the second distinct location satisfies the one or more digital origin criteria. In some embodiments, in response to a request to update the spatial arrangement relative to the user's viewpoint according to one or more steps of method 800 while the digital origin is located at the second distinct location, the electronic device updates the three-dimensional environment to satisfy the one or more criteria for the updated digital origin located at the second distinct location. In some embodiments, the electronic device automatically updates the digital origin in response to determining that the digital origin is invalid (e.g., without receiving input corresponding to a request to update the digital origin). In some embodiments, updating the digital origin does not include updating the user's viewpoint. In some embodiments, in response to an input corresponding to a request to update the spatial arrangement of the virtual objects and the user's viewpoint according to one or more spatial criteria according to one or more steps of method 800, the electronic device updates the user's viewpoint according to the updated digital origin.
[0292] Updating the digital origin in response to determining that the digital origin is invalid improves user interaction with the electronic device by quickly updating the three-dimensional environment with a valid digital origin, thereby allowing the user to use the electronic device quickly and efficiently.
[0293] In some embodiments, such as FIG. 9A , displaying the plurality of virtual objects (e.g., 904a, 906a) in a first spatial arrangement includes displaying the plurality of virtual objects (e.g., 904a, 906a) in individual arrangements (e.g., orientations and / or positions and / or distances) relative to each other (1036a).
[0294] 9C , displaying the plurality of virtual objects (e.g., 904a, 906a) in the third spatial arrangement includes displaying the plurality of virtual objects (904a, 906a) in an individual arrangement (1036b) relative to one another. In some embodiments, the positions and orientations of the virtual objects relative to one another are maintained in response to updating the three-dimensional environment in response to input that satisfies one or more second criteria. In some embodiments, while moving the virtual objects together, the electronic device displays the virtual objects together while maintaining the individual arrangements of the virtual objects relative to one another.
[0295] Maintaining the individual spatial arrangement of the virtual objects relative to one another in response to input that meets one or more second criteria enhances user interaction with the electronic device by allowing a user to quickly and efficiently move multiple virtual objects together.
[0296] 11A-11E illustrate an example method for displaying an object in a three-dimensional environment based on an estimated location on the floor of the three-dimensional environment, according to some embodiments of the present disclosure.
[0297] 11A illustrates a three-dimensional environment 1122 displayed by display generation components 120a and 120b of user A's electronic device 1102a and user B's electronic device 1104b, respectively. It should be understood that in some embodiments, electronic devices 1102a and 1104b utilize one or more of the techniques described with reference to FIGS. 11A-11E within a two-dimensional environment without departing from the scope of this disclosure. As described above with reference to FIGS. 1-6, electronic devices 1102a and 1104b (e.g., each corresponding to device 101) optionally include display generation components 120a and 120b (e.g., touchscreens) and multiple image sensors 314a and 314b, respectively. Image sensors 314a and 314b optionally include one or more of a visible light camera, an infrared camera, a depth sensor, or any other sensor of electronic devices 1102a and 1104b that can be used to capture one or more images of a user or a portion of a user while the user interacts with ...
Claims
1. 1. A method comprising: An electronic device in communication with a display generation component and one or more input devices, detecting, via the one or more input devices, a movement of the user's current viewpoint in the three-dimensional environment from a first viewpoint to a second viewpoint while displaying, via the display generation component, a three-dimensional environment including a plurality of virtual objects having a first spatial arrangement relative to a current viewpoint of the user of the electronic device; In response to detecting the movement corresponding to a movement of the current viewpoint of the user from the first viewpoint to the second viewpoint, displaying, via the display generation component, the three-dimensional environment from the second viewpoint, with respect to the current viewpoint of the user, the three-dimensional environment including the plurality of virtual objects having a second spatial arrangement different from the first spatial arrangement; receiving, via the one or more input devices, input corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy one or more criteria specifying a range of distances or a range of orientations of the virtual objects relative to the current viewpoint of the user while displaying the three-dimensional environment from the second viewpoint including the plurality of virtual objects having the second spatial arrangement relative to the current viewpoint of the user; and displaying, via the display generation component, the three-dimensional environment from the second perspective, including displaying, relative to the user's viewpoint, the plurality of virtual objects having a third spatial arrangement different from the second spatial arrangement, wherein the third spatial arrangement of the plurality of virtual objects satisfies the one or more criteria, in response to the input corresponding to the request to update the three-dimensional environment.
2. 2. The method of claim 1 , wherein receiving the input corresponding to the request to update the spatial arrangement of the plurality of virtual objects comprises receiving the input via a hardware input device of the one or more input devices.
3. The input corresponding to the request to update the spatial arrangement of the plurality of virtual objects satisfies one or more first input criteria, and the method further comprises: receiving a second input via the hardware input device; In response to receiving the second input, 3. The method of claim 2, further comprising: in accordance with a determination that the second input satisfies one or more second input criteria different from the one or more first input criteria, performing a respective action corresponding to the second input without updating the spatial arrangement of the plurality of virtual objects.
4. 4. The method of claim 1, wherein receiving the input corresponding to the request to update the spatial arrangement of the plurality of virtual objects comprises detecting a selection of a user interface element displayed in the three-dimensional environment via the display generation component.
5. Displaying the plurality of virtual objects having the second spatial arrangement includes displaying the plurality of virtual objects at a first position within the three-dimensional environment via the display generation component, the method further comprising:
5. The method of claim 1, further comprising: in response to receiving the input, moving the plurality of virtual objects from the first position to a second position within the three-dimensional environment.
6. receiving, via the display generation component, input corresponding to a request to update a position of the individual virtual object within the three-dimensional environment while displaying the three-dimensional environment, the individual virtual object of the plurality of virtual objects at a first position within the three-dimensional environment, the individual virtual object of the plurality of virtual objects being a first individual spatial arrangement where the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user satisfies the one or more criteria; displaying, via the display generation component, the plurality of virtual objects having a second individual spatial arrangement that does not satisfy the one or more criteria in response to receiving the input corresponding to the request to update the position of the individual virtual object in the three-dimensional environment, the second individual spatial arrangement including displaying the individual virtual object in a second position different from the first position in the three-dimensional environment; receiving, while displaying the three-dimensional environment, via the one or more input devices, a second input corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy the one or more criteria, the second input corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy the one or more criteria, the second input including displaying the individual virtual objects at the second positions within the three-dimensional environment; 6. The method of claim 1, further comprising: in response to receiving the second input, updating the position of the individual virtual object to satisfy the one or more criteria without updating positions of one or more other virtual objects within the plurality of virtual objects.
7. Displaying the plurality of virtual objects having the third spatial arrangement includes: displaying, via the display generation component, the plurality of virtual objects having the third spatial arrangement in accordance with a determination that the three-dimensional environment is associated with a first spatial template, including displaying, via the display generation component, individual virtual objects of the plurality of virtual objects at an orientation relative to the current viewpoint of the user that satisfies one or more criteria associated with the first spatial template; 7. The method of claim 1, further comprising: displaying, via the display generation component, the plurality of virtual objects having the third spatial arrangement in accordance with determining that the three-dimensional environment is associated with a second spatial template; and displaying, via the display generation component, the individual objects of the plurality of virtual objects at an orientation relative to the current viewpoint of the user that satisfies one or more criteria associated with the second spatial template.
8. Displaying the plurality of virtual objects having the third spatial arrangement includes:
10. The method of claim 7, further comprising: displaying, via the display generation component, the individual objects of the plurality of virtual objects with individual faces of the individual objects oriented toward the viewpoint of the user and a second viewpoint of a second user within the three-dimensional environment in accordance with a determination that the three-dimensional environment is associated with a shared content space template.
9. Displaying the plurality of virtual objects having the third spatial arrangement includes:
9. The method of claim 7 or 8, further comprising, in accordance with a determination that the three-dimensional environment is associated with a shared activity space template, displaying, via the display generation component, the individual object of the plurality of virtual objects in an orientation in which a first side of the individual object is oriented toward the viewpoint of the user and a second side of the individual object, different from the first side, is oriented toward a second viewpoint of a second user.
10. Displaying the plurality of virtual objects having the third spatial arrangement includes:
10. The method of claim 7, further comprising: displaying, via the display generation component, a representation of a second user in a pose oriented toward the current viewpoint of the user of the electronic device in accordance with a determination that the three-dimensional environment is associated with a group activity space template.
11. While displaying, via the display generation component, the three-dimensional environment including a second user associated with a second viewpoint within the three-dimensional environment, the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user is a first distinct spatial arrangement that satisfies the one or more criteria, and detecting an indication of movement of the second viewpoint of the second user within the three-dimensional environment from a first distinct viewpoint to a second distinct viewpoint; receiving, via the one or more input devices, a second input corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy the one or more criteria while displaying the three-dimensional environment having the second viewpoint of the second user at the second distinct viewpoint; 11. The method of claim 1, further comprising: in response to receiving the second input, updating the spatial arrangement of the plurality of virtual objects according to the second individual viewpoint of the second user to a second individual spatial arrangement that satisfies the one or more criteria.
12. receiving, via the display generation component, a sequence of one or more inputs corresponding to a request to update positions of one or more of the plurality of virtual objects within the three-dimensional environment, via the one or more input devices, while displaying the three-dimensional environment, wherein the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user is a first distinct spatial arrangement that satisfies the one or more criteria; In response to receiving the sequence of one or more inputs, displaying, via the display generation component, the plurality of virtual objects at respective positions within the three-dimensional environment according to the sequence of one or more inputs in a second distinct spatial arrangement that does not satisfy the one or more criteria; and receiving, while displaying the three-dimensional environment, the one or more input devices corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy the one or more criteria; and 12. The method of claim 1, further comprising: in response to receiving the second input, updating the positions of the respective virtual objects in the three-dimensional environment according to the respective positions of the respective virtual objects to a third distinct spatial arrangement that satisfies the one or more criteria.
13. detecting one or more indications of a request by a second user in the three dimensional environment to update positions of one or more of the plurality of virtual objects within the three dimensional environment while displaying the three dimensional environment via the display generation component, wherein the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user is a first individual spatial arrangement that satisfies the one or more criteria; In response to detecting the one or more indications, displaying, via the display generation component, the plurality of virtual objects at respective positions within the three-dimensional environment according to the sequence of the one or more inputs in a second distinct spatial arrangement that does not satisfy the one or more criteria; and receiving, while displaying the three-dimensional environment, the one or more input devices corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy the one or more criteria; and 13. The method of claim 1, further comprising: in response to receiving the second input, updating the positions of the respective virtual objects in the three-dimensional environment according to the respective positions of the respective virtual objects to a third distinct spatial arrangement that satisfies the one or more criteria.
14. While the spatial arrangement of the plurality of virtual objects does not satisfy the one or more criteria, 14. The method of claim 1, further comprising: in accordance with a determination that the input corresponding to the request to update the spatial arrangement of the plurality of virtual objects has not been received, maintaining the spatial arrangement of the plurality of virtual objects until the input corresponding to the request to update the spatial arrangement of the plurality of virtual objects is received.
15. displaying a plurality of virtual objects within the three-dimensional environment, including displaying a first virtual object of the plurality of virtual objects at a location that exceeds a predetermined threshold distance from the current viewpoint of the user; receiving, via the one or more input devices, a second input corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy the one or more criteria, while the plurality of virtual objects are being displayed in the three-dimensional environment, the second input including displaying the first virtual object of the plurality of virtual objects at the location that exceeds the predetermined threshold distance from the current viewpoint of the user; 15. The method of claim 1, further comprising: in response to receiving the second input, updating the viewpoint of the user to an individual viewpoint that is within the predetermined threshold distance of the first virtual object, and where the spatial arrangement of the plurality of virtual objects relative to the individual viewpoint satisfies the one or more criteria.
16. displaying, via the display generation component, the plurality of virtual objects having a first spacing between a first virtual object of the plurality of virtual objects and a second virtual object of the plurality of virtual objects, wherein the first spacing does not satisfy one or more spacing criteria of the one or more criteria; receiving, while displaying the plurality of virtual objects with the first spacing between the first virtual object and the second virtual object, a second input via the one or more input devices corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy the one or more criteria; 16. The method of claim 1, further comprising: in response to receiving the second input, displaying, via the display generation component, the plurality of virtual objects having a second spacing between the first virtual object and the second virtual object, wherein the second spacing satisfies the one or more spacing criteria.
17. 17. The method of claim 1, wherein detecting the movement of the user's current viewpoint in the three-dimensional environment from the first viewpoint to the second viewpoint comprises detecting, via the one or more input devices, movement of the electronic device within a physical environment of the electronic device or movement of the display generation component within a physical environment of the display generation component.
18. 1. An electronic device comprising: one or more processors; Memory and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: detecting, via one or more input devices, a movement of a current viewpoint of the user in the three-dimensional environment from a first viewpoint to a second viewpoint while displaying, via a display generation component, a three-dimensional environment including a plurality of virtual objects having a first spatial arrangement relative to a current viewpoint of the user of the electronic device; In response to detecting the movement corresponding to a movement of the current viewpoint of the user from the first viewpoint to the second viewpoint, displaying, via the display generation component, the three-dimensional environment from the second viewpoint, with respect to the current viewpoint of the user, the three-dimensional environment including the plurality of virtual objects having a second spatial arrangement different from the first spatial arrangement; while displaying the three-dimensional environment from the second viewpoint including the plurality of virtual objects having the second spatial arrangement relative to the current viewpoint of the user, receiving, via one or more input devices, input corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy one or more criteria specifying a range of distances or a range of orientations of the virtual objects relative to the current viewpoint of the user; and one or more programs including instructions for, in response to the input corresponding to the request to update the three-dimensional environment, via the display generation component, displaying the three-dimensional environment from the second perspective, including displaying, relative to the user's viewpoint, the plurality of virtual objects having a third spatial arrangement different from the second spatial arrangement, wherein the third spatial arrangement of the plurality of virtual objects satisfies the one or more criteria.
19. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to: detecting, via one or more input devices, a movement of a current viewpoint of a user of the electronic device in the three-dimensional environment from a first viewpoint to a second viewpoint while displaying, via a display generation component, a three-dimensional environment including a plurality of virtual objects having a first spatial arrangement relative to a current viewpoint of the user of the electronic device; In response to detecting the movement corresponding to a movement of the current viewpoint of the user from the first viewpoint to the second viewpoint, displaying, via the display generation component, the three-dimensional environment from the second viewpoint, with respect to the current viewpoint of the user, the three-dimensional environment including the plurality of virtual objects having a second spatial arrangement different from the first spatial arrangement; receiving, via one or more input devices, input corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy one or more criteria specifying a range of distances or a range of orientations of the virtual objects relative to the current viewpoint of the user while displaying the three-dimensional environment from the second viewpoint including the plurality of virtual objects having the second spatial arrangement relative to the current viewpoint of the user; and displaying, via the display generation component, the three-dimensional environment from the second perspective, including displaying, relative to the user's viewpoint, the plurality of virtual objects having a third spatial arrangement different from the second spatial arrangement, wherein the third spatial arrangement of the plurality of virtual objects satisfies the one or more criteria, in response to the input corresponding to the request to update the three-dimensional environment.
20. 1. An electronic device comprising: one or more processors; Memory and means for detecting, via one or more input devices, a movement of a current viewpoint of a user of the electronic device in the three-dimensional environment from a first viewpoint to a second viewpoint while displaying, via a display generation component, a three-dimensional environment including a plurality of virtual objects having a first spatial arrangement relative to a current viewpoint of the user of the electronic device; means for displaying, via the display generation component, the three-dimensional environment from the second viewpoint, including the plurality of virtual objects having a second spatial arrangement, different from the first spatial arrangement, relative to the current viewpoint of the user, in response to detecting the movement corresponding to a movement of the current viewpoint of the user from the first viewpoint to the second viewpoint; means for receiving, while displaying the three-dimensional environment from the second viewpoint including the plurality of virtual objects having the second spatial arrangement relative to the current viewpoint of the user, input via one or more input devices corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy one or more criteria specifying a range of distances or a range of orientations of the virtual objects relative to the current viewpoint of the user; and means for displaying the three-dimensional environment from the second perspective, including displaying, via the display generation component, the plurality of virtual objects having a third spatial arrangement, different from the second spatial arrangement, relative to the user's viewpoint, wherein the third spatial arrangement of the plurality of virtual objects satisfies the one or more criteria, in response to the input corresponding to the request to update the three-dimensional environment.
21. 1. An information processing apparatus for use in an electronic device, the information processing apparatus comprising: means for detecting, via one or more input devices, a movement of a current viewpoint of a user of the electronic device in the three-dimensional environment from a first viewpoint to a second viewpoint while displaying, via a display generation component, a three-dimensional environment including a plurality of virtual objects having a first spatial arrangement relative to a current viewpoint of the user of the electronic device; means for displaying, via the display generation component, the three-dimensional environment from the second viewpoint, including the plurality of virtual objects having a second spatial arrangement, different from the first spatial arrangement, relative to the current viewpoint of the user, in response to detecting the movement corresponding to a movement of the current viewpoint of the user from the first viewpoint to the second viewpoint; means for receiving, while displaying the three-dimensional environment from the second viewpoint including the plurality of virtual objects having the second spatial arrangement relative to the current viewpoint of the user, input via one or more input devices corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the current viewpoint of the user to satisfy one or more criteria specifying a range of distances or a range of orientations of the virtual objects relative to the current viewpoint of the user; and means for displaying the three-dimensional environment from the second viewpoint, including displaying, via the display generation component, the plurality of virtual objects having a third spatial arrangement, different from the second spatial arrangement, relative to the viewpoint of the user, wherein the third spatial arrangement of the plurality of virtual objects satisfies the one or more criteria, in response to the input corresponding to the request to update the three-dimensional environment.
22. 1. An electronic device comprising: one or more processors; Memory and and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising instructions for performing the method of any one of claims 1 to 17.
23. 18. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to perform the method of any one of claims 1 to 17.
24. 1. An electronic device comprising: one or more processors; Memory and and means for performing the method according to any one of claims 1 to 17.
25. 1. An information processing apparatus for use in an electronic device, the information processing apparatus comprising: and means for executing the method according to any one of claims 1 to 17.
26. 1. A method comprising: An electronic device in communication with a display generation component and one or more input devices, receiving, via the display generation component, input corresponding to a request to move one or more of the plurality of virtual objects while displaying, from a viewpoint of a user of the electronic device, the three-dimensional environment including a plurality of virtual objects at a first location within a first spatial arrangement relative to the viewpoint of the user within the three-dimensional environment; In response to receiving the input, In response to a determination that the input satisfies one or more first criteria, updating the three-dimensional environment in accordance with the input to move individual objects of the plurality of virtual objects within the three-dimensional environment from a first location to a second location different from the first location, the individual objects at the second location having a second spatial orientation relative to the viewpoint of the user that differs from the first spatial orientation relative to the viewpoint of the user; maintaining one or more second objects of the plurality of virtual objects at the first location within the three-dimensional environment in the first spatial arrangement relative to the viewpoint of the user; and updating the three-dimensional environment to move the plurality of virtual objects within the three-dimensional environment in accordance with the input, wherein after the moving, the plurality of virtual objects have a third spatial arrangement relative to the viewpoint of the user that is different from the first spatial arrangement relative to the viewpoint of the user, in accordance with a determination that the input satisfies one or more second criteria.
27. 27. The method of claim 26, wherein in response to receiving the input and in accordance with the determination that the input satisfies the one or more second criteria, updating the three-dimensional environment to move the plurality of virtual objects within the three-dimensional environment in accordance with the input comprises: moving a first virtual object of the plurality of virtual objects in a respective direction by a respective amount, and moving a second virtual object of the plurality of virtual objects in the respective direction by the respective amount, based on a direction and a magnitude of the input.
28. 28. The method of claim 26 or 27, wherein the one or more second criteria comprise a criterion that is met when receiving the input comprises detecting a first portion of the user in a posture that satisfies one or more posture criteria, and detecting a second portion of the user in the posture that satisfies the one or more posture criteria.
29. displaying the plurality of virtual objects within the three-dimensional environment with a first amount of visual emphasis via the display generation component while the electronic device is not receiving the input; 29. The method of claim 26, further comprising: displaying, via the display generation component, the plurality of virtual objects in the three-dimensional environment with a second amount of visual emphasis that is less than the first amount of visual emphasis in accordance with a determination that the input satisfies the one or more second criteria while receiving the input.
30. displaying, via the display generation component, a representation of a second user of a second electronic device within the three-dimensional environment; and displaying, via the display generation component, the representation of the second user with a first amount of visual emphasis while the second electronic device detects a discrete input that meets the one or more second criteria; 30. The method of claim 26, further comprising: displaying, via the display generation component, the representation of the second user with a second amount of visual emphasis that is greater than the first amount of visual emphasis while the second electronic device does not detect the distinct input that satisfies the one or more second criteria.
31. displaying, via the display generation component, a representation of a second user of a second electronic device at a third location within the three-dimensional environment; and receiving an indication that the second electronic device received a distinct input that satisfies the one or more second criteria while displaying the representation of the second user at the third location within the three-dimensional environment; 31. The method of claim 26, further comprising, in response to the indication, displaying, via the display generation component, the representation of the second user at the fourth location within the three-dimensional environment in accordance with the individual input without displaying an animation of the representation of the second user moving from the third location to a fourth location.
32. 32. The method of claim 26, wherein the one or more second criteria are met when the input is directed at a user interface element displayed via the display generation component, and include a criterion that causes the electronic device to move the plurality of virtual objects in accordance with the input when the input is directed at the user interface element.
33. In response to the determination that the input satisfies the one or more second criteria, moving the plurality of virtual objects within the three-dimensional environment a second amount in accordance with a determination that the input includes movement of a first magnitude; 33. The method of claim 26, further comprising: in accordance with a determination that the input includes movement of a third magnitude different from the first magnitude of movement, moving the plurality of virtual objects in the three-dimensional environment by a fourth amount different from the second amount.
34. 34. The method of any one of claims 26 to 33, further comprising displaying, via the display generation component, a plurality of user interface elements associated with the plurality of virtual objects prior to receiving the input corresponding to the request to move the one or more of the plurality of virtual objects, wherein the one or more first criteria are met when the input is directed at an individual user interface element associated with the individual object of the plurality of user interface elements, and the one or more first criteria include a criterion that, when the input is directed at the individual user interface element, causes the electronic device to initiate a process of moving the individual object of the plurality of virtual objects within the three-dimensional environment.
35. receiving, while displaying the three-dimensional environment, input via the one or more input devices corresponding to a request to update the three-dimensional environment to satisfy one or more spatial criteria relative to a digital origin; 35. The method of any one of claims 26 to 34, further comprising: updating the three-dimensional environment in response to the input to satisfy the one or more spatial criteria relative to the digital origin.
36. 36. The method of claim 35, wherein the digital origin is determined when the electronic device initiates an augmented reality or virtual reality session that includes displaying the three-dimensional environment.
37. 37. The method of claim 35 or 36, wherein prior to receiving the input that satisfies the one or more second criteria, the digital origin is located at a first discrete location within the three-dimensional environment, and in response to receiving the input that satisfies the one or more second criteria, the digital origin is updated to be located at a second discrete location within the three-dimensional environment that is different from the first discrete location in accordance with the determination that the input satisfies the one or more second criteria.
38. while the three-dimensional environment is accessible to a second user of a second electronic device; displaying, via the display generation component, the plurality of virtual objects within the three-dimensional environment, the plurality of virtual objects including individual virtual objects accessible to the electronic device but not accessible to the second electronic device while the digital origin is located at a first individual location within the three-dimensional environment; receiving, via the one or more input devices, input corresponding to a request to make the individual virtual object accessible to the electronic device and the second electronic device, while the individual virtual object is accessible to the electronic device but not to the second electronic device and the digital origin is located at the first individual location within the three-dimensional environment; in response to the input corresponding to the request to make the individual object accessible from the electronic device and the second electronic device; updating the individual virtual object to be accessible from the electronic device and the second electronic device; 38. The method of claim 35, further comprising: updating the digital origin to be located at a second distinct location within the three-dimensional environment according to a location of the distinct virtual object, the second distinct location being different from the first distinct location.
39. while the viewpoint of the user is a first viewpoint within the three-dimensional environment and the digital origin is located at a first distinct location within the three-dimensional environment and has a valid status at the first distinct location within the three-dimensional environment; receiving, via the one or more input devices, an input corresponding to a request to update the viewpoint of the user within the three-dimensional environment to a second viewpoint different from the first viewpoint; in response to the input corresponding to the request to update the viewpoint of the user to the second viewpoint within the three-dimensional environment; displaying the three-dimensional environment from the second perspective via the view generation component; and maintaining the valid status of the digital origin at the first discrete location within the three-dimensional environment according to a determination that the second viewpoint is within a threshold distance of the first viewpoint; 39. The method of any one of claims 35 to 38, further comprising: updating a status of the digital origin to an invalid status according to a determination that the second viewpoint is greater than the threshold distance from the first viewpoint.
40. detecting, while a device including the display generation component is in a pose relative to the discrete portion of the user that satisfies one or more pose criteria and the digital origin is located at a first discrete location within the three-dimensional environment, movement of the display generation component to a pose relative to the discrete portion of the user that does not satisfy the one or more pose criteria; detecting, while the device including the display generation component is in a pose relative to the individual portion of the user that does not satisfy the one or more pose criteria, movement of the display generation component to the pose relative to the individual portion of the user that satisfies the one or more pose criteria; In response to the movement of the display generation component to the pose for the discrete portion of the user that satisfies the one or more pose criteria, maintaining the digital origin at the first discrete location within the three-dimensional environment in accordance with a determination that the device including the display generation component has been in the pose relative to the discrete portion of the user that does not satisfy the one or more pose criteria for less than a predetermined time threshold; 40. The method of claim 35, further comprising: updating the digital origin to a second distinct location within the three-dimensional environment that is different from the first distinct location in accordance with a determination that the device including the display generation component has been in the pose for the distinct portion of the user that does not satisfy the one or more pose criteria for a time period greater than the predetermined time threshold.
41. while displaying the three-dimensional environment including the plurality of virtual objects in a first discrete spatial arrangement relative to the user's viewpoint, the first discrete spatial arrangement including displaying the plurality of virtual objects within a predetermined threshold distance of the user's viewpoint, and while the digital origin is located at a first discrete location within the three-dimensional environment and has a valid status at the first discrete location within the three-dimensional environment; detecting an indication of one or more inputs corresponding to a request to update the spatial arrangement of the plurality of virtual objects relative to the viewpoint of the user; In response to detecting the indication of the one or more inputs, displaying, via the display generation component, the plurality of virtual objects in a second distinct spatial arrangement relative to the viewpoint of the user; maintaining the valid status of the digital origin at the first discrete location within the three-dimensional environment in accordance with a determination that the second discrete spatial arrangement includes displaying at least one of the plurality of virtual objects within the predetermined threshold distance of the user's viewpoint; 41. The method of claim 35, further comprising: updating a status of the digital origin to an invalid status in accordance with a determination that the second individual spatial arrangement includes displaying the plurality of virtual objects farther than the predetermined threshold distance from the viewpoint of the user.
42. maintaining the digital origin at a first discrete location within the three-dimensional environment while the location of the digital origin satisfies one or more digital origin criteria; 42. The method of any one of claims 35 to 41, further comprising: in response to detecting that the location of the digital origin no longer satisfies the one or more digital origin criteria, updating the digital origin to be located at a second distinct location within the three-dimensional environment that is different from the first distinct location, the second distinct location satisfying the one or more digital origin criteria.
43. displaying the plurality of virtual objects in the first spatial arrangement includes displaying the plurality of virtual objects in individual arrangements relative to one another; 43. The method of any one of claims 26 to 42, wherein displaying the plurality of virtual objects in the third spatial arrangement comprises displaying the plurality of virtual objects in the individual arrangements relative to each other.
44. 1. An electronic device comprising: one or more processors; Memory and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: receiving, via a display generation component, input corresponding to a request to move one or more of the plurality of virtual objects while displaying the three-dimensional environment from a viewpoint of a user of the electronic device, the three-dimensional environment including a plurality of virtual objects at a first location within a first spatial arrangement relative to the viewpoint of the user within the three-dimensional environment; In response to receiving the input, In response to a determination that the input satisfies one or more first criteria, updating the three-dimensional environment in accordance with the input to move individual objects of the plurality of virtual objects from a first location to a second location different from the first location, the individual objects at the second location having a second spatial orientation relative to the viewpoint of the user that is different from the first spatial orientation relative to the viewpoint of the user; maintaining one or more second objects of the plurality of virtual objects at the first location within the three-dimensional environment in the first spatial arrangement relative to the viewpoint of the user; and one or more programs including instructions, in accordance with a determination that the input satisfies one or more second criteria, to update the three-dimensional environment to move the plurality of virtual objects in the three-dimensional environment in accordance with the input, wherein after the moving, the plurality of virtual objects have a third spatial orientation relative to the viewpoint of the user that is different from the first spatial orientation relative to the viewpoint of the user.
45. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to: receiving, via a display generation component, input corresponding to a request to move one or more of the plurality of virtual objects while displaying, from a viewpoint of a user of the electronic device, a three-dimensional ring including a plurality of virtual objects at a first location within a first spatial arrangement relative to the viewpoint of the user within the three-dimensional environment; In response to receiving the input, In response to a determination that the input satisfies one or more first criteria, updating the three-dimensional environment in accordance with the input to move individual objects of the plurality of virtual objects within the three-dimensional environment from a first location to a second location different from the first location, the individual objects at the second location having a second spatial orientation relative to the viewpoint of the user that differs from the first spatial orientation relative to the viewpoint of the user; maintaining one or more second objects of the plurality of virtual objects at the first location within the three-dimensional environment in the first spatial arrangement relative to the viewpoint of the user; and updating the three-dimensional environment to move the plurality of virtual objects within the three-dimensional environment in accordance with the input, wherein after the moving, the plurality of virtual objects have a third spatial arrangement relative to the viewpoint of the user that is different from the first spatial arrangement relative to the viewpoint of the user in accordance with a determination that the input satisfies one or more second criteria.
46. 1. An electronic device comprising: one or more processors; Memory and means for receiving, via a display generation component, a three-dimensional environment from a viewpoint of a user of the electronic device, the three-dimensional environment including a plurality of virtual objects at first locations in a first spatial arrangement relative to the viewpoint of the user within the three-dimensional environment, and receiving, while displaying the three-dimensional environment, via one or more input devices, input corresponding to a request to move one or more of the plurality of virtual objects; In response to receiving the input, In response to a determination that the input satisfies one or more first criteria, updating the three-dimensional environment in accordance with the input to move individual objects of the plurality of virtual objects from a first location to a second location different from the first location, the individual objects at the second location having a second spatial orientation relative to the viewpoint of the user that is different from the first spatial orientation relative to the viewpoint of the user; maintaining one or more second objects of the plurality of virtual objects at the first location within the three-dimensional environment in the first spatial arrangement relative to the viewpoint of the user; and means for updating the three-dimensional environment to move the plurality of virtual objects within the three-dimensional environment in accordance with the input, wherein after the moving, the plurality of virtual objects have a third spatial arrangement relative to the viewpoint of the user that is different from the first spatial arrangement relative to the viewpoint of the user, in accordance with a determination that the input satisfies one or more second criteria.
47. 1. An information processing apparatus for use in an electronic device, the information processing apparatus comprising: means for receiving, via a display generation component, input corresponding to a request to move one or more of the plurality of virtual objects while displaying the three-dimensional environment from a viewpoint of a user of the electronic device, the three-dimensional environment including a plurality of virtual objects at a first location within a first spatial arrangement relative to the viewpoint of the user within the three-dimensional environment; and In response to receiving the input, In response to a determination that the input satisfies one or more first criteria, updating the three-dimensional environment in accordance with the input to move individual objects of the plurality of virtual objects from a first location to a second location different from the first location, the individual objects at the second location having a second spatial orientation relative to the viewpoint of the user that is different from the first spatial orientation relative to the viewpoint of the user; maintaining one or more second objects of the plurality of virtual objects at the first location within the three-dimensional environment in the first spatial arrangement relative to the viewpoint of the user; and means for updating the three-dimensional environment to move the plurality of virtual objects within the three-dimensional environment in accordance with the input, in accordance with a determination that the input satisfies one or more second criteria, wherein after the moving, the plurality of virtual objects have a third spatial arrangement relative to the user's viewpoint that is different from the first spatial arrangement relative to the user's viewpoint.
48. 1. An electronic device comprising: one or more processors; Memory and and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising instructions for performing the method of any one of claims 26 to 43.
49. 44. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to perform the method of any one of claims 26 to 43.
50. 1. An electronic device comprising: one or more processors; Memory and and means for performing the method of any one of claims 26 to 43.
51. 1. An information processing apparatus for use in an electronic device, the information processing apparatus comprising:
44. An information processing device comprising means for carrying out the method of any one of claims 26 to 43.
52. 1. A method comprising: An electronic device in communication with a display generation component and one or more input devices, a three-dimensional environment from a user's perspective via the display generation component; displaying a three-dimensional environment including one or more first virtual objects within the three-dimensional environment at a location determined at least in part based on a first estimated floor location within the three-dimensional environment; determining a second estimated floor location corresponding to an estimated location of a physical floor within the physical environment of the electronic device, the second estimated floor location being different from the first estimated floor location, while displaying the three-dimensional environment from the viewpoint of the user based on the first estimated floor location; after determining the second estimated floor location corresponding to the estimated location of the physical floor in the physical environment of the electronic device; Following a determination that one or more criteria are met, displaying the one or more first virtual objects at an updated location within the three-dimensional environment based on the second estimated floor location; and Following a determination that the one or more criteria are not met, and maintaining the one or more first virtual objects at a location of the one or more first virtual objects within the three-dimensional environment based on the first estimated floor location.
53. 53. The method of claim 52, wherein the one or more criteria include a criterion that is satisfied when the electronic device receives, via the one or more input devices, a selection of a distinct input element that corresponds to a request to update the location of the one or more first virtual objects to satisfy one or more second criteria.
54. 54. The method of claim 52 or 53, wherein the one or more criteria include a criterion that is met when a position of a device including the display generation component on a portion of the user changes after determining the second estimated floor location.
55. 55. The method of any one of claims 52 to 54, wherein the one or more criteria include a criterion that is met when the electronic device receives a request to display a virtual environment within the three-dimensional environment after determining the second estimated floor location, and the virtual environment was not displayed in the three-dimensional environment when the second estimated floor location was determined.
56. 56. The method of any one of claims 52 to 55, wherein determining the estimated location of the physical floor is based on detecting a plane corresponding to at least a portion of the physical floor within the physical environment.
57. 57. The method of any one of claims 52 to 56, wherein determining the estimated location of the physical floor is based on information about the location of a first part of the user detected by the electronic device and an estimate of the distance between the first part of the user and a second part of the user assumed to be in contact with the physical floor.
58. 58. The method of claim 57, wherein the estimation of the distance between the first portion of the user and the second portion of the user is based on a known height of the user of the electronic device.
59. 59. The method of claim 57 or 58, wherein the estimation of the distance between the first portion of the user and the second portion of the user is based on an estimated height of the user that is based on an average height.
60. 60. The method of any one of claims 57 to 59, wherein the estimation of the distance between the first portion of the user and the second portion of the user is based on a current pose of the user of the electronic device within the physical environment of the electronic device.
61. 61. The method of any one of claims 52 to 60, wherein determining the estimated location of the physical floor pursuant to a determination that the current location of the electronic device is a known location is based on previous information regarding the physical environment of the electronic device.
62. while displaying the one or more virtual objects based on the second estimated floor location, receiving, via the one or more input devices, input corresponding to a request to display one or more second virtual objects in the three-dimensional environment, the second virtual objects being different from the one or more first virtual objects; 62. The method of any one of claims 52 to 61, further comprising: in response to receiving the input, displaying the one or more second virtual objects at one or more locations within the three-dimensional environment based on the second estimated floor location.
63. 63. The method of any one of claims 52 to 62, wherein the first estimated floor location defines a first boundary of the three-dimensional environment beyond which the one or more first virtual objects cannot be moved, and the second estimated floor location defines a second boundary of the three-dimensional environment beyond which the one or more first virtual objects cannot be moved, the second boundary being different from the first boundary.
64. 64. The method of any one of claims 52 to 63, wherein the one or more virtual objects include one or more representations of one or more users in the three-dimensional environment other than the user of the electronic device.
65. 65. The method of any one of claims 52 to 64, wherein a second electronic device is displaying the three-dimensional environment from a perspective of a second user of the second electronic device while the electronic device is displaying the one or more first virtual objects based on the second estimated floor location, and the one or more first virtual objects are displayed by the second electronic device based on an estimated location of a physical floor within the physical environment of the second electronic device.
66. receiving, while displaying the three-dimensional environment, input via the one or more input devices to perform a first action within the three-dimensional environment; In response to receiving the input, in response to a determination that the first operation requires determining the estimated location of the physical floor within the physical environment at a first level of accuracy; 66. The method of any one of claims 52 to 65, further comprising: providing instructions to collect information used to determine the estimated location of the physical floor within the physical environment.
67. In response to receiving the input, in response to determining that the first operation does not require determining the estimated location of the physical floor within the physical environment at the first level of accuracy; 67. The method of claim 66, further comprising determining the estimated location of the physical floor within the physical environment without providing the instructions for collecting information used to determine the estimated location of the physical floor within the physical environment.
68. displaying, within the three-dimensional environment, a floor at the first estimated floor location while displaying the one or more first virtual objects based on the first estimated floor location; 68. The method of any one of claims 52 to 67, further comprising: displaying, within the three-dimensional environment, a floor at the second estimated floor location while the one or more first virtual objects are based on the second estimated floor location.
69. 1. An electronic device comprising: one or more processors; Memory and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: a three-dimensional environment from a user's perspective via a display generation component; displaying a three-dimensional environment including one or more first virtual objects within the three-dimensional environment at a location determined at least in part based on a first estimated floor location within the three-dimensional environment; While displaying the three-dimensional environment from the viewpoint of the user based on the first estimated floor location, determining a second estimated floor location that corresponds to an estimated location of a physical floor within the physical environment of the electronic device, the second estimated floor location being different from the first estimated floor location; after determining the second estimated floor location corresponding to the estimated location of the physical floor in the physical environment of the electronic device; Following a determination that one or more criteria are met, displaying the one or more first virtual objects at an updated location within the three-dimensional environment based on the second estimated floor location; Following a determination that the one or more criteria are not met, and one or more programs including instructions to maintain the one or more first virtual objects at a location of the one or more first virtual objects within the three-dimensional environment based on the first estimated floor location.
70. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to: a three-dimensional environment from a user's perspective via a display generation component; displaying a three-dimensional environment including one or more first virtual objects within the three-dimensional environment at a location determined at least in part based on a first estimated floor location within the three-dimensional environment; determining a second estimated floor location corresponding to an estimated location of a physical floor within the physical environment of the electronic device, the second estimated floor location being different from the first estimated floor location, while displaying the three-dimensional environment from the viewpoint of the user based on the first estimated floor location; after determining the second estimated floor location corresponding to the estimated location of the physical floor in the physical environment of the electronic device; Following a determination that one or more criteria are met, displaying the one or more first virtual objects at an updated location within the three-dimensional environment based on the second estimated floor location; and Following a determination that the one or more criteria are not met, and maintaining the one or more first virtual objects at a location of the one or more first virtual objects within the three-dimensional environment based on the first estimated floor location.
71. 1. An electronic device comprising: one or more processors; Memory and a three-dimensional environment from a user's perspective via a display generation component; means for displaying a three-dimensional environment including one or more first virtual objects within the three-dimensional environment at a location determined at least in part based on a first estimated floor location within the three-dimensional environment; means for determining, while displaying the three-dimensional environment from the viewpoint of the user based on the first estimated floor location, a second estimated floor location that corresponds to an estimated location of a physical floor within the physical environment of the electronic device, the second estimated floor location being different from the first estimated floor location; after determining the second estimated floor location corresponding to the estimated location of the physical floor in the physical environment of the electronic device; Following a determination that one or more criteria are met, displaying the one or more first virtual objects at an updated location within the three-dimensional environment based on the second estimated floor location; Following a determination that the one or more criteria are not met, and means for maintaining the one or more first virtual objects at a location of the one or more first virtual objects within the three-dimensional environment based on the first estimated floor location.
72. 1. An information processing apparatus for use in an electronic device, the information processing apparatus comprising: a three-dimensional environment from a user's perspective via a display generation component; means for displaying a three-dimensional environment including one or more first virtual objects within the three-dimensional environment at a location determined at least in part based on a first estimated floor location within the three-dimensional environment; means for determining, while displaying the three-dimensional environment from the viewpoint of the user based on the first estimated floor location, a second estimated floor location that corresponds to an estimated location of a physical floor within the physical environment of the electronic device, the second estimated floor location being different from the first estimated floor location; after determining the second estimated floor location corresponding to the estimated location of the physical floor in the physical environment of the electronic device; Following a determination that one or more criteria are met, displaying the one or more first virtual objects at an updated location within the three-dimensional environment based on the second estimated floor location; Following a determination that the one or more criteria are not met, means for maintaining the one or more first virtual objects at a location of the one or more first virtual objects within the three-dimensional environment based on the first estimated floor location.
73. 1. An electronic device comprising: one or more processors; Memory and and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising instructions for performing the method of any one of claims 52 to 68.
74. 69. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to perform the method of any one of claims 52 to 68.
75. 1. An electronic device comprising: one or more processors; Memory and and means for performing the method of any one of claims 52 to 68.
76. 1. An information processing apparatus for use in an electronic device, the information processing apparatus comprising:
69. An information processing device comprising means for carrying out a method according to any one of claims 52 to 68.
77. 1. A method comprising: An electronic device in communication with a display generation component and one or more input devices, displaying, via the display generation component, a three-dimensional environment from a first perspective of a user including a first user interface object at a first location within the three-dimensional environment; receiving, via the one or more input devices, a first input for moving the first user interface object from the first location to a second location within the three-dimensional environment while displaying the first user interface object within the three-dimensional environment from the first viewpoint of the user; moving the first user interface object from the first location to the second location while receiving the first input; and while moving the first user interface object from the first location to the second location. visually de-emphasizing a portion of the first user interface object relative to the three-dimensional environment; and varying a displayed size of the first user interface object as a distance between the first user interface object and the first viewpoint changes while the portion of the first user interface object is visually de-emphasized relative to the three-dimensional environment.
78. Visually de-emphasizing the portion of the first user interface object relative to the three-dimensional environment includes: visually de-emphasizing the portion of the first user interface object by a first amount in accordance with a determination that the movement of the first user interface object satisfies one or more criteria; and visually de-emphasizing the portion of the first user interface object by a second amount greater than the first amount in accordance with a determination that the movement of the first user interface object satisfies one or more second criteria.
79. 79. The method of claim 77 or 78, further comprising at least partially restoring the visual de-emphasis of the portion of the first user interface object relative to the three-dimensional environment in accordance with a determination that the first user interface object has moved by less than a movement threshold for a discrete amount of time while moving the first user interface object within the three-dimensional environment.
80. While displaying the first user interface object at the first location and before receiving the first input, the first user interface object has a first size within the three-dimensional environment, and the method further comprises: While moving the first user interface object from the first location to the second location, maintaining the first user interface object at the first size within the three-dimensional environment; 80. The method of claim 77, further comprising: displaying a visual indication associated with the first user interface object having a second size within the three-dimensional environment, the second size being based on a current distance of the first user interface object from the first viewpoint of the user.
81. 81. The method of claim 80, further comprising displaying the first user interface object having the second size within the three-dimensional environment after moving the first user interface object to the second location within the three-dimensional environment.
82. 82. The method of any one of claims 77 to 81, wherein visually de-emphasizing the portion of the first user interface object relative to the three-dimensional environment comprises changing a transparency of the first user interface object.
83. 83. The method of claim 82, wherein visually de-emphasizing the portion of the first user interface object relative to the three-dimensional environment comprises changing a transparency of the portion of the first user interface object by a first amount and changing a transparency of a second portion of the first user interface object by a second amount different from the first amount.
84. 84. The method of any one of claims 77 to 83, further comprising: while moving the first user interface object from the first location to the second location, displaying, in association with the first user interface object, a virtual shadow of the first user interface object indicating a current location of the first user interface object in the three-dimensional environment.
85. While displaying the first user interface object at the first location and before receiving the first input, the first user interface object has a first size within the three-dimensional environment, and the method further comprises: maintaining the first user interface object at the first size within the three-dimensional environment while moving the first user interface object from the first location to the second location within the three-dimensional environment; 85. The method of any one of claims 77 to 84, further comprising: after moving the first user interface object to the second location within the three-dimensional environment, in accordance with a determination that one or more criteria are satisfied, displaying the first user interface object in the three-dimensional environment having a second size different from the first size, the second size being based on a distance from the first user interface object to the first viewpoint of the user.
86. While moving the first user interface object from the first location to a second location, after displaying the first user interface object having the first size within the three-dimensional environment and before displaying the first user interface object at the second location; 86. The method of claim 85, further comprising displaying the first user interface object having a third size different from the first size, the third size in the three-dimensional environment being based on a current distance of the first user interface object from the first viewpoint of the user.
87. moving the first user interface object from the first location to the second location corresponds to a first portion of the first input, the method comprising: after moving the first user interface object to the second location in accordance with the first portion of the first input and while displaying the first user interface object having the second size at the second location, receiving, via the one or more input devices, a second portion of the first input for moving the first user interface object from the second location to a third location within the three-dimensional environment; 87. The method of claim 85 or 86, further comprising: while moving the first user interface object from the second location to the third location within the three dimensional environment, updating the first user interface object from having the second size within the three dimensional environment to having a third size different from the second size, the third size within the three dimensional environment being based on a current distance of the first user interface object from the first viewpoint of the user.
88. 88. The method of any one of claims 85 to 87, wherein the one or more criteria include a criterion that is met when a threshold amount of time has elapsed after moving the first user interface object to the second location within the three-dimensional environment.
89. pursuant to determining that the first user interface object has moved from the first location to the second location within the three-dimensional environment at a first velocity, the threshold amount of time is a first amount of time; 89. The method of claim 88, wherein the threshold amount of time is a second amount of time greater than the first amount of time pursuant to a determination that the first user interface object moved from the first location to the second location within the three-dimensional environment at a second velocity that is faster than the first velocity.
90. 1. An electronic device comprising: one or more processors; Memory and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: displaying, via a display generation component, a three-dimensional environment from a first perspective of a user including a first user interface object at a first location within the three-dimensional environment; receiving, via one or more input devices, a first input for moving the first user interface object from the first location to a second location within the three-dimensional environment while displaying the first user interface object within the three-dimensional environment from the first viewpoint of the user; moving the first user interface object from the first location to the second location while receiving the first input; and while moving the first user interface object from the first location to the second location. visually de-emphasizing a portion of the first user interface object relative to the three-dimensional environment; one or more programs including instructions for changing a displayed size of the first user interface object as a distance between the first user interface object and the first viewpoint changes while the portion of the first user interface object is visually de-emphasized relative to the three-dimensional environment.
91. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to: displaying, via a display generation component, a three-dimensional environment from a first perspective of a user including a first user interface object at a first location within the three-dimensional environment; receiving, via one or more input devices, a first input for moving the first user interface object from the first location to a second location within the three-dimensional environment while displaying the first user interface object within the three-dimensional environment from the first viewpoint of the user; moving the first user interface object from the first location to the second location while receiving the first input; and while moving the first user interface object from the first location to the second location. visually de-emphasizing a portion of the first user interface object relative to the three-dimensional environment; and varying a displayed size of the first user interface object as a distance between the first user interface object and the first viewpoint changes while the portion of the first user interface object is visually de-emphasized relative to the three-dimensional environment.
92. 1. An electronic device comprising: one or more processors; Memory and means for displaying, via a display generation component, a three-dimensional environment from a first perspective of a user including a first user interface object at a first location within the three-dimensional environment; means for receiving, via one or more input devices, a first input for moving the first user interface object from the first location to a second location within the three-dimensional environment while displaying the first user interface object within the three-dimensional environment from the first viewpoint of the user; moving the first user interface object from the first location to the second location while receiving the first input; and while moving the first user interface object from the first location to the second location. visually de-emphasizing a portion of the first user interface object relative to the three-dimensional environment; means for varying a displayed size of the first user interface object as a distance between the first user interface object and the first viewpoint changes while the portion of the first user interface object is visually de-emphasized relative to the three-dimensional environment.
93. 1. An information processing apparatus for use in an electronic device, the information processing apparatus comprising: means for displaying, via a display generation component, a three-dimensional environment from a first perspective of a user including a first user interface object at a first location within the three-dimensional environment; means for receiving, via one or more input devices, a first input for moving the first user interface object from the first location to a second location within the three-dimensional environment while displaying the first user interface object within the three-dimensional environment from the first viewpoint of the user; moving the first user interface object from the first location to the second location while receiving the first input; and while moving the first user interface object from the first location to the second location. visually de-emphasizing a portion of the first user interface object relative to the three-dimensional environment; means for varying a displayed size of the first user interface object as a distance between the first user interface object and the first viewpoint changes while the portion of the first user interface object is visually de-emphasized relative to the three-dimensional environment.
94. 1. An electronic device comprising: one or more processors; Memory and and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising instructions for performing the method of any one of claims 77 to 89.
95. 90. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to perform the method of any one of claims 77 to 89.
96. 1. An electronic device comprising: one or more processors; Memory and and means for performing the method of any one of claims 77 to 89.
97. 1. An information processing apparatus for use in an electronic device, the information processing apparatus comprising:
90. An information processing device comprising means for carrying out a method according to any one of claims 77 to 89.