Providing indications of interactive user interfaces
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-29
- Publication Date
- 2026-04-02
AI Technical Summary
Existing interactive software systems lack effective methods for dynamically managing the display and interaction of software objects in response to user inputs and environmental conditions, leading to inefficient user interface transitions and inconsistent user experiences.
A method and system that utilizes input devices and display components to manage the display of software objects based on predefined criteria, user inputs, and environmental states, enabling dynamic transitions between user interfaces and modes.
Enhances user interface responsiveness and consistency by allowing seamless transitions and adaptive display management based on user interactions and environmental conditions.
Smart Images

Figure US2025048554_02042026_PF_FP_ABST
Abstract
Description
PROVIDING INDICATIONS OF INTERACTIVE USER INTERFACESCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present international application claims benefit of U.S. Provisional Patent Application Serial No. 63 / 889,077, entitled "DIRECTIONAL INPUTS" filed September 26, 2025, of U.S. Provisional Patent Application Serial No. 63 / 700,488, entitled "PROVIDING INDICATIONS OF INTERACTIVE USERINTERFACES" filed September 27, 2024, and U.S. Provisional Patent Application Serial No. 63 / 700,463, entitled "DIRECTIONAL INPUTS" filed September 27, 2024, which are hereby incorporated by reference in their entireties for all purposes .BACKGROUND
[0002] Electronic devices output responses from interactive software objects, where such responses may correspond to different software objects, and respond to various user inputs, supporting diverse input types.SUMMARY
[0003] Executable instructions for performing techniques below are, optionally, included in a non-transitory computer- readable storage medium or other computer program product configured for execution by one or more processors. Executable instructions for performing such techniques are, optionally, included in a transitory computer-readable storage medium or other computer program product configured for execution by one or more processors.
[0004] In some embodiments, a method that is performed at a computer system that is in communication with one or more input devices, a display component, and a movement component is described. In some embodiments, the method comprises: whiledisplaying, via the display component, a representation of a first software object, receiving an indication that a representation of a second software object is to be displayed, wherein the second software object is different from the first software object; and in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
[0005] In some embodiments, a non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices, a display component, and a movement component is described. In some embodiments, the one or more programs includes instructions for: while displaying, via the display component, a representation of a first software object, receiving an indication that a representation of a second software object is to be displayed, wherein the second software object is different from the first software object; and in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
[0006] In some embodiments, a transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices, a display component, and a movement component is described. In some embodiments, the one or more programs includes instructions for: while displaying, via the display component, a representation of a first software object, receiving anindication that a representation of a second software object is to be displayed, wherein the second software object is different from the first software object; and in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
[0007] In some embodiments, a computer system configured to communicate with one or more input devices, a display component, and a movement component is described. In some embodiments, the computer system comprises one or more processors and memory storing one or more programs configured to be executed by the one or more processors. In some embodiments, the one or more programs includes instructions for: while displaying, via the display component, a representation of a first software object, receiving an indication that a representation of a second software object is to be displayed, wherein the second software object is different from the first software object; and in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
[0008] In some embodiments, a computer system configured to communicate with one or more input devices, a display component, and a movement component is described. In some embodiments, the computer system comprises means for performing each of the following steps: while displaying, via the display component, a representation of a first software object, receiving an indication that a representation of a second software object is to be displayed, wherein the secondsoftware object is different from the first software object; and in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
[0009] In some embodiments, a computer program product is described. In some embodiments, the computer program product comprises one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices, a display component, and a movement component. In some embodiments, the one or more programs include instructions for: while displaying, via the display component, a representation of a first software object, receiving an indication that a representation of a second software object is to be displayed, wherein the second software object is different from the first software object; and in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
[0010] In some embodiments, a method that is performed at a computer system that is in communication with one or more input devices and a display component is described. In some embodiments, the method comprises: detecting, via the one or more input devices, a request; in response to receiving the request, displaying, via the display component, a representation of a first software object that corresponds to a respective application; and while displaying, via the display generation component, the representation of the first software object that corresponds to the respective application: in accordance with a determination that a firstset of one or more criteria is satis fied, the first set of one or more criteria including a criterion that is satis fied when the first software obj ect corresponds to a first application, displaying, via the display component , an identi fier corresponding to the first software obj ect ; and in accordance with a determination that a second set of one or more criteria is satis fied, wherein the second set of one or more criteria includes a criterion that is satis fied when the first software obj ect corresponds to a second application di f ferent from the first application, forgoing displaying, via the display component , the identi fier corresponding to the first software ob j ect .
[0011] In some embodiments , a non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component is described . In some embodiments , the one or more programs includes instructions for : detecting, via the one or more input devices , a request ; in response to receiving the request , displaying, via the display component , a representation of a first software obj ect that corresponds to a respective application; and while displaying, via the display generation component , the representation of the first software obj ect that corresponds to the respective application : in accordance with a determination that a first set of one or more criteria is satis fied, the first set of one or more criteria including a criterion that is satis fied when the first software obj ect corresponds to a first application, displaying, via the display component , an identi fier corresponding to the first software obj ect ; and in accordance with a determination that a second set of one or more criteria is satis fied, wherein the second set of one or more criteria includes a criterion that is satis fied when the first softwareobj ect corresponds to a second application di f ferent from the first application, forgoing displaying, via the display component , the identi fier corresponding to the first software ob ect .
[0012] In some embodiments , a transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component is described . In some embodiments , the one or more programs includes instructions for : detecting, via the one or more input devices , a request ; in response to receiving the request , displaying, via the display component , a representation of a first software obj ect that corresponds to a respective application; and while displaying, via the display generation component , the representation of the first software obj ect that corresponds to the respective application : in accordance with a determination that a first set of one or more criteria is satis fied, the first set of one or more criteria including a criterion that is satis fied when the first software obj ect corresponds to a first application, displaying, via the display component , an identi fier corresponding to the first software obj ect ; and in accordance with a determination that a second set of one or more criteria is satis fied, wherein the second set of one or more criteria includes a criterion that is satis fied when the first software obj ect corresponds to a second application di f ferent from the first application, forgoing displaying, via the display component , the identi fier corresponding to the first software ob j ect .
[0013] In some embodiments , a computer system configured to communicate with one or more input devices and a display component is described . In some embodiments , the computer system comprises one or more processors and memory storing oneor more programs configured to be executed by the one or more processors . In some embodiments , the one or more programs includes instructions for : detecting, via the one or more input devices , a request ; in response to receiving the request , displaying, via the display component , a representation of a first software obj ect that corresponds to a respective application; and while displaying, via the display generation component , the representation of the first software obj ect that corresponds to the respective application : in accordance with a determination that a first set of one or more criteria is satis fied, the first set of one or more criteria including a criterion that is satis fied when the first software obj ect corresponds to a first application, displaying, via the display component , an identi fier corresponding to the first software obj ect ; and in accordance with a determination that a second set of one or more criteria is satis fied, wherein the second set of one or more criteria includes a criterion that is satis fied when the first software obj ect corresponds to a second application di f ferent from the first application, forgoing displaying, via the display component , the identi fier corresponding to the first software ob j ect .
[0014] In some embodiments , a computer system configured to communicate with one or more input devices and a display component is described . In some embodiments , the computer system comprises means for performing each of the following steps : detecting, via the one or more input devices , a request ; in response to receiving the request , displaying, via the display component , a representation of a first software obj ect that corresponds to a respective application; and while displaying, via the display generation component , the representation of the first software obj ect that corresponds to the respective application : in accordance with adetermination that a first set of one or more criteria is satis fied, the first set of one or more criteria including a criterion that is satis fied when the first software obj ect corresponds to a first application, displaying, via the display component , an identi fier corresponding to the first software obj ect ; and in accordance with a determination that a second set of one or more criteria is satis fied, wherein the second set of one or more criteria includes a criterion that is satis fied when the first software obj ect corresponds to a second application di f ferent from the first application, forgoing displaying, via the display component , the identi fier corresponding to the first software obj ect .
[0015] In some embodiments , a computer program product is described . In some embodiments , the computer program product comprises one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component . In some embodiments , the one or more programs include instructions for : detecting, via the one or more input devices , a request ; in response to receiving the request , displaying, via the display component , a representation of a first software obj ect that corresponds to a respective application; and while displaying, via the display generation component , the representation of the first software obj ect that corresponds to the respective application : in accordance with a determination that a first set of one or more criteria is satis fied, the first set of one or more criteria including a criterion that is satis fied when the first software obj ect corresponds to a first application, displaying, via the display component , an identi fier corresponding to the first software obj ect ; and in accordance with a determination that a second set of one or more criteria is satis fied, wherein the second set of one or more criteria includes a criterion thatis satis fied when the first software obj ect corresponds to a second application di f ferent from the first application, forgoing displaying, via the display component , the identi fier corresponding to the first software obj ect .
[0016] In some embodiments , a method that is performed at a computer system that is in communication with one or more input devices and a display component is described . In some embodiments , the method comprises : while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; and in response to receiving the input : in accordance with a determination that the request corresponds to a second application di f ferent from the first application, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : continuing displaying, via the display component , the representation of the first software obj ect ; and forgoing displaying, via the display component , the representation of the second software obj ect that corresponds to the second application .
[0017] In some embodiments , a non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component is described . In some embodiments , the one or more programs includes instructions for : while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; and in response to receiving the input : in accordance with a determination that the request corresponds to a second application di f ferent fromthe first application, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : continuing displaying, via the display component , the representation of the first software obj ect ; and forgoing displaying, via the display component , the representation of the second software obj ect that corresponds to the second application .
[0018] In some embodiments , a transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component is described . In some embodiments , the one or more programs includes instructions for : while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; and in response to receiving the input : in accordance with a determination that the request corresponds to a second application di f ferent from the first application, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : continuing displaying, via the display component , the representation of the first software obj ect ; and forgoing displaying, via the display component , the representation of the second software obj ect that corresponds to the second application .
[0019] In some embodiments , a computer system configured to communicate with one or more input devices and a display component is described . In some embodiments , the computer system comprises one or more processors and memory storing oneor more programs configured to be executed by the one or more processors . In some embodiments , the one or more programs includes instructions for : while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; and in response to receiving the input : in accordance with a determination that the request corresponds to a second application di f ferent from the first application, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : continuing displaying, via the display component , the representation of the first software obj ect ; and forgoing displaying, via the display component , the representation of the second software obj ect that corresponds to the second application .
[0020] In some embodiments , a computer system configured to communicate with one or more input devices and a display component is described . In some embodiments , the computer system comprises means for performing each of the following steps : while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; and in response to receiving the input : in accordance with a determination that the request corresponds to a second application di f ferent from the first application, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : continuing displaying, via the display component , the representation of the first software obj ect ; and forgoing displaying, via the displaycomponent , the representation of the second software obj ect that corresponds to the second application .
[0021] In some embodiments , a computer program product is described . In some embodiments , the computer program product comprises one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component . In some embodiments , the one or more programs include instructions for : while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; and in response to receiving the input : in accordance with a determination that the request corresponds to a second application di f ferent from the first application, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : continuing displaying, via the display component , the representation of the first software obj ect ; and forgoing displaying, via the display component , the representation of the second software obj ect that corresponds to the second application .
[0022] In some embodiments , a method that is performed at a computer system that is in communication with one or more display components and one or more input devices is described . In some embodiments , the method comprises : while displaying, via the one or more display components , a representation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input : in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect andproceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and in accordance with a determination that the input starts at the location corresponding to the representation of the software obj ect and proceeds in a second direction di f ferent from the first direction, maintaining the computer system in the first mode .
[0023] In some embodiments , a non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices is described . In some embodiments , the one or more programs includes instructions for : while displaying, via the one or more display components , a representation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input : in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect and proceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and in accordance with a determination that the input starts at the location corresponding to the representation of the software obj ect and proceeds in a second direction di f ferent from the first direction, maintaining the computer system in the first mode .
[0024] In some embodiments , a transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices is described . In some embodiments , the one or more programs includes instructions for : while displaying, via the one or more display components , arepresentation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input : in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect and proceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and in accordance with a determination that the input starts at the location corresponding to the representation of the software obj ect and proceeds in a second direction di f ferent from the first direction, maintaining the computer system in the first mode .
[0025] In some embodiments , a computer system configured to communicate with one or more display components and one or more input devices is described . In some embodiments , the computer system comprises one or more processors and memory storing one or more programs configured to be executed by the one or more processors . In some embodiments , the one or more programs includes instructions for : while displaying, via the one or more display components , a representation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input : in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect and proceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and in accordance with a determination that the input starts at the location corresponding to the representation of the software obj ect and proceeds in a second direction di f ferent from the first direction, maintaining the computer system in the first mode .
[0026] In some embodiments , a computer system configured to communicate with one or more display components and one or more input devices is described . In some embodiments , the computer system comprises means for performing each of the following steps : while displaying, via the one or more display components , a representation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input : in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect and proceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and in accordance with a determination that the input starts at the location corresponding to the representation of the software obj ect and proceeds in a second direction di f ferent from the first direction, maintaining the computer system in the first mode .
[0027] In some embodiments , a computer program product is described . In some embodiments , the computer program product comprises one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices . In some embodiments , the one or more programs include instructions for : while displaying, via the one or more display components , a representation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input : in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect and proceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and in accordance with a determination that the input startsat the location corresponding to the representation of the software object and proceeds in a second direction different from the first direction, maintaining the computer system in the first mode.
[0028] In some embodiments, a method that is performed at a computer system that is in communication with one or more display components and one or more input devices is described. In some embodiments, the method comprises: while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; and in response to detecting the input directed at the representation of the system software object: in accordance with a determination that the input is a first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a second user interface different from the first user interface; and in accordance with a determination that the input is a second type of input different from the first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
[0029] In some embodiments, a non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices is described. In some embodiments, the one or more programs includes instructions for: while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; and in response to detecting the input directed at therepresentation of the system software object: in accordance with a determination that the input is a first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a second user interface different from the first user interface; and in accordance with a determination that the input is a second type of input different from the first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
[0030] In some embodiments, a transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices is described. In some embodiments, the one or more programs includes instructions for: while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; and in response to detecting the input directed at the representation of the system software object: in accordance with a determination that the input is a first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a second user interface different from the first user interface; and in accordance with a determination that the input is a second type of input different from the first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
[0031] In some embodiments, a computer system configured to communicate with one or more display components and one or more input devices is described. In some embodiments, the computer system comprises one or more processors and memory storing one or more programs configured to be executed by the one or more processors. In some embodiments, the one or more programs includes instructions for: while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; and in response to detecting the input directed at the representation of the system software object: in accordance with a determination that the input is a first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a second user interface different from the first user interface; and in accordance with a determination that the input is a second type of input different from the first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
[0032] In some embodiments, a computer system configured to communicate with one or more display components and one or more input devices is described. In some embodiments, the computer system comprises means for performing each of the following steps: while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; and in response to detecting the input directed at the representation of the system software object: in accordance with a determination that the input is a first type of input: ceasing display of the representation of thesystem software object; and displaying, via the one or more display components, a second user interface different from the first user interface; and in accordance with a determination that the input is a second type of input different from the first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
[0033] In some embodiments, a computer program product is described. In some embodiments, the computer program product comprises one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices. In some embodiments, the one or more programs include instructions for: while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; and in response to detecting the input directed at the representation of the system software object: in accordance with a determination that the input is a first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a second user interface different from the first user interface; and in accordance with a determination that the input is a second type of input different from the first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
[0034] In some embodiments, a method that is performed at a computer system that is in communication with one or more input devices and one or more display components is described.In some embodiments , the method comprises : detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : in accordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and in accordance with a determination that the state of the environment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .
[0035] In some embodiments , a non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components is described . In some embodiments , the one or more programs includes instructions for : detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : in accordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and in accordance with a determination that the state of the environment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .
[0036] In some embodiments , a transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components is described . In some embodiments , the one or more programs includes instructions for : detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : inaccordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and in accordance with a determination that the state of the environment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .
[0037] In some embodiments , a computer system configured to communicate with one or more input devices and one or more display components is described . In some embodiments , the computer system comprises one or more processors and memory storing one or more programs configured to be executed by the one or more processors . In some embodiments , the one or more programs includes instructions for : detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : in accordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and in accordance with a determination that the state of the environment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .
[0038] In some embodiments , a computer system configured to communicate with one or more input devices and one or more display components is described . In some embodiments , the computer system comprises means for performing each of the following steps : detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : in accordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and in accordance with a determination that the state of theenvironment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .
[0039] In some embodiments , a computer program product is described . In some embodiments , the computer program product comprises one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components . In some embodiments , the one or more programs include instructions for : detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : in accordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and in accordance with a determination that the state of the environment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .
[0040] In some embodiments , a method that is performed at a computer system that is in communication with one or more input devices and one or more display components is described . In some embodiments , the method comprises : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of one or more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, directing the computer system at the second point such that the representation of the softwareobj ect is directed towards the second point , wherein the second point is di f ferent from the first point .
[0041] In some embodiments , a non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components is described . In some embodiments , the one or more programs includes instructions for : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of one or more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, directing the computer system at the second point such that the representation of the software obj ect is directed towards the second point , wherein the second point is di f ferent from the first point .
[0042] In some embodiments , a transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components is described . In some embodiments , the one or more programs includes instructions for : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of oneor more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, directing the computer system at the second point such that the representation of the software obj ect is directed towards the second point , wherein the second point is di f ferent from the first point .
[0043] In some embodiments , a computer system configured to communicate with one or more input devices and one or more display components is described . In some embodiments , the computer system comprises one or more processors and memory storing one or more programs configured to be executed by the one or more processors . In some embodiments , the one or more programs includes instructions for : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of one or more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, directing the computer system at the second point such that the representation of the software obj ect is directed towards the second point , wherein the second point is di f ferent from the first point .
[0044] In some embodiments , a computer system configured to communicate with one or more input devices and one or more display components is described . In some embodiments , thecomputer system comprises means for performing each of the following steps : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of one or more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, directing the computer system at the second point such that the representation of the software obj ect is directed towards the second point , wherein the second point is di f ferent from the first point .
[0045] In some embodiments , a computer program product is described . In some embodiments , the computer program product comprises one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components . In some embodiments , the one or more programs include instructions for : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of one or more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set ofone or more criteria, directing the computer system at the second point such that the representation of the software object is directed towards the second point, wherein the second point is different from the first point.
[0046] In some embodiments, a method that is performed at a computer system that is in communication with one or more input devices and one or more display components is described. In some embodiments, the method comprises: while displaying, via the one or more display components, (1) a representation of a software object in a first manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the subject: in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; and displaying, via the one or more output devices, the representation of the software object in a second manner different from the first manner; and in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner.
[0047] In some embodiments, a non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components is described. In some embodiments, the one or more programs includes instructions for: while displaying, via the one or more display components, (1) a representation of a software object in a first manner and (2) content, detecting, via the one or more input devices,attention of a subject; and in response to detecting the attention of the subject: in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; and displaying, via the one or more output devices, the representation of the software object in a second manner different from the first manner; and in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner .
[0048] In some embodiments, a transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components is described. In some embodiments, the one or more programs includes instructions for: while displaying, via the one or more display components, (1) a representation of a software object in a first manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the subject: in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; and displaying, via the one or more output devices, the representation of the software object in a second manner different from the first manner; and in accordance with a determination that theattention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner .
[0049] In some embodiments, a computer system configured to communicate with one or more input devices and one or more display components is described. In some embodiments, the computer system comprises one or more processors and memory storing one or more programs configured to be executed by the one or more processors. In some embodiments, the one or more programs includes instructions for: while displaying, via the one or more display components, (1) a representation of a software object in a first manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the subject: in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; and displaying, via the one or more output devices, the representation of the software object in a second manner different from the first manner; and in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner.
[0050] In some embodiments, a computer system configured to communicate with one or more input devices and one or more display components is described. In some embodiments, the computer system comprises means for performing each of the following steps: while displaying, via the one or more display components, (1) a representation of a software object in afirst manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the subject: in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; and displaying, via the one or more output devices, the representation of the software object in a second manner different from the first manner; and in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner.
[0051] In some embodiments, a computer program product is described. In some embodiments, the computer program product comprises one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components. In some embodiments, the one or more programs include instructions for: while displaying, via the one or more display components, (1) a representation of a software object in a first manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the subject: in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; and displaying, via the one or more output devices, the representation of the software object in a second mannerdifferent from the first manner; and in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner.DESCRIPTION OF THE FIGURES
[0052] For a better understanding of the various described embodiments, reference should be made to the Detailed Description below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
[0053] FIG. 1A is a block diagram illustrating a computer system in accordance with some embodiments.
[0054] FIGS. 1B-1G illustrate the use of Application Programming Interfaces (APIs) to perform operations in accordance with some embodiments.
[0055] FIGS. 2A-2C are diagrams illustrating exemplary components and user interfaces of electronic device in accordance with some embodiments.
[0056] FIG. 3 is a block diagram illustrating exemplary components of a device in accordance with some embodiments.
[0057] FIG. 4 is a functional diagram of an exemplary actuator device in accordance with some embodiments.
[0058] FIG. 5 is a functional diagram of an exemplary software system in accordance with some embodiments.
[0059] FIGS. 6A-6E illustrate exemplary user interfaces for displaying representations software objects in accordance with some embodiments.
[0060] FIG. 7 is a flow diagram illustrating a method for performing movement in conjunction with outputting a representation of a software object in accordance with some embodiments .
[0061] FIG. 8 is a flow diagram illustrating a method for displaying an indication of a respective application corresponding to a software object in accordance with some embodiments .
[0062] FIG. 9 is a flow diagram illustrating a method for displaying a representation of a software object for an application that corresponds to a request in accordance with some embodiments.
[0063] FIGS. 10A-10I illustrate exemplary user interfaces for directional inputs that change a mode of a device in accordance with some embodiments.
[0064] FIG. 11 is a flow diagram illustrating a process for managing modes of a computer system based on inputs at a representation of a system software object in accordance with some embodiments.
[0065] FIG. 12 is a flow diagram illustrating a process for managing user interfaces based on inputs at a representation of a system software object in accordance with some embodiments .
[0066] FIGS. 13A-13H illustrate exemplary user interfaces and environments for displaying a representation of a software object in accordance with some embodiments.
[0067] FIG. 14 is a flow diagram illustrating a process for managing display of a representation of a software object based on a state of an environment in accordance with some embodiments .
[0068] FIG. 15 is a flow diagram illustrating a process for directing a computer system based on points of interest in an environment in accordance with some embodiments.
[0069] FIG. 16 is a flow diagram illustrating a process for managing display of content and a representation of a software object based on attention of a subject in accordance with some embodiments .DETAILED DESCRIPTION
[0070] The description herein sets forth exemplary processes, components, parameters, and the like. While specific examples are set out herein, it should be recognized that such embodiments should not be understood as limiting the scope of the present disclosure to the explicit descriptions of the examples set forth herein but instead should be understood as providing illustrative examples.
[0071] One or more steps of the processes described herein can be predicated on, rely on and / or be contingent on one or more conditions being satisfied. In some embodiments, a process is performed by iterating and / or repeating one or more processes multiple times. In some embodiments, contingent steps can be satisfied within and / or across different iterations of a single process and still be within the scope of the processes described herein. For example, for a given process that includes two or more steps that are contingent on different conditions, one of ordinary skill in the art would understand that the given process is considered to have been performed even when a process is repeated multiple times until and / or before the contingent steps are satisfied. In some embodiments, performance of multiple iterations of a process are not required to practice any one or more of the claims as presented herein. For example, system, electronic device, computer-readable medium, and / or method claims can be made,used, and / or performed without iteratively repeating a process. In some embodiments, the system, electronic device, computer-readable medium, and / or method claims include and / or utilize instructions for performing one or more steps that are contingent upon one or more conditions being satisfied. Because such instructions are stored in one or more processors and / or at one or more memory locations, the system, electronic device, computer-readable medium, and / or method claims can include and / or utilize logic that determines whether the one or more conditions have been satisfied without requiring the steps of a process to be repeated and / or iterated multiple times .
[0072] Although elements are described below using numerical descriptors, such as "a first" and / or "a second," these elements do not correspond to order or distinct representations and should not be limited to the stated numerical term. In some embodiments, these terms simply used as prefix to distinguish a reference to one element from a reference to another element. For example, a "first" device and a "second" device can be two separate references to the same device. In contrast, for example, a "first" device and a "second" device can be a reference to two different devices (e.g., not the same device and / or not the same type of device) . For example, a first computer system and a second computer system do not correspond to a first and a second in time, and merely are used to distinguish between two computer systems. As such, the first computer system can be termed a second computer system, and the second computer system can be termed a first computer system without departing from the scope of the various described embodiments.
[0073] For description of various elements and examples, the use of certain terminology is used to provide productive descriptions of the subject matter below and should not beread as limiting. As used to describe various examples herein, the singular forms of "a, " "an, " and "the" should not be interpreted as precluding or excluding the plural forms as well, unless the context clearly indicates otherwise. As well, "and / or" is used to encompasses any and all possible combinations of one or more associated listed items. For example, "x and / or y" should be interpreted as including "x, " or "y, " as well as "x and y" as possible permutations. Further, the use of the terms "includes," "including," "comprises," and / or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0074] When describing choices and / or logical possibilities, the term "if" is, optionally, construed to mean "when," "upon," "in response to determining," "in response to detecting," or "in accordance with a determination that" depending on the context. Similarly, the phrase "if it is determined" or "if [a stated condition or event] is detected" is, optionally, construed to mean "upon determining," "in response to determining," "upon detecting [the stated condition or event] ," "in response to detecting [the stated condition or event] ," or "in accordance with a determination that [the stated condition or event]" depending on the context .
[0075] The processes described below enhance the operability of the devices and make the user-device and / or user-device interfaces more efficient (e.g., by helping the user to provide proper inputs and reducing user mistakes when operating / interacting with the device) through various techniques, including by providing improved feedback (e.g.,visual, haptic, acoustic, and / or tactile feedback) to the user, reducing the number of inputs needed to perform an operation, providing additional control options without cluttering the user interface with additional displayed controls, performing an operation when a set of conditions has been met without requiring further input (e.g., input by a user) , and / or additional techniques, such as increasing the security and / or privacy of the computer system and reducing burn-in of one or more portions of a user interface of a display. These techniques also reduce power usage and improve battery life of the device by enabling the user to use the device more quickly and efficiently.
[0076] Bel ow, FIGS. 1, 2A-2C, and 3-5 provide a description of exemplary devices for performing the techniques for displaying a representation of a software object, and responding to directional inputs. FIGS. 6A-6E illustrate exemplary user interfaces for displaying representations software objects. FIGS. 6A-6E illustrate exemplary user interfaces for performing movement in conjunction with outputting a representation of a software object. The user interfaces in FIGS. 6A-6E are used to illustrate the processes described below, including the processes in FIG. 7. FIGS. 6A-6E illustrate exemplary user interfaces for displaying an indication of an application corresponding to a software object. The user interfaces in FIGS. 6A-6E are used to illustrate the processes described below, including the processes in FIG. 8. FIGS. 6A-6E illustrate exemplary user interfaces for displaying a representation of a software object for an application that corresponds to a request. The user interfaces in FIGS. 6A-6E are used to illustrate the processes described below, including the processes in FIG. 9. FIGS. 10A-10I illustrate exemplary user interfaces for directional inputs that change a mode of a device inaccordance with some embodiments. FIG. 11 is a flow diagram illustrating a process for managing modes of a computer system based on inputs at a representation of a system software object in accordance with some embodiments. FIGS. 10A-10I are used to illustrate the processes described below, including the processes in FIG. 11. FIG. 12 is a flow diagram illustrating a process for managing user interfaces based on inputs at a representation of a system software object in accordance with some embodiments. FIGS. 10A-10I are used to illustrate the processes described below, including the processes in FIG. 12. FIGS. 13A-13H illustrate exemplary user interfaces and environments for displaying a representation of a software object in accordance with some embodiments. FIG. 14 is a flow diagram illustrating a process for managing display of a representation of a software object based on a state of an environment in accordance with some embodiments. FIGS. 13A- 13H are used to illustrate the processes described below, including the processes in FIG. 14. FIG. 15 is a flow diagram illustrating a process for directing a computer system based on points of interest in an environment in accordance with some embodiments. FIGS. 13A-13H are used to illustrate the processes described below, including the processes in FIG. 15. FIG. 16 is a flow diagram illustrating a process for managing display of content and a representation of a software object based on attention of a subject in accordance with some embodiments. FIGS. 13A-13H are used to illustrate the processes described below, including the processes in FIG. 16.
[0077] FIG. 1A depicts a block diagram of computer system 100 (e.g., electronic device and / or electronic system) , which includes a set of electronic components in communication with (e.g., connected to and / or in wired or wireless communication with) each other. It should be understood that computer system 100 is merely an example of a computer system that can be usedto perform one or more functions described herein. It should be understood that one or more other computer systems can be used to perform one or more functions described herein. Additionally, while FIG. 1A depicts a computer architecture of computer system 100, other computer architectures (e.g., including fewer components, more components, and / or similar components) of a computer system can be used to perform one or more functions described herein.
[0078] In some embodiments, computer system 100 can correspond to (e.g., be and / or include) a system on a chip, a personal computer system, a desktop computer, a laptop computer, a tablet, a smart phone, a wearable device, a fitness tracking device, a smart watch, a head-mounted display ("HMD") device, a communal device (e.g., thermostat, smart speaker, and / or additional home-based computer systems) , an accessory (e.g., light, switch, air conditioner, heater, fan, window cover, lock, media playback device, speaker, gaming console, and / or television) , a controller, a hub, a server system, and / or a sensor .
[0079] In some embodiments, a sensor is and / or includes one or more hardware components having an ability to perform one or more operations for detecting (e.g., sensing, generating, and / or processing) states, conditions, and / or information about a physical environment in a vicinity of the sensor. For example, a sensor can be configured to detect conditions surrounding the sensor, detect conditions in one or more directions casting away from the sensor, and / or detect conditions based on contact of the sensor with a feature of the physical environment. In some embodiments, a hardware component of a sensor includes a sensing component (e.g., a temperature and / or image sensor) , a receiving component (e.g., a radio and / or laser receiver) , and / or a transmitting component (e.g., a radio and / or laser transmitter) . In someembodiments, a sensor includes an angle sensor, a force sensor, a contact sensor, a non-contact sensor, a breakage sensor, a flow sensor, a gas sensor, a chemical sensor, a particle sensor, a humidity sensor, a moisture sensor, a precipitation sensor, an image sensor (e.g., an RGB camera and / or an infrared sensor) , a photoelectric sensor (e.g., ambient light and / or solar light) , a position sensor (e.g., a global positioning system) , a pressure sensor, a temperature sensor, a proximity sensor, a radiation sensor, an inertial measurement unit ("IMU") , an accelerometer, a compass, a leak sensor, a level sensor, a metal sensor, a microphone, a motion sensor, a range sensor, a depth sensor (e.g., RADAR and / or LiDAR) , a speed sensor, a time-of-f light sensor, a torque sensor, and an ultrasonic sensor, a vacancy sensor, a presence sensor, a voltage sensor, a current sensor, a resistivity sensor, a conductivity sensor, a capacitive sensor, and / or a water sensor. While only a single computer system is depicted in FIG. 1A, functionality described herein can be implemented with a single computer system or with two or more computer systems operating together. In some embodiments, computer system 100 includes one or more sensors, as described herein. In some embodiments, information about the physical environment is captured by combining data from one sensor with data from one or more additional sensors (e.g., one or more additional sensors that are part of the computer system and / or one or more additional computer systems) .
[0080] As illustrated in FIG. 1A, computer system 100 includes processor subsystem 110, memory 120, and I / O interface 130. In some embodiments, memory 120 is a system memory in communication with processor subsystem 110. In some embodiments, one or more electronic components of computer system 100 are electrically connected to each other via interconnect 150, which allows communication between theelectronic components of computer system 100. For example, interconnect 150 can be a system bus, one or more memory locations, and / or additional electrical channels for connecting multiple components of computer system 100. In some embodiments, I / O interface 130 is connected, via a wired and / or wireless connection, to I / O device 140. In some embodiments, computer system 100 includes a single component includes and / or encompasses both of I / O interface 130 and I / O device 140, such that the functionality of I / O interface 130 and I / O device 140 is provided by the single component. It should be understood that computer system 100 can include one or more I / O interfaces communicating with one or more I / O devices. In some embodiments, computer system 100 includes multiple processor subsystems (e.g., processor subsystem 110) , each electrically connected to each other and / or one or more other components of computer system 100 via interconnect 150.
[0081] In some embodiments, processor subsystem 110 is and / or includes one or more processors and / or individual processing units that have a capability for executing instructions (e.g., programs, systems, and / or interrupts) to perform one or more of the functions described herein. For example, operating- system-level and / or application-level instructions are executed by processor subsystem 110. In some embodiments, processor subsystem 110 includes one or more components (e.g., implemented as software, hardware, and / or a combination thereof) capable of performing, supporting, and / or interpreting machine-learning instructions and / or operations. For example, computer system 100 can perform operations according to a machine-learning model that is local to computer system 100. In some embodiments, computer system 100 communicates with (e.g., executes instructions corresponding to and / or performs calculations on) a remote interactive knowledge base (e.g., a processing resource that implements anartificial intelligence model, a machine-learning model, and / or a large language model) to perform operations that are otherwise outside a set of capabilities of computer system 100. For example, computer system 100 can determine a set of inputs (e.g., data, instructions, and / or parameters) to the interactive knowledge base for performing requested machinelearning operations.
[0082] In some embodiments, memory 120 is in communication with processor subsystem 110 and can be implemented by a variety of different physical, non-transitory memory media. In some embodiments, computer system 100 includes multiple memory components and / or multiple types of memory components. In some embodiments, each of the multiple memory components is connected to processor subsystem 110 directly and / or via interconnect 150. For example, memory 120 can be implemented using a storage array, a removable flash drive, a storage area network (e.g., SAN) , hard disk storage, flash memory, removable disk storage, optical drive storage, floppy disk storage, random access memory (e.g., SDRAM, DDR SDRAM, EDO RAM, RAMBUS RAM and / or RAM- SRAM ) , and / or read only memory (e.g., EEPROM and / or PROM) . In some embodiments, processor subsystem 110 and / or interconnect 150 is connected to one or more memory controllers that are electrically connected to memory 120.
[0083] In some embodiments, one or more instructions are executed by processor subsystem 110. For example, memory 120 can include a computer-readable medium (e.g., transitory or non-transitory computer-readable medium) usable to store (e.g., configured to store, assigned to store, and / or storing) one or more instructions to be executed by processor subsystem 110. In some embodiments, each instruction stored by memory 120 and executed by processor subsystem 110 corresponds to an operation for completing one or more of the functionsdescribed herein. For example, memory 120 can store program instructions to implement the functionality associated with processes 700, 800, 900, 1100, 1200, 1400, 1500, and 1600 (FIG. 7, 8, 9, 11, 12, 14, 15, 16) described herein.
[0084] In some embodiments, I / O interface 130 enables computer system 100 to communicate with other devices. In some embodiments, I / O interface 130 is and / or includes one or more interfaces of one or more types. In some embodiments, I / O interface 130 is and / or includes a bridge chip (e.g., Southbridge) from a front-side bus to one or more back-side buses. In some embodiments, I / O interface 130 enables communication with I / O device 140 and / or one or more other I / O devices, via one or more corresponding buses and / or other interfaces. For example, an I / O device can include one or more: physical user-interface devices (e.g., a mouse, a physical keyboard, and / or a joystick) , network interface devices (e.g., to a local or wide-area network) , storage devices (e.g., as described herein with respect to memory 120) , auditory and / or visual output devices (e.g., light, screen, speaker, and / or projector) , and / or sensor devices (e.g., as described herein with respect to sensors) . In some embodiments, the visual output device is referred to as a display component. For example, the display component can be configured to provide visual output, such as displaying images on a physically viewable medium, such as via an LED display or image projection. As used herein, "displaying" content includes causing a component to display the content (e.g., video data decoded and / or rendered by a display controller) by transmitting, via a wired or wireless connection, data (e.g., image data and / or video data) to an integrated and / or external display component to visually produce the content.
[0085] In some embodiments, computer system 100 includes a component that integrates I / O device 140 with one or moreother components, such as I / O interface 130. In some embodiments, I / O device 140 is separate from one or more other components of computer system 100 (e.g., is a discrete component) . In some embodiments, I / O device 140 includes a network interface device that permits computer system 100 to connect to (e.g., communicate with) a network or one or more other computer systems, such as via a wired or wireless connection. In some embodiments, a network interface device can include Wi-Fi, Ethernet, USB, Thunderbolt, Bluetooth, NFC, and so forth. For example, computer system 100 can utilize an NFC connection to facilitate a bank, credit, financial, token (e.g., fungible or non-fungible token) , and / or cryptocurrency transaction between computer system 100 and another computer system within a vicinity of computer system 100.
[0086] In some embodiments, I / O device 140 is and / or includes one or more components for detecting a user (e.g., a subject, a person, an animal, an object, and / or a computer system different from the computer system) and / or an input (e.g., a tap input, a non-tap input, a swipe input, a hold-and-drag input, a verbal input, an acoustic command, an acoustic statement, an acoustic request, a gaze input, an air gesture, and / or a mouse click) from a user. In some embodiments, I / O device 140 enables computer system 100 to identify users associated with an account and / or users not associated with any account. For example, computer system 100 can detect a known user (e.g., a user associated with an account) and access information about the user using the user's account. In some embodiments, as part of computer system 100 detecting a user, computer system 100 detects that the user's account is associated with (e.g., is identified with respect to and / or included in) a group of accounts (and / or associated users) . For example, computer system 100 can access information associated with a group of accounts in response to detecting amember of the group. In some embodiments, an account corresponding to a user can be associated with one or more additional accounts and / or one or more additional computer systems. For example, computer system 100 can detect such one or more additional computer systems and / or detect one or more computer systems for detecting the user. In some embodiments, computer system 100 detects one or more unknown users (e.g., users not associated with any account) and enables one or more guest accounts for the one or more unknown users to utilize computer system 100, for example with limited access.
[0087] In some embodiments, I / O device 140 is and / or includes one or more cameras. In some embodiments, a camera is and / or includes one or more image sensors (e.g., one or more optical sensors and / or one or more depth camera sensors) that provide computer system 100 with the ability to detect a user and / or a user's expressions, movements, and / or gestures (e.g., hand gestures and / or air gestures) as inputs. In some embodiments, an air gesture is a gesture that is detected without requiring the user to touch an input element that is part of computer system 100 (or independently of an input element that is a part of computer system 100) . For example, an air gesture can be based on detected motion of a portion of the user' s body through the air including motion of the user' s body relative to an absolute reference (e.g., a distance of the user's hand relative to the ground and / or an angle of the user's arm relative to the ground) , relative to another portion of the user's body (e.g., movement of one hand of the user relative to another hand of the user, movement of a hand of the user relative to a shoulder of the user, and / or movement of a finger of the user relative to another finger or portion of a hand of the user) , and / or absolute motion of a portion of the user's body (e.g., a shake gesture that includes a predetermined speed or amount of rotation of a portion of theuser's body and / or a tap gesture that includes movement of a hand in a predetermined pose by a predetermined amount and / or speed) . In some embodiments, the one or more cameras enable computer system 100 to transmit image, pictorial, and / or video information to an application. For example, computer system 100 can complete a video phone call by transmitting image and / or video data captured by a camera to an application that manages the video phone call.
[0088] In some embodiments, I / O device 140 is and / or includes one or more microphones. For example, computer system 100 can use a microphone to obtain data and / or information from a user without requiring a contact input. In some embodiments, a microphone enables computer system 100 to detect speech and / or verbal input from a user. In some embodiments, computer system 100 utilizes speech input to manage one or more functions of a personal assistant. For example, a user can make a verbal request for computer system 100 to perform an action and / or obtain information for the user. In some embodiments, computer system 100 utilizes speech input (e.g., along with one or more other input techniques and / or output techniques) to request and / or detect information from a user without requiring the user to make physical contact with computer system 100.
[0089] In some embodiments, I / O device 140 is and / or includes one or more physical input mediums for a user to interact directly with computer system 100. In some embodiments, a physical input medium includes one or more physical buttons (e.g., one or more touch sensitive non-depressible components and / or one or more tactile depressible buttons) , a touch sensitive display component, a mouse, and / or a keyboard. In some embodiments, one or more physical input mediums are part of computer system 100. In some embodiments, one or more physical input mediums are connected to computer system 100(e.g., together and / or separately) , such as via one or moreI / O interfaces.
[0090] In some embodiments, I / O device 140 is and / or includes one or more display components for outputting information (e.g., a display component, a display screen, a projector, a touch-sensitive display, an audio generation component, a speaker, and / or a haptic output device) . In some embodiments, computer system 100 operates I / O device 140 to convey information and / or a state of computer system 100. In some embodiments, I / O device 140 is and / or includes a tactile output device. For example, a tactile output device can be a haptic component that enables computer system 100 to convey information to a user in contact with (e.g., touching, holding, and / or close to) computer system 100. In some embodiments, I / O device 140 includes one or more components for outputting visual outputs (e.g., an image, video, animation, augmented reality overlay, 3D rendering, motion graphics, data visualization, and / or digital art) . For example, computer system 100 can display content from one or more applications and / or system processes. For another example, computer system 100 can display a widget (e.g., a control that displays real-time information and / or data) corresponding to one or more applications.
[0091] In some embodiments, I / O device 140 is and / or includes one or more audio components for outputting audio (e.g., speakers, smart speakers, television speakers, home theater systems, soundbars, earphones, earbuds, headphones, augmented reality headset speakers, audio jacks, optical audio outputs, Bluetooth audio outputs, HDMI audio outputs, and / or audio sensors) . In some embodiments, computer system 100 is able to output audio through I / O device 140. For example, computer system 100 can output audio-based content and / or information to a user via I / O device 140. In some embodiments, I / O device140 enables spatial audio (e.g., an audio output corresponding to an environment) . For example, computer system 100 can detect materials and / or objects within an environment and / or alter the audio pattern, intensity, and / or waveform to compensate for varying characteristics of the environment.
[0092] Referring now to FIGS. 1B-1G, implementations within the scope of the present disclosure can be partially or entirely realized using a tangible computer-readable storage medium (and / or multiple tangible computer-readable storage media of one or more types) encoding one or more computer- readable instructions. It should be recognized that computer- readable instructions can be organized in any format, including applications, processes, widgets, software, and / or hardware components.
[0093] Implementations within the scope of the present disclosure include a computer-readable storage medium that encodes instructions organized as an application (e.g., application 170 of FIG. ID) that, when executed by one or more processing units, control an electronic device (e.g., device 168 of FIG. ID) to perform the process of FIG. IB, the process of FIG. 1C, and / or one or more other processes and / or methods described herein.
[0094] It should be recognized that application 170 can be an application of any suitable type including, for example, one or more of a browser application, a media application, a messaging application, a health application, a fitness application, a digital payments application, a social network application, a maps application, a communication application, and / or an application that functions as an execution environment for plug-ins, widgets, or other applications. In some embodiments, application 170 is an application that is pre-installed on device 168 prior to or upon purchase (e.g., afirst-party application) . In some embodiments, application 170 is an application that is provided to device 168 via an operating system update file (e.g., a first-party application or a second-party application) . In some embodiments, application 170 is an application that is provided via an application store. In some embodiments, the application store can be pre-installed on device 168 prior to or upon purchase (e.g., a first-party application store) . In some embodiments, the application store is a third-party application store (e.g., an application store that is read from a storage device, downloaded via a network, and / or provided by another application store) .
[0095] Referring now to FIG. IB and FIG. IF, at block 160, an application (e.g., application 170 of FIG. ID) obtains information. In some embodiments, the information is obtained from one or more hardware components of device 168 (shown in FIG. ID) . In some embodiments, the information is obtained from one or more software modules of device 168. In some embodiments, the information is obtained from one or more hardware components external to device 168 (e.g., a server, a peripheral device, and / or an accessory device) . In some embodiments, the information includes user information, environment information, hardware information, historical information, event information, positional information, time information, notification information, electronic device state information, weather information, media information, and / or motion information. In some embodiments, at block 162, in response to and / or after obtaining the information at block 160, the application provides the information to a system (e.g., system 180 of FIG. IE) .
[0096] Referring now to FIG. 1C and FIG. 1G, at block 164, an application (e.g., application 170 of FIG. ID) obtains information. In some embodiments, the information includesuser information, environment information, hardware information, historical information, event information, positional information, time information, notification information, electronic device state information, weather information, media information, and / or motion information. In some embodiments, at block 166, in response to and / or after obtaining the information, the application performs one or more operations with the information. In some embodiments, the one or more operations includes displaying the information, providing a notification based on the information, sending a message based on the information, setting a reminder based on the information, controlling a user interface of a fitness application based on the information, controlling a user interface of a health application based on the information, controlling a focus mode based on the information, adding a calendar entry based on the information, and / or calling an API of a system (e.g., system 180 of FIG. IE) based on the information .
[0097] In some embodiments, one or more steps of the process of FIG. IB and / or the process of FIG. 1C is performed in response to a trigger. In some embodiments, the trigger includes a user input, a notification received from system 180, a detection of an event, and / or a response to a call to an API provided by system 180.
[0098] In some embodiments, the instructions of application 170, when executed, control device 168 to perform the process of FIG. IB and / or the process of FIG. 1C by calling an application programming interface ("API") , such as API 176 provided by system 180. It should be recognized that calling API 176 is optional. In some embodiments, application 170 performs at least a portion of the process of FIG. IB and / or the process of FIG. 1C without calling API 176.
[0099] In some embodiments, one or more steps of the process of FIG. IB and / or the process of FIG. 1C includes calling API 176 using one or more parameters defined by API 176. In some embodiments, the one or more parameters include a data structure, an object, an object class, a key, a constant, a variable, a data type, a pointer, an array, a list and / or a pointer to a function and / or a method, and / or another way to reference data or another item to be passed via API 176.
[0100] Referring to FIG. ID, device 168 is illustrated. In some embodiments, device 168 is a personal computing device, a smart phone, a tablet, a smart watch, a fitness tracker, a head mounted display ("HMD") device, a media device, a speaker, a communal device, and / or a television. As illustrated in FIG. ID, device 168 includes application 170. Application 170 includes application implementation module 172 and API-calling module 174. It should be recognized that device 168 and / or application 170 can include more, fewer, and / or different components than those illustrated in FIG. ID.
[0101] Referring to FIG. IE, system 180 is illustrated. In some embodiments, system 180 is an operating system hosted on device 168. As illustrated in FIG. IE, system 180 (e.g., an operating system of device 168) includes API 176 and implementation module 178. It should be recognized that system 180 can include more, fewer, and / or different components than those illustrated in FIG. IE.
[0102] In some embodiments, application implementation module 172 includes a set of one or more instructions corresponding to one or more operations performed by application 170. For example, when application 170 is a messaging application, application implementation module 172 can include instructions to receive and / or send messages. For another example, when application 170 is a calendar application, applicationimplementation module 172 can include instructions to create, edit, track, and / or view calendar appointments. In some embodiments, application implementation module 172 communicates with API-calling module 174 to communicate with system 180 via API 176.
[0103] In some embodiments, API 176 is a software module (e.g., a collection of computer-readable instructions) that provides an interface for another module (e.g., API-calling module 174) to access and / or use one or more functions, procedures, data structures, methods, classes, and / or other services provided by implementation module 178 of system 180. For example, API-calling module 174 can access a feature of implementation module 178 through one or more API calls and / or invocations (e.g., embodied by a method call and / or a function) exposed by API 176 (e.g., a software and / or hardware module that can receive API calls, respond to API calls, and / or send API calls) . For another example, API-calling module 174 can pass data and / or control information using one or more parameters via the API calls or invocations. In some embodiments, API 176 allows application 170 to use a service provided by a Software Development Kit ("SDK") library. In some embodiments, application 170 incorporates a call to a function and / or a method provided by the SDK library and / or provided by API 176. In some embodiments, application 170 uses data types or objects defined in the SDK library and provided by API 176. In some embodiments, API-calling module 174 makes an API call via API 176 to access and use a feature of implementation module 178 that is specified by API 176. In such embodiments, implementation module 178 can return a value via API 176 to API-calling module 174 in response to the API call. The value can report to application 170 the capabilities or state of a hardware component of device 168, including those related to aspects such as processing capability, outputcapabilities and state, input capabilities and state, storage capacity and / or state, power state, and / or communications capability. In some embodiments, API 176 is implemented in part by firmware, microcode, and / or other low-level logic that executes, at least in part, on the hardware component.
[0104] In some embodiments, API 176 allows a developer of API- calling module 174 (e.g., a third-party developer) to leverage one or more features provided by implementation module 178. In such embodiments, there can be one or more API-calling modules, such as API-calling module 174, that communicate with implementation module 178. In some embodiments, API 176 allows multiple API-calling modules written in different programming languages to communicate with implementation module 178 while API 176 is implemented in terms of a specific programming language. For example, API 176 can include features for translating calls and returns between implementation module 178 and API-calling module 174. In some embodiments, API- calling module 174 calls APIs from different providers such as a set of APIs from a plug-in provider, a set of APIs from an operating system provider, and / or a set of APIs from another provider (e.g., the provider of a software library) and / or creator .
[0105] Examples of API 176 include a device detection API (e.g., for locating nearby electronic devices, media devices, and / or smartphones) , a pairing API (e.g., for establishing a secure connection with an accessory) , a UIKit API (e.g., for generating user interfaces) , an application store API, a payment API, a push notification API, a networking API, a WiFi API, a Bluetooth API, an NFC API, a UWB API, a location detection API, a locator API, a maps API, a health sensor API, a sensor API, a messaging API, a streaming API, a collaboration API, a video conferencing API, an advertising services API, a web browser API (e.g., WebKit API) , a vehicleAPI, a fitness API, a smart home API, a contact transfer API, a photos API, a camera API, and / or an image processing API. In some embodiments, a sensor API is and / or includes an API for accessing data associated with a sensor of device 168. For example, the sensor API can provide access to raw sensor data. For another example, the sensor API can provide data derived (and / or generated) from the raw sensor data. In some embodiments, the sensor data is and / or includes image data, video data, temperature data, audio data, heart rate data, inertial measurement unit ("IMU") data, location data, GPS data, LiDAR data, and / or camera data. In some embodiments, the sensor is and / or includes one or more of an optical sensor, accelerometer, gyroscope, proximity sensor, temperature sensor, infrared sensor, heartrate sensor, barometer, temperature sensor, and / or biometric sensor.
[0106] In some embodiments, implementation module 178 is a system software module that is configured to perform one or more operations in response to receiving an API call via API 176. In some embodiments, the system is an operating system and / or server system. In some embodiments, the software module is a collection of computer-readable instructions. In some embodiments, implementation module 178 is configured to provide an API response (e.g., via API 176) as a result of processing an API call. By way of example, implementation module 178 and API-calling module 174 can each be any one of an operating system, a device driver, a library, an API, an application program, and / or another module. It should be understood that implementation module 178 and API-calling module 174 can be the same type of module as each other or different types of modules from each other. In some embodiments, implementation module 178 is embodied at least in part in firmware, microcode, and / or hardware logic.
[0107] In some embodiments, implementation module 178 returns a value through API 176 in response to an API call from API- calling module 174. While API 176 defines the syntax and result of an API call (e.g., how to invoke the API call and what the API call does) , API 176 need not indicate how implementation module 178 accomplishes the function specified by the API call. In some embodiments, various API calls are transferred via the one or more application programming interfaces between API-calling module 174 and implementation module 178. Transferring the API calls can include initiating, invoking, issuing, receiving, calling, returning, and / or responding to the function calls and / or messages. In other words, transferring can describe actions by either of API- calling module 174 or implementation module 178. In some embodiments, a function call and / or other invocation of API 176 sends and / or receives one or more parameters through a parameter list and / or other structure.
[0108] In some embodiments, implementation module 178 provides multiple APIs. In such embodiments, each API provides a different view of functionality implemented by implementation module 178 and / or with different aspects of functionality implemented by implementation module 178. For example, one API of implementation module 178 can provide a first set of functions and can be exposed to third-party developers. In this example, another API of implementation module 178 can be hidden (e.g., not exposed) and provide a subset of the first set of functions as well as a second set of functions, such as testing and / or debugging functions, which are not in the first set of functions. In some embodiments, implementation module 178 calls one or more other components via an underlying API. In such embodiments, implementation module 178 is both an API- calling module and an implementation module. It should be recognized that implementation module 178 can includeadditional functions, procedures, data structures, methods, classes, and / or other services that are not necessarily specified through API 176 and are not available to API-calling module 174. It should also be recognized that API-calling module 174 can be on the same system as implementation module 178 and / or can be located remotely and access implementation module 178 using API 176 over a network. In some embodiments, API-calling module 174, API 176, and / or implementation module 178 are stored in a machine-readable medium, which includes any mechanism for storing information in a form readable by a machine (e.g., a computer and / or other data processing system) . For example, a machine-readable medium can be and / or include magnetic disks, flash memory devices, optical disks, random access memory, and / or read only memory.
[0109] An application programming interface ("API") is an interface between a first software process and a second software process that specifies a format for communication between the first software process and the second software process. Limited APIs, such as private APIs or partner APIs, are APIs that are accessible to a limited set of software processes. Public APIs are APIs that are accessible to a wider set of software processes. Some APIs enable software processes to communicate about or set a state of one or more input devices (e.g., one or more touch sensors, visual sensors, motion / orientation sensors, proximity sensors, pressure sensors, intensity sensors, buttons, switches, rotatable elements, sound sensors, wireless proximity sensors, biometric sensors, and / or external controllers) . Some APIs enable software processes to communicate about and / or set a state of one or more output generation components (e.g., one or more tactile output generation components, one or more display generation components, and / or one or more audio output generation components) . Some APIs enable particularcapabilities (e.g., text entry, scrolling, handwriting, image editing, and / or image creation) to be accessed, used, and / or performed by a software process (e.g., generating one or more outputs for use by a software process based on one or more inputs from the software process) . Some APIs enable content from a software process to be inserted into a template and / or displayed in a user interface that has a layout and / or behaviors that are specified by the template.
[0110] Many software platforms include a set of frameworks that provides the core objects and / or core behaviors that a software developer can utilize to build software applications for use on the software platform. Software developers can use these objects to display content onscreen, to interact with that content, and to manage interactions with the software platform. Software applications rely on the set of frameworks for their basic behavior, and the set of frameworks provides many ways for the software developer to customize the behavior of the application to match the specific needs of the software application. Many of these core objects and core behaviors are accessed via one or more APIs. An API will typically specify a format for communication between software processes, including specifying and grouping available functions, variables, and protocols. An API call (and / or an API request) will typically be sent from a sending software process to a receiving software process to accomplish one or more of the following: the sending software process providing information to the receiving software process (e.g., for the receiving software process to take action on) , the sending software process requesting information from the receiving software process (e.g., for the sending software process to take action on) , the sending software process providing information to the receiving software process about action taken by the sending software process, or the sending software process requestingaction by the receiving software process. Interaction with a device (e.g., using a user interface) can include the transfer and / or receipt of one or more API calls between multiple different software processes (e.g., an application and an operating system, different portions of an operating system, or different applications) . For example, when an input is detected, the direct sensor data can be processed into one or more input events that are provided (e.g., via one or more APIs) to a receiving software process that makes one or more determinations based on the input events. In this example, the receiving software process can send (e.g., via one or more APIs) information to a software process to perform an operation (e.g., change a device state and / or user interface) based on the determination. While a determination and an operation performed in response could be made by the same software process, the determination could alternatively be made in a first software process and / or relayed (e.g., via one or more APIs) to a second software process, different from the first software process, which causes the operation to be performed by the second software process. Alternatively, the second software process could relay instructions (e.g., via one or more APIs) to a third software process, different from the first software process and / or the second software process, to perform the operation. It should be understood that some or all user interactions with a computer system could involve one or more API calls within a step of interacting with the computer system (e.g., between different software components of the computer system or between a software component of the computer system and a software component of one or more other computer systems) . It should be understood that some or all user interactions with a computer system could involve one or more API calls between steps of interacting with the computer system (e.g., between different software components of the computer system or between a software component of thecomputer system and a software component of one or more other computer systems) .
[0111] In some embodiments, the application can be any suitable type of application, including, for example, one or more of a browser application, a media application, a messaging application, a health application, a fitness application, a digital payments application, a social network application, a maps application, a communication application, and / or an application that functions as an execution environment for plug-ins, widgets, or other applications.
[0112] In some embodiments, the application is an application that is pre-installed on the first computer system prior to or upon purchase (e.g., a first-party application) . In some embodiments, the application is an application that is provided to the first computer system via an operating system update file (e.g., a first-party application) . In some embodiments, the application is an application that is provided via an application store. In some embodiments, the application store is pre-installed on the first computer system prior to or upon purchase (e.g., a first-party application store) and allows download of one or more applications. In some embodiments, the application store is a third-party application store (e.g., an application store that is read from a storage device, downloaded via a network, and / or provided by another device) . In some embodiments, the application is a third-party application (e.g., an app that is provided by an application store, downloaded via a network, and / or read from a storage device) . In some embodiments, the application controls the first computer system to perform processes 700, 800, 900, 1100, 1200, 1400, 1500, and 1600(FIG. 7, 8, 9, 11, 12, 14, 15, 16) by calling an application programming interface ("API") provided by the system process using one or more parameters.
[0113] In some embodiments, exemplary APIs provided by the system process include one or more of a device detection API (e.g., for locating nearby electronic devices, media devices, and / or smartphones) , a pairing API (e.g., for establishing a secure connection with an accessory) , a UIKit API (e.g., for generating user interfaces) , an application store API, a payment API, a push notification API, a networking API, a WiFi API, a Bluetooth API, an NFC API, a UWB API, a location detection API, a locator API, a maps API, a health sensor API, a sensor API, a messaging API, a streaming API, a collaboration API, a video conferencing API, an advertising services API, a web browser API (e.g., WebKit API) , a vehicle API, a fitness API, a smart home API, a contact transfer API, a photos API, a camera API, and / or an image processing API.
[0114] In some embodiments, at least one API is a software module (e.g., a collection of computer-readable instructions) that provides an interface that allows another module (e.g., an API-calling module) to access and / or use one or more functions, procedures, data structures, methods, classes, and / or other services provided by application implementation module 172. In some embodiments, the API defines one or more parameters that are passed between API-calling module 174 and application implementation module 172. In some embodiments, API 176 defines a first API call that can be provided by API- calling module 174. In some embodiments, application implementation module 172 is a system software module (e.g., a collection of computer-readable instructions) that is configured to perform an operation in response to receiving an API call via API 176. In some embodiments, application implementation module 172 is constructed to provide an API response (via the API) as a result of processing an API call. In some embodiments, application implementation module 172 is included in device 168 that runs application 170. In someembodiments, the implementation module is included in an electronic device that is separate from device 168 that runs application 170.
[0115] FIGS. 2A-5 illustrate exemplary components and user interfaces of device 200 in accordance with some embodiments. Device 200 can represent computer system 100 and / or include one or more features of computer system 100. In the examples described with respect to FIGS. 2A-5, device 200 is a laptop computer. It should be recognized that device 200 is not limited to being a laptop computer and that device 200 can be one or more other devices. For example, device 200 can be a communal device, such as a smart speaker, a smart display, and / or a television. In some embodiments, a communal device is configured to provide functionality to multiple users (e.g., at the same time and / or at different times) . In such embodiments, the communal device can be set up and / or administered by a single user. For another example, device 200 can be a personal device, such as a desktop computer, a tablet, a smart phone, a smart watch, a fitness tracking device, and / or a head mounted display device. In some embodiments, a personal device is configured to provide functionality to a single user, such as when the single user is logged into the personal device.
[0116] FIGS. 2A-2C illustrate device 200 in three different configurations. As illustrated in FIG. 2A, device 200 is a laptop computer (also referred to herein as a "laptop") that includes base portion 200-2 and display portion 200-1. In some embodiments, base portion 200-2 can be arranged to rest horizontally on a surface, such as a desk, as shown in FIG. 2A. In some embodiments, display portion 200-1 is connected to base portion 200-2 at connection 200-3 (e.g., a hinge, a motorized arm, one or more connection points, and / or a joint) . In some embodiments, connection 200-3 enables display portion200-1 to pivot and / or change orientation with respect to base portion 200-2. For example, device 200 can pivot at connection 200-3 to rotate display portion 200-1 and / or device 200 to one or more configurations corresponding to an "OFF" state (e.g., as further described herein in relation to FIG. 2C) . In some embodiments, a configuration corresponding to an "OFF" state is a configuration in which device 200 is in a particular pose. For example, the particular pose can be one in which display portion 200-1 is arranged to be parallel to base portion 200-2 or forming a particular angle (e.g., 60-degree angle) with respect to base portion 200-2. In some embodiments, in the "OFF" state, an area in which content is displayed by device 200 is arranged in a manner that corresponds to (e.g., is associated with, represents, and / or is configured to accompany) the "OFF" state (e.g., not visible, facing down, and / or obscuring the area in which content is displayed) . In some embodiments, in the "OFF" state, an area in which content is displayed by device 200 is not arranged in a manner that corresponds to (e.g., is associated with, represents, and / or is configured to accompany) the "OFF" state. For example, when not in the "OFF" state, device 200 can be arranged within a range of different open configurations (e.g., in which display portion 200-1 is not parallel to base portion 200-2 and the area in which content is displayed by device 200 is visible and / or not obscured) . It should be recognized that display portion 200-1 being parallel to base portion 200-2 is an example of a configuration corresponding to an "OFF" state (e.g., a closed position) of device 200. In some embodiments, one or more other configurations, such as the configuration illustrated inFIG. 2C, could corresponding to the "OFF" state.
[0117] FIG. 2A illustrates device 200 in a corresponding pose on the left and display screen 200-4 (providing an area inwhich content is displayed by device 200) on the right. As illustrated in FIG. 2A, device 200 is in a first configuration (e.g., display portion 200-1 is perpendicular to base portion 200-2 forming a 90-degree angle) . In FIG. 2A, display screen 200-4 represents what is being displayed (e.g., via a display component) by device 200 while open in the first configuration. In FIG. 2A, display screen 200-4 illustrates a state in which device 200 is "ON" (e.g., powered on, operational, awake, activated, and / or in a higher powered and / or more resource-intensive state than the "OFF" state) . In some embodiments, device 200 displays, via display screen 200- 4, one or more user interfaces (e.g., system user interfaces, application user interfaces, user interface objects, windows, controls, and / or other visual content) . In some embodiments, device 200 displays, via display screen 200-4, the one or more user interfaces while in the "ON" state. For example, in FIG. 2A, device 200 is in the "ON" state and display screen 200-4 displays user interface 200-5 that includes an application window. In some embodiments, user interface 200-5 includes (and / or is) one or more user interface objects (e.g., windows, icons, and / or other graphical objects) . For example, user interface 200-5 can include one or more graphical objects different than and / or the same as an application window.
[0118] FIG. 2B illustrates device 200 in a corresponding pose on the left and display screen 200-4 on the right. As illustrated in FIG. 2B, device 200 is in a second configuration (e.g., display portion 200-1 is angled, via connection 200-3, with respect to base portion 200-2 forming a 120-degree angle, which is larger than the angle of FIG. 2A) . In FIG. 2B, display screen 200-4 represents what is being displayed by device 200 while in the second configuration. Display screen 200-4 illustrates a state in which device 200 is "ON" (e.g., the same state as the top diagram of FIG. 2A) .In FIG. 2B, device 200 displays, via display screen 200-4, user interface 200-5 (e.g., and is the same as displayed in FIG. 2A) . In some embodiments, device 200 displays a different user interface (e.g., other than user interface 200-5) . For example, although FIG. 2B illustrates device 200 displaying the same user interface 200-5 as in FIGS. 2A while in a different configuration than that shown in FIG. 2A, device 200 can display a different user interface. In some embodiments, device 200 displays a user interface that corresponds to (e.g., is based on, related to, caused by, due to, and / or configured to accompany) a physical state (e.g., location, position, and / or orientation) , for example including content that is specific to a particular angle or specific to a current context.
[0119] FIG. 2C illustrates device 200 in a corresponding pose on the left and display screen 200-4 on the right. As illustrated in FIG. 2C, device 200 is in a third configuration (e.g., display portion 200-1 is angled, via connection 200-3, with respect to base portion 200-2 forming a 60-degree angle, which is a smaller angle than the angles of FIG. 2A and FIG. 2B) . In FIG. 2C, display screen 200-4 represents what is being displayed by device 200 while in the third configuration. In FIG. 2C, display screen 200-4 illustrates a state in which device 200 is "OFF" (e.g., not powered on, not operational, not awake, not activated, powered off, asleep, hibernating, inactive, and / or deactivated) . In some embodiments, device 200 does not display (e.g., ceases and / or forgoes displaying) the one or more user interfaces while in the "OFF" state (e.g., does not display any visual content) . In some embodiments, device 200 displays, via display screen 200-4, one or more user interfaces while in the "OFF" state. In some embodiments, device 200 displays the same user interface as or a different user interface from one or more user interfaces displayedwhile in the "ON" state. In some embodiments, device 200 displays a user interface specific to the "OFF" state and / or a manner of displaying a user interface that is not specific to the "OFF" state. In FIG. 20, display screen 200-4 is blank because nothing is being displayed on the display of device 200 (e.g., display screen 200-4 is off and / or not displaying any user interface, such as user interface 200-5) .
[0120] In some embodiments, device 200 includes one or more components (also referred to herein as "movement components") that enable device 200 to perform (e.g., control and / or cause) movement (and / or be moved) . Performing movement can include moving a portion of device 200, moving all of device 200, and / or moving one or more other devices and / or components (e.g., that are in communication with device 200 and / or movement components of device 200) . For example, device 200 can automatically move and / or cause and / or control movement of display portion 200-1 relative to base portion 200-2, such as to any one or more of the configurations illustrated in FIGS. 2A-2C. In some embodiments, device 200 performs movement based on a state of device 200. Performing movement based on a state can facilitate certain interactions by device 200. For example, such interactions of device 200 can utilize special features, functions, modes, and / or programs that take advantage of the ability of device 200 to perform movement. Examples of such interactions include using movement to communicate (e.g., to a user) a state (e.g., on, off, hibernating, and / or sleeping) of the device, to assist with user input (e.g., reduce a distance to a user) , and / or to augment interaction behavior of the device (e.g., moving in particular ways, during an interaction with a user, that convey information such as importance and / or direction of attention) . In some embodiments, the movement performed corresponds to (e.g., is in response to, is caused by, and / oris determined and / or performed based on) one or more of a detected input, a detected context (e.g., user context and / or environmental context) , and / or a state of device 200 (e.g., a state and / or a set of multiple states) . For example, device 200 can perform a movement of display portion 200-1 such that device 200 moves from being in the first configuration illustrated in FIG. 2A to being in the second configuration illustrated in FIG. 2B. In this example, device 200 can detect that a user has rearranged with respect to device 200 (e.g., the user stood up) , and in response, device 200 can perform the movement to the second configuration so that the display is at an optimized viewing angle based on the rearranged height and / or angle of the user's eyes with respect to the display of device 200. As another example, device 200 can perform a movement such that device 200 moves from being in the first configuration illustrated in FIG. 2A to being in the third configuration illustrated in FIG. 2C. In this example, device 200 can perform the movement to the third configuration in response to detecting a state with reduced activity (e.g., the "OFF" state as described herein) . In this way, the movement of device 200 to one or more configurations can indicate a state of device 200.
[0121] FIGS. 2A-2C illustrate device 200 having a display portion that is able to move with one degree of freedom via connection 200-3 connecting display portion 200-1 to base portion 200-2. In some embodiments, device 200 includes one or more components that provide device 200 with movement in one or more degrees of freedom. For example, a movement component (e.g., an output device that allows and / or causes movement) of device 200 can include multiple degrees of freedom (e.g., six degrees of freedom including three components of translation and three components of rotation) . For example, device 200 can be implemented to be able to move display portion 200-1 in atelescoping forward or backward motion (e.g., display portion 200-1 moves forward while base portion 200-2 remains stationary, for example to reduce and / or extend a viewing distance for a user) . As yet another example, device 200 can be implemented to be able to move display portion 200-1 to rotate about an axis that is perpendicular to connection 200-3 such that display portion 200-1 can turn to position the display to follow a user as they walk around device 200. While the examples shown in FIGS. 2A-2C illustrate a hinge, other movement components can be included in device 200, such as an actuator (e.g., an electric actuator, a pneumatic actuator, and / or a hydraulic actuator) , a rotatable component, a movable base, and / or a rotatable base. In some embodiments, one or more movement components can cause device 200 to move in different ways, such as to rotate (e.g., 0-360 degrees) , to move laterally (e.g., left, right, up, down, and / or any combination thereof) , and / or to tilt (e.g., 0-360 degrees) .
[0122] FIG. 3 illustrates an exemplary block diagram of device 200. In some embodiments, device 200 includes some or all of the components described with respect to FIGS. 1A-1G, 2A-2C, and 5. As illustrated in FIG. 3, device 200 has bus 200-13 that operatively couples I / O section 200-12 (also referred to as an I / O subsection and / or an I / O interface) with processors 200-11 and memory 200-10. As illustrated in FIG. 3, I / O section 200-12 is connected to output devices 200-16. In some embodiments, output devices 200-16 include one or more visual output devices (e.g., a display component, such as a display, a touch-sensitive display, a display screen, and / or a projector) , one or more audio output devices (e.g., a speaker) , one or more haptic output devices (e.g., a device that causes vibration and / or other tactile output) , and / or one or more movement components (e.g., a motor, an actuator, a mechanical linkage, one or more devices that allow and / orcause movement, and / or one or more movement components as described herein) . As illustrated in FIG. 3, output devices 200-16 include movement controller 200-17 and actuator 200-18. In some embodiments, movement controller 200-17 can be any component, such as a control device, that controls actuator 200-18. For example, movement controller 200-17 can provide control signals that cause actuator 200-18 to actuate (e.g., cause physical movement) . In some embodiments, movement controller 200-17 includes one or more logic components (e.g., a processor) , one or more feedback components (e.g., a sensor) , and / or one or more control components (e.g., for applying control signals, such as a switch, a relay, and / or a control line) . In some embodiments, actuator 200-18 can be any component that performs physical movement of a portion and / or of the entirety of device 200 and / or a device coupled to and / or in contact with device 200. In some embodiments, movement controller 200-17 and actuator 200-18 are embodied in the same device and / or component as each other (e.g., a dedicated onboard movement controller 200-17 that is affixed to actuator 200-18) . In some embodiments, movement controller 200-17 and actuator 200-18 are embodied in different devices and / or components from each other (e.g., one or more processors 200-11 can function as the movement controller 200- 17 of actuator 200-18) . In some embodiments, movement controller 200-17 and / or actuator 200-18 are embodied in one or more devices other than device 200. For example, device 200 can be coupled to (e.g., temporarily and / or removably) another device and can instruct movement controller 200-17 and / or control actuator 200-18 of the other device. In some embodiments, actuator 200-18 functions to cause one or more types of mechanical movement (e.g., linear and / or rotational) in one or more manners (e.g., using electric, hydraulic, magnetic, and / or pneumatic power) . Examples of actuator 200-18include linear actuators, electromechanical actuators, and / or rotary actuators .
[0123] As illustrated in FIG. 3, I / O section 200-12 is connected to input devices 200-14. In some embodiments, input devices 200-14 include one or more physical input devices (e.g., a button, a touch-sensitive surface, a switch, a slider, and / or a rotatable input mechanism) , one or more visual input devices (e.g., a light sensor and / or a camera) , one or more audio input devices (e.g., a microphone) , and / or other input devices (e.g., a pressure sensor, a contact intensity sensor, a ranging sensor, an accelerometer, a GPS sensor, an accelerometer, a directional sensor, a compass, a gyroscope, a temperature sensor, a motion sensor, and / or a biometric sensor) . In addition, I / O section 200-12 can be connected with communication unit 200-15 for receiving application and / or operating system data, using for example Wi-Fi, near field communication ("NFC") , Bluetooth, cellular, and / or other wireless and / or wired communication techniques.
[0124] In some embodiments, memory 200-10 of device 200 can be and / or include one or more non-transitory computer-readable storage mediums for storing computer-executable instructions, which, when executed by one or more computer processors 200- 11, cause computer processors 200-11 to perform the techniques described herein, including processes 700, 800, 900, 1100, 1200, 1400, 1500, and 1600 (FIG. 7, 8, 9, 11, 12, 14, 15, 16) . A computer-readable storage medium can be any medium that can tangibly contain or store computer-executable instructions for use by and / or in connection with the instruction execution device, apparatus, and / or system. In some embodiments, the storage medium is a non-transitory computer-readable storage medium. The non-transitory computer-readable storage medium can include, but is not limited to, optical, magnetic, and / or semiconductor storages. Examples of such storage includemagnetic disks, optical discs based on CD, DVD, and / or Blu-ray technologies, as well as persistent solid-state memory such as flash and solid-state drives. In some embodiments, the storage medium is a transitory computer-readable storage medium. Device 200 is not limited to the components and configuration of FIG. 3 but rather can include other and / or additional components in a multitude of possible configurations, all of which are intended to be within the scope of this disclosure.
[0125] FIG. 4 illustrates a functional diagram of actuator 200-18 in accordance with some embodiments. As described herein, actuator 200-18 can be and / or include any component that performs physical movement. In some embodiments, actuator 200-18 operates using one or more inputs, such as control signal 200-18A and / or energy source 200-18B. For example, actuator 200-18 can be a rotary actuator that converts electric energy into rotational movement. This rotational movement can cause the movement of the display portion of device 200 described herein with respect to FIGS. 2A-2C. For example, a counterclockwise rotational movement of the actuator can cause device 200 to move to a configuration having a larger angle (e.g., the second configuration illustrated in FIG. 2B) . For another example, a clockwise (e.g., opposite) rotational movement of the actuator can cause device 200 to move to a configuration having a smaller angle (e.g., the third configuration illustrated in FIG. 2C) . In some embodiments, control signal 200-18A can indicate one or more start and / or stop instructions, a goal configuration(e.g., pose and / or location) for movement and / or actuation, a movement and / or actuation speed, a movement and / or actuation direction, an amount of time to move and / or actuate, and / or one or more other characteristics of movement and / or actuation. In some embodiments, control signal 200-18A and energy source 200-18B are the same signal and / or input. Insome embodiments, one or more additional components (e.g., mechanical and / or electric) are coupled (e.g., removably or permanently) to actuator 200-18 for affecting movement and / or actuation (e.g., mechanical linkage such as gears, a lead screw, and / or one or more other components for changing a characteristic of movement and / or actuation) . In some embodiments, actuator 200-18 includes one or more feedback components (e.g., encoder, overcurrent sensor, position sensor, and / or force sensor) that form part of a feedback loop for monitoring, controlling, modifying, and / or ceasing movement and / or actuation (e.g., slowing actuation as a goal position is reached and / or ceasing actuation if physical resistance to actuation is detected via a sensor) . In some embodiments, the one or more feedback components are included (e.g., partially and / or wholly) in a movement controller (e.g., movement controller 200-17 of FIG. 3) operatively coupled to the actuator.
[0126] Attention is now turned to functionality (e.g., features and / or capabilities) of one or more devices, such as computer system 100, device 168, and / or device 200. One such functionality is implementing a "software object," which can alternatively be referred to as an agent, a virtual assistant, an intelligent virtual assistant, a software agent, an interactive virtual assistant, a personal assistant, an intelligent personal assistant, a virtual agent, an interactive personal assistant, an intelligent interactive personal assistant, and / or an artificial intelligence ("Al") assistant. In some embodiments, a system software object is a software object provided by an operating system (e.g., of a device and / or a computer system) . In some embodiments, an application software object is a software object provided by an application.
[0127] In some embodiments, a user is (and / or represents, includes, and / or is included in) one or more of a subject, person, animal, and / or object in an environment (e.g., a physical and / or virtual environment) , such as an environment of the device. In some embodiments, a user is (and / or represents, includes, and / or is included in) an entity that is perceived (e.g., detected by the device, one or more other devices, and / or one or more components thereof) . In some embodiments, an entity is something that is distinguished from surrounding entities (e.g., pieces of environments and / or other users) and / or that is considered as a discrete logical construct via one or more components (e.g., perception components and / or other components) . In some embodiments, a user is physical. For example, a physical user can represent a user standing in front of, and being perceived by, the device. In some embodiments, a user is virtual. For example, a virtual user can represent an avatar in a virtual scene perceived by the device (e.g., the avatar is detected in a media stream received by the device and / or captured by a camera of the device) . Although presented above as examples of a "user," the terms and / or concepts referred to as "subject," "person," "animal," and / or "object" can be interchanged with "user" throughout this disclosure, unless explicitly indicated otherwise. For example, use the term "user" can likewise be understood to also refer to "user, " unless explicitly indicated otherwise. In some embodiments, a software object refers to a set of one or more functions implemented in hardware and / or software (e.g., locally and / or remotely) on a software system (e.g., a single device and / or multiple devices) .
[0128] As an example, with reference to FIGS. 2A-2C, a software object implemented at least partially on device 200 can perform operations that cause display portion 200-1 ofdevice 200 to move with respect to base portion 200-2. For example, the software object detects (e.g., perceives and determines the occurrence of) a context that includes the user standing up (e.g., based on facial detection and tracking) . In this example, in response to detecting the context that includes the user standing up, the software object causes device 200 to open and / or device 200 opens display portion 200-1 to the larger angle. As another example, the software object can detect verbal input that corresponds to (e.g., is interpreted as and / or that refers to an operation that includes) a request to move the display (e.g., "Please enter sleep mode" or "Please move my display") . In this example, in response to detecting the verbal input that corresponds to the request to move the display, the software object causes device 200 to move and / or device 200 moves display portion 200-1. In some embodiments, a software object performs operations to perceive an environment, interact with users, learn skills, retrieve knowledge, acquire knowledge, and / or perform tasks. The software object can, for example, perform these and / or other operations in response to user input and / or automatically (e.g., at an appropriate time determined based on a perceived context) .
[0129] FIG. 5 illustrates a functional diagram of an exemplary software system 200-20. As illustrated in FIG. 5, software system 200-20 is illustrated as a box with a boundary that encloses input devices 200-22, software object components 200- 24, and output devices 200-26. In some embodiments, software system 200-20 includes more, fewer, and / or different components than those that are illustrated in FIG. 5. In some embodiments, software system 200-20 is implemented on a single device (e.g., computer system 100, device 168, or device 200) . In some embodiments, software system 200-20 is implemented on multiple devices. In some embodiments, one or more componentsof software system 200-20 illustrated in and / or described with respect to FIG. 5 are external to but operatively coupled to software system 200-20 (e.g., an external device, an external sensor, an external actuator, an external display component, an external speaker, an accessory, and / or an external database) . In some embodiments, one or more components of software system 200-20 are local to one or more other components of software system 200-20. In some embodiments, one or more components of software system 200-20 are remote from one or more other components of software system 200-20.Examples of operations for and / or with which a software object can be used include providing intelligent interaction capabilities (e.g., due to in part to one or more machinelearning ("ML") models such as a large language model ("LLM") ) for responding and / or causing operations to be performed; performing tasks (e.g., a set of operations for achieving a particular goal) (e.g., automatically and / or intelligently) detecting, recognizing, and / or classifying a user in the environment; detecting and / or responding to input (e.g., air gestures, verbal input, and / or physical input, such as touch input and / or force inputs to physical hardware components (e.g., knobs, button, and / or sliders) ) ; tracking a user's face, eyes, and / or body (e.g., to move with the user and / or identify an activity and / or intent of the user) ; detecting context (e.g., user context, environmental context, and / or operating context) ; moving (e.g., changing location, position, orientation, and / or pose) ; and / or performing one or more operations in response to input, context, and / or stimulus (e.g., an object or event that is external and / or internal to the device and that causes one or more responsive operations by a device) . The preceding list is meant to be illustrative of operations that can be performed using a software object but is not meant to be an exhaustive list. It should berecognized that other operations fall within the intended scope of the capabilities of a software object.
[0130] In some embodiments, input devices 200-22 includes components for performing sensing and / or communications functions of software system 200-20. As illustrated in FIG. 5, input devices 200-22 includes one or more sensors 200-22A. One or more sensors 200-22A can include any component that functions to detect data corresponding to a physical environment. Examples of one or more sensors 200-22A include a contact sensor, a camera, a light sensor, a microphone, an accelerometer, a position sensor, a pressure sensor, a temperature sensor, and / or an olfactory sensor. This list is not intended to be exhaustive, and one or more sensors 200-22A can include other sensors not explicitly identified herein that detect, generate, and / or otherwise provide data that can be used (e.g., stored, processed, and / or transformed) for detecting data corresponding to a physical environment. As illustrated in FIG. 5, input devices 200-22 includes one or more communications components 200-22B. One or more communications components 200-22B can include any component that functions to send and / or receive communications (e.g., a network interface component, an antenna, an encoder, a decoder, a modem, and / or a communication protocol stack) internal and / or external to software system 200-20. Communications components 200-22B can be between different devices and / or between components of the same device. The communications can include control signals and / or data (e.g., instructions, files, application data, messages, and / or media streams) . In some embodiments, input devices 200-22 includes more, fewer, and / or different components than those illustrated in FIG. 5. In some embodiments, input devices 200- 22 are implemented in hardware and / or software. In some embodiments, a software object performs operations in responseto non-contact inputs, such as air gestures and / or natural language commands.
[0131] In some embodiments, software object components 200-24 includes components that manage and / or carry out functions of a software object of software system 200-20. As illustrated in FIG. 5, software object components 200-24 includes the following functional components: coordination, task flow, and / or orchestration component 200-24A, administration component 200-24B, perception component 200-24C, evaluation component 200-24D, interaction component 200-24E, policy and decision component 200-24F, knowledge component 200-24G, learning component 200-24H, models component 200-241, and APIs component 200-24J. Each of these components is described herein. Notably, this list of software object components 200- 24 is not intended to be exhaustive, and software object components 200-24 can include other functional components not explicitly identified herein that can be used (e.g., processed, stored, and / or transformed) for performing any function of a software object, such as those described herein. In some embodiments, software object components 200-24 includes more, fewer, and / or different components than those illustrated in FIG. 5. In some embodiments, software object components 200-24 is implemented in hardware and / or software.
[0132] In some embodiments, task flow, coordination, and / or orchestration component 200-24A performs operations that enable a software object to handle coordination between various components. For example, operations can include handling a data processing task flow to move from perception component 200-24C (e.g., that detects speech input) to models component 200-241 (e.g., for processing the detected speech input using a large language model to determine content and / or intent of the speech input) . In some embodiments, task flow, coordination, and / or orchestration component 200-24A performsoperations that enable a software object to handle coordination between one or more external components (e.g., resources) . For example, FIG. 5 illustrates examples of external components, such as external database 200-30. In some embodiments, administration component 200-24B includes functionality performed by an operating system of a device implementing software system 200-20. In some embodiments, administration component 200-24B includes functionality performed by one or more applications of a device implementing software system 200-20.
[0133] In some embodiments, administration component 200-24B performs operations that enable a software system to handle administrative tasks like managing system and / or component updates, managing user accounts, managing system settings, and / or managing component settings. In some embodiments, administration component 200-24B includes functionality performed by an operating system of a device implementing software system 200-20. In some embodiments, administration component 200-24B includes functionality performed by one or more applications of a device implementing software system 200-20.
[0134] In some embodiments, perception component 200-24C performs operations that enable a software object to perceive environmental input. For example, operations can include detecting that a context and / or environmental condition has occurred, detecting the presence of a user (e.g., subject, person, animal, and / or object in an environment) , detecting characteristics (e.g., visible and / or non-visible) of a user, detecting an input that includes speech, detecting an input that includes an air gesture, detecting facial expressions, and / or detecting verbal and / or physical cues. In some embodiments, perception component 200-24C includes functionality performed by an operating system of a deviceimplementing software system 200-20. In some embodiments, perception component 200-24C includes functionality performed by one or more applications of a device implementing software system 200-20.
[0135] In some embodiments, evaluation component 200-24D performs operations that enable a software object to process evaluate data (e.g., to determine a context such as an environmental context, a user context, and / or an operating context) . For example, operations can include evaluating data gathered from perception component 200-24C, knowledge component 200-24G, external database 200-30, and / or remote processing resource 200-32. In some embodiments, evaluation component 200-24D includes functionality performed by an operating system of a device implementing software system 200- 20. In some embodiments, evaluation component 200-24D includes functionality performed by one or more applications of a device implementing software system 200-20.
[0136] Refe rence is made herein to environmental context (also referred to herein as a "context of an environment" and / or "a context corresponding to an environment") . In some embodiments, an environmental context is a context based on one or more characteristics of the environment (e.g., users, time, weather, locations, and / or lighting) . For example, an environmental context can include that it is daytime, that it is raining outside, and / or that a device is currently located in a park. In some embodiments, a device (e.g., using a software object) determines an environmental context (e.g., to be currently true, applicable, and / or occurring) using one or more of detecting input (e.g., via one or more input devices) and / or receiving data (e.g., from one or more other devices and / or components in communication with the device) .
[0137] Reference is made herein to user context (also referred to herein as a "context of a user" and / or "a context corresponding to a user") (and / or a user context) . In some embodiments, a user context is a context based on one or more characteristics of the user (and / or a user) . For example, a user context can include the user's appearance and / or actions, behavior, movement, clothing, personality, location, and / or pose. In some embodiments, a device (e.g., using a software object) determines a user context (e.g., to be currently true, applicable, and / or occurring) using one or more of detecting input (e.g., via one or more input devices) and / or receiving data (e.g., from one or more other devices and / or components in communication with the device) . In some embodiments, a device determines user context based on historical context and / or learned characteristics of the user, where one or more characteristics of the user are learned and / or stored over a period of time by the device.
[0138] Refe rence is made herein to operational context (also referred to herein as a "context of operation" and / or an "operating context") . In some embodiments, an operational context is a context based on one or more characteristics of the operation of a device (e.g., the device determining and / or accessing the operational context and / or one or more other devices) . For example, an operational context can include the state of the device (and / or of one or more components of the device) , an internal dialogue of the device (e.g., the device's understanding of a context) , operations being performed by the device, applications and / processes that are executing (e.g., open and / or running) on the device. In some embodiments, a device (e.g., using a software object) determines an operational context (e.g., to be currently true, applicable, and / or occurring) using one or more of detecting input (e.g., via one or more input devices) and / or receivingdata (e.g., from one or more other devices and / or components in communication with the device) . In some embodiments, a device (e.g., using a software object) determines an operational context (e.g., to be currently true, applicable, and / or occurring) using one or more states (e.g., retrieved, accessed, and / or queried by a process of the device) .
[0139] In some embodiments, interaction component 200-24E performs operations that enable a software object to manage and / or perform interactions with users. For example, operations can include determining an appropriate interaction model for a particular context and / or in response to a particular input. In some embodiments, interaction component 200-24E includes functionality performed by an operating system of a device implementing software system 200-20. In some embodiments, interaction component 200-24E includes functionality performed by one or more applications of a device implementing software system 200-20.
[0140] In some embodiments, policy and decision component 200- 24F performs operations that enable a software object to take actions in view of available data. For example, operations can include determining which operations to perform and / or which functional components to utilize in response to a detected context. In some embodiments, policy and decision component 200-24F includes functionality performed by an operating system of a device implementing software system 200-20. In some embodiments, policy and decision component 200-24F includes functionality performed by one or more applications of a device implementing software system 200-20.
[0141] In some embodiments, knowledge component 200-24G performs operations that enable a software object to access and use stored knowledge. For example, operations can include indexing, storing, and / or retrieving data from a database, adata store, and / or other resource. In some embodiments, knowledge component 200-24G includes functionality performed by an operating system of a device implementing software system 200-20. In some embodiments, knowledge component 200- 24G includes functionality performed by one or more applications of a device implementing software system 200-20.
[0142] In some embodiments, learning component 200-24H performs operations that enable a software object to learn through experiences. For example, operations can include observing and / or keeping track of data that includes user characteristics, routines, preferences, and / or environmental characteristics in a manner that allows such data to be used to inform future operations by the software object and / or a component thereof (e.g., such as when performing tasks and / or interactions with users) . In some embodiments, learning component 200-24H includes functionality performed by an operating system of a device implementing software system 200- 20. In some embodiments, learning component 200-24H includes functionality performed by one or more applications of a device implementing software system 200-20.
[0143] In some embodiments, models component 200-241 performs operations that enable a software object to apply ML models (e.g., such as a large language model or "LLM") to process data. For example, operations can include executing ML models, storing ML models, training and / or re-training ML models, and / or otherwise managing aspects of implementing ML models. In some embodiments, models component 200-241 includes functionality performed by an operating system of a device implementing software system 200-20. In some embodiments, models component 200-241 includes functionality performed by one or more applications of a device implementing software system 200-20.
[0144] In some embodiments, software system 200-20 responds to natural language input. For example, software system 200-20 responds to a natural language input that is in the form of a question, a command, a statement, and / or a request. In some embodiments, software system 200-20 outputs text and / or speech output that is provided in a natural language or mimicking a natural language style. For example, software system 200-20 can process the natural language question "How hot is it outside?" with a speech response that indicates the current temperature outside at the user's location (e.g., "It is 18 degrees outside") . In some embodiments, software system 200-20 responds to natural language input by providing information (e.g., travel, weather, and / or calendar information) and / or performing a task (e.g., searching a database, opening a document, and / or opening an application) .
[0145] In some embodiments, software system 200-20 includes and / or relies on one or more data models to process input (e.g., natural language input, visual input, gesture input, and / or other data input) and / or provide output (e.g., output of information via visual output, audio output, natural language output, and / or textual output) . Such data models can include and / or be trained using user data (e.g., based on particular interactions and / or data from the user being interacted with) and / or global data (e.g., general data based on interactions and / or data from many users) . For example, user data (e.g., previous use of language and / or phrases, preferences, calendar entries, a contact list, and / or activity data) can be used to better infer user intent and / or provide responses that are more likely to address a user's request. In some embodiments, data models used by software system 200-20 include, are used by, and / or are implemented using one or more machine-learning components (e.g., hardware, software, and / or one or more neural networks) . Such machine-learning componentscan be used to process verbal input to determine words and / or phrases therein, a user intent corresponding to the words, one or more contexts that correspond to the words, one or more confidence scores, and / or a set of one or more actions to take in response to the verbal input. Analogous operations can be performed to process other types of inputs, such as data input, visual input, and / or textual input. Such data models can include machine-learning and / or data-processing models, including, but not limited to, language models, speech recognition models, natural language processing models, object recognition models, visual processing models, ontologies, task flow models, and / or intent recognition models (e.g., used to determine user intent) .
[0146] In some embodiments, Application Programming Interfaces (APIs) component 200-24J performs operations that enable a software object to interface with services, devices, and / or components. For example, operations can include relaying data (e.g., responses, requests, and / or other messages) between data interfaces (e.g., between software programs, between a system process and application process, between system processes, between application processes, between communication protocols, between a client and a server, between file systems, and / or between components on different sides of a trust boundary) . In some embodiments, the data interfaces served by APIs component 200-24J are local (e.g., to the device, such as two application processes exchanging data) and / or remote (e.g., from the device, such as interfacing with a web service via a remote server) . In some embodiments, APIs component 200-24J includes functionality performed by an operating system of a device implementing software system 200-20. In some embodiments, APIs component 200-24J includes functionality performed by one or more applications of a device implementing software system 200-20.
[0147] In some embodiments, output devices 200-26 includes components for performing output functions of software system 200-20. The exemplary output devices illustrated in FIG. 5 are described briefly below. In some embodiments, output devices 200-26 include fewer components, more, and / or different components than those illustrated in FIG. 5. In some embodiments, output devices 200-26 are implemented in hardware and / or software.
[0148] As illustrated in FIG. 5, output devices 200-26 includes one or more visual output devices 200-26A. One or more visual output devices 200-26A can include any component that functions to output (e.g., create, generate, and / or display) , and / or cause output of, a visual output (e.g., an output that is visually perceptible, such as playback of visual media content, a graphical user interface, and / or lighting) . Examples of one or more visual output devices 200- 26A include a display component, a light-emitting diode ("LED") , a projector, a head mounted display ("HMD") , and / or a component that creates visually perceptible effects (e.g., movement) . This list is not intended to be exhaustive, and one or more visual output devices 200-26A can include other visual output devices not explicitly identified herein that detect, generate, and / or otherwise provide data that can be used (e.g., stored, processed, and / or transformed) for outputting visual output.
[0149] As illustrated in FIG. 5, output devices 200-26 include one or more audio output devices 200-26B. One or more audio output devices 200-26B can include any component that functions to output (e.g., create and / or generate) , and / or cause output of, an audio output (e.g., an output that is audibly perceptible, such as a sound, speech, music, and / or audio media content) . Examples of one or more audio output devices 200-26B include a speaker, a tone generator, an audioamplifier, and / or a component that creates audibly perceptible effects (e.g., movement such as vibrations) . This list is not intended to be exhaustive, and one or more audio output devices 200-26B can include other audio output devices not explicitly identified herein that generate, detect, and / or otherwise provide data that can be used (e.g., stored, processed, and / or transformed) for outputting audio output.
[0150] As illustrated in FIG. 5, output devices 200-26 include one or more movement output devices 200-26C (also referred to herein as a "movement component") . One or more movement output devices 200-26C can include any component that functions to output (e.g., create and / or generate) , and / or cause output of, a movement output (e.g., an output that includes physical movement of the device and / or another device / component ) . Examples of one or more movement output devices 200-26C include a movement controller, an electromechanical device, an actuator, a mechanical linkage, and / or a component that creates physical movement. This list is not intended to be exhaustive, and one or more movement output devices 200-26C can include other movement output devices not explicitly identified herein that detect, generate, and / or otherwise provide data that can be used (e.g., stored, processed, and / or transformed) for outputting movement output. As illustrated in FIG. 5, output devices 200-26 include one or more haptic output devices 200-26D. One or more haptic output devices 200- 26D can include any component that functions to output (e.g., create, generate, and / or display) , and / or cause output of, a haptic output (e.g., an output that is physically perceptible using tactile sensation, such as a vibration, pressure, texture, and / or shape) . Examples of one or more haptic output devices 200-26D include a speaker, a component that generates vibrations, a component that generates pressure changes, a component that generates texture changes, and / or a componentthat creates perceivable tactile effects. This list is not intended to be exhaustive, and one or more haptic output devices 200-26D can include other haptic output devices not explicitly identified herein that detect, generate, and / or otherwise provide data that can be used (e.g., stored, processed, and / or transformed) for outputting haptic output.
[0151] As illustrated in FIG. 5, output devices 200-26 include one or more communications components 200-26E. One or more communications components 200-26E can include any component that functions to send and / or receive communications (e.g., a network interface component, an antenna, an encoder, a decoder, a modem, and / or a communication protocol stack) internal and / or external to software system 200-20. In some embodiments, the communications can be between different devices and / or between components of the same device. In some embodiments, the communications can include control signals and / or data (e.g., instructions, files, application data, messages, and / or media streams) . In some embodiments, one or more communications components 200-26E includes one or more features of one or more communications components 200-22B (e.g., as described herein) . In some embodiments, one or more communications components 200-26E are the same as one or more communications components 200-22B (e.g., one or more components that handle communication inputs and outputs and thus be considered as either and / or both an input device and an output device) .
[0152] Fo r the purposes of this disclosure, a software object does not need to include all of the functionality mentioned herein but rather can include less functionality or more functionality. For example, a software object can be implemented on a software system that does not have movement functionality but that otherwise includes an intelligent personal assistant that can interact with a user.
[0153] Throughout this disclosure, reference can be made to movement output (e.g., referred to in various forms, such as movement, output of movement, device movement, movement output, output of motion, device motion, and / or motion output) . In some embodiments, outputting (e.g., causing output of) movement refers to movement of an electronic device (e.g., a portion or component thereof relative to another portion and / or of the whole electronic device) . For example, referring back to FIG. 2B, movement output can refer to device 200 actuating movement component 200-3 to move display portion 200-1 to the position illustrated in FIG. 2B (e.g., from the position in FIG. 2A) . In some embodiments, movement output is not (e.g., does not include and / or does not only include) haptic output (e.g., haptic movement output) . In some embodiments, movement output is not (e.g., does not include and / or does not only include) vibration output. In some embodiments, movement output is not (e.g., does not include and / or does not only include) oscillating movement (e.g., movement of an actuator that merely causes vibration by moving a component repeatedly along a path that is internal to the device) . In some embodiments, movement output includes (e.g., requires and / or results in) changing a location and / or pose of at least a portion of (and / or the entirety of) a component or the electronic device. In some embodiments, movement output includes output that moves at least a portion of (and / or the entirety of) a component or the electronic device from a first location and / or first pose to a second location and / or second pose. For example, with respect to FIGS. 2A-2C, display portion 200-1 is shown in a different location (e.g., in space) and pose (e.g., relative to base portion 200-2) in each of FIGS. 2A, 2B, and 2C. In some embodiments, movement output includes output that moves at least a portion (and / or the entirety of) a component or the electronic device to a third location and / or third pose (e.g., from the first locationand / or first pose and / or from the second location and / or the second pose) . In some embodiments, the third location and / or the third pose is the same as the first location and / or first pose and / or as the second location and / or the second pose. For example, movement output can include device 200 in FIG. 2A beginning from the first position illustrated in FIG. 2A, moving to the second position illustrated in FIG. 2B, and moving to return to the first position illustrated in FIG. 2A. For example, movement output can include device 200 in FIG. 2A beginning from the first position illustrated in FIG. 2A, moving to the second position illustrated in FIG. 2B, and continuing movement to come to rest at the third position illustrated in FIG. 2C.
[0154] Throughout this disclosure, an electronic device can be illustrated in (and / or described as being in) different locations and / or poses at different times. For example, in FIG. 2A illustrates device 200 in the first position, FIG. 2B illustrates device 200 in the second position, and FIG. 2A illustrates device 200 in the third position. In some embodiments, the electronic device moves itself between such locations and / or poses (e.g., using movement output) . For example, device 200 moves from the first position to the second position under its own power (e.g., using a power source and one or more actuators to cause movement) . In particular, any example herein that illustrates and / or describes an electronic device being at different locations and / or poses (e.g., at different times) should be understood to cover a scenario in which the device moved itself between such locations and / or poses (e.g., unless otherwise clearly indicated) .
[0155] Throughout this disclosure, reference can be made to "causing output," "performing output," and / or "outputting" (e.g., by one or more output generation devices and / or by oneor more output generation components) . In some embodiments, outputting (e.g., or the aforementioned variants) includes (and / or is) outputting movement (e.g., movement output as described herein) .
[0156] Throughout this disclosure, reference can be made to "causing display of," "displaying," and / or "outputting visual content" (e.g., by one or more display components) . In some embodiments, displaying (e.g., or the aforementioned variants) includes displaying visual content in connection with outputting movement (e.g., movement output as described herein) .
[0157] Throughout this disclosure, reference can be made to "causing output of audio," "outputting audio," and / or "providing audio output" (e.g., by one or more audio generation components and / or by one or more audio output devices) . In some embodiments, outputting audio (e.g., or the aforementioned variants) includes outputting audio content in connection with outputting movement (e.g., movement output as described herein) .
[0158] Throughout this disclosure, reference can be made to movement of an avatar (or other representation of a user, a software object, and / or a character that is displayed) (e.g., by one or more display components) . In some embodiments, moving an avatar (e.g., or the aforementioned variants) includes displaying movement of visual content in connection with outputting movement (e.g., movement output as described herein) . For example, displaying an avatar nodding in agreement can include movement of the electronic device in a similar manner as the avatar movement (e.g., mimicking nodding) . In some embodiments, moving an avatar (e.g., or the aforementioned variants) includes outputting movement (e.g., movement output as described herein) without displayingmovement of visual content. For example, a device can perform movement output that mimics nodding without moving a displayed avatar (e.g., the avatar does not move relative to the display) . As illustrated in FIG. 5, software system 200-20 can optionally interface with external components such as external database 200-30, remote processing component 200-32, and / or remote administration component 200-34. In some embodiments, external database 200-30 represents one or more functions that provide data storage resources accessible to software system 200-20. In some embodiments, access to the data of external database 200-30 is provided directly to software system 200-20 (e.g., the software system manages the database) and / or indirectly to software system 200-20 (e.g., a database is managed by a different system, but data stored therein can be provided and / or stored for use by software system 200-20) . In some embodiments, external database 200-30 is dedicated to (e.g., only for use by) software system 200-20, is not dedicated to software system 200-20 (e.g., is a database of a web service accessible to different software systems) , and / or is a combination of both dedicated and non-dedicated database resources. In some embodiments, remote processing component 200-32 represents one or more components that function as a data processing resource that is accessible to software system 200-20. In some embodiments, access to remote processing component 200-32 is provided directly to software system 200- 20 (e.g., the software system manages the processing resources) and / or indirectly to software system 200-20 (e.g., a processing resource managed by a different system, but that can provide data processing for the benefit of software system 200-20) . In some embodiments, remote processing component 200- 32 is dedicated to (e.g., only for use by) software system 200-20, is not dedicated to software system 200-20 (e.g., is a processing resource of a web service accessible to different software systems) , and / or is a combination of both dedicatedand non-dedicated processing resources. Examples of data processing include processing image data (e.g., for feature extraction and / or object detection) , processing audio data (e.g., for processing natural language speech input via a large language model) , and / or training a machine-learning algorithm and / or model. In some embodiments, remote administration component 200-34 represents functions that include and / or are related to administrative functions. For example, such administrative functions can include providing component updates to software system 200-20 (e.g., software and / or firmware updates) , managing accounts (e.g., permissions, access control, and / or preferences associated therewith) , synchronizing between different software systems and / or components thereof (e.g., such that a software object accessible via multiple devices of a user can provide a consistent user experience between such devices) , managing cooperation with other services and / or software systems, error reporting, managing backup resources to maintain software system reliability and / or software object availability, and / or other functions required by software system 200-20 to perform operations, such as those described herein.
[0159] The various components of software system 200-20 described above with respect to FIG. 5 represent functional blocks that represent functionality. This functionality can be implemented on the same and / or different hardware (e.g., physical components) and / or by the same and / or different software. For example, the functional blocks can be implemented using one or more physical components, devices (e.g., computer system 100, device 168, and / or device 200) , and / or software programs. In other words, each functional block does not necessarily represent a single, discrete physical component, device, and / or software program, but can be implemented using one or more of these. Further, softwaresystem 200-20 can include multiple implementations of functionality represented by a respective functional block. For example, software system 200-20 can include multiple different model components representing ML models that are used in different contexts, can include multiple different API components representing different APIs that are used for different services, and / or can include multiple different visual output devices that are used for outputting different types of visual output.
[0160] Attention is now turned to discussion of concepts that can arise with respect to operation of a software object.
[0161] As discussed throughout, a software object can be capable of interacting with a user. In some embodiments, this capability includes the ability to process explicit requests, commands, and / or statements. In some embodiments, explicit requests, commands, and / or statements include and / or are interpreted as instructions directed to accomplishing a task (e.g., display X, complete task Y, and / or perform operation Z) . In some embodiments, a software object includes the ability to process implicit requests, commands, and / or statements. In some embodiments, an implicit command, request, and / or statement does not include an explicit command, request, and / or statement. For example, "I like going to Africa," can be interpreted as an implicit command, request, and / or statement which, in response to detecting, device 200 displays an itinerary in response to the statement. As another example, "This picture is for my grandmother," can be interpreted as an implicit command, request, and / or statement which, in response to detecting, device 200 displays suggestions for modifying the picture. As another example, "I'm so tired," can be interpreted as an implicit command, request, and / or statement which, in response to detecting, device 200 causes a sleep meditation application to begin ameditation session. As yet another example, "I miss my grandad" can be interpreted as an implicit command, request, and / or statement when, in response to detecting, device 200 can initiate a live communication session (e.g., video call, telephone call, and / or text messaging session) with grandad. In some embodiments, an implicit request is more likely to be processed according to one or more current environmental context, operational context, and / or user context, while an explicit request is less likely to be processed according to one or more current environmental context, operational context, and / or user context. For example, the phrase, "call my grandad," can be an explicit request, and in response to detecting the request, device 200 will initiate a live communication session with grandad, irrespective of one or more current environmental context, operational context, and / or user context. However, the phrase, "I miss my grandad," can be an implicit request, and in response to detecting the request, device 200 can display a list of gifts to buy for grandad if a user has been recently talking about buying gifts or could call grandad in another context that does not include the user recently discussing buying gifts. In some embodiments, a request can include one or more explicit requests and one or more implicit requests. In some embodiments, an implicit request is responded to independently from an explicit request, and in other embodiments, a response to an implicit request is dependent on an explicit request.
[0162] Refe rence can be made herein to a response by a software object that is output by a device. In some embodiments, a response includes an audio portion (e.g., audio output, sound, acoustic output, and / or speech) (also referred to herein as a "verbal response," an "audio response," and / or an "acoustic response) and / or a visual portion (e.g., display and / or movement of a representation and / or avatar) . In someembodiments, a response includes a movement portion (e.g., movement of the device) . In some embodiments, a response includes a haptic portion (e.g., touch and / or vibration) .
[0163] Reference can be made herein to an internal context, internal dialogue, and / or an operational context, which can refer to a dynamic context or dynamic decision-making process of the device, a state of device 200, and / or internal data on which the device is partially basing its decision. In some embodiments, an internal dialogue includes a set of one or more rules, detections, characteristics, and / or observations that the computer system uses to generate a response to one or more commands, questions, and / or statements) . In some embodiments, the set of one or more rules, detections, characteristics, and / or observations are learned and / or generated via deep learning and / or one or more machinelearning algorithms, and / or using one or more machine-learning and / or system software objects. In some embodiments, an internal dialogue is generated in real-time. In some embodiments, an internal dialogue is locally stored and / or stored via the cloud. In some embodiments, an internal dialogue can be modified, updated, and / or deleted. In some embodiments, an internal dialogue is generated based on other internal dialogues.
[0164] Reference can be made herein to personality and / or behavior (or a representation of personality / behavior ) (e.g., of a software object, user, and / or character) . In some embodiments, personality and / or behavior refers to a set of one or more characteristics that the device detects, applies, has knowledge of, conforms to, and / or tracks. In some embodiments, the personality or behavior is used as basis to perform operations. For example, a software object can detect a user' s personality and respond in a manner based on the personality (e.g., output different responses in response todifferent user personalities) . As another example, the software object can output a response having characteristics that correspond to one or more characteristics that correspond to the personality and / or behavior (e.g., output a response in different ways that depend on personality of the software object) . In some embodiments, such characteristics represent and / or mimic personality of a user, such as how the user acts and / or speaks. In some embodiments, such characteristics approximate a user's personality.
[0165] In some embodiments, a software object is a system software object. In some embodiments, a system software object is a software object that corresponds to a process that originates from and / or is controlled by an operating system of the device (e.g., the device implementing the software object) . In some embodiments, a software object is an application software object. In some embodiments, an application software object is a software object that corresponds to a process that originates from and / or is controlled by an application of (e.g., installed on and / or executed by) the device (e.g., the device implementing the software object) .
[0166] Reference can be made herein to a representation (e.g., an avatar and / or avatar representation) of a software object (and / or of a user, subject, person, animal, and / or object) and / or a user interface object (e.g., an animated character) . In some embodiments, a representation of a software object refers to a set of output characteristics (e.g., visual and / or audio) of the software object (and / or the user and / or the user interface object) . For example, a representation of a software object can include (and / or correspond to) a set of one or more visual characteristics (e.g., facial features of an animated face) and / or one or more audio characteristics (e.g., language and voice characteristics of audio output) . In someembodiments, a representation (e.g., of a software object) is used to represent output by the software object. For example, a device implementing an interactive software object outputs audio in a voice of the software object and displays an animated face of the software object moving in a manner to simulate the software object speaking the audio output. In this way, a user can feel like they are having a normal conversation with the software object. In some embodiments, a representation of a software object is (or is not) inclusive of personality and / or behavior characteristics (e.g., as described herein) . For example, a representation of a software object can include (and / or correspond to) a set of visual characteristics (e.g., facial features of an animated face) and also a set of personality characteristics. In some embodiments, a representation of a software object includes a set of user characteristics that correspond to visual representation of a user (e.g., representations of a user's appearance, voice, and / or personality are used as an avatar that appears to move and / or speak) . In some embodiments, a representation is a representation of a face (e.g., a user interface object that is output having features that simulate a face and / or facial expressions of a person (e.g., for conveying information to a viewer) ) .
[0167] In some embodiments, a character (e.g., of a software object and / or avatar) refers to a particular set of characteristics of a representation. For example, an avatar can take on (e.g., use, interact with, apply, and / or output according to) characteristics of a fictional and / or non- fictional character (e.g., from a book, a show, a movie, a series, and / or popular culture) .
[0168] In some embodiments, a voice (e.g., of a software object and / or avatar) refers to a set of one or more characteristics corresponding to sound output that resembles(e.g., represents, mimics, and / or recreates) vocal utterance (e.g., attributable and / or simulated as being output by a software object and / or avatar) . For example, device 200 can output a sentence that sounds different depending on a voice used. In some embodiments, a particular character and / or avatar can be configured to use a particular voice (e.g., have a corresponding voice) . In some embodiments, the particular voice can mimic a user's voice.
[0169] In some embodiments, an appearance (e.g., of a software object and / or avatar) refers to a set of one or more characteristics corresponding to visual output that represents an avatar (and / or a software object) . For example, device 200 can output an avatar that has a set of facial features forming an appearance that resembles a particular character from a movie .
[0170] In some embodiments, an expression of an avatar refers to a set of one or more characteristics corresponding to a particular visual appearance of a user, an avatar, and / or a software object. For example, device 200 can output an avatar that has a set of facial features arranged in a particular way to give the appearance of a facial expression (e.g., which can be used as a form of non-verbal communication to a user)(e.g., a frown is an expression of sadness, a smile is an expression of happiness, and / or wide open eyes is an expression of surprise) . As another example, device 200 can output an avatar that has a set of body features (e.g., arms and / or legs) arranged in a particular way to give the appearance of a body expression (e.g., which can be used as a form of non-verbal communication to a user) (e.g., a hand gesture is an expression of approval, covering eyes is an expression of fear, and / or shrugging shoulders is an expression of lack of knowledge) . In some embodiments, an expression includes movement (e.g., a head nod is anexpression of agreement and / or disagreement) of the avatar. In some embodiments, device 200 can move, via the movement component, to indicate an expression with or without the avatar moving. In some embodiments, a software object performs one or more operations that depend on a user' s expression (e.g., detects if a person is sad and responds with a kind statement or question) . In some embodiments, expressions (e.g., whether and / or how they are used and / or how they are output) depends on personality. For example, a first personality can use a particular expression more than a second personality. As another example, an expression (e.g., smile, frown, and / or how wide eyes are opened) for the first personality can appear different from the expression (and / or a similar and / or equivalent expression) for a second personality (e.g., the first personality smiles in a manner that reveals teeth, but the second personality smiles without revealing teeth) .
[0171] In some embodiments, a software object (e.g., an avatar of the software object and / or a software system (e.g., hardware and / or software) implementing the software object) mimics characteristics of another user, software object, and / or character (e.g., in personality, behavior, expressions, and / or voice) . In some embodiments, mimicking includes mirroring a user (e.g., copying use of a phrase and / or movement detected from a user interacting with the software object) . In some embodiments, mimicking characteristics of a user includes attempting to reproduce the characteristics of the user (e.g., in the exact same manner and / or in manner that resembles the characteristics but is not an exact reproduction of the characteristics) . For example, a software object mimicking voice and / or expressions does not require the software object have the exact same voice and / or expressionsas the user being mimicked (e.g., but rather simply resembles the user's voice and / or expressions) .
[0172] In some embodiments, a component and / or device uses (e.g., performs operations, makes decisions, and / or determines context based on) learned characteristics (e.g., characteristics of a user, context, and / or environment that the device has learned over time, such as via detection, prior experience, and / or feedback from one or more users) . For example, characteristics learned over time can include a user's routine. In such example, if a particular user asks a software object for a summary of any new messages for the user at the same time every day, the software object can learn to perform operations automatically based on the learned characteristics of the routine (e.g., what data is needed, when the data is needed, and / or for which user) . In some embodiments, use of learned characteristics enables a software object (and / or device) to improve understanding of (and / or responses to) a user, context, and / or environment, and / or to understand a user, context, and / or environment that otherwise was not (and / or would not be) understood (e.g., not responded to or responded to incorrectly) . In some embodiments, learned characteristics are formed (e.g., by and / or for a software object) using reinforcement learning. In some embodiments, learned characteristics correspond to one or more levels of confidence, certainty, and / or reward (e.g., that are shaped by one or more reward functions) . In some embodiments, learned characteristics (and / or how they are used to affect output of a software object and / or device) can change over time (e.g., levels confidence, certainty, and / or reward change over time) . For example, output of a device before learning a set of learned characteristics can be different from output of the device after learning the set of learned characteristics. In some embodiments, a component and / or device uses learnedknowledge. For example, similar to described above with respect to learned characteristics, learned knowledge can refer to information used to update (e.g., enhance, add to, and / or augment) a knowledge base of a device (e.g., for use by a software object implemented thereon) . In some embodiments, multiple sets of learned characteristics for a user can be stored and / or used. In some embodiments, different sets of learned characteristics for different users can be stored and / or used.
[0173] Reference can be made herein to interaction with a software object (and / or a device) . In some embodiments, an interaction refers to a set of one or more inputs and / or outputs of a device implementing the software object and one or more users. For example, an interaction can be an input by a user (e.g., "Please turn on the lights") and a corresponding output (e.g., causing the lights to turn on and / or a response by the device of "Okay") . In some embodiments, interaction can include multiple inputs / outputs by one or more of the parties to the interaction (e.g., device and / or users) . For example, an interaction can include a first input by a user (e.g., "Please turn on the lights") and a corresponding first output (e.g., "Which lights?") , and also include a second input by the user (e.g., "Hallway lights") and a second output from the device (e.g., "Okay") . In some embodiments, which inputs and / or outputs are considered together as an interaction is based on a logical and / or contextual grouping (e.g., interactions within the previous thirty (30) seconds and / or interactions relating to turning on the lights) . As one of skill will appreciate, an interaction can be considered in a manner that depends on the implementation (e.g., determining when an interaction is complete can involve determining if the user still present (e.g., speaking at all) and / or if the user still talking about the lights or has moved onto a differenttopic) . In some embodiments, an interaction is a current interaction (e.g., ongoing, presently occurring, and / or active) . In some embodiments, an interaction is a previous interaction. The examples above describe a device having a conversation with a user. In some embodiments, a conversation is between two or more users (e.g., users in an environment) . For example, a device can detect a conversation between to users (e.g., the users are directing speech and responses to each other, rather than to the device) .
[0174] In some embodiments, a software object (and / or device) determines and / or performs an operation based on an intent corresponding to a user. For example, a device detects user input and outputs a response that depends on an intent of the user input. For example, a device detects user input that includes a pointing gesture detected together with verbal instruction to "turn on that light," and in response, the device turns on the light that is determined to correspond to the intent of the input (e.g., the light toward which the pointing gesture directed) . In some embodiments, intent is determined (e.g., by the device that detects input and / or by one or more other devices) using one or more of one or more inputs, knowledge (e.g., learned knowledge about a user based on a history of observed behavior, personality, and interactions) , learned characteristics, and / or context. In some embodiments, intent is determined from one or more types of input (e.g., visual input via a camera, verbal input, and / or contextual input) .
[0175] Attention is now directed towards embodiments of user interfaces ("UI") and associated processes that are implemented on an electronic device, such as computer system100, device 168, and / or device 200.
[0176] FIGS. 6A-6E illustrate exemplary user interfaces for displaying representations of software objects in accordance with some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the processes in FIGS. 7-9. In some embodiments, such user interfaces are examples of how a person can interact with Siri.
[0177] FIGS. 6A-6E illustrate computer system 600 as a smart phone. It should be recognized that computer system 600 can be other types of computer systems such as a tablet, a smart watch, a laptop, a communal device, a smart speaker, an accessory, a personal gaming system, a desktop computer, a fitness tracking device, and / or a head-mounted display (HMD) device. In some embodiments, computer system 600 includes and / or is in communication with one or more input devices (e.g., a sensor, a camera, a lidar detector, a motion sensor, an infrared sensor, a touch-sensitive surface, a physical input mechanism (such as a button or a slider) , and / or a microphone) . Such input devices can be used to detect presence of, attention of, statements from, inputs corresponding to, requests from, and / or instructions from a user in an environment. It should be recognized that, while some embodiments described herein refer to inputs being verbal inputs, other types of inputs can be used with techniques described herein, such as touch inputs via a touch-sensitive surface and / or air gestures detected via a camera. In some embodiments, computer system 600 includes and / or is in communication with one or more output devices (e.g., a display screen, a projector, a touch-sensitive display, a speaker, and / or a movement component) . Such output devices can be used to present information and / or display visual changes caused by operation of computer system 600. In some embodiments, computer system 600 includes and / or is in communication withone or more movement components (e.g., an actuator, a moveable base, a rotatable component, and / or a rotatable base) . Such movement components, as discussed above, can be used to change a position (e.g., location and / or orientation) of computer system 600 and / or a portion (e.g., including one or more sensors, input components, and / or output components) of computer system 600. In some embodiments, computer system 600 includes one or more components and / or features described above in relation to computer system 100 and / or electronic device 200. In some embodiments, computer system 600 includes one or more software objects and / or functions of a software object as described above with respect to FIG. 5. In some embodiments, computer system 600 is, includes, implements, and / or is in communication with one or more software systems, as described above with respect to FIG. 5, for performing (and / or causing performance of) one or more operations of a software object.
[0178] FIGS. 6A-6E are split between a left portion and a right portion to illustrate a subject in a physical environment interacting with one or more software objects via computer system 600. In the examples illustrated in FIGS. 6A- 6E, the right portion illustrates a top-down schematic view of physical environment 606 that includes computer system representation 604 (e.g., representing computer system 600) and user 610 (e.g., a person interacting with computer system 600 by providing verbal inputs, such as verbal input 605a and / or verbal input 605b) . The left portion of FIGS. 6A-6E illustrates output of a display component in communication with computer system 600 (e.g. and represent what is currently being displayed by the display component, such as representation 604 in FIG. 6A) . While FIGS. 6A-6E illustrate computer system 600 displaying particular content within user interface 602, it should be recognized that such content ismerely for explanatory purposes and that such content can be in different locations, at different sizes, include different content and that more, fewer, and / or different content can be displayed in accordance with techniques described herein.
[0179] As discussed in more detail below, computer system 600 displays representation 604 to indicate that user 610 is interacting with a first software object (e.g., as described above with respect to FIG. 5) . In some embodiments, the first software object represents an interactive knowledge base (and / or a software system implementing the first software object) . In some embodiments, computer system 600 is in communication with the interactive knowledge base. In some embodiments, computer system 600 is in communication with the first software object to interact with the interactive knowledge base. In some embodiments, the interactive knowledge base is one or more artificial intelligence models. For example, the interactive knowledge base can be one or more large language models. In some embodiments, the interactive knowledge base corresponds to an application (e.g., system based and / or remotely located) and computer system 600 and / or the first software object interacts with the application-based interactive knowledge base (e.g., via an Application Programming Interface (API) ) to obtain information from, request responses from, and / or update capabilities based on the interactive knowledge base.
[0180] In some embodiments, the first software object is implemented on and / or by a local and / or remote software system. In some embodiments, the first software object includes a set of one or more (e.g., different, indicative, distinctive, unique, and / or avatar-specific) attributes (e.g., visual appearance, personality, and / or audio characteristics) such that representation 604 indicates which software object is active (e.g., that user 610 is interacting with) . Forexample, representation 604 can be different from a software object representation for another software object, so the displayed software object representation provides an indication of which software object is currently interacting with a user of computer system 600. In some embodiments, different software objects can have different capabilities. In some embodiments, a request made to a software object that is not capable of handling the request results in computer system 600 initiating a process for transitioning to another software object (e.g., handover to another software object that can perform the request) . For example, the other software object can have a software object representation that differs in appearance (and / or other attributes) from the software object that received the request.
[0181] In some embodiments, computer system 600 performs determinations using an interactive knowledge base. For example, computer system 600 can determine steps to perform a task requested by user 610. For another example, computer system 600 can query and / or request that the first software object perform a determination for computer system 600. While FIGS. 6A-6E illustrate computer system 600 performing exemplary functionality with and / or without indicating an interaction with an interactive knowledge base, it should be understood that computer system 600 and / or the first software object can interact with an interactive knowledge base. For example, as discussed below, computer system 600 determining that the first software object cannot perform a requested task can include computer system 600 interacting with an interactive knowledge base to determine that the first software object cannot perform the requested task.
[0182] In the examples described below with respect to FIGS. 6A-6E, computer system 600 receives a request to perform a task that the first software object is not capable ofperforming (e.g., lacks functionality and / or resources to do so) . In these examples, the first software object is able to be swapped with another software object to assist and / or cause performance of the task.
[0183] At FIGS. 6A-6E, the first software object has a set of one or more capabilities. In some embodiments, the set of one or more capabilities are different from one or more capabilities of computer system 600 (and / or of one or more other software objects implemented by, accessible to, and / or provided by computer system 600) . In some embodiments, the first software object corresponds to a system-based software object, and the set of one or more capabilities corresponds to an operating system of computer system 600 (e.g., a software object native to computer system 600 that requests system information from computer system 600) . In some embodiments, the set of one or more capabilities corresponds to the first software object's ability to interact with computer system 600, such as the first software object possessing permission to interact with computer system 600' s data and / or storage. In some embodiments, the set of one or more capabilities correspond to the first software object's ability to interact with applications and / or third-party applications on computer system 600 and / or remotely located. For example, user 610 can ask the first software object "When is my next meeting?", and the first software object requests computer system 600 to output the next meeting and / or event by accessing a calendar application. In some embodiments, the first software object corresponds to a user application that has a set of one or more capabilities. For example, the first software object can correspond to a navigation application and provide computer system 600 with navigation capabilities.
[0184] As illustrated in FIG. 6A, physical environment 606 includes user 610 within a f ield-of-view of computer systemrepresentation 604. At FIG. 6A, computer system 600 detects user 610, such as by capturing an image and / or a video that includes user 610. In some embodiments, computer system 600 transitions from an inactive state to an active state in response to detecting user 610. In some embodiments, when computer system 600 is inactive, computer system 600 reduces screen brightness, reduces input device capabilities (e.g., turning off a touch sensitive display component until a user is detected and / or requiring a wake input to receive additional inputs) , and / or reduces content displayed on user interface 602. In some embodiments, when computer system 600 transitions to an active state, computer system 600 increases screen brightness, displays additional user interface components (e.g., representation 604) , and / or enables additional input devices. In some embodiments, transitioning between an inactive state and an active state includes (and / or is done in conjunction with) performing an animation. For example, fading out displayed content when transitioning to inactive and / or fading in content to be displayed when transitioning to active (e.g., displaying content at a reduced brightness and / or opacity and increasing the brightness and / or opacity over a predetermined amount of time) .
[0185] At FIG. 6A, after detecting user 610, computer system 600 awaits (e.g., is active and / or checking for) an input from user 610. As illustrated in FIG. 6A, computer system 600 displays representation 604 within user interface 602. In some embodiments, computer system 600 begins (and / or increases a frequency of and / or a number of manners of) detecting input (e.g., for the first software object represented by representation 604) upon detecting user 610. In some embodiments, computer system 600 waits until representation 604 is displayed to detect an input for the first software object, which provides a clear visual indication that user 610is interacting with the first software object. In some embodiments, computer system 600 displays representation 604 without any identifier of the first software object. In some embodiments, the first software object is a default software object that user 610 interacts with and is not displayed with an identifier. In some embodiments, computer system 600 displaying user interface 602 including only representation 604 indicates that computer system 600 is awaiting an input from a user (e.g., user 610) . In some embodiments, awaiting an input is and / or includes being available and / or able to detect input (e.g., is listening for verbal inputs via a microphone and / or using an image feed from a camera to watch for air gestures) .
[0186] At FIG. 6A, while and / or after computer system 600 detects user 610 and while computer system 600 is waiting for an input from a user (e.g., user 610) , user 610 asks computer system 600 to perform a task (e.g., verbal input 605a) . In some embodiments, the task includes a set of one or more steps required to perform the task (e.g., that are determined by computer system 600 and / or the first software object) . In some embodiments, verbal input 605a is directed to representation 604 and / or the first software object, such as by including an indication and / or an identification of the first software object. In some embodiments, computer system 600 detects verbal input 605a during and / or as part of an interaction with the first software object (e.g., within a predefined period of time of a previous input and / or output, a hover, an air gesture, and / or a mouse click) . As illustrated in FIG. 6A, user 610 asks, "Can you prepare my tax return?" (e.g., illustrated as a speech bubble representing verbal input 605a) . In some embodiments, computer system 600 animates and / or changes the visual characteristics of representation 604 (e.g., resizes, reshapes, repositions, and / or alters theprominence level of representation 604) to indicate that computer system 600 is detecting (and / or has detected) verbal input 605a.
[0187] At FIG. 6B, in response to detecting verbal input 605a, computer system 600 determines that the first software object is unable to perform the task (e.g., requested by verbal input 605a) . In some embodiments, determining that the first software object is unable to perform the task includes comparing the set of one or more steps to perform the task with the one or more capabilities of the first software object. In the example illustrated and described with respect to FIG. 6B, computer system 600 determines that the first software object does not have access to a suitable knowledge base and / or does not have a tax return function that can be used to prepare the taxes.
[0188] At FIG. 6B, in response to determining that the first software object is unable to perform the task, computer system 600 determines a different software object and / or a different application that is able to perform the task. In some embodiments, the different software object and / or the different application has a set of one or more capabilities. In some embodiments, computer system 600 compares the set of one or more steps required to perform the task and the set of one or more capabilities of the different software object and / or the different application. In this example, computer system 600 determines that a tax application (e.g., represented as application icon 614 within user interface 602 in FIG. 6B) is able to perform the task based on capabilities of the tax application.
[0189] As illustrated in FIG. 6B, computer system 600 maintains display of representation 604 within user interface 602. In some embodiments, representation 604 remains displayed(e.g., in the same or different manner) in response to computer system 600 determining that the first software object is unable to perform the task and / or determining the different software object and / or the different application is able to perform the task. In some embodiments, computer system 600 displays representation 604 with different visual characteristics in such cases. In some embodiments, while determining which software object is able to perform the task, computer system 600 displays an animation that appears as though representation 604 is thinking and / or to indicate computer system 600 is making a determination (e.g., of whether an application has appropriate capabilities) . In some embodiments, computer system 600 displays representation 604 looking at (e.g., in a direction of and / or at a face of) user 610 (e.g., detected in physical environment 606 within the field of view of computer system representation 608) before, while, in response to, and / or after determining that the first software object is unable to perform the task.
[0190] As illustrated in FIG. 6B, in response to determining that the first software object is unable to perform the task and that a specialized application, e.g.., the tax application, is able to perform the task, computer system 600 outputs an indication (e.g., audible output 612) that the first software object is unable to perform the task. In some embodiments, outputting the indication includes displaying an indication of the tax application (e.g., application icon 614) that is able to perform the task and / or additional data (e.g., tax form 616) that is used to perform the task. Such additional data can be from the tax application and / or another application. For example, the additional data can include data that will be sent to the tax application if user 610 proceeds with using the tax application to perform the task.
[0191] In some embodiments, outputting an indication that the first software object is unable to perform the task includes displaying representation 604 with different (e.g., new and / or changed) visual characteristics. As illustrated in FIG. 6B, computer system 600 displays representation 604 at a smaller size and shifted to the left side in user interface 602 to make room for application icon 614 and tax form 616. In some embodiments, computer system 600 outputs content in response to detecting verbal input 605a. For example, at FIG. 6B, computer system 600 outputs audible output 612, which indicates that the first software object cannot perform the task (e.g., "I cannot...") . In the example illustrated in FIG. 6B, audible output 612 also includes a prompt asking for permission from user 610 to launch the tax application that is able to perform the task ("..., but I can get TaxApp to help. Is that okay?") . In some embodiments, outputting the indication that the first software object cannot perform the task includes outputting haptic feedback (e.g., haptic feedback through a haptic hardware component in communication with computer system 600 and / or haptic feedback through another computer system held and / or worn by user 610) , visual content (e.g., displayed content corresponding to computer system 600, audio content (e.g., a synthetic voice output and / or tone output) , available data (e.g., tax form 616) corresponding to the task, and / or application (e.g., application icon 616) corresponding to (e.g., capable of performing) the task.
[0192] In some embodiments, the prompt includes identification of additional and / or different permission requests than illustrated in FIG. 6B . For example, computer system 600 can identify one or more files related to the task (e.g., a tax form, an old tax return, and / or wage related documents) . In some embodiments, computer system 600 determines one or more operations for performing the task. For example, computersystem 600 determines that the task of preparing a tax return requires an operation of launching the tax application and an operation of sharing data (e.g., sharing tax form 616 with the tax application) . In some embodiments, computer system 600 requests permission from user 610 to perform an operation. For example, computer system 600 outputs a prompt to request permission to send the tax return document to the tax application. In some embodiments, computer system 600 displays the identified one or more files (and / or an indication and / or a representation thereof) on user interface 602. As illustrated in FIG. 6B, computer system 600 displays representations of tax form 616 that the tax application can use to compete the task, without prompting user 610 for permission to share the form with the tax application. In some embodiments, computer system 600 transfers (and / or otherwise provides access to) the one or more files to the tax application to perform the operation with and / or on the files. In some embodiments, computer system 600 performs the operation with and / or on the files. In some embodiments, the response does not include a prompt (e.g., permission is not necessary and / or was previously granted) .
[0193] In some embodiments, while outputting audible output 612 (e.g., including the indication and / or the prompt) , computer system 600 animates and / or alters the visual characteristics of representation 604 (e.g., resizing, reshaping, repositioning, and / or altering the prominence level of representation 604) (e.g., in synchronization with audible output 612) to indicate that the first software object is responding to (e.g., appearing to speak to) user 610. In some embodiments, computer system 600 displays animation in conjunction with movement of the portion of computer system 600 using a movement component. In some embodiments, such movement is movement such as performed by center stage using anultrawide camera and a neural engine to automatically pan and zoom to change a frame, such as when someone moves around.
[0194] In some embodiments, computer system 600 interacts with the tax application via one or more interfaces, such as an API. For example, the first software object can be capable of determining that the first software object cannot perform the task but have the capability of interfacing via an API with an application that can perform the task (e.g., that corresponds to a second software object different from the first software object) . The first software object can then interact with user 610 to gather input and / or data for the task and provide to the tax application that can perform the task. Likewise, the first software object can receive output from the tax application and appear to provide (e.g., via output of speech and / or visual user interface objects) such output via one or more output components of computer system 600. In some embodiments, the first software object hands over a portion of a user interface to the tax application (e.g., a portion of or all of user interface 602 for displaying a result of the requested task, such as a fillable tax application) . For example, as illustrated in FIG. 6B, representation 604 (which corresponds to the first software object that cannot complete the task) continues to be displayed along with an indication of another application, appearing to provide a suggestion of the other application. In some embodiments, in response to a determination that the first software object able to perform the task, computer system 600 does not output the indication described above and instead performs the task using the first software object.
[0195] At FIG. 6B, after prompting user 610 for permission to use the tax application to perform the task, computer system 600 detects verbal input 605b, which represents an affirmative response spoken by user 610. As illustrated in FIG. 6B, userIll610 states "Yes," providing computer system 600 the affirmative response to the prompt for permission to use the tax application. As a result, computer system 600 detects verbal input 605b, providing computer system 600 permission to use the tax application to perform the task.
[0196] At FIG. 6C, in response to detecting verbal input 605 (e.g., illustrated in FIG. 6B as "Yes") , computer system 600 initiates a process to change (and / or transition between) software objects. In some embodiments, computer system 600 detects another type of input before (e.g., as a requirement of) initiating the process to change software objects. For example, computer system 600 can detect that user 610 is gesturing yes (e.g., an up and down head movement) . In some embodiments, computer system 600 transitions between representation 604 to a new software object representation (e.g., software object representation 620 as illustrated in FIG. 6E) .
[0197] In some embodiments, the transition between software objects requires and / or includes a physical movement of the portion of computer system 600. In some embodiments, the physical movement is predetermined by computer system 600. In some embodiments, the movement is the portion turning away from user 610 momentarily and then returning to face user 610. In some embodiments, computer system 600 causes the physical movement via a movement component in communication with computer system 600. In some embodiments, the physical movement includes translation and / or rotation (e.g., a 360- degree spin) . In the example illustrated in FIGS. 6C-6E, the physical movement obscures the display from user 610 (e.g., as illustrated in FIG. 6D user interface 602 (or other user interface elements such as representation 604, application icon 614, and tax form 616) are not visible to user 610 even if they are being displayed) . In some embodiments, thephysical movement is different from a haptic and / or a tactile output. In some embodiments, the physical movement includes a haptic and / or a tactile output. In this example, while moving the portion of computer system 600, representation 604 is replaced with software object representation 620.
[0198] In some embodiments, computer system 600 causes a physical movement after (e.g., in response to) receiving an indication to perform the task. The indication can include computer system 600 giving a response to the user (e.g., as shown in FIG. 6B labeled 612) . In this example, representation 604 is still displayed after starting the physical movement. In some embodiments, computer system 600 stops displaying representation 604 before starting the physical movement. In some embodiments, the indication to switch software objects causes computer system 600 to stop displaying representation 604 and initiate display of software object representation 620. In some embodiments, computer system 600 moves the portion of computer system 600 differently depending on a current context. For example, at least a portion of (and / or the entirety) of the physical movement can depend on one or more of: the old software object (being transitioned away from) , the new software object (being transitioned to) , and / or both the old software object and the new software object. In some embodiments, computer system 600 performs a physical movement before no longer displaying representation 604. In some embodiments, a physical movement is performed before changing to a new software object representation and after displaying software object representation 620. In some embodiments, the movement for the old software object and the new software object are different. In some embodiments, the movement for the transition between the software objects is the same for both software object representations, no matter the type of software object the software objectrepresentations are representing. In some embodiments, the movement is the same when transitioning between similar types of software objects. In some embodiments, the movement is different when switching between different types of software objects. For example, if the first software object represents a system software object and the second software object represents an application software object, the physical movement will be a rotation. For another example, if the first software object represents an application (e.g., a bank application) and the second software object represents a different application (e.g., a tax application) the physical movement can be a turn away and return to start position.
[0199] FIG. 6D illustrates a movement during a transition between software objects that includes a physical movement. In this example, computer system 600 is flipped around. The left portion of FIG. 6D illustrates the back side of computer system 600 (e.g., opposite side of the display component) and no longer shows user interface 602 displaying content, applications, and / or a software object representation (e.g., as illustrated by 604, 614 and 616 in FIG. 6B) . In the left portion of FIG. 6D, camera 618 located on the back side of computer system 600 is now visible. The right portion of FIG. 6D illustrates physical environment 606 that includes user 610 as described above with respect to FIG. 6A. However, the f ield-of-view of computer system 600 faces away from and does not detect user 610 because computer system 600 has rotated one half turn (e.g., compared to FIG. 6C) .
[0200] In some embodiments, computer system 600 performs a movement using (e.g., while displaying and / or an animation of) representation 604 before computer system 600 changes software objects and displays software object representation 620. In some embodiments, computer system 600 changes to software object representation 620 and performs the movement whiledisplaying software object representation 620. In some embodiments, computer system 600 initiates movement while displaying representation 604 and changes to display software object representation 620 before the movement is complete.
[0201] FIG. 6E illustrates computer system 600 after completion of the physical movement initiated and performed in FIGS. 6C and 6D as described above. In FIG. 6E, computer system 600 has returned to its start position (e.g., facing toward user 610 as indicated by the right portion of FIG. 6E, the position as in FIGS. 6A-6C) . At FIG. 6E, computer system 600 has launched the tax application. In some embodiments, the tax application is a remote application and computer system 600 receives content corresponding to the tax application from another computer system. For example, computer system 600 can communicate with a third-party server and / or computer system to receive remotely stored content and / or additional content. In some embodiments, the tax application determines the content to communicate (e.g., transmit and / or share) to computer system 600 based on the task requested by user 610. For example, computer system 600 communicates with the tax application that user 610 requested to prepare their taxes, and the tax application (and / or a software object thereof) determines the content that computer system 600 should display .
[0202] As illustrated at FIG. 6E, computer system 600 displays software object representation 620 as a representation of a software object corresponding to the tax application. In some embodiments, initiating display of software object representation 620 occurs while computer system 600 is performing the movement. For example, computer system 600 will begin performing the physical movement while displaying representation 604 (e.g., as illustrated in FIGS. 6A-6C as 604) and then display software object representation620 during the movement. In some embodiments, software object representation 620 is displayed with different visual characteristics than representation 604. For example, software object representation 620 can be displayed as a different avatar with a different shape and different physical features than representation 604 (as illustrated in FIGS. 6A-6C) . In some embodiments, the different visual characteristics can include a change in mannerism, movements, color, and / or any other characteristic affected by visual appearance. In some embodiments, software object representation 620 has similar visual characteristic as representation 604.
[0203] As illustrated at FIG. 6E, software object representation 620 is displayed with an identifier 622 in close proximity to software object representation 620. In this example, identifier 622 is text (e.g., "Tax App Assistant") . In some embodiments, identifier 622 includes an image and / or animation. In some embodiments, display of identifier 622 is accompanied with output of an audio output (e.g., audible output 624) . In some embodiments, identifier 622 is displayed after detecting an input from a user. For example, the input can include an interaction with software object representation 620. In some embodiments, the interaction includes detecting a pointing gesture toward software object representation 620, a detection that user 610 is looking at software object representation 620 (e.g., via camera 608) , and / or a detection of verbal input (e.g., What is this? Who are you?) (e.g., directed to software object representation 620 and / or the second software object) . In some embodiments, the interaction occurs simultaneously with displaying software object representation 620. In some embodiments, computer system 600 ceases display of identifier 622 after detecting an interaction and / or input is complete and / or a new input is detected. In some embodiments, computer system 600 ceasesdisplay of identifier 622 after a predetermined amount of time has passed. In some embodiments, computer system 600 ceases display of identifier 622 in order to perform an operation. For example, when computer system 600 begins to perform the operation of preparing the user' s tax return, computer system 600 displays content of the tax form and ceases display of identifier 622 to make room on the user interface 602.
[0204] As illustrated at FIG. 6E, display of software object representation 620 is the only avatar on user interface 602. In some embodiments, computer system 600 displays content related to the task requested by the user 610 and / or the tax application with software object representation 620. In some embodiments, while computer system 600 displays software object representation 620, computer system 600 displays representation 604 on user interface 602. In some embodiments, computer system 600 displays representation 604 in a less prominent manner when displaying with software object representation 620. For example, computer system 600 can display representation 604 at a smaller size and emphasis than software object representation 620. In some embodiments, computer system 600 uses both representation 604 and software object representation 620 to interact with user 610. For example, computer system 600 can use the first software object to respond to any detected interactions and / or inputs related to computer system 600 (e.g., volume, display controls, and / or file sharing) and computer system 600 can use the second software object to respond to any detected interactions and / or inputs related to the tax application (e.g., tax form application inputs) . In some embodiments, using a software object includes using the software object to process inputs and / or provide outputs) and / or attributing output to the software object (e.g., synchronizing audio output of speech with mouth movement of a corresponding software objectrepresentation) . In some embodiments, the first software object and the second software object have different audio characteristics. Audio characteristics can include tone, pitch, accent, voice, and / or volume. In some embodiments, both software objects respond to user 610 (e.g., at different times in the same or different manners) . In some embodiments, computer system 600 performs movement of both representation 604 and software object representation 620 in synchronization with each other.
[0205] At FIG. 6E, while displaying software object representation 620, computer system 600 outputs audible output 624. In this example, audible output 624 indicates that computer system 600 (e.g., using the second software object) is ready to perform the task requested (e.g., "Let's get started on your taxes") . In some embodiments, while outputting audible output 624, computer system 600 animates and / or alters the visual characteristics of software object representation 620 (e.g., resizing, reshaping, repositioning, and / or altering prominence level of software object representation 620) to indicate that the second software object is responding to (e.g., appearing to speak to) user 610. In some embodiments, audio output 624 is displayed visually using text and / or through haptic feedback. In some embodiments, displaying software object representation 620 does not include an audio output .
[0206] In some embodiments, after computer system 600 performs the movement, computer system 600 performs an operation related to the task (e.g., preparing tax return) (e.g., sending tax form file 616 to the tax application and / or performing the task) while displaying software object representation 620. In some embodiments, performing the operation includes providing an output (e.g., audible output 624) .
[0207] In some embodiments, in order to complete the task requested (as illustrated in FIG. 6A as "Can you prepare my tax return?") by user 610, computer system 600 and the second software object communicate (e.g., transmit and / or share) one or more files between each other. In some embodiments, computer system 600 displays a prompt to request permission to share the one or more files with the second software object and then detects permission from the user before computer system 600 can perform the operation. In some embodiments, the prompt to request permission and the detection of permission from user 610 occurs after and / or while displaying software object representation 620 and / or performing a movement for a transition between software objects. In some embodiments, the prompt to request permission and the detection of permission from user 610 occurs before displaying software object representation 620 (as illustrated in FIG. 6B) . For example, after outputting audible output 624, computer system 600 can prompt the user for permission to complete the task (e.g., "Do I have permission to import your data into a tax form?") before proceeding (e.g., in addition to and / or instead of a prompt for permission prior to transitioning to the second software object, such as included in audible output 612 of FIG. 6B) .
[0208] In some embodiments, computer system 600 performs the operation related to the task after detecting input. In some embodiments, computer system 600 detects the input after displaying software object representation 620. In some embodiments, computer system 600 detects the input after computer system 600 outputs audio output 624 (e.g., including the indication and / or the prompt) to user 610. In some embodiments, the response does not include a prompt (e.g., permission is not necessary and / or was previously granted) . Insome embodiments, the prompt includes additional permission requests .
[0209] In some embodiments, computer system 600 determines multiple operations and / or steps to perform the task requested by user 610. In some embodiments, computer system 600 performs one or more of the multiple operations and / or steps without waiting for additional input. In some embodiments, computer system 600 requires additional input before performing one or more of the multiple operations and / or steps.
[0210] FIG. 7 is a flow diagram illustrating a method (e.g., method 700) for performing movement in conjunction with outputting a representation of a software object in accordance with some embodiments. Some operations in method 700 are, optionally, combined, the orders of some operations are, optionally, changed, and some operations are, optionally, omitted .
[0211] As described below, method 700 provides an intuitive way for performing movement in conjunction with outputting a representation of a software object. Method 700 reduces the cognitive burden on a user, thereby creating a more efficient human-machine interface. For battery-operated computing devices, enabling a user to interact with such devices faster and more efficiently conserves power and increases the time between battery charges.
[0212] In some embodiments, method 700 is performed at a computer system (e.g., 600) that is in communication with one or more input devices (e.g., a camera, a depth sensor, and / or a microphone) , a display component (e.g., a display screen, a projector, and / or a touch-sensitive display) , and a movement component (e.g., an actuator, a movable base, a rotatable component, and / or a rotatable base) . In some embodiments, the computer system is a watch, a phone, a tablet, a fitnesstracking device, a processor, a head-mounted display (HMD) device, a communal device, a media device, a speaker, a television, and / or a personal computing device.
[0213] While displaying, via the display component, a representation (e.g., an avatar and / or user interface object) of a first software object (e.g., 604) , the computer system receives (702) an indication (e.g., 605a and / or 605b) (e.g., a user input, a detection of a change in user, and / or preset input based on time) that a representation of a second software object (e.g., 620) is to be displayed, wherein the second software object is different from the first software object (e.g., as described above with respect to FIGS. 6A-6B) . In some embodiments, the indication that the representation of the second software object is to be displayed is an input by a user. In some embodiments, the indication that the representation of the second software object is to be displayed occurs when the user is detected to be in the same environment as the computer system. In some embodiments, the indication that the representation of the second software object is to be displayed occurs when a new user interacts with the computer system.
[0214] In response to receiving the indication (e.g., 605a and / or 605b) that the representation of the second software object (e.g., 620) is to be displayed, the computer system performs (704) , via the movement component, a movement (e.g., as described above with respect to FIGS. 6C-6E) (e.g., a physical movement) (e.g., of a physical portion of the computer system) (e.g., via the one or more output devices) (e.g., corresponding to a software object change operation) in conjunction with (e.g., before, while, and / or after) displaying, via the display component, the representation of the second software object. Performing a movement in conjunction with displaying the representation of the secondsoftware object in response to receiving an indication that the representation of the second software object is to be displayed allows the computer system to respond to the indication and transition to the new software object, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further input.
[0215] In some embodiments, performing the movement includes causing the display component to be obscured (e.g., not visible, covered, hidden, turned away, and / or facing a different direction) (e.g., partially and / or completely) from a first viewpoint (e.g., point of view and / or position from which the user observes the display component) (e.g., one or more points at eye level of the user) of a user (e.g., 610) (e.g., as described above with respect to FIGS. 6C-6E) (e.g., a detected user and / or a user whose location is known by the computer system) (and / or a set of one or more users) . In some embodiments, the movement results in the display component (and / or another portion of the computer system) of the computer system being in a position where the user in the same physical environment as the computer system cannot see a portion of the display component and / or what is displayed on the display component due to the changed position of the computer system. In some embodiments, the computer system determines (e.g., detects and / or receives) viewpoint information for the user (e.g., indicating a location, position, pose, height, eye level, and / or point of view of the user) . In some embodiments, the first viewpoint of the user (and / or set of one or more users) is an estimated viewpoint (e.g., based on a combination and / or weighting of multiple determined viewpoints of one or more users) . Causing the display component to be obscured from a viewpoint of a userwhen performing the movement allows the computer system to provide the user with a visual response to the indication, thereby providing improved feedback to a subject and performing an operation when a set of conditions has been met without requiring further input.
[0216] In some embodiments, the movement, performed in conjunction with displaying the representation of the second software object (e.g., 604 and / or 620) , is a preconfigured movement pattern (e.g., as described above with respect to FIGS. 6C-6E) (e.g., a set of one or more components of movement (e.g., direction, speed, and / or distance) that define a preprogrammed movement) (e.g., a 360-degree spin, a 180- degree turn to face away from a direction of a start position followed by a 180-degree turn to return to face the direction of the start position, a turn downward followed by a turn upward to return to a start position, and / or a turn upward followed by a turn downward to return to a start position) . In some embodiments, after displaying the representation of the second software object, displaying a representation of a third software object (e.g., the first software object and / or a different software object) and while displaying the representation of the third software object, receiving an indication that the representation of the second software object is to be displayed and, in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, the preconfigured movement in conjunction with displaying, via the display component, the representation of the second software object.
[0217] In some embodiments, the movement performed in conjunction with displaying the representation of the second software object (e.g., 604 and / or 620) is a 360-degree rotation (e.g., as described above with respect to FIGS. 6C-6E) (e.g., clockwise, counterclockwise, and / or rotation along an arbitrary path that results in 360 degrees of rotation with respect to a start position) . Performing a 360-degree rotation in conjunction with displaying the second software object enables the computer system to indicate a change from the first software object to the second software object using a rotation of the computer system, thereby providing improved feedback to a subject and performing an operation when a set of conditions has been met without requiring further input.
[0218] In some embodiments, the movement, performed in conjunction with displaying the representation of the second software object (e.g., 604 and / or 620) , includes moving from a first position to a second position and then returning to the first position. In some embodiments, in the first position, the display is not obscured from a second viewpoint (e.g., point of view and / or position from which the user observes the display component) (e.g., one or more points at eye level of the user) (e.g., the same as or different from the first viewpoint) of the user (e.g., 610) (e.g., a detected user and / or a user whose location is known by the computer system) (and / or a set of one or more users) . In some embodiments, in the second position the display is obscured (e.g., not visible, covered, hidden, turned away, and / or facing a different direction) (e.g., partially and / or completely) from the second viewpoint of the user (e.g., as described above with respect to FIGS. 6C-6E) . In some embodiments, after displaying the representation of the second software object, displaying a representation of a third software object and while displaying the representation of the third software object, receiving an indication that that the representation of the second software object is to be displayed and, in response to receiving the indication that the representation of the second software object is to be displayed, moving, viathe movement component, the representation of the third software object from the first position to the second position and then returning to the first position in conjunction with displaying, via the display component, the representation of the second software object. In some embodiments, moving from a first position to a second position and then returning to the first position includes a 180-degree turn to face away followed by a 180-degree turn to return to a start position, a turn to one side of the display followed by a turn to the second side of the display to return to start position, a turn downward followed by a turn upward to return to a start position, and / or a turn upward followed by a turn downward to return to a start position. Performing movement to a position in which a display is obscured and returning to a first position in conjunction with displaying the second software object enables the computer system to indicate a change from the first software object to the second software object using a predefined movement of the computer system, thereby providing improved feedback to a subject and performing an operation when a set of conditions has been met without requiring further input.
[0219] In some embodiments, the indication (e.g., 605a and / or 605b) that the representation of the second software object (e.g., 604 and / or 620) is to be displayed includes an indication (e.g., an instruction, a touch input command, nontouch input command, and / or voice command) of a task to be performed (e.g., as described above with respect to FIG. 6A) . In some embodiments, a task to be performed includes (and / or is included in) a function, operation, application, and / or process to be performed by (e.g., requested to be performed by and / or determined to be performed by) the computer system. In some embodiments, the indication includes a determination that the first software object cannot perform the requested taskand the second software object can perform the requested task. Performing a movement in conjunction with displaying the representation of the second software object in response to receiving an indication that includes an indication of a task to be performed allows the computer system to respond to the indication and transition to the new software object, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further input.
[0220] In some embodiments, before performing the movement in conjunction with displaying the representation of the second software object (e.g., 604 and / or 620) , the computer system displays, via the display component, a notification requesting permission to share (e.g., provide, transmit, and / or give access to) information (e.g., 616) (e.g., personal information, profile information, metadata, usage history and / or information related to the task) (e.g., from the first software object and / or the computer system) with the second software object (e.g., as described above with respect to FIG. 6B) . In some embodiments, the first software object corresponds to a first application (e.g., maps application, music application, and video player application) and the second software object corresponds to a second application different from the first application. Displaying a notification requesting permission to share with a second software object before performing the movement in conjunction with displaying the representation of the second software object enables the computer system to provide feedback and security for transfer of information between the computer system and the software object, thereby providing improved feedback to a subject and increasing security.
[0221] In some embodiments, before performing the movement in conjunction with displaying the representation of the second software object (e.g., 604 and / or 620) , the computer system displays, via the display component, a notification (e.g., 614 and / or text transcription of audible output 612) (e.g., visual notification and / or audio notification) requesting permission to display the representation of the second software object (e.g., as described above with respect to FIG. 6B) (e.g., change the representation of the first software object to the representation of the second software object and / or display both representations simultaneously) . In some embodiments, a new user interface corresponding to the second software object is concurrently displayed with the first software object and / or the second software object. In some embodiments, a new user interface is displayed and / or a current user interface continues to be displayed. Displaying a notification requesting permission to display the representation of the second software object before performing the movement enables the computer system to receive permission before changing the software object, thereby increasing security and providing improved visual feedback to the user.
[0222] In some embodiments, the indication (e.g., 605a and / or 605b) that the representation of the second software object (e.g., 620) is to be displayed is received in accordance with a determination that the first software object (e.g., 604) cannot perform (e.g., does not support performing, is not permitted to perform, and / or is not configured to perform) a requested task (e.g., task indicated in verbal input 605a) (e.g., as described above with respect to FIG. 6B) . In some embodiments, receiving the indication that the representation of the second software object is to be displayed includes a determination that the first software object cannot perform the requested task and the second software object can performthe requested task. Performing a movement in conjunction with displaying the representation of the second software object in response to receiving an indication received in accordance with a determination that the first software object cannot perform a requested task enables the computer system to automatically change to the second software object when the first software object is unable to perform the task, thereby reducing the number of inputs needed to perform an operation, performing an operation when a set of conditions has been met without requiring further input, and providing improved visual feedback to the user.
[0223] In some embodiments, the representation of the first software object (e.g., 604) includes a first set of visual characteristics (e.g., visual characteristics of 604) (e.g., as described above with respect to FIGS. 6A-6C) . In some embodiments, the representation of the second software object (e.g., 620) includes a second set of visual characteristics different from the first set of visual characteristics (e.g., visual characteristics of 620) (e.g., as described above with respect to FIG. 6E) . In some embodiments, the representation of the first software object is a first avatar (e.g., that includes the first set of visual characteristics) . In some embodiments, the representation of the second software object is a second avatar (e.g., that includes the second set of visual characteristics) . In some embodiments, a visual characteristic includes color, shape, movements, mannerisms, facial features, and / or other characteristic affected visual appearance. The representation of the first software object and the representation of the second software object having differing visual characteristics allows the computer system to display different looking software objects and provides the user with visual confirmation that the software object has changed, thereby performing an operation when a set ofconditions has been met without requiring further input and providing improved visual feedback to the user.
[0224] In some embodiments, the computer system (e.g., 600) is in communication with one or more audio output component (e.g., smart speakers, home theater system, soundbars, headphones, earphones, earbuds, speakers, television speakers, augmented reality headset speakers, audio jacks, optical audio output, Bluetooth audio outputs, and / or HDMI audio outputs) . In some embodiments, while displaying the representation of the first software object (e.g., 604) , the computer system outputs, via the audio output component, a first audio output (e.g., 612) (e.g., audible output of a speaker and / or other sound generating component) corresponding to (e.g., synchronized with, attributable to, and / or appearing to emanate from) the representation of the first software object (e.g., as described above with respect to FIG. 6B) . In some embodiments, while displaying the representation of the second software object (e.g., 620) , the computer system outputs, via the audio output component, a second audio output (e.g., 624) corresponding to (e.g., synchronized with, attributable to, and / or appearing to emanate from) the representation of the second software object, wherein the first audio output is different from the second audio output (e.g., as described above with respect to FIG. 6E) . Outputting different audio outputs while displaying different software objects allows the computer system to provide audio feedback to the user with specific audio characteristics to distinguish the different software objects, thereby performing an operation when a set of conditions has been met without requiring further input and providing improved feedback to the user.
[0225] In some embodiments, the first software object corresponds (e.g., represented by representation 604) to a first application (e.g., a software application and / orknowledge base) (e.g., as described above with respect to FIGS. 6A-6C) . In some embodiments, the second software object (e.g., represented by avatar 620) corresponds to a second application (e.g., 614) different (e.g., a software application and / or knowledge base) from the first application (e.g., as described above with respect to FIGS. 6B and 6E) . In some embodiments, the first application and / or the second application include overlapping information. In some embodiments, the first application and the second application do not include overlapping information. Displaying representations corresponding to different software objects corresponding to different applications allows the computer system to use multiple software objects depending on what operation needs to be performed and / or needs to be displayed, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further input.
[0226] In some embodiments, in response to receiving the indication (e.g., 605a and / or 605b) that the representation of the second software object (e.g., 620) is to be displayed, the computer system ceases displaying, via the display component, the representation of the first software object (e.g., 604) (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the computer system displays the representation of the first software object and the representation of the second software object concurrently (e.g., temporarily, for a predetermined period of overlap, and / or until additional input is received) . In some embodiments, the computer system does not display the representation of the first software object and the representation of the second software object concurrently (e.g., only one representation of the first software object orsecond software object is displayed at a time) . In some embodiments, the computer system displays, via the display component, visually changing the representation of the first software object to the representation of the second software object. Ceasing displaying the representation of the first software object in response to receiving an indication that the second software object is to be displayed allows the computer system to indicate transition to the second software object, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, allowing the computer to avoid burn-in of the display generation component, and performing an operation when a set of conditions has been met without requiring further input.
[0227] In some embodiments, performing the movement in conjunction with displaying the representation of the second software object (e.g., 620) includes initiating (e.g., beginning and / or starting) displaying of the representation of the second software object while performing the movement (e.g., as described above with respect to FIGS. 6C-6E) (e.g., while still moving and / or after initiating the movement but before ceasing the movement) . Initiating displaying the representation of the second software object while performing the movement enables the computer system to synchronize movement with a transition to displaying the representation of the second software object, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further input.
[0228] In some embodiments, performing the movement in conjunction with displaying the representation of the second software object (e.g., 620) is initiated after the movement has started (e.g., as described above with respect to FIGS. 6C-6E) (e.g., after the movement is completed and / or afterinitiating the movement but before ceasing the movement) . Displaying the representation of the second movement after the movement has started enables the computer system to synchronize movement with a transition to displaying the representation of the second software object, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further input.
[0229] In some embodiments, the computer system (e.g., 600) is in communication with a second set of one or more audio output components (e.g., smart speakers, home theater system, soundbars, headphones, earphones, earbuds, speakers, television speakers, augmented reality headset speakers, audio jacks, optical audio output, Bluetooth audio outputs, and / or HDMI audio outputs) . In some embodiments, after performing the movement, the computer system outputs, via the second set of one or more audio output components, a second audio output (e.g., 624) (e.g., speech, music and / or sound) corresponding to (e.g., synchronized with, attributable to, and / or appearing to emanate from) the representation of the second software object (e.g., 620) (e.g., as described above with respect to FIGS. 6C-6E) . Outputting audio corresponding to the representation of the second software object after performing the movement allows the computer system to provide feedback and / or content corresponding to the second software object, thereby providing improved feedback to subjects, and performing an operation when a set of conditions has been met without requiring further user input.
[0230] In some embodiments, the representation of the first software object (e.g., 604) is displayed in conjunction with performing the movement (e.g., as described above with respect to FIGS. 6A-6D) (e.g., the representation of the firstsoftware object is displayed for at least a portion of (e.g., period of time of and / or movement component of) the movement before ceasing displaying the representation of the first software object) . In some embodiments, performing the movement begins and / or continues (e.g., at least in part) while displaying the representation of the first software object. In some embodiments, the movement (e.g., and / or portion thereof) performed while displaying the representation of the first software object is the same as the movement in conjunction with displaying, via the display generation component, the representation of the second software object. In some embodiments, the movement (e.g., and / or portion thereof) performed while displaying the representation of the first software object is different from the movement in conjunction with displaying the representation of the second software object. In some embodiments, the representation of the first software object transitions to (e.g., switches to, is replaced by, and / or is overlaid by) the representation of the second software object before the movement is done being performed. Performing the movement while continuing to display the representation of the first software object in response to receiving the indication that the second software object is to be displayed allows the computer system to transition between software objects and give the user feedback that a software object change is about to occur, thereby providing improved feedback to subjects, and performing an operation when a set of conditions has been met without requiring further user input .
[0231] In some embodiments, the representation of the first software object (e.g., 604) and the representation of the second software object (e.g., 620) are not concurrently displayed (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, in response to receiving theindication that the representation of the second software object is to be displayed, ceasing displaying the representation of the first software object in conjunction with displaying, via the display component, the representation of the second software object (e.g., performing the movement can occur with the first software object and / or the second software object) . The representation of the first software object and the representation of the second software object not being concurrently displayed allows the computer system to display only the necessary software object to perform an operation and not clutter the display, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, allowing the computer to avoid burn-in of the display generation component, and performing an operation when a set of conditions has been met without requiring further input.
[0232] In some embodiments, before performing (e.g., before starting and / or initiating) the movement, the computer system ceases displaying, via the display component, the representation of the first software object (e.g., 604) (e.g., as described above with respect to FIGS. 6A-6D) . Ceasing displaying the representation of the first software object before performing the movement allows the computer system to automatically reduce visual distractions before the display is transitioned to another software object and movement is performed, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, allowing the computer to avoid burn-in of the display generation component, and performing an operation when a set of conditions has been met without requiring further input.
[0233] In some embodiments, while displaying, via the display component, the representation of the second software object (e.g., 604 and / or 620) (e.g., in conjunction to performing themovement) , the computer system receives an indication (e.g., 605a and / or 605b) that a representation of a third software object (e.g., 604 and / or 620) is to be displayed, wherein the third software object is different from the second software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the third software object is the same as the first software object. In some embodiments, the third software object is different from the first software object. In some embodiments, the indication that the representation of the third software object is to be displayed is an input by a user. In some embodiments, the indication that the representation of the third software object is to be displayed occurs when the user is detected to be in the same environment as the computer system. In some embodiments, the indication that the representation of the third software object is to be displayed occurs when a new user interacts with the computer system. In some embodiments, the indication that the representation of the third software object is to be displayed includes a request for the computer system (and / or the second software object) to complete a task. In some embodiments, the indication that the representation of the third software object is to be displayed occurs when the current software object is unable to complete the task and needs to use another application. In some embodiments, in response to receiving the indication (e.g., 605a and / or 605b) that the representation of the third software object (e.g., 604 and / or 620) is to be displayed, the computer system performs, via the movement component, the movement in conjunction with displaying, via the display component, the representation of the third software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, displaying the representation of the third software object includes switching the display of the representation of the second software object to the representation of the third software object.Performing the same movement in conjunction with displaying a third software object allows the computer system to reuse the same movement for different software objects and provide the user with visual confirmation that a change in software objects is occurring, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further input.
[0234] In some embodiments, the movement performed in conjunction with displaying the representation of the second software object (e.g., 604 and / or 620) is a first movement (e.g., as described above with respect to FIGS. 6C-6E) . In some embodiments, while displaying the representation of the second software object (e.g., 604 and / or 620) (e.g., in conjunction with performing the movement) , the computer system receives an indication (e.g., 605a and / or 605b) that a representation of fourth software object (e.g., 604 and / or 620) is to be displayed, wherein the second software object is different from the fourth software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the fourth software object is the same as the first software object and / or third software object. In some embodiments, the fourth software object is different than the first software object and / or third software object. In some embodiments, the indication that the representation of the fourth software object is to be displayed is an input by a user. In some embodiments, the indication that the representation of the fourth software object is to be displayed occurs when the user is detected to be in the same environment as the computer system. In some embodiments, the indication that the representation of the fourth software object is to be displayed occurs when a new user interacts with the computer system. In some embodiments, the indication that therepresentation of the fourth software object is to be displayed occurs when the computer system (e.g., and / or second software object) is requested to complete a task. In some embodiments, the indication that the representation of the fourth software object is to be displayed occurs when the current software object is unable to complete the task and needs to use another application. In some embodiments, in response to receiving the indication (e.g., 605a and / or 605b) that the representation of the fourth software object (e.g., 604 and / or 620) is to be displayed, the computer system performs, via the movement component, a second movement different from the first movement in conjunction with displaying, via the display component, the representation of the fourth software object (e.g., as described above with respect to FIGS. 6C-6E) . In some embodiments, displaying the representation of the fourth software object includes switching the display of the representation of the second software object to the representation of the fourth software object. Performing a different movement in conjunction with displaying a different software object enables the computer system to use different movements that are dependent on the software object to be displayed and provide the user with visual confirmation that a change in software objects is occurring, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further input.
[0235] In some embodiments, the first software object corresponds to (e.g., represented by, includes, and / or is associated with) a system process (e.g., operating system, widgets and / or utilities) and the second software object corresponds to (e.g., represented by, includes, and / or is associated with) a first application (e.g., 614) process(e.g., as described above with respect to FIGS. 6A-6E) (e.g., maps, messaging, knowledge based application, and / or downloaded application) . In some embodiments, displaying, via the display component, the representation of the second software object (e.g., 620) includes switching (e.g., transitioning, changing, and / or moving) , the display of the representation of the first software object (e.g., 604) to the representation of the second software object (e.g., as described above with respect to FIGS. 6C-6E) . In some embodiments, performing, via the movement component, the movement in conjunction with displaying, via the display component, the representation of the second software object (e.g., 620) includes moving in a first movement pattern (e.g., as described above with respect to FIGS. 6C-6E) . In some embodiments, while displaying, via the display component, the representation of the second software object (e.g., 620) , the computer system receives an indication (e.g., 605a and / or 605b) that a representation of a fifth software object (e.g., 604 and / or 620) is to be displayed (e.g., as described above with respect to FIGS. 6A-6E) , wherein: the fifth software object is different from the first software object and the second software object; and the fifth software object corresponds to a second application process. In some embodiments, in response to receiving the indication (e.g., 605a and / or 605b) that the representation of the fifth software object (e.g., 604 and / or 620) is to be displayed, the computer system performs, via the movement component, a second movement pattern different from the first movement pattern in conjunction with displaying, via the display component, the representation of the fifth software object, and wherein displaying the representation of the fifth software object includes switching (e.g., transitioning, changing, and / or moving) the display of the representation of the second software object (e.g., 604 and / or 620) to the representationof the fifth software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the second movement pattern is the same when switching between software objects corresponding to different application processes. Switching between different software objects using one movement when changing to different software objects that are different types of software object and / or using a different movement when changing to different software objects that are the same type of software object allows the computer system to provide different visual feedback to the user of the type of software object that will be displayed, thereby providing improved feedback to a user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further input.
[0236] Note that details of the processes described above with respect to method 700 (e.g., FIG. 8) are also applicable in an analogous manner to other methods described herein. For example, method 700 optionally includes one or more of the characteristics of the various methods described above with reference to method 700. For example, the displayed identifier of method 800 can correspond to the second software object of method 700. For brevity, these details are not repeated herein .
[0237] FIG. 8 is a flow diagram illustrating a method (e.g., method 800) for displaying an indication of a respective application corresponding to a software object in accordance with some embodiments. Some operations in method 800 are, optionally, combined, the orders of some operations are, optionally, changed, and some operations are, optionally, omitted .
[0238] As described below, method 800 provides an intuitive way for displaying an indication of a respective application corresponding to a software object. Method 800 reduces the cognitive burden on a user, thereby creating a more efficient human-machine interface. For battery-operated computing devices, enabling a user to interact with such devices faster and more efficiently conserves power and increases the time between battery charges.
[0239] In some embodiments, method 800 is performed at a computer system (e.g., 600) that is in communication with one or more input devices (e.g., a camera, a depth sensor, and / or a microphone) and a display component. In some embodiments, the computer system is a watch, a phone, a tablet, a fitness tracking device, a processor, a head-mounted display (HMD) device, a communal device, a media device, a speaker, a television, and / or a personal computing device.
[0240] The computer system detects (802) , via the one or more input devices, a request (e.g., 605a and / or 605b) (e.g., an input (e.g., a tap input and / or a non- tap input (e.g., a verbal input, an audible request, an audible command, an audible statement, a swipe input, a hold-and-drag input, a gaze input, an air gesture, and / or a mouse click) ) (e.g., as described above with respect to FIGS. 6A-6B) ) .
[0241] In response to receiving the request (e.g., 605a and / or 605b) , the computer system displays (804) , via the display component, a representation (e.g., an avatar, user interface object, an animation, a character, and / or content that is representative) of a first software object (e.g., 604 and / or 620) that corresponds to (e.g., represented by, includes, and / or is associated with) a respective application (e.g., 614) (e.g., downloaded application, systems process, and / orwidgets) (e.g., as described above with respect to FIGS. 6A-6E) .
[0242] While displaying (806) , via the display generation component, the representation of the first software object (e.g., 604 and / or 620) that corresponds to the respective application, in accordance with a determination that a first set of one or more criteria is satisfied, the first set of one or more criteria including a criterion that is satisfied when the first software object (e.g., 604 and / or 620) corresponds to (e.g., is directed to, is selection of, is pointed in a direction of (e.g., a direction of a representation of) , includes reference to, mentions, names, identifies, and / or is configured to be associated with) a first application, the computer system displays (808) , via the display component, an identifier (e.g., 622) (e.g., indication of application (e.g., text, image and / or animation) ) corresponding to (e.g., adjacent to, directed to, alongside, identifying, describing a source of, describing an application of, and / or include one or more details related to) the first software object (e.g., as described above with respect to FIG. 6E) .
[0243] While (806) displaying, via the display generation component, the representation of the first software object that corresponds to the respective application, in accordance with a determination that a second set of one or more criteria is satisfied, wherein the second set of one or more criteria includes a criterion that is satisfied when the first software object (e.g., 604 and / or 620) corresponds to (e.g., is directed to, is selection of, is pointed in a direction of (e.g., a direction of a representation of) , includes reference to, mentions, names, identifies, and / or is configured to be associated with) a second application (e.g., system process) different from the first application, the computer system forgoes (810) displaying (e.g., not displaying) , via thedisplay component, the identifier (e.g., 622) corresponding to the first software object (e.g., as described above with respect to FIGS. 6A-6C) . Displaying an identifier corresponding to the first software object in accordance with satisfaction of a set of one or more criteria that includes a criterion satisfied when a software object corresponds to an application allows the computer system to selectively output an indication for a particular software object, thereby providing improved feedback to subjects, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further user input.
[0244] In some embodiments, displaying the representation of the first software object (e.g., 604 and / or 620) that corresponds to the respective application (e.g., 614) includes displaying a visual change over time corresponding to the representation of the first software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the visual change over time includes one or more of animation and / or movement of the representation of the first software object. In some embodiments, the visual change over time is output while displaying the identifier corresponding to the first software object. In some embodiments, the visual change overtime includes dynamic animations and / or movement that shows interaction with the first software object with the user, the computer system and / or content being displayed. Displaying a visual change over time when displaying the representation of the first software object allows the computer system to make visually dynamic changes when displaying a representation of a software object as necessary, thereby providing improved feedback to user, reducing the number of inputs needed to perform anoperation, and performing an operation when a set of conditions has been met without requiring further user input.
[0245] In some embodiments, the computer system (e.g., 600) is in communication with a first audio output component (e.g., smart speakers, home theater system, soundbars, headphones, earphones, earbuds, speakers, television speakers, augmented reality headset speakers, audio jacks, optical audio output, Bluetooth audio outputs, and / or HDMI audio outputs) . In some embodiments, while displaying the representation of the first software object (e.g., 604 and / or 620) that corresponds to the respective application, the computer system outputs, via the first audio output component, an audio output (e.g., 612 and / or 624) (e.g., audible output of a speaker and / or other sound generating component) corresponding to (e.g., synchronized with, attributable to, and / or appearing to emanate from) the representation of the first software object (e.g., as described above with respect to FIGS. 6A-6E) . Outputting an audio output when displaying the representation of the first software object allows the computer system to provide audible feedback to the user, thereby providing improved feedback to user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further user input.
[0246] In some embodiments, displaying the representation of the first software object (e.g., 604 and / or 620) that corresponds to the respective application includes performing a movement (e.g., of the representation of the first software object (e.g., shifting the first software object from a first position to a second position, moving at least a portion of the first software object, and / or changing at least a portion of the first software object) ) corresponding to (e.g., is movement of and / or is movement of one or more user interfaceelement different from but while displaying) the representation of the first software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the audio output (e.g., 612 and / or 624) corresponding to the representation of the first software object (e.g., 604 and / or 620) is synchronized with (e.g., accompanied by, in conjunction with, and / or simultaneously with) the movement corresponding to the representation of the first software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the computer system is in communication with a first movement component (e.g., an actuator, a movable base, a rotatable component, and / or a rotatable base) . In some embodiments, the movement is and / or is performed in conjunction with movement performed via the movement component (e.g., a physical movement) (e.g., of a physical portion of the computer system) (e.g., via the one or more output devices) . In some embodiments, the movement is on the display component (e.g., is movement of the representation of the software object) . The audio output corresponding to the representation of the first software object being synchronized with the movement corresponding to representation of the first software object allows the computer system to simultaneously communicate with the user using visual movement and audio, thereby providing improved feedback to user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further user input.
[0247] In some embodiments, the computer system (e.g., 600) is in communication with a one or more output devices (e.g., smart speakers, home theater system, soundbars, headphones, earphones, earbuds, speakers, television speakers, augmented reality headset speakers, audio jacks, optical audio output, Bluetooth audio outputs, and / or HDMI audio outputs) . In someembodiments, while displaying the representation of the first software object (e.g., 604 and / or 620) , the computer system receives a first input (e.g., 605a and / or 605b) (e.g., a tap input (e.g., a swipe input, a hold-and-drag input, an air gesture, and / or a mouse click) and / or a non-tap input (e.g., a verbal input, an audible request, an audible command, an audible statement, and / or a gaze input) ) , via the one or more input devices, corresponding to an interaction with the first software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, in response to receiving the input (e.g., 605a and / or 605b) corresponding to an interaction with the first software object (e.g., 604 and / or 620) , in accordance with a determination that a third set of one or more criteria is satisfied, wherein the third set of one or more criteria includes a criterion that is satisfied when the first input (e.g., 605a and / or 605b) corresponds to (e.g., is directed to, is selection of, is pointed in a direction of (e.g., a direction of a representation of the software object and / or application) , includes reference to, mentions, names, identifies, and / or is configured to be associated with) the first application, the computer system outputs, via the one or more output devices, a first response (e.g., 612 and / or 624) (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the first response is output in conjunction with displaying the identifier. In some embodiments, the first response is not in conjunction with displaying the identifier. In some embodiments, in response to receiving the input corresponding to an interaction with the first software object, in accordance with a determination that a fourth set of one or more criteria is satisfied, wherein the fourth set of one or more criteria includes a criterion that is satisfied when the first input (e.g., 605a and / or 605b) corresponds to the second application, the computer system outputs, via the one or more output devices, a second response(e.g., 612 and / or 624) (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the second response is the same as the first response. In some embodiments, the second response is different from the first response. In some embodiments, the second response is output in conjunction with changing to a new software object. In some embodiments, the second response is output in conjunction with forgoing displaying the identifier. Outputting a response after receiving an input corresponding to a first application or corresponding to a second application allows the computer system to allow interaction with both the first application and the second application, thereby providing improved feedback to user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further user input .
[0248] In some embodiments, the computer system (e.g., 600) is in communication with a display component. In some embodiments, before detecting the request (e.g., 605a and / or 605b) , the computer system displays, via the display component, a representation of a second software object (e.g., 604) different from the representation of the first software object (e.g., as described above with respect to FIG. 6A) . In some embodiments, the representation of the second software object corresponds to a previous request and / or task. In some embodiments, the representation of the second software object corresponds to a system process and the first software object corresponds to an application process. In some embodiments, in response to detecting the request (e.g., 605a and / or 605b) , the computer system transitions (e.g., moving, altering, modifying, and / or replacing) the representation of the second software object (e.g., 604) to the representation of the first software object (e.g., 620) (e.g., as described above withrespect to FIGS. 6A-6E) . In some embodiments, the representation of the first software object replaces the representation of the second software object. In some embodiments, transitioning the representation of the second software object to a representation of the first software object includes moving the second software object in a manner that shows the second software object exiting and then moving the first software object in a manner that shows the second software object entering (e.g., a user interface and / or area of the display component) . In some embodiments, transitioning the representation of the second software object to a representation of the first software object includes ceasing displaying the representation of the second software object and displaying the representation of the first software object. In some embodiments, the detected request is related to an application that corresponds to the first software object. In some embodiments, the detected request includes a request to display the representation of the first software object and / or a representation of an application.Transitioning the representation of the second software object to a representation of the first software object allows the computer system to easily change software objects when needed and visually inform the user that a new software object being displayed, thereby providing improved feedback to user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further user input.
[0249] In some embodiments, the computer system (e.g., 600) is in communication with a movement component (e.g., as described above with respect to process 700) . In some embodiments, transitioning the representation of the second software object (e.g., 604) to the representation of the first software object (e.g., 620) includes performing, via the movement component, amovement (e.g., as described above with respect to FIGS. AE) (e.g., a physical movement of a physical portion of the computer system) (e.g., corresponding to a software object change operation) (e.g., a set of one or more components (e.g., direction, speed, and / or distance) that define a preprogrammed movement) (e.g., a 360-degree spin (e.g., clockwise, counterclockwise, and / or rotation without a specific rotational sense) , a 180-degree turn to face away followed by a 180-degree turn to return to a start position, a turn downward followed by a turn upward to return to a start position, and / or a turn upward followed by a turn downward to return to a start position) . In some embodiments, the movement results in the computer system moving the display component (and / or another portion of the computer system) to be in a position where the user (e.g., represented with respect to and / or having a viewpoint) in the same physical environment as the computer system cannot see a portion of the display component and / or what is displayed on the display component due to the changed position of the computer system. Transitioning from the representation of the second software object to the representation of the first software object including a movement allows the computer system to visually inform the user that a software object transition occurs, thereby providing improved feedback to user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further user input.
[0250] In some embodiments, transitioning the representation of the second software object (e.g., 604) to the representation of the first software object (e.g., 620) includes: ceasing displaying, via the display component, the representation of the second software object (e.g., 604)(e.g., as described above with respect to FIGS. 6C-6E) ; anddisplaying, via the display component, the representation of the first software object (e.g., 620) (e.g., as described above with respect to FIGS. 6C-6E) . Ceasing displaying the representation of the second software object and displaying the representation of the first software object allows the computer system to visually inform the user that a software object transition occurs, thereby providing improved feedback to user, allowing the computer system to avoid burin-in of the display component, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further user input .
[0251] In some embodiments, in response to receiving the request (e.g., 605a and / or 605b) , the computer system concurrently displays, via the display component, the representation of the first software object and a representation of a third software object (e.g., 604 and 620) different from the representation of the first software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the representation of the first software object and the representation of the third software object are displayed at the same time. In some embodiments, the representation of the first software object is displayed immediately after the representation of the third software object. In some embodiments, the representation of the third software object is the same as the representation of the second software object. In some embodiments, the representation of the third software object is different than the representation of the second software object. In some embodiments, the representation of the first software object and the representation of the third software object correspond to different applications. Displaying the representation of the first software object concurrently with the representationof the third software object allows the computer system to display multiple software objects to the user and potentially indicate a transition is occurring, will occur, and / or may occur, thereby providing improved feedback to user, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further user input.
[0252] In some embodiments, the first set of one or more criteria includes a criterion that is satisfied when a second input (e.g., 605b) (e.g., a tap input and / or a non-tap input (e.g., a verbal input, an audible request, an audible command, an audible statement, a swipe input, a hold-and-drag input, a gaze input, an air gesture, and / or a mouse click) ) is detected (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, second the input corresponds to (e.g., is directed to, is at a location of, and / or indicates an intent related to) the representation of the software object and / or respective application. In some embodiments, the second input is a particular type of input (e.g., representing and / or configured to indicate an intent as a request to display the indication) . Displaying the identifier in accordance with a second input being detected allows the computer system to indicated it has received the input from the user, thereby providing improved feedback to user and performing an operation when a set of conditions has been met without requiring further user input.
[0253] In some embodiments, the second input (e.g., 605b) is an interaction with (e.g., during an exchange and / or in response to displaying the first software object) the first software object (e.g., 604 and / or 620) (e.g., as described above with respect to FIGS. 6A-6E) .
[0254] In some embodiments, the second input (e.g., 605b) (e.g., gaze, air gesture, and / or hover) is directed to (e.g., physically directed to and / or verbally directed to) the first software object (e.g., 604 and / or 620) (e.g., as described above with respect to FIGS. 6A-6E) .
[0255] In some embodiments, the one or more input devices includes a microphone and wherein the second input (e.g., 605b) includes verbal input (e.g., as described above with respect to FIGS. 6A-6E) (e.g., an audible request, an audible command, and / or an audible statement) . Displaying the identifier in accordance with a second input includes verbal input provides the computer system with increased flexibility and / or accessibility in receiving communication from a subject and / or enables the computer system to perform an operation based on audio, thereby reducing the number of inputs needed to perform an operation, providing additional control options without cluttering the user interface with additional displayed controls, and performing an operation when a set of conditions has been met without requiring further user input.
[0256] In some embodiments, in accordance with a determination that a fifth set of one or more criteria is satisfied (e.g., a predetermined amount of time has passed, output is completed, input has ended, and / or a new input is received) , the computer system ceases displaying the identifier (e.g., 622) corresponding to the representation of the first software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the representation of the first software object (and / or one or more other representations of software objects) continue to be displayed after ceasing displaying the identifier corresponding to the representation of the first software object. In some embodiments, the computer system ceases displaying the representation of the first software object (and / or one or more other representations of softwareobjects) after ceasing displaying the identifier corresponding to the representation of the first software object. Ceasing displaying the identifier corresponding to the first software object in accordance with a determination that a set of one or more criteria has been met allows the computer system to decrease clutter on the user interface when the identifier is no longer needed, thereby reducing the number of inputs needed to perform an operation, allowing the computer system to avoid burn-in of the display generation, and performing an operation when a set of conditions has been met without requiring further user input.
[0257] In some embodiments, before detecting the request (e.g., 605a) , the computer system displays, via the display component, a representation of a fourth software object (e.g., 604 or 620) , wherein the representation of the fourth software object includes (e.g., corresponds to, has, and / or is represented by) a first set of one or more visual characteristics, wherein the representation of the first software object (e.g., 604 or 620) includes (e.g., corresponds to, has, and / or is represented by) a second set of one or more visual characteristics different from the first set of one or more visual characteristics, and wherein the first software object is different from the fourth software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the fourth software object and the first software object are concurrently displayed (or not concurrently displayed) . In some embodiments, the first software object replaces the fourth software object. In some embodiments, the fourth software object is the same as the second and / or third software object. In some embodiments, the fourth software object is different than the second and / or third software object. In some embodiments, the representation of the first software object is a first avatar (e.g., that includes thesecond set of visual characteristics) . In some embodiments, the representation of the fourth software object is a second avatar (e.g., that includes the first set of visual characteristics) . In some embodiments, a visual characteristic includes color, shape, movements, mannerisms, facial features, and / or other characteristic affected visual appearance. The representation of the first software object and the representation of the fourth software object having differing visual characteristics allows the computer system to display different looking software objects based on which one needs to be displayed and provide the user with visual confirmation that the software object has changed, thereby perform an operation, performing an operation when a set of conditions has been met without requiring further input and providing improved visual feedback to the user.
[0258] In some embodiments, before detecting the request (e.g., 605a) , the computer system displays, via the display component, a representation of the fifth software object (e.g., 604 or 620) , wherein the fifth software object includes (e.g., corresponds to, has, and / or is represented by) a first set of one or more audio characteristics (e.g., tone, pitch, accent, voice and / or volume) , wherein the first software object (e.g., 604 or 620) includes ( e . g . , corresponds to, includes, and / or is represented by) a second set of one or more audio characteristics (e.g., tone, pitch, accent, voice and / or volume) different from the first set of one or more audio characteristics, and wherein the first software object is different from the fifth software object (e.g., as described above with respect to FIGS. 6A-6E) . In some embodiments, the fifth software object and the first software object are concurrently displayed (or not concurrently displayed) . In some embodiments, the first software object replaces the fifth software object. In some embodiments, thefifth software object is the same as the second, third, and / or fourth software object. In some embodiments, the fourth software object is different than the second, third, and / or fourth software object. In some embodiments, the computer system outputs a first audio output corresponding to the fourth software object using the first set of one or more audio characteristics (e.g., and not the second set of one or more audio characteristics) . In some embodiments, the computer system outputs a second audio output corresponding to the first software object using the second set of one or more audio characteristics (e.g., and not the first set of one or more audio characteristics) . Displaying representations of software objects that include different audio characteristics allows the computer system to output distinguishing features of different software objects, thereby performing an operation when a set of conditions has been met without requiring further input and providing improved feedback to the user.
[0259] Note that details of the processes described above with respect to method 800 (e.g., FIG. 9) are also applicable in an analogous manner to other methods described herein. For example, method 700 optionally includes one or more of the characteristics of the various methods described above with reference to method 800. For example, displaying the representation of the second software object, in accordance with the determination that the request corresponds to the second application, of method 900 can occur in conjunction with (e.g., while, after, and / or in response to) the movement of method 700. For brevity, these details are not repeated herein .
[0260] FIG. 9 is a flow diagram illustrating a method (e.g., method 900) for displaying a representation of a software object for an application that corresponds to a request in accordance with some embodiments. Some operations in method900 are, optionally, combined, the orders of some operations are, optionally, changed, and some operations are, optionally, omitted .
[0261] As described below, method 900 provides an intuitive way for displaying a representation of a software object for an application that corresponds to a request. Method 900 reduces the cognitive burden on a user, thereby creating a more efficient human-machine interface. For battery-operated computing devices, enabling a user to interact with such devices faster and more efficiently conserves power and increases the time between battery charges.
[0262] In some embodiments, method 900 is performed at a computer system (e.g., 600) that is in communication with one or more input devices (e.g., a camera, a depth sensor, and / or a microphone) and a display component (e.g., a display screen, a projector, and / or a touch-sensitive display) . In some embodiments, the computer system is a watch, a phone, a tablet, a fitness tracking device, a processor, a head-mounted display (HMD) device, a communal device, a media device, a speaker, a television, and / or a personal computing device.
[0263] While displaying, via the display component, a representation of a first software object (e.g., 604) that corresponds to a first application (e.g., downloaded application, systems process, and / or widgets) , the computer system detects (902) input (e.g., a tap input (e.g., a swipe input, a hold-and-drag input, an air gesture, and / or a mouse click) and / or a non-tap input (e.g., a verbal input, an audible request, an audible command, an audible statement, and / or a gaze input) ) representing a request (e.g., 605a) (e.g., as described above with respect to FIG. 6A) (e.g., to perform a task and / or for information) .
[0264] In response to receiving (904) the input, in accordance with a determination that the request (e.g., 605a) corresponds to (e.g., is directed to, is selection of, is pointed in a direction of (e.g., a direction of a representation of) , includes reference to, mentions, names, identifies, and / or is configured to be associated with) a second application (e.g., 614) different from the first application, the computer system displays (906) , via the display component, a representation of a second software object (e.g., 620) that corresponds to the second application (e.g., as described above with respect to FIG. 6E) (e.g., and cease displaying the representation of the first software object) .
[0265] In response to receiving (904) the input, in accordance with a determination (908) that the request (e.g., 605a) corresponds to (e.g., is directed to, is selection of, is pointed in a direction of (e.g., a direction of a representation of) , includes reference to, mentions, names, identifies, and / or is configured to be associated with) the first application, the computer system continues (910) displaying, via the display component, the representation of the first software object (e.g., 604) (e.g., as described above with respect to FIGS. 6A-6C) . In some embodiments, in accordance with a determination that the request corresponds to the first application, the computer system ceases displaying, via the display generation component, the representation of the first software object. In some embodiments, in accordance with a determination that the request corresponds to the first application, the computer system displays, via the display generation component, a user interface (e.g., corresponding to the first application) (e.g., with or without concurrently displaying the representation of the first software object) .
[0266] In response to (904) receiving the input, in accordance with the determination (908) that the request corresponds to the first application, the computer system forgoes (912) displaying (e.g., not displaying) , via the display component, the representation of the second software object (e.g., 620) that corresponds to the second application (e.g., as described above with respect to FIGS. 6A-6E) . Displaying a representation of a particular software object selectively in accordance with a determination that a request corresponds to a first application or a second application allows the computer system to appropriately switch between relevant software objects, thereby providing improved feedback to user, allowing the computer system to avoid burin-in of the display component, reducing the number of inputs needed to perform an operation, and performing an operation when a set of conditions has been met without requiring further user input.
[0267] In some embodiments, the first software object is a system software object (e.g., as described above with respect to FIGS. 6A-6C) (e.g., corresponding to an operating system process of the computer system and / or not corresponding to an application process of an application installed on the operating system) . In some embodiments, the system software object is a default software object (e.g., that is configured to receive and / or respond to requests by default and / or that is configured to handover control to other software objects when a certain set of conditions is met and / or a context is true) .
[0268] In some embodiments, in conjunction with (e.g., before, after, and / or in response to) displaying the representation of the second software object (e.g., 620) , the computer system causes an operation to be performed (e.g., by the computer system and / or one or more other computer systems) with one or more files (e.g., 616) (e.g., tax returns, images, and / ordocuments) corresponding to the request (e.g., 605a) (e.g., as described above with respect to FIGS. 6B-6E) (e.g., send to the second application and / or perform the task) . In some embodiments, the request corresponds to a task (e.g., a task requested to be performed that is communicated in and / or represented by the request) . In some embodiments, the one or more files corresponds to the task (e.g., are related to the task, are relevant to the task, are necessary for completion of the task, can be used in t...
Claims
CLAIMSWhat is claimed is:
1. A method, comprising: at a computer system that is in communication with one or more input devices, a display component, and a movement component : while displaying, via the display component, a representation of a first software object, receiving an indication that a representation of a second software object is to be displayed, wherein the second software object is different from the first software object; and in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
2. The method of claim 1, wherein performing the movement includes causing the display component to be obscured from a first viewpoint of a user.
3. The method of any one of claims 1-2, wherein the movement, performed in conjunction with displaying the representation of the second software object, is a preconfigured movement pattern.
4. The method of any one of claims 1-3, wherein the movement performed in conjunction with displaying the representation of the second software object is a 360 degree rotation.
5. The method of any one of claims 1-3, wherein the movement, performed in conjunction with displaying the representation of the second software object, includes movingfrom a first position to a second position and then returning to the first position, wherein in the first position the display is not obscured from a second viewpoint of the user, and wherein in the second position the display is obscured from the second viewpoint of the user.
6. The method of any one of claims 1-5, wherein the indication that the representation of the second software object is to be displayed includes an indication of a task to be performed.
7. The method of any one of claims 1-6, further comprising: before performing the movement in conjunction with displaying the representation of the second software object, displaying, via the display component, a notification requesting permission to share information with the second software object.
8. The method of any one of claims 1-7, further comprising: before performing the movement in conjunction with displaying the representation of the second software object, displaying, via the display component, a notification requesting permission to display the representation of the second software object.
9. The method of any one of claims 1-8, wherein the indication that the representation of the second software object is to be displayed is received in accordance with a determination that the first software object cannot perform a requested task.
10. The method of any one of claims 1-9, wherein: the representation of the first software object includes a first set of visual characteristics; andthe representation of the second software object includes a second set of visual characteristics different from the first set of visual characteristics.
11. The method of any one of claims 1-10, wherein the computer system is in communication with one or more audio output component, the method further comprising: while displaying the representation of the first software object, outputting, via the audio output component, a first audio output corresponding to the representation of the first software object; and while displaying the representation of the second software object, outputting, via the audio output component, a second audio output corresponding to the representation of the second software object, wherein the first audio output is different from the second audio output.
12. The method of any one of claims 1-11, wherein: the first software object corresponds to a first application; and the second software object corresponds to a second application different from the first application.
13. The method of any one of claims 1-12, further comprising: in response to receiving the indication that the representation of the second software object is to be displayed, ceasing displaying, via the display component, the representation of the first software object.
14. The method of any one of claims 1-13, wherein performing the movement in conjunction with displaying the representation of the second software object includes initiating displaying of the representation of the second software object while performing the movement.
15. The method of any one of claims 1-13, wherein performing the movement in conjunction with displaying the representation of the second software object is initiated after the movement has started.
16. The method of any one of claims 1-15, wherein the computer system is in communication with a second set of one or more audio output components, the method further comprising : after performing the movement, outputting, via the second set of one or more audio output components, a second audio output corresponding to the representation of the second software object.
17. The method of any one of claims 1-16, wherein the representation of the first software object is displayed in conjunction with performing the movement.
18. The method of any one of claims 1-17, wherein the representation of the first software object and the representation of the second software object are not concurrently displayed.
19. The method of any one of claims 1-18, further comprising: before performing the movement, ceasing displaying, via the display component, the representation of the first software object.
20. The method of any one of claims 1-19, further comprising: while displaying, via the display component, the representation of the second software object, receiving an indication that a representation of a third software object isto be displayed, wherein the third software object is different from the second software object; and in response to receiving the indication that the representation of the third software object is to be displayed, performing, via the movement component, the movement in conjunction with displaying, via the display component, the representation of the third software object.
21. The method of any one of claims 1-19, wherein the movement performed in conjunction with displaying the representation of the second software object is a first movement, the method further comprising: while displaying the representation of the second software object, receiving an indication that a representation of fourth software object is to be displayed, wherein the second software object is different from the fourth software object; and in response to receiving the indication that the representation of the fourth software object is to be displayed, performing, via the movement component, a second movement different from the first movement in conjunction with displaying, via the display component, the representation of the fourth software object.
22. The method of any one of claims 1-21, wherein the first software object corresponds to a system process and the second software object corresponds to a first application process, wherein displaying, via the display component, the representation of the second software object includes switching, the display of the representation of the first software object to the representation of the second software object, wherein performing, via the movement component, the movement in conjunction with displaying, via the display component, the representation of the second software objectincludes moving in a first movement pattern, the method further comprising: while displaying, via the display component, the representation of the second software object, receiving an indication that a representation of a fifth software object is to be displayed, wherein: the fifth software object is different from the first software object and the second software object; and the fifth software object corresponds to a second application process; and in response to receiving the indication that the representation of the fifth software object is to be displayed, performing, via the movement component, a second movement pattern different from the first movement pattern in conjunction with displaying, via the display component, the representation of the fifth software object, and wherein displaying the representation of the fifth software object includes switching the display of the representation of the second software object to the representation of the fifth software object.
23. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices, a display component, and a movement component, the one or more programs including instructions for performing the method of any one of claims 1-22.
24. A computer system that is configured to communicate with one or more input devices, a display component, and a movement component, the computer system comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or moreprograms including instructions for performing the method of any one of claims 1-22 .25 . A computer system that is configured to communicate with one or more input devices , a display component , and a movement component , the computer system comprising : means for performing the method of any one of claims 1- 22 .26 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices , a display component , and a movement component , the one or more programs including instructions for performing the method of any one of claims 1-22 .27 . A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices , a display component , and a movement component , the one or more programs including instructions for : while displaying, via the display component , a representation of a first software obj ect , receiving an indication that a representation of a second software obj ect is to be displayed, wherein the second software obj ect is di f ferent from the first software obj ect ; and in response to receiving the indication that the representation of the second software obj ect is to be displayed, performing, via the movement component , a movement in conj unction with displaying, via the display component , the representation of the second software obj ect .
28. A computer system configured to communicate with one or more input devices, a display component, and a movement component, comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: while displaying, via the display component, a representation of a first software object, receiving an indication that a representation of a second software object is to be displayed, wherein the second software object is different from the first software object; and in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
29. A computer system configured to communicate with one or more input devices, a display component, and a movement component, comprising: means for, while displaying, via the display component, a representation of a first software object, receiving an indication that a representation of a second software object is to be displayed, wherein the second software object is different from the first software object; and means for, in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
30. A computer program product, comprising one or more programs configured to be executed by one or more processorsof a computer system that is in communication with one or more input devices, a display component, and a movement component, the one or more programs including instructions for: while displaying, via the display component, a representation of a first software object, receiving an indication that a representation of a second software object is to be displayed, wherein the second software object is different from the first software object; and in response to receiving the indication that the representation of the second software object is to be displayed, performing, via the movement component, a movement in conjunction with displaying, via the display component, the representation of the second software object.
31. A method, comprising: at a computer system that is in communication with one or more input devices and a display component: detecting, via the one or more input devices, a request ; in response to receiving the request, displaying, via the display component, a representation of a first software object that corresponds to a respective application; and while displaying, via the display generation component, the representation of the first software object that corresponds to the respective application: in accordance with a determination that a first set of one or more criteria is satisfied, the first set of one or more criteria including a criterion that is satisfied when the first software object corresponds to a first application, displaying, via the display component, an identifier corresponding to the first software object; and in accordance with a determination that a second set of one or more criteria is satisfied, wherein thesecond set of one or more criteria includes a criterion that is satisfied when the first software object corresponds to a second application different from the first application, forgoing displaying, via the display component, the identifier corresponding to the first software object.
32. The method of claim 31, wherein displaying the representation of the first software object that corresponds to the respective application includes displaying a visual change over time corresponding to the representation of the first software object.
33. The method of any one of claims 31-32, wherein the computer system is in communication with a first audio output component, the method further comprising: while displaying the representation of the first software object that corresponds to the respective application, outputting, via the first audio output component, an audio output corresponding to the representation of the first software object.
34. The method of claim 33, wherein: displaying the representation of the first software object that corresponds to the respective application includes performing a movement corresponding to the representation of the first software object; and the audio output corresponding to the representation of the first software object is synchronized with the movement corresponding to the representation of the first software ob j ect .
35. The method of any one of claims 31-34, wherein the computer system is in communication with a one or more output devices, the method further comprising:while displaying the representation of the first software object, receiving a first input, via the one or more input devices, corresponding to an interaction with the first software object; and in response to receiving the input corresponding to an interaction with the first software object: in accordance with a determination that a third set of one or more criteria is satisfied, wherein the third set of one or more criteria includes a criterion that is satisfied when the first input corresponds to the first application, outputting, via the one or more output devices, a first response; and in accordance with a determination that a fourth set of one or more criteria is satisfied, wherein the fourth set of one or more criteria includes a criterion that is satisfied when the first input corresponds to the second application, outputting, via the one or more output devices, a second response .
36. The method of any one of claims 31-35, wherein the computer system is in communication with a display component, the method further comprising: before detecting the request, displaying, via the display component, a representation of a second software object different from the representation of the first software object; and in response to detecting the request, transitioning the representation of the second software object to the representation of the first software object.
37. The method of claim 36, wherein the computer system is in communication with a movement component, and wherein transitioning the representation of the second software objectto the representation of the first software object includes performing, via the movement component, a movement.
38. The method of any one of claims 36-37, wherein transitioning the representation of the second software object to the representation of the first software object includes: ceasing displaying, via the display component, the representation of the second software object; and displaying, via the display component, the representation of the first software object.
39. The methods of any one of claims 31-38, further comprising : in response to receiving the request, concurrently displaying, via the display component, the representation of the first software object and a representation of a third software object different from the representation of the first software object.
40. The method of any one of claims 31-39, wherein the first set of one or more criteria includes a criterion that is satisfied when a second input is detected.
41. The method of claim 40, wherein the second input is an interaction with the first software object.
42. The method of any one of claims 40-41, wherein the second input is directed to the first software object.
43. The method of any one of claims 40-42, wherein the one or more input devices includes a microphone and wherein the second input includes verbal input.
44. The method of any one of claims 31-43, further comprising : in accordance with a determination that a fifth set of one or more criteria is satisfied, ceasing displaying the identifier corresponding to the representation of the first software object.
45. The method of any one of claims 31-44, further comprising : before detecting the request, displaying, via the display component, a representation of a fourth software object, wherein the representation of the fourth software object includes a first set of one or more visual characteristics, wherein the representation of the first software object includes a second set of one or more visual characteristics different from the first set of one or more visual characteristics, and wherein the first software object is different from the fourth software object.
46. The method of any one of claims 31-45, further comprising : before detecting the request, displaying, via the display component, a representation of the fifth software object, wherein the fifth software object includes a first set of one or more audio characteristics, wherein the first software object includes a second set of one or more audio characteristics different from the first set of one or more audio characteristics, and wherein the first software object is different from the fifth software object.
47. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component, the one ormore programs including instructions for performing the method of any one of claims 31-46 .48 . A computer system that is configured to communicate with one or more input devices and a display component , the computer system comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for performing the method of any one of claims 31-46 .49 . A computer system that is configured to communicate with one or more input devices and a display component , the computer system comprising : means for performing the method of any one of claims 31- 46 .50 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component , the one or more programs including instructions for performing the method of any one of claims 31-46 .51 . A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component , the one or more programs including instructions for : detecting, via the one or more input devices , a request ; in response to receiving the request , displaying, via the display component , a representation of a first software obj ect that corresponds to a respective application; andwhile displaying, via the display generation component , the representation of the first software obj ect that corresponds to the respective application : in accordance with a determination that a first set of one or more criteria is satis fied, the first set of one or more criteria including a criterion that is satis fied when the first software obj ect corresponds to a first application, displaying, via the display component , an identi fier corresponding to the first software obj ect ; and in accordance with a determination that a second set of one or more criteria is satis fied, wherein the second set of one or more criteria includes a criterion that is satis fied when the first software obj ect corresponds to a second application di f ferent from the first application, forgoing displaying, via the display component , the identi fier corresponding to the first software obj ect .52 . A computer system configured to communicate with one or more input devices and a display component , comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for : detecting, via the one or more input devices , a request ; in response to receiving the request , displaying, via the display component , a representation of a first software obj ect that corresponds to a respective application; and while displaying, via the display generation component , the representation of the first software obj ect that corresponds to the respective application : in accordance with a determination that a first set of one or more criteria is satis fied, the first set of oneor more criteria including a criterion that is satisfied when the first software object corresponds to a first application, displaying, via the display component, an identifier corresponding to the first software object; and in accordance with a determination that a second set of one or more criteria is satisfied, wherein the second set of one or more criteria includes a criterion that is satisfied when the first software object corresponds to a second application different from the first application, forgoing displaying, via the display component, the identifier corresponding to the first software object.
53. A computer system configured to communicate with one or more input devices and a display component, comprising: means for, detecting, via the one or more input devices, a request; means for, in response to receiving the request, displaying, via the display component, a representation of a first software object that corresponds to a respective application; and while displaying, via the display generation component, the representation of the first software object that corresponds to the respective application: means for, in accordance with a determination that a first set of one or more criteria is satisfied, the first set of one or more criteria including a criterion that is satisfied when the first software object corresponds to a first application, displaying, via the display component, an identifier corresponding to the first software object; and means for, in accordance with a determination that a second set of one or more criteria is satisfied, wherein the second set of one or more criteria includes a criterion that is satisfied when the first software object corresponds to a second application different from the first application,forgoing displaying, via the display component, the identifier corresponding to the first software object.
54. A computer program product, comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component, the one or more programs including instructions for: detecting, via the one or more input devices, a request; in response to receiving the request, displaying, via the display component, a representation of a first software object that corresponds to a respective application; and while displaying, via the display generation component, the representation of the first software object that corresponds to the respective application: in accordance with a determination that a first set of one or more criteria is satisfied, the first set of one or more criteria including a criterion that is satisfied when the first software object corresponds to a first application, displaying, via the display component, an identifier corresponding to the first software object; and in accordance with a determination that a second set of one or more criteria is satisfied, wherein the second set of one or more criteria includes a criterion that is satisfied when the first software object corresponds to a second application different from the first application, forgoing displaying, via the display component, the identifier corresponding to the first software object.
55. A method, comprising: at a computer system that is in communication with one or more input devices and a display component: while displaying, via the display component, a representation of a first software object that corresponds toa first application, detecting input representing a request; and in response to receiving the input: in accordance with a determination that the request corresponds to a second application different from the first application, displaying, via the display component, a representation of a second software object that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application: continuing displaying, via the display component, the representation of the first software object; and forgoing displaying, via the display component, the representation of the second software object that corresponds to the second application.
56. The method of claim 55, wherein the first software object is a system software object.
57. The method of any one of claims 55-56, further comprising : in conjunction with displaying the representation of the second software object, causing an operation to be performed with one or more files corresponding to the request.
58. The method of claim 57, wherein causing the operation to be performed with the one or more files corresponding to the request is performed in response to receiving the input.
59. The method of claim 57, wherein causing the operation to be performed with the one or more files corresponding to the request is performed after receiving the input.
60. The method of any one of claims 55-59, further comprising : in response to receiving the input and in accordance with a determination that the request cannot be performed by the first software object, outputting, via the one or more output devices, a prompt for a second input.
61. The method of claim 60, wherein the prompt for the second input is a request for permission to launch the first application .
62. The method of claim 60, wherein the prompt for the second input is a request for permission to share data with the first application .
63. The method of any one of claims 55-62, further comprising : before displaying the representation of the second software object that corresponds to the second application, obtaining a response corresponding to a task specified in the request .
64. The method of claim 63, wherein obtaining the response related to the detected input specified in the request includes detecting, via the one or more input devices, a first request to share information with the second software object.
65. The method of claim 63, wherein the obtained response is a request to display the representation of the second software object that corresponds to the second application.
66. The method of any one of claims 55-65, further comprising :in response to receiving the input and in accordance with a determination that the first software object cannot perform the request: ceasing displaying, via the display component, the representation of the first software object; and displaying, via the display component, the representation of the second software object.
67. The method of any one of claims 55-66, wherein the representation of the first software object includes a set of one or more visual characteristics and wherein the representation of the second software object includes a second set of one or more visual characteristics different from the first set of one or more visual characteristics.
68. The method of any one of claims 55-67, wherein the representation of the first software object includes a first set of one or more audio characteristics and wherein the representation of the second software object includes a second set of one or more audio characteristics different from the first set of one or more audio characteristics.
69. The method of any one of claims 55-68, wherein the first software object corresponds to a first application, and wherein the second software object corresponds to a second application different from the first application.
70. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component, the one or more programs including instructions for performing the method of any one of claims 55-69.71 . A computer system that is configured to communicate with one or more input devices and a display component , the computer system comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for performing the method of any one of claims 55- 69 .72 . A computer system that is configured to communicate with one or more input devices and a display component , the computer system comprising : means for performing the method of any one of claims 55- 69 .73 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component , the one or more programs including instructions for performing the method of any one of claims 55- 69 .74 . A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component , the one or more programs including instructions for : while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; and in response to receiving the input : in accordance with a determination that the request corresponds to a second application di f ferent from the firstapplication, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : continuing displaying, via the display component , the representation of the first software obj ect ; and forgoing displaying, via the display component , the representation of the second software obj ect that corresponds to the second application .75 . A computer system configured to communicate with one or more input devices and a display component , comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for : while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; and in response to receiving the input : in accordance with a determination that the request corresponds to a second application di f ferent from the first application, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : continuing displaying, via the display component , the representation of the first software obj ect ; andforgoing displaying, via the display component , the representation of the second software obj ect that corresponds to the second application .76 . A computer system configured to communicate with one or more input devices and a display component , comprising : means for, while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; and in response to receiving the input : means for, in accordance with a determination that the request corresponds to a second application di f ferent from the first application, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : means for continuing displaying, via the display component , the representation of the first software obj ect ; and means for forgoing displaying, via the display component , the representation of the second software obj ect that corresponds to the second application .77 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and a display component , the one or more programs including instructions for : while displaying, via the display component , a representation of a first software obj ect that corresponds to a first application, detecting input representing a request ; andin response to receiving the input : in accordance with a determination that the request corresponds to a second application di f ferent from the first application, displaying, via the display component , a representation of a second software obj ect that corresponds to the second application; and in accordance with a determination that the request corresponds to the first application : continuing displaying, via the display component , the representation of the first software obj ect ; and forgoing displaying, via the display component , the representation of the second software obj ect that corresponds to the second application .78 . A method, comprising : at a computer system that is in communication with one or more display components and one or more input devices : while displaying, via the one or more display components , a representation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input : in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect and proceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and in accordance with a determination that the input starts at the location corresponding to the representation of the software obj ect and proceeds in a second direction di f ferent from the first direction, maintaining the computer system in the first mode .
79. The method of claim 78, wherein the first mode is a first power mode, wherein the second mode is a second power mode, and wherein the first power mode consumes more power than the second power mode.
80. The method of any one of claims 78-79, further comprising : while the computer system is in the first mode, displaying, via the one or more display components, a first user interface; and while the computer system is in the second mode, displaying, via the one or more display components, a second user interface different from the first user interface.
81. The method of claim 80, wherein: the second user interface includes current temporal information; and the first user interface does not include current temporal information.
82. The method of any one of claims 78-81, wherein the input is a first input, the method further comprising: while the computer system is in the second mode: detecting, via the one or more input devices, a second input different from the first input; and in response to detecting the second input: in accordance with a determination that the second input is a first type of input, responding to the second input; and in accordance with a determination that the second input is a second type of input different from the first type of input, forgoing response to the second input; and while the computer system is in the first mode:detecting, via the one or more input devices, a third input different from the first input; and in response to detecting the third input: in accordance with a determination that the third input is the first type of input, responding to the third input; and in accordance with a determination that the third input is the second type of input, responding to the third input.
83. The method of any one of claims 78-82, further comprising : while the computer system is in the first mode, moving a portion of the representation of the software object; and while the computer system is in the second mode, forgoing movement of the portion of the representation of the software ob ect .
84. The method of any one of claims 78-83, wherein the representation of the software object is a first representation of the software object, the method further comprising : in response to detecting the input and in accordance with the determination that the input starts at the location corresponding to the representation of the software object and proceeds in the first direction, displaying, via the one or more display components, a second representation of the software object different from the first representation of the software object.
85. The method of any one of claims 78-84, wherein the computer system is in communication with one or more output devices, wherein changing the computer system to be operated in the second mode includes outputting, via the one or moreoutput devices, an auditory output, a haptic output, or a combination thereof.
86. The method of any one of claims 78-85, wherein the input is a first input, the method further comprising: while the computer system is in the second mode, detecting, via the one or more input devices, a third input different from the first input; and in response to detecting the third input and in accordance with a determination that the third input satisfies a set of one or more criteria, changing the computer system to be operated in the first mode.
87. The method of any one of claims 78-86, further comprising : while the computer system is in the first mode, detecting that an event has occurred without detecting, via the one or more input devices, an additional input; and in response to detecting the event and in accordance with a determination that a set of one or more criteria is satisfied, changing the computer system to be operated in the second mode.
88. The method of any one of claims 78-87, wherein the representation of the software object is a first representation of the software object, and wherein changing the computer system to be operated in the second mode includes : ceasing display of the first representation of the software object; and displaying, via the one or more display components, a second representation of the software object different from the first representation of the software object.
89. The method of any one of claims 78-88, wherein the representation of the software object is a first representation of the software object, the method further comprising : in response to detecting the input and in accordance with a determination that the input starts at the location corresponding to the representation of the software object and proceeds in a third direction different from the first direction : maintaining the computer system in the first mode; ceasing display of the first representation of the software object; and displaying, via the one or more display components, a third representation of the software object different from the first representation of the software object.
90. The method of any one of claims 78-89, wherein the location is a first location, wherein the computer system is in communication with one or more output devices, the method further comprising: in conjunction with detecting the input, displaying, via the one or more input devices, a first user interface element and a second user interface element different from the first user interface element; and after detecting the input: in accordance with a determination that the input started at the first location corresponding to the representation of the software object and was released at the first user interface element, outputting, via the one or more output devices, an output corresponding to the first user interface element; and in accordance with a determination that the input started at the first location corresponding to the representation of the software object and was released at thesecond user interface element , outputting, via the one or more output devices , an output corresponding to the second user interface element .91 . A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices , the one or more programs including instructions for performing the method of any one of claims 78- 90 .92 . A computer system that is configured to communicate with one or more display components and one or more input devices , the computer system comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for performing the method of any one of claims 78- 90 .93 . A computer system that is configured to communicate with one or more display components and one or more input devices , the computer system comprising : means for performing the method of any one of claims 78- 90 .94 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices , the one or more programs including instructions for performing the method of any one of claims 78- 90 .95 . A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices , the one or more programs including instructions for : while displaying, via the one or more display components , a representation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input : in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect and proceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and in accordance with a determination that the input starts at the location corresponding to the representation of the software obj ect and proceeds in a second direction di f ferent from the first direction, maintaining the computer system in the first mode .96 . A computer system configured to communicate with one or more display components and one or more input devices , the computer system comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for : while displaying, via the one or more display components , a representation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input :in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect and proceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and in accordance with a determination that the input starts at the location corresponding to the representation of the software obj ect and proceeds in a second direction di f ferent from the first direction, maintaining the computer system in the first mode .97 . A computer system configured to communicate with one or more display components and one or more input devices , the computer system comprising : means for, while displaying, via the one or more display components , a representation of a software obj ect and while the computer system is in a first mode , detecting, via the one or more input devices , an input ; and in response to detecting the input : means for, in accordance with a determination that the input starts at a location corresponding to the representation of the software obj ect and proceeds in a first direction, changing the computer system to be operated in a second mode di f ferent from the first mode ; and means for, in accordance with a determination that the input starts at the location corresponding to the representation of the software obj ect and proceeds in a second direction di f ferent from the first direction, maintaining the computer system in the first mode .98 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or moredisplay components and one or more input devices, the one or more programs including instructions for: while displaying, via the one or more display components, a representation of a software object and while the computer system is in a first mode, detecting, via the one or more input devices, an input; and in response to detecting the input: in accordance with a determination that the input starts at a location corresponding to the representation of the software object and proceeds in a first direction, changing the computer system to be operated in a second mode different from the first mode; and in accordance with a determination that the input starts at the location corresponding to the representation of the software object and proceeds in a second direction different from the first direction, maintaining the computer system in the first mode.
99. A method, comprising: at a computer system that is in communication with one or more display components and one or more input devices: while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; and in response to detecting the input directed at the representation of the system software object: in accordance with a determination that the input is a first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a second user interface different from the first user interface; andin accordance with a determination that the input is a second type of input different from the first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
100. The method of claim 99, further comprising: in response to detecting the input directed at the representation of the system software object and in accordance with a determination that the input is a third type of input different from the first type of input and the second type of input, maintaining display of the first user interface.
101. The method of any one of claims 99-100, wherein the input directed at the representation of the system software object is a first input, the method further comprising: while displaying the first user interface, detecting, via the one or more input devices, a second input; and in response to detecting the second input and in accordance with a determination that the second input is a fourth type of input, displaying, via the one or more display components, a fourth user interface including a list of applications, wherein the fourth user interface is different from the first user interface, the second user interface, and the third user interface.
102. The method of claim 101, wherein the representation of the system software object is a first representation of the system software object, and wherein the fourth user interface includes a second representation of the system software ob j ect .103 . The method of any one of claims 101- 102 , further comprising : while displaying the fourth user interface including the list of applications , detecting, via the one or more input devices , an input corresponding to a respective application in the list of applications ; and in conj unction with detecting the input corresponding to the respective application in the list of applications : in accordance with a determination that the respective application is a first application, displaying, via the one or more display components , a user interface of the first application without displaying the representation of the system software obj ect ; in accordance with a determination that the respective application is a second application di f ferent from the first application, displaying, via the one or more display components , a user interface of the second application without displaying the representation of the system software obj ect .104 . The method of any one of claims 99- 103 , wherein : the determination that the input is the first type of input includes a determination that the input proceeds in a first direction; and the determination that the input is the second type of input includes a determination that the input proceeds in a second direction di f ferent from the first direction .105 . The method of any one of claims 99- 104 , wherein the representation of the system software obj ect is a first representation of the system software obj ect , wherein the second user interface includes a second representation of the system software obj ect di f ferent from the first representation of the system software obj ect .
106. The method of claim 105, wherein: the first representation of the system software object is a first size; the second representation of the system software object is a second size different from the first size.
107. The method of any one of claims 105-106, wherein: the first representation of the system software object has a first expression; the second representation of the system software object has a second expression different from the first expression.
108. The method of any one of claims 105-107, wherein: the first representation of the system software object is at a first location in a displayed area of the one or more display components; and the second representation of the system software object is at a second location, different from the first location, in the displayed area of the one or more display components.
109. The method of any one of claims 99-108, wherein the first user interface includes a set of one or more representations of interactions.
110. The method of any one of claims 99-109, wherein the input directed at the representation of the system software object is a first input, the method further comprising: while displaying the second user interface, detecting, via the one or more inputs devices, a third input different from the first input; and in response to detecting the third input and in accordance with a determination that the third input satisfies a first set of one or more criteria:ceasing display of the second user interface ; and displaying, via the one or more display components , the first user interface .111 . The method of any one of claims 99- 110 , further comprising : while displaying the third user interface , detecting, via the one or more inputs devices , a fourth input di f ferent from the first input ; and in response to detecting the fourth input and in accordance with a determination that the fourth input satis fied a second set of one or more criteria : ceasing display of the third user interface ; and displaying, via the one or more display components , the first user interface .112 . A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices , the one or more programs including instructions for performing the method of any one of claims 99- 111 .113 . A computer system that is configured to communicate with one or more display components and one or more input devices , the computer system comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for performing the method of any one of claims 99- 111 .114 . A computer system that is configured to communicate with one or more display components and one or more input devices , the computer system comprising : means for performing the method of any one of claims 99- 111 .115 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices , the one or more programs including instructions for performing the method of any one of claims 99- 111 .116 . A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices , the one or more programs including instructions for : while displaying, via the one or more display components , a first user interface , detecting, via the one or more input devices , an input directed at a representation of a system software obj ect ; and in response to detecting the input directed at the representation of the system software obj ect : in accordance with a determination that the input is a first type of input : ceasing display of the representation of the system software obj ect ; and displaying, via the one or more display components , a second user interface di f ferent from the first user interface ; and in accordance with a determination that the input is a second type of input di f ferent from the first type of input :ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
117. A computer system configured to communicate with one or more display components and one or more input devices, the computer system comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; and in response to detecting the input directed at the representation of the system software object: in accordance with a determination that the input is a first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a second user interface different from the first user interface; and in accordance with a determination that the input is a second type of input different from the first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
118. A computer system configured to communicate with one or more display components and one or more input devices, the computer system comprising: means for, while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; and in response to detecting the input directed at the representation of the system software object: in accordance with a determination that the input is a first type of input: means for ceasing display of the representation of the system software object; and means for displaying, via the one or more display components, a second user interface different from the first user interface; and in accordance with a determination that the input is a second type of input different from the first type of input: means for ceasing display of the representation of the system software object; and means for displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
119. A computer program product, comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more display components and one or more input devices, the one or more programs including instructions for: while displaying, via the one or more display components, a first user interface, detecting, via the one or more input devices, an input directed at a representation of a system software object; andin response to detecting the input directed at the representation of the system software object: in accordance with a determination that the input is a first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a second user interface different from the first user interface; and in accordance with a determination that the input is a second type of input different from the first type of input: ceasing display of the representation of the system software object; and displaying, via the one or more display components, a third user interface different from the first user interface and the second user interface.
120. A method, comprising: at a computer system that is in communication with one or more input devices and one or more display components: detecting, via the one or more input devices, a state of an environment; and in response to detecting the state of the environment : in accordance with a determination that the state of the environment satisfies a set of one or more criteria, displaying, via the one or more display components, a representation of a software object; and in accordance with a determination that the state of the environment does not satisfy the set of one or more criteria, forgoing display of the representation of the software object.
121. The method of claim 120, further comprising:in response to detecting the state of the environment and in accordance with the determination that the state of the environment satis fies the set of one or more criteria, enabling at least one of the one or more input devices .122 . The method of any one of claims 120- 121 , wherein the computer system is in communication with one or more movement components , the method further comprising : in response to detecting the state of the environment and in accordance with the determination that the state of the environment satis fies the set of one or more criteria, enabling the one or more movement components .123 . The method of any one of claims 120- 122 , wherein the one or more input devices includes one or more cameras , and wherein detecting the state of the environment includes detecting, via the one or more cameras , the state of the environment .124 . The method of any one of claims 120- 123 , wherein the one or more input devices includes one or more light sensors , and wherein detecting the state of the environment includes detecting, via the one or more light sensors , the state of the environment .125 . The method of any one of claims 120- 124 , wherein detecting the state of the environment includes detecting a level of light within the environment .126 . The method of any one of claims 120- 125 , wherein the set of one or more criteria includes a criterion that is satis fied when a change in a level of light within the environment exceeds a threshold .
127. The method of any one of claims 120-126, wherein the set of one or more criteria includes a criterion that is satisfied when one or more subjects are detected in the environment.
128. The method of claim 127, wherein the computer system is in communication with one or more movement components, the method further comprising: in conjunction with detecting the state of the environment, moving, via one or more movement components, a portion of the computer system.
129. The method of any one of claims 127-128, wherein the computer system is in communication with one or more output devices, the method further comprising: in response to detecting the state of the environment and in accordance with the determination that the state of the environment satisfies the set of one or more criteria, outputting, via the one or more output devices, a greeting.
130. The method of any one of claims 127-129, wherein the one or more input devices include one or more cameras, one or more microphones, or any combination thereof, and wherein detecting the state of the environment includes detecting, via the one or more cameras, the one or more microphones, or any combination thereof, whether the one or more subjects are in the environment.
131. The method of any one of claims 120-130, wherein the state of the environment is a first state of the environment, the method further comprising: while displaying the representation of the software object, detecting, via the one or more input devices, a second state of the environment; andin response to detecting the second state of the environment and in accordance with a determination that the second state of the environment does not satis fy the set of one or more criteria, ceasing display of the representation of the software obj ect .132 . The method of any one of claims 120- 131 , further comprising : while displaying the representation of the software obj ect , detecting, via the one or more input devices , an input ; and in response to detecting the input , performing, via the software obj ect , one or more operations based on the input .133 . A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components , the one or more programs including instructions for performing the method of any one of claims 120- 132 .134 . A computer system that is configured to communicate with one or more input devices and one or more display components , the computer system comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for performing the method of any one of claims 120- 132 .135 . A computer system that is configured to communicate with one or more input devices and one or more display components , the computer system comprising :means for performing the method of any one of claims 120-132 .136 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components , the one or more programs including instructions for performing the method of any one of claims 120- 132 .137 . A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components , the one or more programs including instructions for : detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : in accordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and in accordance with a determination that the state of the environment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .138 . A computer system configured to communicate with one or more input devices and one or more display components , the computer system comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for :detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : in accordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and in accordance with a determination that the state of the environment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .139 . A computer system configured to communicate with one or more input devices and one or more display components , the computer system comprising : means for detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : means for, in accordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and means for, in accordance with a determination that the state of the environment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .140 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components , the one or more programs including instructions for :detecting, via the one or more input devices , a state of an environment ; and in response to detecting the state of the environment : in accordance with a determination that the state of the environment satis fies a set of one or more criteria, displaying, via the one or more display components , a representation of a software obj ect ; and in accordance with a determination that the state of the environment does not satis fy the set of one or more criteria, forgoing display of the representation of the software obj ect .141 . A method, comprising : at a computer system that is in communication with one or more input devices and one or more display components : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of one or more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, directing the computer system at the second point such that the representation of the software obj ect is directed towards the second point , wherein the second point is di f ferent from the first point .142 . The method of claim 141 , further comprising :before displaying the representation of the software object, detecting, via the one or more input devices, an input corresponding to a request to wake; and in response to detecting the input corresponding to the request to wake, transitioning from the inactive mode to the active mode.
143. The method of claim 142, wherein the input corresponding to the request to wake is an input from a subject within the environment .
144. The method of claim 141, further comprising: before displaying the representation of the software object, detecting, via the one or more input devices, a state of the environment; and in response to detecting the state of the environment, transitioning from the inactive mode to the active mode.
145. The method of any one of claims 141-144, wherein the first point of the multiple points of interest is a person within the environment.
146. The method of any one of claims 141-145, wherein the second point of the multiple points of interest is an inanimate object in the environment.
147. The method of any one of claims 141-146, wherein the set of one or more criteria includes a criterion that is satisfied when a respective point of the multiple points of interest is within a threshold distance from the computer system.
148. The method of claim 147, wherein the threshold distance is a first threshold distance, and wherein the set of one or more criteria includes a criterion that is satisfied when therespective point of the multiple points of interest is within a second threshold distance from one or more other points of the multiple points of interest.
149. The method of any one of claims 141-148, wherein the computer system is a communal device.
150. The method of any one of claims 141-149, further comprising : detecting, via the one or more input devices, speech corresponding to the multiple points of interest.
151. The method of any one of claims 141-150, wherein the one or more input devices includes one or more cameras, the method further comprising: detecting, via the one or more cameras, the multiple points of interest.
152. The method of claim 151, wherein the computer system is in communication with one or more movement components, the method further comprising: before detecting the multiple points of interest, moving, via the one or more movement components, a portion of the computer system, wherein the multiple points of interest are detected in conjunction with moving the portion of the computer system.
153. The method of any one of claims 141-152, wherein the set of one or more criteria is a first set of one or more criteria, the method further comprising: in response to transitioning from the inactive mode to the active mode and in accordance with a determination that the multiple points of interest detected within the environment satisfy a second set of one or more criteria,directing the computer system at the multiple points such that the representation of the software obj ect is directed towards the multiple points , wherein the second set of one or more criteria is di f ferent from the first set of one or more criteria .154 . The method of any one of claims 141- 153 , wherein the computer system is in communication with one or more movement components , the method further comprising : in response to transitioning from the inactive mode to the active mode and in accordance with the determination that the first point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, moving, via the one or more movement components , a portion of the computer system such that the portion of the computer system is directed towards the first point .155 . The method of any one of claims 141- 154 , wherein directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point includes altering one or more visual characteristics of the representation of the software obj ect .156 . The method of any one of claims 141- 155 , further comprising : in response to transitioning from the inactive mode to the active mode and in accordance with the determination that the first point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, displaying, via the one or more display components , content corresponding to the first point .157 . The method of any one of claims 141- 156 , wherein the one or more display components are disabled while the computer system is in the inactive mode .158 . The method of any one of claims 141- 156 , further comprising : before transitioning from the inactive mode to the active mode , displaying, via the one or more display components , content di f ferent from the representation of the software ob j ect .159 . The method of any one of claims 141- 158 , wherein the set of one or more criteria is a first set of one or more criteria, the method further comprising : while detecting the multiple points of interest and in accordance with a determination that a third set of one or more criteria is satis fied, transitioning from the active mode to the inactive mode , wherein the third set of one or more criteria is di f ferent from the first set of one or more criteria .160 . The method of any one of claims 141- 159 , further comprising : while displaying the representation of the software obj ect , detecting, via the one or more input devices , that the environment does not include a point of interest ; and in response to detecting that the environment does not include a point of interest , transitioning from the active mode to the inactive mode .161 . A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components ,the one or more programs including instructions for performing the method of any one of claims 141- 160 .162 . A computer system that is configured to communicate with one or more input devices and one or more display components , the computer system comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for performing the method of any one of claims 141- 160 .163 . A computer system that is configured to communicate with one or more input devices and one or more display components , the computer system comprising : means for performing the method of any one of claims 141- 160 .164 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components , the one or more programs including instructions for performing the method of any one of claims 141- 160 .165 . A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components , the one or more programs including instructions for : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect :in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of one or more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, directing the computer system at the second point such that the representation of the software obj ect is directed towards the second point , wherein the second point is di f ferent from the first point .166 . A computer system configured to communicate with one or more input devices and one or more display components , the computer system comprising : one or more processors ; and memory storing one or more programs configured to be executed by the one or more processors , the one or more programs including instructions for : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of one or more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, directing the computer system at the second pointsuch that the representation of the software obj ect is directed towards the second point , wherein the second point is di f ferent from the first point .167 . A computer system configured to communicate with one or more input devices and one or more display components , the computer system comprising : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : means for, in accordance with a determination that a first point of multiple points of interest detected within an environment satis fies a set of one or more criteria, directing the computer system at the first point such that the representation of the software obj ect is directed towards the first point ; and means for, in accordance with a determination that a second point of the multiple points of interest detected within the environment satis fies the set of one or more criteria, directing the computer system at the second point such that the representation of the software obj ect is directed towards the second point , wherein the second point is di f ferent from the first point .168 . A computer program product , comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components , the one or more programs including instructions for : in response to transitioning from an inactive mode to an active mode and while displaying, via the one or more display components , a representation of a software obj ect : in accordance with a determination that a first point of multiple points of interest detected within anenvironment satisfies a set of one or more criteria, directing the computer system at the first point such that the representation of the software object is directed towards the first point; and in accordance with a determination that a second point of the multiple points of interest detected within the environment satisfies the set of one or more criteria, directing the computer system at the second point such that the representation of the software object is directed towards the second point, wherein the second point is different from the first point.
169. A method, comprising: at a computer system that is in communication with one or more input devices and one or more display components: while displaying, via the one or more display components, (1) a representation of a software object in a first manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the sub j ect : in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; and displaying, via the one or more display components, the representation of the software object in a second manner different from the first manner; and in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and(2) the representation of the software object in the first manner .
170. The method of claim 169, wherein displaying the representation of the software object in the first manner includes displaying, via the one or more display components, the representation of the software object having a first size, wherein displaying the representation of the software object in the second manner includes displaying, via the one or more display components, the representation of the software object having a second size larger than the first size.
171. The method of claim 170, wherein: in accordance with a determination that the content has a third size, the representation of the software object is displayed having the first size; in accordance with a determination that the content has a fourth size, the representation of the software object is displayed having the second size; and the fourth size is different from the third size.
172. The method of any one of claims 169-171, further comprising : detecting, via the one or more input devices, an input corresponding to a request for content; and in response to detecting the input corresponding to the request for content, displaying, via the one or more display components, the content.
173. The method of any one of claims 169-172, wherein the content corresponds to the subject.
174. The method of any one of claims 169-173, wherein detecting the attention of the subject includes detecting, viathe one or more input devices, a location of the subject within an environment.
175. The method of claim 174, wherein the first set of one or more criteria includes a criterion that is satisfied when a location of the subject is outside a threshold distance from the computer system.
176. The method of any one of claims 169-175, wherein detecting the attention of the subject includes detecting, via the one or more input devices, a gaze of the subject.
177. The method of any one of claims 169-176, wherein detecting the attention of the subject includes detecting an amount of time since the subject last interacted with the computer system.
178. The method of any one of claims 169-177, further comprising : while displaying the content, detecting, via the one or more input devices, attention of another subject; and in response to detecting the attention of the other sub j ect : in accordance with a determination that the attention of the other subject does not satisfy the first set of one or more criteria, ceasing display of the content; and in accordance with a determination that the attention of the other subject satisfied the first set of one or more criteria, maintaining display of the content.
179. The method of any one of claims 169-178, further comprising : while displaying the content, detecting, via the one or more input devices, attention of another subject; andin response to detecting the attention of the other subject, maintaining display of the content.
180. The method of any one of claims 169-179, further comprising : in response to detecting the attention of the subject: in accordance with the determination that the attention of the subject satisfies the first set of one or more criteria and in accordance with a determination that a predefined amount of time has not passed since the attention of the subject last did not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner; and in accordance with the determination that the attention of the subject satisfies the first set of one or more criteria and in accordance with a determination that the predefined amount of time has passed since the attention of the subject last did not satisfy the first set of one or more criteria : ceasing display of the content; and displaying, via the one or more display components, the representation of the software object in the second manner.
181. The method of any one of claims 169-180, wherein the attention of the subject is a first attention of the subject at a first time, the method further comprising: in response to detecting the first attention of the subject at the first time and in accordance with the determination that the attention of the subject satisfies the first set of one or more criteria, detecting, via the one or more input devices, second attention of the subject at a second time after the first time; andin response to detecting the second attention of the subject at the second time and in accordance with a determination that the second attention of the subject at the second time satisfies the first set of one or more criteria, ceasing display of the representation of the software object.
182. The method of any one of claims 169-181, wherein the attention of the subject is first attention of the subject at a first time, the method further comprising: after detecting the first attention of the subject at the first time and while no longer displaying the content, detecting, via the one or more input devices, third attention of the subject at a third time after the first time; and in response to detecting the third attention of the subject at the third time and in accordance with a determination that the third attention of the subject at the third time does not satisfy the first set of one or more criteria, displaying, via the one or more display components, the content.
183. The method of any one of claims 169-182, wherein the attention of the subject is first attention of the subject at a first time, the method further comprising: in response to detecting the first attention of the subject at the first time and while no longer displaying the content, detecting, via the one or more input devices, fourth attention of the subject at a fourth time after the first time; and in response to detecting the fourth attention of the subject at the fourth time and in accordance with a determination that the fourth attention of the subject at the fourth time does not satisfy the first set of one or more criteria, forgoing display of the content.
184. The method of any one of claims 169-183, wherein the content is first content, the method further comprising: after ceasing display of the content, detecting, via the one or more input devices, an input corresponding to a request for second content, wherein the second content is different from the first content; and in response to detecting the input corresponding to the request for the second content: displaying, via the one or more display components, the second content; and displaying, via the one or more display components, the representation of the software object in a third manner different from the second manner.
185. A non-transitory computer-readable medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components, the one or more programs including instructions for performing the method of any one of claims 169-183.
186. A computer system that is configured to communicate with one or more input devices and one or more display components, the computer system comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 169-183.
187. A computer system that is configured to communicate with one or more input devices and one or more display components, the computer system comprising:means for performing the method of any one of claims 169-183.
188. A computer program product, comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components, the one or more programs including instructions for performing the method of any one of claims 169-183.
189. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components, the one or more programs including instructions for: while displaying, via the one or more display components,(1) a representation of a software object in a first manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the subject: in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; and displaying, via the one or more display components, the representation of the software object in a second manner different from the first manner; and in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and(2) the representation of the software object in the first manner .
190. A computer system configured to communicate with one or more input devices and one or more display components, the computer system comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: while displaying, via the one or more display components, (1) a representation of a software object in a first manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the sub j ect : in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; and displaying, via the one or more display components, the representation of the software object in a second manner different from the first manner; and in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner .
191. A computer system configured to communicate with one or more input devices and one or more display components, the computer system comprising: means for, while displaying, via the one or more display components, (1) a representation of a software object in afirst manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the subject: in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: means for ceasing display of the content; and means for displaying, via the one or more display components, the representation of the software object in a second manner different from the first manner; and means for, in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner .
192. A computer program product, comprising one or more programs configured to be executed by one or more processors of a computer system that is in communication with one or more input devices and one or more display components, the one or more programs including instructions for: while displaying, via the one or more display components, (1) a representation of a software object in a first manner and (2) content, detecting, via the one or more input devices, attention of a subject; and in response to detecting the attention of the subject: in accordance with a determination that the attention of the subject satisfies a first set of one or more criteria, wherein the first set of one or more criteria includes a criterion that is satisfied when the attention of the subject is not directed to the computer system: ceasing display of the content; anddisplaying, via the one or more display components, the representation of the software object in a second manner different from the first manner; and in accordance with a determination that the attention of the subject does not satisfy the first set of one or more criteria, maintaining display of (1) the content and (2) the representation of the software object in the first manner .
Citation Information
Patent Citations
Systems and methods for managing virtual desktops in a windowing environment
US20030179240A1