Methods for displaying objects relative to virtual surfaces
In some embodiments, a computer system displays a virtual surface for containing one or more virtual objects in a three-dimensional environment. In some embodiments, a computer system automatically resizes virtual surfaces that contain objects. In some embodiments, a computer system displays feedback related to removal and/or addition of objects to virtual surfaces.
1 . A method comprising:
at a computer system in communication with a display generation component and one or more input devices:
displaying a virtual content container that includes one or more three-dimensional virtual objects in a three-dimensional environment;
while displaying the virtual content container, detecting, via the one or more input devices, a first input directed to a first three-dimensional virtual object of the one or more three-dimensional virtual objects, wherein the first input corresponds to a request to move the first three-dimensional virtual object out of the virtual content container and to a respective location in the three-dimensional environment; and
in response to detecting the first input directed to the first three-dimensional virtual object:
in accordance with a determination that the respective location in the three-dimensional environment satisfies one or more criteria, including a criterion that is satisfied when the first three-dimensional virtual object at the respective location is within a threshold distance of a second three-dimensional virtual object in the three-dimensional environment, displaying a virtual surface within the three-dimensional environment concurrently with the first three-dimensional virtual object, wherein:
the virtual surface indicates a portion of the three-dimensional environment occupied by the first three-dimensional virtual object and the second three-dimensional virtual object; and
the virtual surface was not displayed within the three-dimensional environment prior to detecting the first input directed to the first three-dimensional virtual object; and
in accordance with a determination that the respective location in the three-dimensional environment does not satisfy the one or more criteria because the first three-dimensional virtual object at the respective location is further than the threshold distance of the second three-dimensional virtual object in the three-dimensional environment, displaying the first three-dimensional virtual object at the respective location without displaying the virtual surface that indicates a portion of the three-dimensional environment occupied by the first three-dimensional virtual object and the second three-dimensional virtual object within the three-dimensional environment.
2 . The method of claim 1 , wherein the one or more criteria include a criterion that is satisfied when the respective location is outside of the virtual content container.
3 . The method of claim 1 , wherein the one or more criteria include a criterion that is not satisfied when the respective location is located within the virtual content container.
4 . The method of claim 1 , wherein the one or more criteria include a criterion that is not satisfied if the respective location includes a user interface of a respective application other than an application associated with the virtual content container.
5 . The method of claim 1 , wherein an orientation of the virtual surface is automatically selected by the computer system to be within a threshold of being parallel to an orientation corresponding to a floor of a physical environment of a user of the computer system.
6 . The method of claim 1 , further comprising:
while concurrently displaying the virtual surface and the first three-dimensional virtual object, displaying, on the virtual surface, a virtual shadow of the first three-dimensional virtual object at a location on the virtual surface corresponding to a position of the first three-dimensional virtual object relative to the virtual surface.
7 . The method of claim 1 , wherein displaying the virtual surface within the three-dimensional environment in response to detecting the first input directed to the first three-dimensional virtual object includes:
displaying the virtual surface at a first level of visual prominence; and
after displaying the virtual surface at the first level of visual prominence, displaying the virtual surface at a second level of visual prominence, greater than the first level of visual prominence.
8 . The method of claim 1 , wherein the virtual content container is located at a first location within the three-dimensional environment, in response to detecting the first input directed to the first three-dimensional virtual object and in accordance with the determination that the respective location of the three-dimensional environment satisfies the one or more criteria, the virtual surface has a second location within the three-dimensional environment, wherein a spatial relationship between the virtual surface and the virtual content container is a predefined spatial relationship.
9 . The method of claim 1 , wherein before detecting the first input, the virtual content container includes the first three-dimensional virtual object and a third virtual object.
10 . The method of claim 9 , wherein the first three-dimensional virtual object is a first type of virtual object, and the third virtual object is a second type of virtual object, different from the first type of virtual object.
11 . The method of claim 1 , the method further comprising:
while concurrently displaying the virtual surface and the first three-dimensional virtual object at the respective location, detecting, via the one or more input devices, a second input directed to a third virtual object in the three-dimensional environment, wherein the second input corresponds to a request to move the third virtual object from a first location to the respective location in the three-dimensional environment; and
in response to detecting the second input directed to the third virtual object, displaying the virtual surface concurrently with the first three-dimensional virtual object and the third virtual object at the respective location.
12 . The method of claim 1 , the method further comprising:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the first three-dimensional virtual object, wherein the second input corresponds to a request to move the first three-dimensional virtual object away from the respective location; and
in response to detecting the second input directed to the first three-dimensional virtual object:
in accordance with a determination that one or more second criteria are satisfied, moving the first three-dimensional virtual object away from the respective location and ceasing display of the virtual surface in the three-dimensional environment.
13 . The method of claim 1 , wherein the virtual surface is world-locked.
14 . The method of claim 1 , the method further comprising:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the virtual content container, wherein the second input corresponds to a request to move the virtual content container away from a current location in the three-dimensional environment; and
in response to detecting the second input directed to the virtual content container:
moving the virtual content container away from the current location in the three-dimensional environment in accordance with the second input; and
moving the virtual surface and the first three-dimensional virtual object away from the respective location in accordance with the second input.
15 . The method of claim 1 , the method further comprising:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the virtual content container, wherein the second input corresponds to a request to move the virtual content container away from a current location in the three-dimensional environment; and
in response to detecting the second input directed to the virtual content container, moving the virtual content container away from the current location in the three-dimensional environment in accordance with the second input while maintaining the virtual surface and the first three-dimensional virtual object at the respective location.
16 . The method of claim 1 , the method further comprising:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the virtual content container, wherein the second input corresponds to a request to cease display of the virtual content container; and
in response to detecting the second input directed to the virtual content container, ceasing display of the virtual content container and ceasing display of the virtual surface in the three-dimensional environment.
17 . The method of claim 16 , the method further comprising:
after detecting the second input and while the virtual content container and the virtual surface are not displayed in the three-dimensional environment, detecting, via the one or more input devices, a third input corresponding to a request to display the virtual content container in the three-dimensional environment; and
in response to detecting the third input, displaying the virtual content container and the virtual surface in the three-dimensional environment.
18 . The method of claim 1 , wherein the virtual surface is displayed concurrently with a selectable option that is selectable to cease display of the virtual surface in the three-dimensional environment, the method further comprising:
while displaying the virtual surface and the selectable option in the three-dimensional environment, detecting, via the one or more input devices, a second input corresponding to selection of the selectable option; and
in response to detecting the second input, ceasing display of the virtual surface in the three-dimensional environment.
19 . The method of claim 18 , wherein when the second input is detected, the first three-dimensional virtual object is displayed concurrently with the virtual surface at the respective location in the three-dimensional environment, the method further comprising:
in response to detecting the second input, moving the first three-dimensional virtual object away from the respective location and to the virtual content container.
20 . The method of claim 1 , wherein the first three-dimensional virtual object is a first type of virtual object, and the virtual content container includes a third virtual object that is a second type of virtual object, different from the first type of virtual object, the method further comprising:
while displaying the virtual content container that includes the third virtual object in the three-dimensional environment, detecting, via the one or more input devices, a second input directed to the third virtual object, wherein the second input corresponds to a request to move the third virtual object out of the virtual content container and to a second respective location in the three-dimensional environment; and
in response to detecting the second input:
in accordance with a determination that the second respective location in the three-dimensional environment satisfies one or more criteria, displaying the third virtual object at the second respective location without displaying a virtual surface within the three-dimensional environment.
21 . The method of claim 1 , the method further comprising:
displaying a plurality of virtual objects concurrently with the virtual surface; while displaying the plurality of virtual objects concurrently with the virtual surface:
in accordance with a determination that an orientation of the virtual surface is a first orientation relative to the three-dimensional environment, orientations of the plurality of virtual objects relative to the three-dimensional environment are a first set of orientations based on the first orientation; and
in accordance with a determination that the orientation of the virtual surface is a second orientation, different from the first orientation, relative to the three-dimensional environment, the orientations of the plurality of virtual objects relative to the three-dimensional environment are a second set of orientations, different from the first set of orientations, based on the second orientation.
22 . The method of claim 21 , wherein:
displaying the virtual surface within the three-dimensional environment in response to detecting the first input directed to the first three-dimensional virtual object includes:
in accordance with a determination that an orientation of the first three-dimensional virtual object at the respective location in response to the first input being detected is a first respective orientation relative to the three-dimensional environment, displaying the virtual surface with a second respective orientation relative to the three-dimensional environment that is based on the first respective orientation; and
in accordance with a determination that the orientation of the first three-dimensional virtual object at the respective location in response to the first input being detected is a third respective orientation, different from the first respective orientation, relative to the three-dimensional environment, displaying the virtual surface with a fourth respective orientation, different from the second respective orientation, relative to the three-dimensional environment that is based on the third respective orientation.
23 . The method of claim 1 , further comprising:
while displaying the virtual surface in the three-dimensional environment, wherein a first portion of the virtual surface has a first orientation relative to a viewpoint of a user of the computer system and a first spatial arrangement relative to the three-dimensional environment, detecting, via the one or more input devices, a second input corresponding to a request to modify a spatial arrangement of the virtual surface relative to the three-dimensional environment from the first spatial arrangement to a second spatial arrangement, different from the first spatial arrangement; and
in response to detecting the second input, moving the virtual surface in the three-dimensional environment to have the second spatial arrangement relative to the three-dimensional environment while maintaining the first portion of the virtual surface having the first orientation relative to the viewpoint of the user.
24 . The method of claim 23 , wherein moving the virtual surface in the three-dimensional environment to have the second spatial arrangement relative to the three-dimensional environment includes maintaining a relative orientation of a second portion of the virtual surface relative to a frame of reference, other than the viewpoint of the user, in the three-dimensional environment.
25 . The method of claim 1 , further comprising while detecting the first input, displaying, in the virtual content container, a representation of the first three-dimensional virtual object.
26 . The method of claim 1 , further comprising:
in response to detecting an end of the first input and in accordance with the determination that the respective location in the three-dimensional environment satisfies the one or more criteria, displaying the first three-dimensional virtual object as being included in the virtual surface.
27 . A computer system that is in communication with a display generation component and one or more input devices, the computer system comprising:
one or more processors;
memory; and
one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:
displaying a virtual content container that includes one or more three-dimensional virtual objects in a three-dimensional environment;
while displaying the virtual content container, detecting, via the one or more input devices, a first input directed to a first three-dimensional virtual object of the one or more three-dimensional virtual objects, wherein the first input corresponds to a request to move the first three-dimensional virtual object out of the virtual content container and to a respective location in the three-dimensional environment; and
in response to detecting the first input directed to the first three-dimensional virtual object:
in accordance with a determination that the respective location in the three-dimensional environment satisfies one or more criteria, including a criterion that is satisfied when the first three-dimensional virtual object at the respective location is within a threshold distance of a second three-dimensional virtual object in the three-dimensional environment, displaying a virtual surface within the three-dimensional environment concurrently with the first three-dimensional virtual object, wherein:
the virtual surface indicates a portion of the three-dimensional environment occupied by the first three-dimensional virtual object and the second three-dimensional virtual object; and
the virtual surface was not displayed within the three-dimensional environment prior to detecting the first input directed to the first three-dimensional virtual object; and
in accordance with a determination that the respective location in the three-dimensional environment does not satisfy the one or more criteria because the first three-dimensional virtual object at the respective location is further than the threshold distance of the second three-dimensional virtual object in the three-dimensional environment, displaying the first three-dimensional virtual object at the respective location without displaying the virtual surface that indicates a portion of the three-dimensional environment occupied by the first three-dimensional virtual object and the second three-dimensional virtual object within the three-dimensional environment.
28 . A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by one or more processors of a computer system that is in communication with a display generation component and one or more input devices, cause the computer system to perform a method comprising:
displaying a virtual content container that includes one or more three-dimensional virtual objects in a three-dimensional environment;
while displaying the virtual content container, detecting, via the one or more input devices, a first input directed to a first three-dimensional virtual object of the one or more three-dimensional virtual objects, wherein the first input corresponds to a request to move the first three-dimensional virtual object out of the virtual content container and to a respective location in the three-dimensional environment; and
in response to detecting the first input directed to the first three-dimensional virtual object:
in accordance with a determination that the respective location in the three-dimensional environment satisfies one or more criteria, including a criterion that is satisfied when the first three-dimensional virtual object at the respective location is within a threshold distance of a second three-dimensional virtual object in the three-dimensional environment, displaying a virtual surface within the three-dimensional environment concurrently with the first three-dimensional virtual object, wherein:
the virtual surface indicates a portion of the three-dimensional environment occupied by the first three-dimensional virtual object and the second three-dimensional virtual object; and
the virtual surface was not displayed within the three-dimensional environment prior to detecting the first input directed to the first three-dimensional virtual object; and
in accordance with a determination that the respective location in the three-dimensional environment does not satisfy the one or more criteria because the first three-dimensional virtual object at the respective location is further than the threshold distance of the second three-dimensional virtual object in the three-dimensional environment, displaying the first three-dimensional virtual object at the respective location without displaying the virtual surface that indicates a portion of the three-dimensional environment occupied by the first three-dimensional virtual object and the second three-dimensional virtual object within the three-dimensional environment.
29 . The computer system of claim 27 , wherein the virtual content container is located at a first location within the three-dimensional environment, in response to detecting the first input directed to the first three-dimensional virtual object and in accordance with the determination that the respective location of the three-dimensional environment satisfies the one or more criteria, the virtual surface has a second location within the three-dimensional environment, wherein a spatial relationship between the virtual surface and the virtual content container is a predefined spatial relationship.
30 . The computer system of claim 27 , the one or more programs further including instructions for:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the first three-dimensional virtual object, wherein the second input corresponds to a request to move the first three-dimensional virtual object away from the respective location; and
in response to detecting the second input directed to the first three-dimensional virtual object:
in accordance with a determination that one or more second criteria are satisfied, moving the first three-dimensional virtual object away from the respective location and ceasing display of the virtual surface in the three-dimensional environment.
31 . The computer system of claim 27 , the one or more programs further including instructions for:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the virtual content container, wherein the second input corresponds to a request to move the virtual content container away from a current location in the three-dimensional environment; and
in response to detecting the second input directed to the virtual content container:
moving the virtual content container away from the current location in the three-dimensional environment in accordance with the second input; and
moving the virtual surface and the first three-dimensional virtual object away from the respective location in accordance with the second input.
32 . The computer system of claim 27 , the one or more programs further including instructions for:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the virtual content container, wherein the second input corresponds to a request to move the virtual content container away from a current location in the three-dimensional environment; and
in response to detecting the second input directed to the virtual content container, moving the virtual content container away from the current location in the three-dimensional environment in accordance with the second input while maintaining the virtual surface and the first three-dimensional virtual object at the respective location.
33 . The computer system of claim 27 , wherein the first three-dimensional virtual object is a first type of virtual object, and the virtual content container includes a third virtual object that is a second type of virtual object, different from the first type of virtual object, the one or more programs further including instructions for:
while displaying the virtual content container that includes the third virtual object in the three-dimensional environment, detecting, via the one or more input devices, a second input directed to the third virtual object, wherein the second input corresponds to a request to move the third virtual object out of the virtual content container and to a second respective location in the three-dimensional environment; and
in response to detecting the second input:
in accordance with a determination that the second respective location in the three-dimensional environment satisfies one or more criteria, displaying the third virtual object at the second respective location without displaying a virtual surface within the three-dimensional environment.
34 . The computer system of claim 27 , the one or more programs further including instructions for:
displaying a plurality of virtual objects concurrently with the virtual surface;
while displaying the plurality of virtual objects concurrently with the virtual surface:
in accordance with a determination that an orientation of the virtual surface is a first orientation relative to the three-dimensional environment, orientations of the plurality of virtual objects relative to the three-dimensional environment are a first set of orientations based on the first orientation; and
in accordance with a determination that the orientation of the virtual surface is a second orientation, different from the first orientation, relative to the three-dimensional environment, the orientations of the plurality of virtual objects relative to the three-dimensional environment are a second set of orientations, different from the first set of orientations, based on the second orientation.
35 . The computer system of claim 27 , wherein:
displaying the virtual surface within the three-dimensional environment in response to detecting the first input directed to the first three-dimensional virtual object includes:
in accordance with a determination that an orientation of the first three- dimensional virtual object at the respective location in response to the first input being detected is a first respective orientation relative to the three-dimensional environment, displaying the virtual surface with a second respective orientation relative to the three-dimensional environment that is based on the first respective orientation; and
in accordance with a determination that the orientation of the first three-dimensional virtual object at the respective location in response to the first input being detected is a third respective orientation, different from the first respective orientation, relative to the three-dimensional environment, displaying the virtual surface with a fourth respective orientation, different from the second respective orientation, relative to the three-dimensional environment that is based on the third respective orientation.
36 . The computer system of claim 27 , the one or more programs further including instructions for:
in response to detecting an end of the first input and in accordance with the determination that the respective location in the three-dimensional environment satisfies the one or more criteria, displaying the first three-dimensional virtual object as being included in the virtual surface.
37 . The non-transitory computer readable storage medium of claim 28 , wherein the virtual content container is located at a first location within the three-dimensional environment, in response to detecting the first input directed to the first three-dimensional virtual object and in accordance with the determination that the respective location of the three-dimensional environment satisfies the one or more criteria, the virtual surface has a second location within the three-dimensional environment, wherein a spatial relationship between the virtual surface and the virtual content container is a predefined spatial relationship.
38 . The non-transitory computer readable storage medium of claim 28 , the method further comprising:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the first three-dimensional virtual object, wherein the second input corresponds to a request to move the first three-dimensional virtual object away from the respective location; and
in response to detecting the second input directed to the first three-dimensional virtual object:
in accordance with a determination that one or more second criteria are satisfied, moving the first three-dimensional virtual object away from the respective location and ceasing display of the virtual surface in the three-dimensional environment.
39 . The non-transitory computer readable storage medium of claim 28 , the method further comprising:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the virtual content container, wherein the second input corresponds to a request to move the virtual content container away from a current location in the three-dimensional environment; and
in response to detecting the second input directed to the virtual content container:
moving the virtual content container away from the current location in the three-dimensional environment in accordance with the second input; and
moving the virtual surface and the first three-dimensional virtual object away from the respective location in accordance with the second input.
40 . The non-transitory computer readable storage medium of claim 28 , the method further comprising:
while concurrently displaying the first three-dimensional virtual object and the virtual surface at the respective location, detecting, via the one or more input devices, a second input directed to the virtual content container, wherein the second input corresponds to a request to move the virtual content container away from a current location in the three-dimensional environment; and
in response to detecting the second input directed to the virtual content container, moving the virtual content container away from the current location in the three-dimensional environment in accordance with the second input while maintaining the virtual surface and the first three-dimensional virtual object at the respective location.
41 . The non-transitory computer readable storage medium of claim 28 , wherein the first three-dimensional virtual object is a first type of virtual object, and the virtual content container includes a third virtual object that is a second type of virtual object, different from the first type of virtual object, the method further comprising:
while displaying the virtual content container that includes the third virtual object in the three-dimensional environment, detecting, via the one or more input devices, a second input directed to the third virtual object, wherein the second input corresponds to a request to move the third virtual object out of the virtual content container and to a second respective location in the three-dimensional environment; and
in response to detecting the second input:
in accordance with a determination that the second respective location in the three-dimensional environment satisfies one or more criteria, displaying the third virtual object at the second respective location without displaying a virtual surface within the three-dimensional environment.
42 . The non-transitory computer readable storage medium of claim 28 , the method further comprising:
displaying a plurality of virtual objects concurrently with the virtual surface;
while displaying the plurality of virtual objects concurrently with the virtual surface:
in accordance with a determination that an orientation of the virtual surface is a first orientation relative to the three-dimensional environment, orientations of the plurality of virtual objects relative to the three-dimensional environment are a first set of orientations based on the first orientation; and
in accordance with a determination that the orientation of the virtual surface is a second orientation, different from the first orientation, relative to the three-dimensional environment, the orientations of the plurality of virtual objects relative to the three-dimensional environment are a second set of orientations, different from the first set of orientations, based on the second orientation.
43 . The non-transitory computer readable storage medium of claim 28 , wherein:
displaying the virtual surface within the three-dimensional environment in response to detecting the first input directed to the first three-dimensional virtual object includes:
in accordance with a determination that an orientation of the first three- dimensional virtual object at the respective location in response to the first input being detected is a first respective orientation relative to the three-dimensional environment, displaying the virtual surface with a second respective orientation relative to the three-dimensional environment that is based on the first respective orientation; and
in accordance with a determination that the orientation of the first three-dimensional virtual object at the respective location in response to the first input being detected is a third respective orientation, different from the first respective orientation, relative to the three-dimensional environment, displaying the virtual surface with a fourth respective orientation, different from the second respective orientation, relative to the three-dimensional environment that is based on the third respective orientation.
44 . The non-transitory computer readable storage medium of claim 28 , the method further comprising:
in response to detecting an end of the first input and in accordance with the determination that the respective location in the three-dimensional environment satisfies the one or more criteria, displaying the first three-dimensional virtual object as being included in the virtual surface.