Emoji recording and sending

JP2025041677A5Active Publication Date: 2025-06-09APPLE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024212271
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-05-15
Filing Date
2024-12-05
Publication Date
2025-06-09
Estimated Expiration
2038-05-16

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a technique that is related to a computer user interface and is for generating, recording and transmitting emoji and virtual avatars.SOLUTION: The present disclosure generally relates to generating and modifying virtual avatars. An electronic device having a camera and a display apparatus displays a virtual avatar that changes appearance in response to changes in a face in a field of view of the camera. In response to detecting changes in one or more physical features of the face in the field of view of the camera, the electronic device modifies one or more features of the virtual avatar.SELECTED DRAWING: Figure 6P
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates generally to computer user interfaces, and more particularly to techniques for generating, recording, and transmitting emojis and virtual avatars.

[0002] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims priority to U.S. Provisional Patent Application No. 62 / 507,177, entitled "Emoji Recording and Sending," filed May 16, 2017; U.S. Provisional Patent Application No. 62 / 556,412, entitled "Emoji Recording and Sending," filed September 9, 2017; U.S. Provisional Patent Application No. 62 / 557,121, entitled "Emoji Recording and Sending," filed September 11, 2017; U.S. Provisional Patent Application No. 62 / 671,979, entitled "Emoji Recording and Sending," filed May 15, 2018; U.S. Provisional Patent Application No. 15 / 870,195, entitled "Emoji Recording and Sending," filed January 12, 2018; and U.S. Provisional Patent Application No. 15 / 870,195, entitled "Emoji Recording and Sending," filed March 29, 2018. No. 15 / 940,017, entitled "Emoji Recording and Sending," filed March 29, 2018; U.S. Patent Application No. 15 / 940,232, entitled "Emoji Recording and Sending," filed May 29, 2017; Danish Patent Application No. PA201770393, entitled "Emoji Recording and Sending," filed September 22, 2017; Danish Patent Application No. PA201770720, entitled "Emoji Recording and Sending," filed September 22, 2017; and Danish Patent Application No. PA201770721, entitled "Emoji Recording and Sending," filed September 22, 2017, the contents of which are incorporated herein by reference in their entireties. [Background technology]

[0003] Multimedia content, such as emojis and virtual avatars, may be transmitted as part of messaging communications. The emojis and virtual avatars may represent various predetermined people, objects, actions, and / or other things. Some messaging applications allow users to select from a predetermined library of emojis and virtual avatars to be transmitted as part of messages that may include other content (e.g., other multimedia and / or text content). Stickers are another type of multimedia content that may be transmitted by messaging applications. In some respects, stickers are similar to emojis and virtual avatars in that they may represent people, objects, actions, and / or other things. Some sticker and / or messaging applications allow stickers to be associated with previously sent or received messages. Summary of the Invention

[0004] However, some techniques for generating, sending, and receiving emojis and virtual avatars using electronic devices are generally cumbersome and inefficient. For example, some existing techniques use complex and time-consuming user interfaces that may involve multiple key presses or strokes. Other existing techniques use complex and time-consuming methods for manipulating and generating emojis and virtual avatars, which may involve requiring numerous user inputs to achieve a desired emoji (e.g., a desired animated or dynamic emoji). Existing techniques take longer than necessary, wasting user time and device energy. The latter problem is particularly acute in battery-operated devices.

[0005] The present technology thus provides electronic devices with faster, more efficient methods and interfaces for sending and receiving emojis and virtual avatars. Such methods and interfaces optionally complement or replace other methods of sending and receiving emojis. Such methods and interfaces reduce the cognitive burden on users and create a more efficient human-machine interface. For battery-operated computing devices, such methods and interfaces conserve power and extend the time between battery charges.

[0006] According to some embodiments, a method is described that is executed on an electronic device that includes a display and a camera. The method includes: displaying a virtual avatar generation interface; displaying a preview of a virtual avatar in the virtual avatar generation interface, the preview of the virtual avatar responsive to changes in facial appearance in a field of view of the camera; detecting an input in the virtual avatar generation interface while displaying the preview of the virtual avatar; and, in response to detecting the input in the virtual avatar generation interface: generating a static virtual avatar that represents facial expressions in the field of view of the camera at respective times in accordance with a determination that the input starts from the preview of the virtual avatar, the respective times being determined based on a timing of the input; and generating an animated virtual avatar that represents a sequence of changes in facial expressions in the field of view of the camera over a predetermined period of time in accordance with a determination that the input includes activation of a record affordance in the virtual avatar generation interface, the predetermined period being determined based on the timing of the input.

[0007] According to some embodiments, a non-transitory computer-readable storage medium is described. The non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display and a camera, the one or more programs including instructions to: display a virtual avatar generation interface; display a preview of a virtual avatar in the virtual avatar generation interface, the preview of the virtual avatar responsive to changes in facial appearance in a field of view of the camera; detect an input in the virtual avatar generation interface while displaying the preview of the virtual avatar; and, in response to detecting the input in the virtual avatar generation interface: in accordance with a determination that the input starts from the preview of the virtual avatar, generate a static virtual avatar representing facial expressions in the field of view of the camera at respective times, each time determined based on a timing of the input; and in accordance with a determination that the input includes activation of a record affordance in the virtual avatar generation interface, generate an animated virtual avatar representing a sequence of changes in facial expressions in the field of view of the camera over a predetermined period of time, the predetermined period of time determined based on the timing of the input.

[0008] According to some embodiments, a non-transitory computer-readable storage medium is described. The non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display and a camera, the one or more programs including instructions to: display a virtual avatar generation interface; display a preview of a virtual avatar in the virtual avatar generation interface, the preview of the virtual avatar responsive to changes in facial appearance in the field of view of the camera; detect an input in the virtual avatar generation interface while displaying the preview of the virtual avatar; and, in response to detecting the input in the virtual avatar generation interface: generate a static virtual avatar representing facial expressions in the field of view of the camera at respective times, each time determined based on a timing of the input, in accordance with a determination that the input starts from the preview of the virtual avatar; and generate an animated virtual avatar representing a sequence of changes in facial expressions in the field of view of the camera over a predetermined period of time, the predetermined period of time determined based on the timing of the input, in accordance with a determination that the input includes activation of a record affordance in the virtual avatar generation interface.

[0009] According to some embodiments, an electronic device is described that includes a display, a camera, one or more processors, and a memory that stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions to: display a virtual avatar generation interface; display a preview of a virtual avatar in the virtual avatar generation interface, the preview of the virtual avatar responsive to changes in facial appearance in a field of view of the camera; detect an input in the virtual avatar generation interface while displaying the preview of the virtual avatar; and, in response to detecting the input in the virtual avatar generation interface: generate a static virtual avatar representing facial expressions in the field of view of the camera at respective times, the respective times being determined based on a timing of the input, in accordance with a determination that the input starts from the preview of the virtual avatar; and generate an animated virtual avatar representing a sequence of changes in facial expressions in the field of view of the camera over a predetermined period of time, the predetermined period being determined based on the timing of the input, in accordance with a determination that the input includes activation of a record affordance in the virtual avatar generation interface.

[0010] According to some embodiments, an electronic device is described that includes a camera, a display that displays a virtual avatar generation interface and that displays a preview of the virtual avatar in the virtual avatar generation interface, the preview of the virtual avatar responsive to changes in facial appearance in the field of view of the camera, means for detecting an input in the virtual avatar generation interface while displaying the preview of the virtual avatar, and means for, in response to detecting the input in the virtual avatar generation interface: generating a static virtual avatar representing facial expressions in the field of view of the camera at respective times in accordance with a determination that the input starts from the preview of the virtual avatar, the respective times being determined based on a timing of the input; and generating an animated virtual avatar representing a sequence of changes in facial expressions in the field of view of the camera over a predetermined period of time in accordance with a determination that the input includes activation of a record affordance in the virtual avatar generation interface, the predetermined period being determined based on the timing of the input.

[0011] According to some embodiments, a method is described that is executed on an electronic device that includes a display and a camera. The method includes displaying a virtual avatar generation interface, displaying a preview of the virtual avatar in the virtual avatar generation interface, where the preview of the virtual avatar is responsive to changes in appearance of a face in a field of view of the camera, receiving a request to generate an animated virtual avatar based on changes in facial expressions of the face in the field of view of the camera, recording a sequence of facial expressions of the face in the field of view of the camera in response to receiving the request to generate the animated virtual avatar, and after recording the facial expressions of the face in the view of the camera, displaying a looped version of the animated virtual avatar that includes an animation sequence based on the sequence of facial expressions recorded in response to the request to generate the animated virtual avatar, where displaying the looped version of the animated virtual avatar includes displaying the animation sequence two or more times.

[0012] According to some embodiments, a non-transitory computer-readable storage medium is described. The non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display and a camera, the one or more programs including instructions for displaying a virtual avatar generation interface, displaying a preview of the virtual avatar in the virtual avatar generation interface, previewing as the virtual avatar reacts to changes in the appearance of a face in the camera's field of view, receiving a request to generate an animated virtual avatar based on changes in facial expressions of a face in the camera's field of view, recording a sequence of facial expressions of the face in the camera's field of view in response to receiving the request to generate the animated virtual avatar, and after recording the facial expressions of the face in the camera's view, displaying a looped version of the animated virtual avatar including an animation sequence based on the sequence of facial expressions recorded in response to the request to generate the animated virtual avatar, wherein displaying the looped version of the animated virtual avatar includes displaying the animation sequence two or more times.

[0013] According to some embodiments, a non-transitory computer-readable storage medium is described. The non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display and a camera, the one or more programs including instructions for displaying a virtual avatar generation interface, displaying a preview of the virtual avatar in the virtual avatar generation interface, previewing as the virtual avatar reacts to changes in the appearance of a face in the camera's view, receiving a request to generate an animated virtual avatar based on changes in facial expressions of a face in the camera's view, recording a sequence of facial expressions of the face in the camera's view in response to receiving the request to generate the animated virtual avatar, and after recording the facial expressions of the face in the camera's view, displaying a looped version of the animated virtual avatar including an animation sequence based on the sequence of facial expressions recorded in response to the request to generate the animated virtual avatar, wherein displaying the looped version of the animated virtual avatar includes displaying the animation sequence two or more times.

[0014] According to some embodiments, an electronic device is described that includes displaying a virtual avatar generation interface, displaying a preview of the virtual avatar in the virtual avatar generation interface and previewing as the virtual avatar reacts to changes in the appearance of a face in the camera's view, receiving a request to generate an animated virtual avatar based on changes in facial expressions of a face in the camera's view, recording a sequence of facial expressions of the face in the camera's view in response to receiving the request to generate the animated virtual avatar, and after recording the facial expressions of the face in the camera's view, displaying a looped version of the animated virtual avatar that includes an animation sequence based on the recorded sequence of facial expressions in response to the request to generate the animated virtual avatar, wherein displaying the looped version of the animated virtual avatar includes displaying the animation sequence two or more times.

[0015] According to some embodiments, an electronic device is described that includes a camera, a display that displays a virtual avatar generation interface and that displays a preview of the virtual avatar in the virtual avatar generation interface, the preview of the virtual avatar responsive to changes in the appearance of a face in the camera's field of view, means for receiving a request to generate an animated virtual avatar based on changes in facial expressions of a face in the camera's field of view, means for recording a sequence of facial expressions of the face in the camera's field of view in response to receiving the request to generate the animated virtual avatar, and means for, after recording the facial expressions of the face in the camera's view, displaying a looped version of the animated virtual avatar that includes an animation sequence based on the sequence of facial expressions recorded in response to the request to generate the animated virtual avatar, wherein displaying the looped version of the animated virtual avatar includes displaying the animation sequence two or more times.

[0016] In some embodiments, a method includes, on an electronic device having a camera and a display, displaying a virtual avatar generation interface; displaying a preview of the virtual avatar in the virtual avatar generation interface, the virtual avatar preview responsive to changes in facial appearance within the camera's field of view; detecting an input in the virtual avatar generation interface while displaying the preview of the virtual avatar; and in response to detecting the input in the virtual avatar generation interface: generating a static virtual avatar representing facial expressions within the camera's field of view at respective times in accordance with a determination that the input starts from the virtual avatar preview, the respective times being determined based on timing of the input; and generating an animated virtual avatar representing a sequence of changes in facial expressions within the camera's field of view over a predetermined period of time in accordance with a determination that the input includes activation of a record affordance in the virtual avatar generation interface, the predetermined period being determined based on the timing of the input.

[0017] In some embodiments, the method includes, on an electronic device having a camera and a display, displaying a virtual avatar generation interface; displaying a preview of the virtual avatar in the virtual avatar generation interface, where the preview shows the virtual avatar reacting to changes in the appearance of a face in the camera's view; receiving a request to generate an animated virtual avatar based on changes in facial expressions of a face in the camera's view; recording a sequence of facial expressions of the face in the camera's view in response to receiving the request to generate the animated virtual avatar; after recording the facial expressions of the face in the camera's view, displaying a looped version of the animated virtual avatar including an animation sequence based on the sequence of facial expressions recorded in response to the request to generate the animated virtual avatar, where displaying the looped version of the animated virtual avatar includes displaying the animation sequence two or more times.

[0018] In some embodiments, the method includes, in an electronic device having one or more cameras and a display device, displaying via the display device a virtual avatar that changes appearance in response to facial changes within the field of view of the one or more cameras, the virtual avatar including a first portion and a second portion different from the first portion; detecting a change in facial pose within the field of view of the one or more cameras while displaying the virtual avatar via the display device; and, in response to detecting the change in facial pose, changing the appearance of the virtual avatar in accordance with a determination that the change in facial pose includes a change in a first type of facial pose, the changing the appearance of the virtual avatar including moving the first portion of the virtual avatar relative to the second portion of the virtual avatar in accordance with a magnitude of the change in the first type of facial pose; and, in accordance with a determination that the change in facial pose includes a change in a second type of facial pose, changing the appearance of the virtual avatar including moving both the first portion of the virtual avatar and the second portion of the virtual avatar based on a magnitude of the change in the second type of facial pose.

[0019] In some embodiments, the method includes, in an electronic device having one or more cameras and a display device, displaying a virtual avatar via the display device, the virtual avatar including a first avatar feature and a second avatar feature that respond to changes in a first physical feature of the face within the field of view of the one or more cameras and a second physical feature of the face within the field of view of the one or more cameras; detecting a change in one or more physical features of the face within the field of view of the one or more cameras while displaying the virtual avatar via the display device; in accordance with a determination that the change includes a change in the first physical feature, modifying the first avatar feature of the virtual avatar based on the change in the first physical feature and ceasing to modify the second avatar feature based on the change in the first physical feature; in accordance with a determination that the change includes a change in the second physical feature, modifying the first avatar feature based on the change in the second physical feature and ceasing to modify the second avatar feature based on the change in the second physical feature.

[0020] In some embodiments, the method includes, in an electronic device having one or more cameras and a display device, displaying a virtual avatar via the display device, the virtual avatar including a first avatar characteristic responsive to a change in a first physical characteristic of a face within a field of view of the one or more cameras, a second avatar characteristic responsive to the change in the first physical characteristic, and a third avatar characteristic not primarily responsive to the change in the first physical characteristic; detecting a change in the first physical characteristic while displaying the virtual avatar; in response to detecting the change in the first physical characteristic, modifying the first avatar characteristic based on the detected change in the first physical characteristic; modifying the second avatar characteristic based on the detected change in the first physical characteristic; and canceling the modification of the third avatar characteristic based on the detected change in the first physical characteristic.

[0021] In some embodiments, the method includes, in an electronic device having one or more cameras and a display device, displaying a virtual avatar via the display device, the virtual avatar including a first avatar feature that responds to a change in a first physical feature of a face within a field of view of the one or more cameras and a second avatar feature that responds differently to a change in a second physical feature of the face depending on whether the change in the second physical feature of the face occurs within a first range of change in the second physical feature or within a second range of change in the second physical feature that is different from the first range of change in the second physical feature of the face; detecting, while displaying the virtual avatar, a first change in each physical feature of the face within the field of view of the one or more cameras; and detecting a change in each physical feature of the face within the field of view of the one or more cameras. and modifying the virtual avatar, in response to detecting the change in the respective physical characteristic, including modifying a first avatar characteristic to reflect the change in the first physical characteristic in accordance with a determination that the detected first change in the respective physical characteristic is a change in the first physical characteristic; modifying an appearance of a second avatar characteristic in a first manner to reflect the change in the second physical characteristic in accordance with a determination that the detected first change is a change in the second physical characteristic and the change in the second physical characteristic is within a range of first changes; and ceasing to modify the appearance of the second avatar characteristic in the first manner to reflect the change in the second physical characteristic in accordance with a determination that the detected first change is a change in the second physical characteristic and the change in the second physical characteristic is within a range of second changes.

[0022] In some embodiments, the method includes, in an electronic device having one or more cameras and a display device, displaying a virtual avatar via the display device, the virtual avatar including a plurality of avatar features that respond to changes in one or more facial physical features within a field of view of the one or more cameras; detecting changes in the plurality of facial physical features while displaying the virtual avatar, the plurality of facial physical features including a first physical feature that corresponds to one or more of the plurality of avatar features and a second physical feature that does not correspond to any of the plurality of avatar features; changing an appearance of each of the plurality of avatar features in response to detecting the change in the plurality of facial physical features, the magnitude and / or direction of the change of each avatar feature being based on the magnitude and / or direction of the change of the first physical feature; and transforming a portion of the virtual avatar that did not include the avatar feature before detecting the change in the one or more facial physical features, the magnitude and / or direction of the transformation of the portion of the avatar feature being based on the magnitude and / or direction of the change in the second physical feature.

[0023] In some embodiments, the method includes, in an electronic device having one or more cameras and a display device, displaying a virtual avatar via the display device, wherein the virtual avatar has a first avatar feature that responds to a change in a first physical feature of a face within a field of view of the one or more cameras; detecting a change in the first physical feature having a change magnitude of the first physical feature while displaying the virtual avatar; in response to detecting the change in the first physical feature, changing the first avatar feature by a change magnitude of the first avatar feature based on the magnitude of the change in the first physical feature in accordance with a determination that the change in the first physical feature is within a first range of physical feature values; and changing the first avatar feature by a change magnitude of a second avatar feature that is different from the magnitude of the change in the first avatar feature and based on the magnitude of the change in the first physical feature in accordance with a determination that the change in the first physical feature is within a second range of physical feature values ​​that is different from the first range of physical feature values.

[0024] In some embodiments, the method includes, in an electronic device having one or more cameras and a display device, displaying a virtual avatar via the display device, the virtual avatar having a respective spatial position within a reference frame, the respective spatial position being based on a face position within a field of view of the one or more cameras; detecting a respective amount of change in the face position within the field of view of the one or more cameras while displaying the virtual avatar; in response to detecting the change in the face position within the field of view of the one or more cameras, modifying the spatial position of the virtual avatar within the reference frame based on a magnitude of the first component of change and a first modification coefficient in accordance with a determination that the change in position includes a first component of change in a first direction; and in accordance with a determination that the change in position includes a second change component in a second direction different from the first direction, modifying the spatial position of the virtual avatar within the reference frame based on a magnitude of the second change component and a second modification coefficient different from the first modification coefficient.

[0025] In some embodiments, the method includes, in an electronic device having one or more cameras and a display device, displaying a virtual avatar via the display device, wherein the virtual avatar responds to changes in one or more physical features of the face within the field of view of the one or more cameras; detecting a first configuration of one or more physical features of the face while displaying the virtual avatar; while detecting the first configuration of the one or more physical features of the face, in accordance with a determination that the first configuration of the one or more physical features satisfies the animation criterion, the animation criterion includes a requirement that the first configuration be maintained for at least a first threshold time for the animation criterion to be satisfied; modifying the virtual avatar to include a first animation effect; and, in accordance with a first configuration of the one or more physical features that does not satisfy the animation criterion, canceling the modification of the virtual avatar to include the first animation effect.

[0026] A method is described, the method being executed on an electronic device having a display device and one or more input devices. The method includes: displaying, via the display device, a virtual avatar having a plurality of avatar features that change appearance in response to a detected change in facial pose within a field of view of one or more cameras, the face including a plurality of detected facial features including a first facial feature; determining that tracking of the face within the field of view of the one or more cameras has failed after detecting the face in the field of view of the one or more cameras with a first change in pose, the first change in pose including a change in the first facial feature; and updating the appearance of the first avatar feature of the plurality of avatar features after the face tracking has failed in response to determining that tracking of the face within the field of view of the one or more cameras has failed. The first avatar feature is updated based on a change characteristic of the first facial feature detected before determining that face tracking has failed, and updating the appearance of the first avatar feature includes updating the appearance of the first avatar feature of the virtual avatar to a first appearance that is different from the appearance of the avatar when face tracking has failed in accordance with a determination that the first facial feature had a first change characteristic before detecting that face tracking has failed, and updating the appearance of the first avatar feature of the virtual avatar to a second appearance that is different from the appearance of the avatar when face tracking has failed and that is different from the first appearance in accordance with a determination that the first facial feature had a second change characteristic that is different from the first change characteristic before detecting that face tracking has failed.

[0027] A non-transitory computer-readable storage medium is described, the non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device including a display device and one or more cameras, the one or more programs including instructions for displaying, via the display device, a virtual avatar having a plurality of avatar features that change appearance in response to a detected change in a pose of a face in a field of view of the one or more cameras, the face including a plurality of detected facial features including a first facial feature, determining that tracking of the face in the field of view of the one or more cameras has failed after detecting the face in the field of view of the one or more cameras with a first change in pose, the first change in pose including a change in the first facial feature, and updating the appearance of a first avatar feature of the plurality of avatar features after the face tracking has failed, in response to determining that tracking of the face in the field of view of the one or more cameras has failed. The first avatar feature is updated based on the change characteristic of the first facial feature detected before determining that face tracking has failed, and updating the appearance of the first avatar feature includes: updating the appearance of the first avatar feature of the virtual avatar to a first appearance that is different from the appearance of the avatar when face tracking has failed in accordance with a determination that the first facial feature had a first change characteristic before detecting that face tracking has failed, and updating the appearance of the first avatar feature of the virtual avatar to a second appearance that is different from the appearance of the avatar when face tracking has failed and that is different from the first appearance in accordance with a determination that the first facial feature had a second change characteristic that is different from the first change characteristic before detecting that face tracking has failed.

[0028] A transient computer-readable storage medium is described, the transient computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device including a display device and one or more cameras, the one or more programs including instructions for displaying, via the display device, a virtual avatar having a plurality of avatar features that change appearance in response to a detected change in a pose of the face in a field of view of the one or more cameras, the face including a plurality of detected facial features including a first facial feature, determining that tracking of the face in the field of view of the one or more cameras has failed after detecting the face in the field of view of the one or more cameras with a first change in pose, the first change in pose including a change in the first facial feature, and updating the appearance of the first avatar feature of the plurality of avatar features after the face tracking has failed, in response to determining that tracking of the face in the field of view of the one or more cameras has failed. The first avatar feature is updated based on the change characteristic of the first facial feature detected before determining that face tracking has failed, and updating the appearance of the first avatar feature includes: updating the appearance of the first avatar feature of the virtual avatar to a first appearance that is different from the appearance of the avatar when face tracking has failed in accordance with a determination that the first facial feature had a first change characteristic before detecting that face tracking has failed, and updating the appearance of the first avatar feature of the virtual avatar to a second appearance that is different from the appearance of the avatar when face tracking has failed and that is different from the first appearance in accordance with a determination that the first facial feature had a second change characteristic that is different from the first change characteristic before detecting that face tracking has failed.

[0029] An electronic device is described that includes a display device, one or more cameras, one or more processors, and a memory that stores one or more programs configured to be executed by the one or more processors, the one or more programs displaying, via the display device, a virtual avatar having a plurality of avatar features that change appearance in response to a detected change in facial pose of a face in a field of view of the one or more cameras, the face including a plurality of detected facial features including a first facial feature, after the face is detected in the field of view of the one or more cameras with the first change in pose, the first change in pose including a change in the first facial feature, determining that tracking of the face in the field of view of the one or more cameras has failed, and in response to determining that tracking of the face in the field of view of the one or more cameras has failed, The method includes instructions for updating an appearance of a first avatar feature of the plurality of avatar features after determining that face tracking has failed, wherein the first avatar feature is updated based on a change characteristic of the first facial feature detected before determining that face tracking has failed, and updating the appearance of the first avatar feature includes: updating the appearance of the first avatar feature of the virtual avatar to a first appearance that is different from the appearance of the avatar when face tracking has failed in accordance with a determination that the first facial feature had a first change characteristic before detecting that face tracking has failed, and updating the appearance of the first avatar feature of the virtual avatar to a second appearance that is different from the appearance of the avatar when face tracking has failed and that is different from the first appearance in accordance with a determination that the first facial feature had a second change characteristic that is different from the first change characteristic before detecting that face tracking has failed.

[0030] An electronic device is described that includes a display device, one or more cameras, and means for displaying, via the display device, a virtual avatar having a plurality of avatar features that change appearance in response to detected changes in facial pose within the field of view of the one or more cameras, the face including a plurality of detected facial features including a first facial feature, means for determining that tracking of the face within the field of view of the one or more cameras has failed after the face is detected in the field of view of the one or more cameras with a first change in pose, the first change in pose including a change in the first facial feature, and means for updating the appearance of the first avatar feature of the plurality of avatar features after the face tracking has failed in response to determining that tracking of the face within the field of view of the one or more cameras has failed. The first avatar feature is updated based on the change characteristic of the first facial feature detected before determining that face tracking has failed, and updating the appearance of the first avatar feature comprises means for updating the appearance of the first avatar feature of the virtual avatar to a first appearance different from the appearance of the avatar when face tracking has failed in accordance with a determination that the first facial feature had the first change characteristic before detecting that face tracking has failed, and for updating the appearance of the first avatar feature of the virtual avatar to a second appearance different from the appearance of the avatar when face tracking has failed and different from the first appearance in accordance with a determination that the first facial feature had a second change characteristic different from the first change characteristic before detecting that face tracking has failed.

[0031] Executable instructions to perform these functions are optionally contained in a non-transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors. Executable instructions to perform these functions are optionally contained in a transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors.

[0032] This provides devices with faster, more efficient methods and interfaces for generating, sending, and receiving emojis, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices. Such methods and interfaces can complement or replace other methods of sending and receiving emojis.

[0033] For a better understanding of the various described embodiments, reference should be made to the following Detailed Description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout: [Brief explanation of the drawings]

[0034] [Figure 1A] FIG. 1 is a block diagram illustrating a portable multifunction device with a touch-sensitive display according to some embodiments. [Figure 1B] FIG. 1 is a block diagram illustrating exemplary components for event processing according to some embodiments. [Figure 2] 1 illustrates a portable multifunction device with a touch screen according to some embodiments. [Figure 3] FIG. 1 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface in accordance with some embodiments. [Figure 4A] 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device in accordance with some embodiments. [Figure 4B] 1 illustrates an exemplary user interface for a multifunction device having a touch-sensitive surface that is separate from the display in accordance with some embodiments. [Figure 5A] 1 illustrates a personal electronic device according to some embodiments. [Figure 5B] FIG. 1 is a block diagram illustrating a personal electronic device according to some embodiments. [Figure 6A]1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6B] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6C] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6D] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6E] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6F] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6G] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6H] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6I] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6J] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6K] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6L] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6M] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6N] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6O] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6P] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6Q] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6R] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6RA] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6RB] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6RC] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6RD] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6S] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6SA] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6SB] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6SC] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6T] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6U] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6UA] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6UB] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6V] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6W] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6X]1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6Y] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6Z] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6AA] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6BB] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6CC] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6DD] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6EE] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6FF] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6GG] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6HH] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6II] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6JJ] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6KK] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6LL] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 6MM] 1 illustrates an exemplary user interface for creating and sending emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7A] 1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7B] 1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7C] 1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7D] 1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7E] 1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7F] 1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7G]1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7H] 1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7I] 1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 7J] 1 illustrates an exemplary user interface for receiving emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 8A] FIG. 1 is a flow diagram illustrating a method for generating and transmitting emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 8B] FIG. 1 is a flow diagram illustrating a method for generating and transmitting emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 9A] FIG. 1 is a flow diagram illustrating a method for generating and transmitting emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 9B] FIG. 1 is a flow diagram illustrating a method for generating and transmitting emojis, stickers, virtual avatars, and / or other multimedia content. [Figure 10A] 10 illustrates an exemplary user interface for creating and modifying a Poo virtual avatar. [Figure 10B] 10 illustrates an exemplary user interface for creating and modifying a Poo virtual avatar. [Figure 10C] 10 illustrates an exemplary user interface for creating and modifying a Poo virtual avatar. [Figure 10D] 10 illustrates an exemplary user interface for creating and modifying a Poo virtual avatar. [Figure 10E] 10 illustrates an exemplary user interface for creating and modifying a Poo virtual avatar. [Figure 10F] 10 illustrates an exemplary user interface for creating and modifying a Poo virtual avatar. [Figure 10G] 10 illustrates an exemplary user interface for creating and modifying a Poo virtual avatar. [Figure 10H] 10 illustrates an exemplary user interface for creating and modifying a Poo virtual avatar. [Figure 10I] 10 illustrates an exemplary user interface for creating and modifying a Poo virtual avatar. [Figure 11A] 10 illustrates an exemplary user interface for creating and modifying a bear virtual avatar. [Figure 11B] 10 illustrates an exemplary user interface for creating and modifying a bear virtual avatar. [Figure 11C] 10 illustrates an exemplary user interface for creating and modifying a bear virtual avatar. [Figure 12A] 1 illustrates an exemplary user interface for creating and modifying an alien virtual avatar. [Figure 12B] 1 illustrates an exemplary user interface for creating and modifying an alien virtual avatar. [Figure 12C] 1 illustrates an exemplary user interface for creating and modifying an alien virtual avatar. [Figure 13] 10 illustrates an exemplary user interface for creating and modifying a rabbit virtual avatar. [Figure 14A] 1 illustrates an exemplary user interface for creating and modifying a robot virtual avatar. [Figure 14B] 1 illustrates an exemplary user interface for creating and modifying a robot virtual avatar. [Figure 14C] 1 illustrates an exemplary user interface for creating and modifying a robot virtual avatar. [Figure 14D] 1 illustrates an exemplary user interface for creating and modifying a robot virtual avatar. [Figure 15A]FIG. 1 illustrates an exemplary user interface for creating and modifying a unicorn virtual avatar. [Figure 15B] FIG. 1 illustrates an exemplary user interface for creating and modifying a unicorn virtual avatar. [Figure 16A] 10 illustrates an exemplary user interface for creating and modifying a chicken virtual avatar. [Figure 16B] 10 illustrates an exemplary user interface for creating and modifying a chicken virtual avatar. [Figure 17A] 10 illustrates an exemplary user interface for creating and modifying a pig virtual avatar. [Figure 17B] 10 illustrates an exemplary user interface for creating and modifying a pig virtual avatar. [Figure 18A] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar based on a face detected by one or more cameras. [Figure 18B] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar based on a face detected by one or more cameras. [Figure 19] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar based on a face detected by one or more cameras. [Figure 20] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar based on a face detected by one or more cameras. [Figure 21] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar based on a face detected by one or more cameras. [Figure 22] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar based on a face detected by one or more cameras. [Figure 23] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar based on a face detected by one or more cameras. [Figure 24] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar based on a face detected by one or more cameras. [Figure 25] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar based on a face detected by one or more cameras. [Figure 26A] 10 illustrates an exemplary user interface for creating and modifying a virtual avatar after face tracking fails. [Figure 26B] 10 illustrates an exemplary user interface for creating and modifying a virtual avatar after face tracking fails. [Figure 26C] 10 illustrates an exemplary user interface for creating and modifying a virtual avatar after face tracking fails. [Figure 26D] 10 illustrates an exemplary user interface for creating and modifying a virtual avatar after face tracking fails. [Figure 26E] 10 illustrates an exemplary user interface for creating and modifying a virtual avatar after face tracking fails. [Figure 26F] 10 illustrates an exemplary user interface for creating and modifying a virtual avatar after face tracking fails. [Figure 26G] 10 illustrates an exemplary user interface for creating and modifying a virtual avatar after face tracking fails. [Figure 26H] 10 illustrates an exemplary user interface for creating and modifying a virtual avatar after face tracking fails. [Figure 27] FIG. 1 is a flow diagram illustrating a method for generating and modifying a virtual avatar after face tracking fails. DETAILED DESCRIPTION OF THE INVENTION

[0035] The following description describes example methods, parameters, etc. However, it should be recognized that such description is not intended as a limitation on the scope of the present disclosure, but is instead provided as a description of example embodiments.

[0036] Sending a message that includes text content or that includes multimedia content instead of text content may better convey the sender's message. For example, multimedia content such as virtual avatars (e.g., animated or static emojis or stickers) can provide context and / or tone (e.g., what is known as "nonverbal communication") that is cumbersome or impossible to communicate through text alone. In some cases, a pre-defined virtual avatar can be used to provide some of this context and / or tone. However, pre-defined content cannot cover all situations or provide fine-tuned context or tone. Therefore, there is a need for electronic devices that provide efficient methods and interfaces for generating, sending, and receiving virtual avatars as part of a message. Such technology can reduce the cognitive burden on users sending and receiving messages, thereby improving productivity. Furthermore, such techniques can reduce processor and battery power that would otherwise be wasted on redundant user input.

[0037] Below, Figures 1A-1B, 2, 3, 4A-4B, and 5A-5B provide descriptions of example devices for performing techniques for generating, transmitting, and receiving virtual avatars. Figures 6A-6MM and 7A-7J illustrate example user interfaces for receiving, generating, modifying, and transmitting virtual avatars. Figures 8A-8B and 9A-9B are flow diagrams illustrating example methods for receiving, generating, modifying, and transmitting virtual avatars. The user interfaces of Figures 6A-6MM and 7A-7J are used to illustrate processes described below, including the processes of Figures 8A-8B and 9A-9B. Figures 10A-10I, 11A-11C, 12A-12C, 13, 14A-14D, 15A-15B, 16A-16B, 17A-17B, and 26A-26H show exemplary user interfaces for creating and modifying virtual avatars, according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the processes in Figures 18A, 18B, 19, 20, 21, 22, 23, 24, 25, and 27. The user interfaces of Figures 10A-10I, 11A-11C, 12A-12C, 13, 14A-14D, 15A-15B, 16A-16B, 17A-17B, and 26A-26H, and the processes of Figures 18A, 18B, 19, 20, 21, 22, 23, 24, 25, and 27 can be used to generate virtual avatars for use in the interfaces of Figures 6A-6MM and 7A-7J and the processes of Figures 8A-8B and 9A-9B.

[0038] In the following description, terms such as "first" and "second" are used to describe various elements, but these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first touch can be referred to as a second touch, and similarly, a second touch can be referred to as a first touch, without departing from the scope of the various embodiments described. Although a first touch and a second touch are both touches, they are not the same touch.

[0039] The terminology used in the description of the various embodiments set forth herein is for the purpose of describing particular embodiments only and is not intended to be limiting. In the description of the various embodiments set forth and in the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. Also, as used herein, the term "and / or" should be understood to refer to and include any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0040] The term "if" is interpreted, optionally, depending on the context, to mean "when" or "upon," or "in response to determining" or "in response to detecting." Similarly, the phrases "if it is determined" or "if [a stated condition or event] is detected" are interpreted, optionally, depending on the context, to mean "upon determining" or "in response to determining," or "upon detecting [the stated condition or event]" or "in response to detecting [the stated condition or event]."

[0041] Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile phone, that also includes other functions, such as PDA and / or music player functions. Exemplary embodiments of portable multifunction devices include, but are not limited to, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, California. Optionally, other portable electronic devices, such as laptop or tablet computers with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads), are also used. It should also be understood that in some embodiments, the device is not a portable communication device, but rather a desktop computer with a touch-sensitive surface (e.g., touchscreen displays and / or touchpads).

[0042] In the following discussion, electronic devices are described that include a display and a touch-sensitive surface, however, it should be understood that the electronic device optionally includes one or more other physical user-interface devices, such as a physical keyboard, a mouse, and / or a joystick.

[0043] The device typically supports a variety of applications, such as any one or more of a drawing application, a presentation application, a word processing application, a website creation application, a disc authoring application, a spreadsheet application, a gaming application, a telephone application, a video conferencing application, an email application, an instant messaging application, a training support application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music player application, and / or a digital video player application.

[0044] Various applications running on the device optionally use at least one common physical user-interface device, such as a touch-sensitive surface. One or more features of the touch-sensitive surface and corresponding information displayed on the device are optionally adjusted and / or changed for each application and / or within each application. In this way, the common physical architecture of the device (such as the touch-sensitive surface) optionally supports various applications with user interfaces that are intuitive and easy to understand for the user.

[0045] Attention now turns to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating portable multifunction device 100 having touch-sensitive display system 112 according to some embodiments. Touch-sensitive display 112 may conveniently be referred to as a “touch screen” and may also be known or referred to as a “touch-sensitive display system.” Device 100 includes memory 102 (optionally including one or more computer-readable storage media), memory controller 122, one or more processing units (CPUs) 120, peripherals interface 118, RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, input / output (I / O) subsystem 106, other input control devices 116, and external port 124. Device 100 optionally includes one or more optical sensors 164. Device 100 optionally includes one or more contact intensity sensors 165 that detect the intensity of a contact on device 100 (e.g., a touch-sensitive surface such as touch-sensitive display system 112 of device 100). Device 100 optionally includes one or more tactile output generators 167 that generate tactile output on device 100 (e.g., generate tactile output on a touch-sensitive surface such as touch-sensitive display system 112 of device 100 or touchpad 355 of device 300). These components optionally communicate via one or more communication buses or signal lines 103.

[0046] As used herein and in the claims, the term “intensity” of a contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of a contact (e.g., a finger contact) on the touch-sensitive surface, or a proxy for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values ​​that includes at least four distinct values ​​and more typically includes hundreds (e.g., at least 256) distinct values. The intensity of a contact is optionally determined (or measured) using various techniques and various sensors or combinations of sensors. For example, one or more force sensors under or adjacent to the touch-sensitive surface are optionally used to measure force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., weighted average) to determine an estimated force of the contact. Similarly, a pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Alternatively, the size and / or change in the contact area detected on the touch-sensitive surface, the capacitance and / or change in the capacitance of the touch-sensitive surface proximate the contact, and / or the resistance and / or change in the capacitance of the touch-sensitive surface proximate the contact are optionally used as a surrogate for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the surrogate measure for the force or pressure of the contact is used directly to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is described in units corresponding to the surrogate measure). In some implementations, the surrogate measure for the contact force or pressure is converted to an estimated force or pressure, and the estimated force or pressure is used to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). Using contact intensity as an attribute of user input allows a user to access additional device functionality that may not otherwise be accessible by a user on devices of reduced size that have limited area for displaying affordances (e.g., on a touch-sensitive display) and / or receiving user input (e.g., via a touch-sensitive display, touch-sensitive surface, or physical / mechanical controls such as knobs or buttons).

[0047] As used herein and in the claims, the term “tactile output” refers to a physical displacement of a device relative to a previous position of the device, a physical displacement of a component of the device (e.g., a touch-sensitive surface) relative to another component of the device (e.g., a housing), or a displacement of a component relative to the center of mass of the device, that will be detected by a user with the user's sense of touch. For example, in a situation where a device or a component of a device is in contact with a touch-sensitive surface of a user (e.g., the fingers, palm, or other part of the user's hand), the tactile output produced by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in a physical property of the device or a component of the device. For example, movement of a touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is optionally interpreted by the user as a “downclick” or “upclick” of a physical actuator button. In some cases, a user feels a tactile sensation such as a “downclick” or “upclick” even when no movement of a physical actuator button associated with the touch-sensitive surface has been physically pressed (e.g., displaced) by the user's action. As another example, movement of a touch-sensitive surface is optionally interpreted or perceived by a user as "roughness" of the touch-sensitive surface, even when there is no change in the smoothness of the touch-sensitive surface. While such user interpretation of touch depends on the user's personal sensory perception, there are many sensory perceptions of touch that are common to the majority of users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., "upclick," "downclick," "roughness"), unless otherwise specified, the generated tactile output corresponds to a physical displacement of the device, or a component of the device, that produces the described sensory perception for a typical (or average) user.

[0048] It should be understood that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than those shown, optionally combines two or more components, or optionally has a different configuration or arrangement of its components. The various components shown in Figure 1A are implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.

[0049] Memory 102 optionally includes high-speed random access memory, and optionally includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Memory controller 122 optionally controls access to memory 102 by other components of device 100.

[0050] Peripheral interface 118 may be used to couple input and output peripherals of the device to CPU 120 and memory 102. One or more processors 120 operate or execute various software programs and / or instruction sets stored in memory 102 to perform various functions and process data for device 100. In some embodiments, peripheral interface 118, CPU 120, and memory controller 122 are optionally implemented on a single chip, such as chip 104. In some other embodiments, they are optionally implemented on separate chips.

[0051] RF (radio frequency) circuitry 108 transmits and receives RF signals, also called electromagnetic signals. RF circuitry 108 converts electrical signals to or from electromagnetic signals and communicates with communication networks and other communication devices via electromagnetic signals. RF circuitry 108 optionally includes well-known circuitry for performing these functions, including, but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, etc. RF circuitry 108 optionally communicates wirelessly with networks, such as the Internet, also known as the World Wide Web (WWW), an intranet, and / or wireless networks, such as cellular telephone networks, wireless local area networks (LANs) and / or metropolitan area networks (MANs), and with other devices. RF circuitry 108 optionally includes well-known circuitry for detecting near field communication (NFC) fields, such as by short-range communication radios.The wireless communication optionally uses any of a plurality of communication standards, protocols, and technologies, including Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), High Speed ​​Downlink Packet Access (HSDPA), High Speed ​​Uplink Packet Access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual Cell HSPA (DC-HSPA), Long Term Evolution (LTE), Near Field Communication (NFC), Wideband Code Division Multiple Access (W-CDMA), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth®, Bluetooth Low Energy (BTLE), Wireless Fidelity (Wi-Fi)® (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and / or IEEE 802.11n). 802.11ac), Voice over Internet Protocol (VoIP), Wi-MAX, protocols for email (e.g., Internet Message Access Protocol (IMAP) and / or Post Office Protocol (POP)), instant messaging (e.g., Extensible Messaging and Presence Protocol (XMPP), Session Initiation Protocol for Instant Messaging and Presentation Leverage Extension (SIMPLE), Instant Messaging and Presence Service (IMPS)), and / or Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document.

[0052] Audio circuit 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuit 110 receives audio data from peripherals interface 118, converts the audio data into electrical signals, and transmits the electrical signals to speaker 111. Speaker 111 converts the electrical signals into sound waves audible to humans. Audio circuit 110 also receives electrical signals converted from sound waves by microphone 113. Audio circuit 110 converts the electrical signals into audio data and transmits the audio data to peripherals interface 118 for processing. The audio data is optionally retrieved from and / or transmitted to memory 102 and / or RF circuit 108 by peripherals interface 118. In some embodiments, audio circuit 110 also includes a headset jack (e.g., 212 in FIG. 2 ). The headset jack provides an interface between audio circuitry 110 and a detachable audio input / output peripheral, such as an output-only headphone or a headset with both an output (e.g., single or double ear headphones) and an input (e.g., a microphone).

[0053] I / O subsystem 106 couples input / output peripherals on device 100, such as touchscreen 112 and other input control devices 116, to peripheral interface 118. I / O subsystem 106 optionally includes display controller 156, light sensor controller 158, depth camera controller 169, intensity sensor controller 159, haptic feedback controller 161, and one or more input controllers 160 for other input or control devices. One or more input controllers 160 receive / send electrical signals from / to other input control devices 116. Other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, input controller 160 is optionally coupled to any (or none) of a keyboard, an infrared port, a USB port, and a pointer device such as a mouse. The one or more buttons (e.g., 208 in FIG. 2) optionally include up and down buttons for volume control of speaker 111 and / or microphone 113. The one or more buttons optionally include a push button (e.g., 206 in FIG. 2).

[0054] A quick press of a push button optionally disengages a lock on the touchscreen 112 or, optionally, initiates a process to unlock the device using a gesture on the touchscreen, as described in U.S. Patent Application Serial No. 11 / 322,549, filed December 23, 2005, "Unlocking a Device by Performing Gestures on an Unlock Image," U.S. Patent No. 7,657,849, which is incorporated herein by reference in its entirety. A longer press of a push button (e.g., 206) optionally turns power on or off to the device 100. The functionality of one or more of the buttons is optionally customizable by the user. The touchscreen 112 is used to implement virtual or soft buttons and one or more soft keyboards.

[0055] Touch-sensitive display 112 provides an input and output interface between the device and a user. Display controller 156 receives and / or sends electrical signals to touchscreen 112. Touchscreen 112 displays visual output to the user. This visual output optionally includes graphics, text, icons, video, and any combination thereof (collectively "graphics"). In some embodiments, some or all of the visual output optionally corresponds to user-interface objects.

[0056] Touchscreen 112 has a touch-sensitive surface, sensor, or set of sensors that receive input from a user based on haptic and / or tactile contact. Touchscreen 112 and display controller 156 (along with any associated modules and / or instruction sets in memory 102) detects contacts (and any movement or disruption of contact) on touchscreen 112 and translates the detected contacts into interactions with user interface objects (e.g., one or more softkeys, icons, web pages, or images) displayed on touchscreen 112. In an exemplary embodiment, the point of contact between touchscreen 112 and the user corresponds to the user's finger.

[0057] Touchscreen 112 optionally uses LCD (liquid crystal display), LPD (light emitting polymer display), or LED (light emitting diode) technology, although other display technologies are used in other embodiments. Touchscreen 112 and display controller 156 optionally detect contact and any movement or disruption thereof using any of a number of now known or later developed touch sensing technologies, including, but not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements that determine one or more points of contact with touchscreen 112. In an exemplary embodiment, projected mutual capacitance sensing technology is used, such as that found in the iPhone® and iPod Touch® from Apple Inc. of Cupertino, California.

[0058] The touch-sensitive display in some embodiments of touchscreen 112 is optionally similar to the multi-touch-sensing touchpad described in U.S. Patent Nos. 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.), and / or 6,677,932 (Westerman), and / or U.S. Patent Publication No. 2002 / 0015024A1, each of which is incorporated by reference herein in its entirety. However, touchscreen 112 displays visual output from device 100, whereas touch-sensitive touchpads do not provide visual output.

[0059] The touch-sensitive display in some embodiments of touch screen 112 may be any of the touch-sensitive displays described in U.S. patent application Ser. No. 11 / 381,313, filed May 2, 2006, entitled "Multipoint Touch Surface Controller," (2) U.S. patent application Ser. No. 10 / 840,862, filed May 6, 2004, entitled "Multipoint Touchscreen," (3) U.S. patent application Ser. No. 10 / 903,964, filed July 30, 2004, entitled "Gestures For Touch Sensitive Input Devices," (4) U.S. patent application Ser. No. 11 / 048,264, filed January 31, 2005, entitled "Gestures For Touch Sensitive Input Devices," and (5) U.S. patent application Ser. No. 11 / 038,590, filed January 18, 2005, entitled "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices." No. 11 / 228,758, filed September 16, 2005, entitled "Virtual Input Device Placement On A Touch Screen User Interface," (7) U.S. Patent Application No. 11 / 228,700, filed September 16, 2005, entitled "Operation Of A Computer With A Touch Screen Interface," (8) U.S. Patent Application No. 11 / 228,737, filed September 16, 2005, entitled "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," and (9) U.S. Patent Application No. 11 / 367,749, filed March 3, 2006, entitled "Multi-Functional Hand-Held Device," all of which are incorporated herein by reference in their entireties.

[0060] Touchscreen 112 optionally has a video resolution greater than 100 dpi. In some embodiments, the touchscreen has a video resolution of approximately 160 dpi. A user optionally contacts touchscreen 112 using any suitable object or accessory, such as a stylus, a finger, or the like. In some embodiments, the user interface is designed to primarily handle finger-based contacts and gestures, which may not be as precise as stylus-based input due to the larger contact area of ​​a finger on the touchscreen. In some embodiments, the device translates coarse finger-based input into precise pointer / cursor positions or commands to perform actions desired by the user.

[0061] In some embodiments, in addition to the touchscreen, device 100 optionally includes a touchpad for activating or deactivating certain functions. In some embodiments, the touchpad is a touch-sensitive area of ​​the device that, unlike the touchscreen, does not display visual output. The touchpad is optionally a touch-sensitive surface that is separate from touchscreen 112 or an extension of the touch-sensitive surface formed by the touchscreen.

[0062] Device 100 also includes a power system 162 that provides power to the various components. Power system 162 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components associated with the generation, management, and distribution of electrical power within a portable device.

[0063] Device 100 also optionally includes one or more light sensors 164. FIG. 1A shows a light sensor coupled to light sensor controller 158 in I / O subsystem 106. Light sensor 164 optionally includes a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. Light sensor 164 receives light from the environment projected through one or more lenses and converts the light into data representing an image. Light sensor 164 optionally interfaces with imaging module 143 (also called a camera module) to capture still images or video. In some embodiments, the light sensor is located on the back of device 100, as opposed to touchscreen display 112, which is on the front of the device; thus, the touchscreen display is effectively used as a viewfinder for capturing still and / or video images. In some embodiments, the light sensor is located on the front of the device so that an image of the user is obtained, optionally for video conferencing, and the user sees other video conference participants on the touchscreen display. In some embodiments, the position of the light sensor 164 can be changed by the user (e.g., by rotating the lens and sensor within the device housing), so that a single light sensor 164 is used for both video conferencing and capturing still and / or video images, along with the touchscreen display.

[0064] Device 100 also optionally includes one or more depth camera sensors 175. FIG. 1A shows a depth camera sensor coupled to depth camera controller 169 in I / O subsystem 106. Depth camera sensor 175 receives data from the environment and creates a three-dimensional model of an object (e.g., a face) in a scene from a viewpoint (e.g., the depth camera sensor). In some embodiments, in conjunction with imaging module 143 (also referred to as a camera module), depth camera sensor 175 is optionally used to determine a depth map of various portions of an image captured by imaging module 143. In some embodiments, a depth camera sensor is located on the front of device 100 so that an image of the user with depth information is optionally obtained for videoconferences and to capture selfie images with depth map data while the user views other videoconference participants on a touchscreen display. In some embodiments, depth camera sensor 175 is located on the back of the device, or on both the back and front of device 100. In some embodiments, the position of the depth camera sensor 175 can be changed by the user (e.g., by rotating the lens and sensor within the device housing), so that the depth camera sensor 175 can be used for both video conferencing and capturing still and / or video images, in conjunction with a touchscreen display.

[0065] In some embodiments, a depth map (e.g., a depth map image) contains information (e.g., values) about the distance of objects in a scene from a viewpoint (e.g., a camera, light sensor, depth camera sensor). In one embodiment of a depth map, each depth pixel defines the position on the Z axis of the viewpoint where its corresponding two-dimensional pixel is located. In some embodiments, a depth map is made up of pixels, each defined by a value (e.g., 0-255). For example, a value of "0" represents a pixel located furthest in a "3D" scene, and a value of "255" represents a pixel located closest to the viewpoint (e.g., a camera, light sensor, depth camera sensor) in the "3D" scene. In other embodiments, a depth map represents the distance between objects in a scene and the plane of the viewpoint. In some embodiments, a depth map contains information about the relative depth of various features of an object of interest as seen by a depth camera (e.g., the relative depth of the eyes, nose, mouth, and ears on a user's face). In some embodiments, the depth map contains information that allows the device to determine the contours of the object of interest in the z-direction.

[0066] Device 100 also optionally includes one or more contact intensity sensors 165. FIG. 1A shows a contact intensity sensor coupled to intensity sensor controller 159 in I / O subsystem 106. Contact intensity sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electric force sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors used to measure the force (or pressure) of a contact on a touch-sensitive surface). Contact intensity sensor 165 receives contact intensity information (e.g., pressure information or a proxy for pressure information) from the environment. In some embodiments, at least one contact intensity sensor is juxtaposed with or proximate to the touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back side of device 100, as opposed to touchscreen display 112, which is located on the front side of device 100.

[0067] Device 100 also optionally includes one or more proximity sensors 166. Figure 1A shows proximity sensor 166 coupled to peripherals interface 118. Alternatively, proximity sensor 166 is optionally coupled to input controller 160 within I / O subsystem 106. Proximity sensor 166 optionally functions as described in U.S. patent application Ser. Nos. 11 / 241,839, "Proximity Detector In Handheld Device," 11 / 240,788, "Proximity Detector In Handheld Device," 11 / 620,702, "Using Ambient Light Sensor To Augment Proximity Sensor Output," 11 / 586,862, "Automated Response To And Sensing Of User Activity In Portable Devices," and 11 / 638,251, "Methods And Systems For Automatic Configuration Of Peripherals," which are incorporated herein by reference in their entireties. In some embodiments, the proximity sensor turns off and disables touchscreen 112 when the multifunction device is placed near the user's ear (e.g., when the user is making a phone call).

[0068] Device 100 also optionally includes one or more tactile output generators 167. FIG. 1A shows tactile output generators 167 coupled to haptic feedback controller 161 in I / O subsystem 106. Tactile output generator 167 optionally includes one or more electroacoustic devices, such as speakers or other audio components, and / or electromechanical devices that convert energy into linear motion, such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other tactile output generating components (e.g., components that convert electrical signals into tactile output on the device). Contact intensity sensor 165 receives tactile feedback generation instructions from haptic feedback module 133 and generates a tactile output on device 100 that can be sensed by a user of device 100. In some embodiments, at least one tactile output generator is located on or proximate to a touch-sensitive surface (e.g., touch-sensitive display system 112) and, optionally, generates a tactile output by moving the touch-sensitive surface vertically (e.g., in / out of the surface of device 100) or horizontally (e.g., back and forth in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is located on the back of device 100, as opposed to touchscreen display 112 being located on the front of device 100.

[0069] Device 100 also optionally includes one or more accelerometers 168. FIG. 1A shows accelerometer 168 coupled to peripherals interface 118. Alternatively, accelerometer 168 is optionally coupled to input controller 160 within I / O subsystem 106. Accelerometer 168 optionally functions as described in U.S. Patent Publication No. 20050190059, "Acceleration-based Theft Detection System for Portable Electronic Devices," and U.S. Patent Publication No. 20060017692, "Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer," both of which are incorporated herein by reference in their entireties. In some embodiments, information is displayed on the touchscreen display in portrait or landscape view based on analysis of data received from the one or more accelerometers. In addition to accelerometer(s) 168, device 100 optionally includes a magnetometer and a GPS (or GLONASS or other global navigation system) receiver for obtaining information about the position and orientation (e.g., vertical or horizontal) of device 100.

[0070] In some embodiments, software components stored in memory 102 include operating system 126, communications module (or instruction set) 128, touch / motion module (or instruction set) 130, graphics module (or instruction set) 132, text input module (or instruction set) 134, Global Positioning System (GPS) module (or instruction set) 135, and applications (or instruction set) 136. Additionally, in some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) stores device / global internal state 157, as shown in FIGS. 1A and 3. Device / global internal state 157 includes one or more of: active application state, which indicates which applications, if any, are currently active; display state, which indicates which applications, views, or other information occupy various regions of touchscreen display 112; sensor state, which includes information obtained from the device's various sensors and input control devices 116; and location information regarding the location and / or orientation of the device.

[0071] Operating system 126 (e.g., Darwin®, RTXC®, LINUX®, UNIX®, OS X®, iOS®, WINDOWS®, or an embedded operating system such as VxWorks®) includes various software components and / or drivers that control and manage normal system tasks (e.g., memory management, storage device control, power management, etc.) and facilitate communication between various hardware and software components.

[0072] Communications module 128 facilitates communication with other devices via one or more external ports 124 and also includes various software components for processing data received by RF circuitry 108 and / or external port 124. External port 124 (e.g., Universal Serial Bus (USB), FIREWIRE®, etc.) is adapted to couple to other devices directly or indirectly via a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector that is the same as, similar to, and / or compatible with the 30-pin connector used on iPod® (trademark of Apple Inc.) devices.

[0073] Contact / motion module 130, optionally in conjunction with display controller 156, detects contact with touchscreen 112 and other touch-sensing devices (e.g., a touchpad or physical click wheel). Contact / motion module 130 includes various software components that perform various operations related to detecting contact, such as determining whether contact has occurred (e.g., detecting a finger-down event), determining the intensity of the contact (e.g., the force or pressure of the contact, or a surrogate for the force or pressure of the contact), determining whether there is movement of the contact and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-drag events), and determining whether the contact has stopped (e.g., detecting a finger-up event or an interruption of the contact). Contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact, as represented by the series of contact data, optionally includes determining the speed (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact. These actions are optionally applied to a single contact (e.g., a single finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts). In some embodiments, contact / motion module 130 and display controller 156 detect contacts on the touchpad.

[0074] In some embodiments, contact / motion module 130 uses a set of one or more intensity thresholds to determine whether an action has been performed by a user (e.g., whether a user has “clicked” on an icon). In some embodiments, at least a subset of the intensity thresholds are determined according to software parameters (e.g., the intensity thresholds are not determined by the activation threshold of a particular physical actuator, but can be adjusted without changing the physical hardware of device 100). For example, the mouse “click” threshold of a trackpad or touchscreen display can be set to any of a wide range of predetermined thresholds without changing the trackpad or touchscreen display hardware. Additionally, in some implementations, a device user is provided with a software setting to adjust one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or multiple intensity thresholds at once via a system-level click “intensity” parameter).

[0075] Contact / motion module 130 optionally detects gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or intensities of detected contacts). Thus, gestures are optionally detected by detecting particular contact patterns. For example, detecting a finger tap gesture includes detecting a finger down event, followed by detecting a finger up (lift off) event at the same location (or substantially the same location) as the finger down event (e.g., the location of an icon). As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger down event, followed by one or more finger drag events, followed by detecting a finger up (lift off) event.

[0076] Graphics module 132 includes various known software components that render and display graphics on touchscreen 112 or other display, including components that vary the visual impact (e.g., brightness, transparency, saturation, contrast, or other visual characteristics) of the displayed graphics. As used herein, the term "graphic" includes any object that can be displayed to a user, including, but not limited to, characters, web pages, icons (such as user interface objects including soft keys), digital images, videos, animations, etc.

[0077] In some embodiments, graphics module 132 stores data representing graphics to be used. Each graphic is optionally assigned a corresponding code. Graphics module 132 receives one or more codes specifying the graphics to be displayed, including coordinate data and other graphic characteristic data, as needed, from an application or the like, and then generates screen image data to output to display controller 156.

[0078] The tactile feedback module 133 includes various software components for generating instructions used by the tactile output generator(s) 167 to generate tactile outputs at one or more locations on the device 100 in response to user interaction with the device 100.

[0079] Text input module 134 is optionally a component of graphics module 132 and provides a soft keyboard for entering text in various applications (e.g., contacts 137, email 140, IM 141, browser 147, and any other application requiring text input).

[0080] The GPS module 135 determines the location of the device and provides this information for use in various applications (e.g., to the phone 138 for use in location-based dialing, to the camera 143 as image / video metadata, and to applications that provide location-based services such as weather widgets, local yellow pages widgets, and map / navigation widgets).

[0081] Application 136 optionally includes the following modules (or sets of instructions), or a subset or superset thereof: • a contacts module 137 (sometimes called an address book or contact list); ●Telephone module 138, ●Videoconferencing module 139, ● an email client module 140; ● Instant messaging (IM) module 141; ●Training support module 142, a camera module 143 for still and / or video images, ● Image management module 144; ●Video player module, ●Music player module, ● Browser module 147, ● Calendar module 148, a widget module 149, optionally including one or more of a weather widget 149-1, a stock price widget 149-2, a calculator widget 149-3, an alarm clock widget 149-4, a dictionary widget 149-5, and other widgets obtained by the user, as well as user-created widgets 149-6; a widget creator module 150 for creating user-created widgets 149-6; ● Search module 151, A video and music player module 152 that integrates a video player module and a music player module; ● Memo module 153, Map module 154, and / or ●Online video module 155.

[0082] Examples of other applications 136 optionally stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA-enabled applications, encryption, digital rights management, voice recognition, and voice duplication.

[0083] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, contacts module 137 is used to manage an address book or contact list (e.g., stored in memory 102 or in the application internal state 192 of contacts module 137 in memory 370), optionally including adding name(s) to the address book, deleting name(s) from the address book, associating phone number(s), email address(es), street address(es), or other information with names, associating images with names, categorizing and sorting names, providing phone numbers or email addresses to initiate and / or facilitate communication by phone 138, videoconferencing module 139, email 140, or IM 141, and the like.

[0084] Telephone module 138, in conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, is optionally used to enter character sequences corresponding to telephone numbers, access one or more telephone numbers in contacts module 137, modify entered telephone numbers, dial respective telephone numbers, conduct conversations, and terminate or hang up when the conversation is completed. As previously mentioned, wireless communication optionally uses any of a number of communication standards, protocols, and technologies.

[0085] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch screen 112, display controller 156, light sensor 164, light sensor controller 158, touch / motion module 130, graphics module 132, text input module 134, contacts module 137, and telephone module 138, videoconferencing module 139 includes executable instructions for initiating, conducting, and terminating a videoconference between a user and one or more other participants in accordance with user commands.

[0086] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, email client module 140 contains executable instructions for composing, sending, receiving, and managing emails in response to user commands. In conjunction with image management module 144, email client module 140 greatly facilitates the creation and sending of emails with still or video images captured by camera module 143.

[0087] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, instant messaging module 141 includes executable instructions for entering character sequences corresponding to instant messages, modifying previously entered characters, sending respective instant messages (e.g., using Short Message Service (SMS) or Multimedia Message Service (MMS) protocols for telephony-based instant messaging, or XMPP, SIMPLE, or IMPS for Internet-based instant messaging), receiving instant messages, and viewing received instant messages. In some embodiments, sent and / or received instant messages optionally include graphics, photos, audio files, video files, and / or other attachments supported by MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both telephony-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, or IMPS).

[0088] In conjunction with the RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module, the training support module 142 includes executable instructions for creating workouts (e.g., with time, distance, and / or calorie burn goals), communicating with training sensors (sports devices), receiving training sensor data, calibrating sensors used to monitor workouts, selecting and playing music for workouts, and displaying, storing, and transmitting workout data.

[0089] In conjunction with touch screen 112, display controller 156, light sensor 164, light sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, camera module 143 contains executable instructions for capturing and storing still images or video (including video streams) in memory 102, modifying characteristics of the still images or video, or deleting the still images or video from memory 102.

[0090] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, image management module 144 contains executable instructions for arranging, modifying (e.g., editing), or otherwise manipulating, labeling, deleting, presenting (e.g., in a digital slide show or album), and storing still and / or video images.

[0091] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, browser module 147 contains executable instructions for browsing the Internet according to user commands, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.

[0092] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, calendar module 148 includes executable instructions for creating, displaying, modifying, and storing calendars and data associated with calendars (e.g., calendar entries, to-do lists, etc.) in accordance with user commands.

[0093] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget module 149 is optionally a mini-application downloaded and used by a user (e.g., weather widget 149-1, stock price widget 149-2, calculator widget 149-3, alarm clock widget 149-4, and dictionary widget 149-5), or a mini-application created by a user (e.g., user-created widget 149-6). In some embodiments, a widget includes an HTML (Hypertext Markup Language) file, a CSS (Cascading Style Sheets) file, and a JavaScript file. In some embodiments, a widget includes an XML (Extensible Markup Language) file and a JavaScript file (e.g., Yahoo! Widgets).

[0094] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget creator module 150 is optionally used by a user to create a widget (e.g., turn a user-specified portion of a web page into a widget).

[0095] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, search module 151 includes executable instructions for searching memory 102 for text, music, sound, images, video, and / or other files that match one or more search criteria (e.g., one or more user-specified search terms) in accordance with user commands.

[0096] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, video and music player module 152 includes executable instructions that enable a user to download and play recorded music and other sound files stored in one or more file formats, such as MP3 or AAC files, as well as executable instructions for displaying, presenting, or otherwise playing videos (e.g., on touchscreen 112 or on an external display connected via external port 124). In some embodiments, device 100 optionally includes the functionality of an MP3 player, such as an iPod (a trademark of Apple Inc.).

[0097] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, notes module 153 contains executable instructions for creating and managing notes, to-do lists, and the like according to user commands.

[0098] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, map module 154 is optionally used to receive, display, modify, and store maps and data associated with maps (e.g., driving directions, data regarding businesses and other points of interest at or near a particular location, and other location-based data) in accordance with user instructions.

[0099] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, email client module 140, and browser module 147, online video module 155 contains instructions that enable a user to access, browse for, receive (e.g., by streaming and / or downloading), and play (e.g., on the touchscreen or on an external display connected via external port 124) particular online videos, send emails with links to particular online videos, and otherwise manage online videos in one or more file formats, such as H.264. In some embodiments, instant messaging module 141 is used to send links to particular online videos, rather than email client module 140. Additional description of online video applications can be found in U.S. Provisional Patent Application No. 60 / 936,562, filed June 20, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," and U.S. Patent Application No. 11 / 968,067, filed December 31, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," the contents of which are incorporated herein by reference in their entireties.

[0100] Each of the above-identified modules and applications corresponds to a set of executable instructions that perform one or more of the functions described above and methods described herein (e.g., the computer-implemented methods and other information processing methods described herein). These modules (e.g., sets of instructions) need not be implemented as separate software programs, procedures, or modules; thus, in various embodiments, various subsets of these modules are optionally combined or otherwise rearranged. For example, a video player module is optionally combined with a music player module into a single module (e.g., video and music player module 152 of FIG. 1A). In some embodiments, memory 102 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 102 optionally stores additional modules and data structures not described above.

[0101] In some embodiments, device 100 is a device in which operation of a predetermined set of functions on the device is performed exclusively through a touchscreen and / or touchpad. Using the touchscreen and / or touchpad as the primary input control device for operation of device 100 optionally reduces the number of physical input control devices (push buttons, dials, etc.) on device 100.

[0102] The set of predetermined functions performed only through the touchscreen and / or touchpad optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by a user, navigates device 100 to a main menu, home menu, or root menu from any user interface displayed on device 100. In such embodiments, a "menu button" is implemented using the touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device rather than a touchpad.

[0103] 1B is a block diagram illustrating exemplary components for event processing according to some embodiments. In some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) includes event sorter 170 (e.g., within operating system 126) and a respective application 136-1 (e.g., any of applications 137-151, 155, 380-390 described above).

[0104] Event sorter 170 receives the event information and determines application 136-1 and application view 191 of application 136-1 to which the event information is to be delivered. Event sorter 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view that is displayed on touch-sensitive display 112 when the application is active or running. In some embodiments, device / global internal state 157 is used by event sorter 170 to determine which application(s) is currently active, and application internal state 192 is used by event sorter 170 to determine application view 191 to which the event information is to be delivered.

[0105] In some embodiments, application internal state 192 includes additional information such as one or more of resume information used when application 136-1 resumes execution, user interface state information indicating information being displayed or ready to be displayed by application 136-1, a state queue that allows the user to return to a previous state or view of application 136-1, and a redo / undo queue of previous actions taken by the user.

[0106] Event monitor 171 receives event information from peripherals interface 118. The event information includes information about a sub-event (e.g., a user touch on touch-sensitive display 112 as part of a multi-touch gesture). Peripherals interface 118 transmits information it receives from I / O subsystem 106 or sensors such as proximity sensor 166, accelerometer(s) 168, and / or microphone 113 (via audio circuitry 110). The information that peripherals interface 118 receives from I / O subsystem 106 includes information from touch-sensitive display 112 or a touch-sensitive surface.

[0107] In some embodiments, event monitor 171 sends requests to peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripherals interface 118 transmits event information only when there is a significant event (e.g., receipt of an input above a predetermined noise threshold and / or for more than a predetermined duration).

[0108] In some embodiments, event sorter 170 also includes a hit view determination module 172 and / or an active event recognizer determination module 173 .

[0109] Hit view determination module 172 provides software procedures that determine where a sub-event occurred within one or more views when touch-sensitive display 112 displays more than one view. A view consists of the controls and other elements that a user can see on the display.

[0110] Another aspect of a user interface associated with an application is the set of views, sometimes referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures occur. The application view (of the respective application) in which the touch is detected optionally corresponds to a programmatic level within the application's programmatic or view hierarchy. For example, the lowest-level view in which the touch is detected is optionally referred to as the hit view, and the set of events that are recognized as appropriate inputs is optionally determined based at least in part on the hit view of the initial touch that initiates the touch gesture.

[0111] Hit view determination module 172 receives information related to sub-events of a touch-based gesture. When an application has multiple views organized in a hierarchy, hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-events. In most situations, the hit view is the lowest-level view in which an initiating sub-event (e.g., the first sub-event in a sequence of sub-events that form an event or potential event) occurs. After a hit view is identified by hit view determination module 172, the hit view typically receives all sub-events related to the same touch or input source as the hit view.

[0112] Active event recognizer determination module 173 determines which view(s) in the view hierarchy should receive the particular sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive the particular sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all views that contain the physical location of the sub-event are actively participating views, and therefore determines that all actively participating views should receive the particular sequence of sub-events. In other embodiments, even if the touch sub-event is completely confined to an area associated with one particular view, views higher in the hierarchy still remain actively participating views.

[0113] Event dispatcher module 174 dispatches event information to event recognizers (e.g., event recognizer 180). In embodiments that include active event recognizer determination module 173, event dispatcher module 174 delivers the event information to the event recognizers determined by active event recognizer determination module 173. In some embodiments, event dispatcher module 174 stores event information obtained by each event receiver 182 in an event queue.

[0114] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In still other embodiments, event sorter 170 is a stand-alone module or part of another module stored in memory 102, such as contact / motion module 130.

[0115] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each containing instructions for handling touch events that occur within a respective view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognizers 180. Typically, each application view 191 includes multiple event recognizers 180. In other embodiments, any one or more of event recognizers 180 are part of a separate module, such as a User Interface Kit or a higher-level object from which application 136-1 inherits methods and other attributes. In some embodiments, the corresponding event handler 190 includes one or more of data updater 176, object updater 177, GUI updater 178, and / or event data 179 received from event sorter 170. Event handler 190 optionally utilizes or invokes data updater 176, object updater 177, or GUI updater 178 to update application internal state 192. Alternatively, one or more of the application views 191 include one or more respective event handlers 190. Also, in some embodiments, one or more of the data updater 176, object updater 177, and GUI updater 178 are included in the corresponding application view 191.

[0116] Each event recognizer 180 receives event information (e.g., event data 179) from event sorter 170 and identifies an event from the event information. Event recognizer 180 includes an event receiver 182 and an event comparator 184. In some embodiments, event recognizer 180 also includes metadata 183 and at least a subset of event delivery instructions 188 (optionally including sub-event delivery instructions).

[0117] Event receiver 182 receives event information from event sorter 170. The event information includes information about a sub-event, e.g., information about a touch or a movement of a touch. Depending on the sub-event, the event information also includes additional information, such as the position of the sub-event. When the sub-event involves a movement of a touch, the event information also optionally includes the speed and direction of the sub-event. In some embodiments, the event includes a rotation of the device from one orientation to another (e.g., from portrait to landscape or vice versa), and the event information includes corresponding information about the current orientation of the device (also called the device's attitude).

[0118] The event comparator 184 compares the event information with predefined event or sub-event definitions and determines the event or sub-event, or determines or updates the state of the event or sub-event, based on the comparison. In some embodiments, the event comparator 184 includes an event definition 186. The event definition 186 includes a definition of an event (e.g., a sequence of predefined sub-events), such as Event 1 (187-1) and Event 2 (187-2). In some embodiments, sub-events within an event (187) include, for example, a touch start, a touch end, a touch movement, a touch cancellation, and multiple touches. In one example, the definition for Event 1 (187-1) is a double tap on a displayed object. The double tap includes, for example, a first touch on a displayed object relative to a predefined stage (touch start), a first lift-off (touch end) relative to the predefined stage, a second touch on a displayed object relative to the predefined stage (touch start), and a second lift-off (touch end) relative to the predefined stage. In another example, the definition for Event 2 (187-2) is a drag on a displayed object. A drag includes, for example, a touch (or contact) of a display object to a predetermined stage, a movement of the touch on the touch-sensitive display 112, and a lift-off of the touch (touch end). In some embodiments, the event also includes information about one or more associated event handlers 190.

[0119] In some embodiments, event definitions 187 include a definition of the event for each user interface object. In some embodiments, event comparator 184 performs a hit test to determine which user interface object is associated with the sub-event. For example, in an application view in which three user interface objects are displayed on touch-sensitive display 112, when a touch is detected on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). If each displayed object is associated with a corresponding event handler 190, event comparator 184 uses the results of the hit test to determine which event handler 190 to activate. For example, event comparator 184 selects the event handler associated with the sub-event and object that triggers the hit test.

[0120] In some embodiments, the definition for each event (187) also includes a delay action that delays transmission of the event information until after it has been determined whether the sub-event sequence corresponds to the event recognizer's event type.

[0121] If the respective event recognizer 180 determines that the sequence of sub-events does not match any event in the event definition 186, the respective event recognizer 180 enters an event disabled, event failed, or event finished state and thereafter ignores subsequent sub-events of the touch gesture. In this situation, any other event recognizers that remain active for the hit view continue to track and process sub-events of the ongoing touch gesture.

[0122] In some embodiments, corresponding event recognizers 180 include metadata 183 with configurable properties, flags, and / or lists that indicate to actively participating event recognizers how the event delivery system should perform sub-event delivery. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how event recognizers interact with each other or how event recognizers are enabled to interact with each other. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how sub-events are delivered to various levels in the view or programmatic hierarchy.

[0123] In some embodiments, each event recognizer 180 activates an event handler 190 associated with an event when one or more specific sub-events of the event are recognized. In some embodiments, each event recognizer 180 delivers event information associated with the event to the event handler 190. Activating the event handler 190 is separate from sending (and deferring sending) the sub-events to the respective hit view. In some embodiments, the event recognizer 180 pops a flag associated with the recognized event, and the event handler 190 associated with that flag catches the flag and performs a predetermined process.

[0124] In some embodiments, event delivery instructions 188 include sub-event delivery instructions that deliver event information about a sub-event without activating an event handler. Instead, the sub-event delivery instructions deliver the event information to an event handler associated with a set of sub-events or to an actively participating view. The event handler associated with the set of sub-events or the actively participating view receives the event information and performs predetermined processing.

[0125] In some embodiments, data updater 176 creates and updates data used by application 136-1. For example, data updater 176 updates phone numbers used in contacts module 137 or stores video files used in a video player module. In some embodiments, object updater 177 creates and updates objects used by application 136-1. For example, object updater 177 creates new user interface objects or updates the positions of user interface objects. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends the display information to graphics module 132 for display on the touch-sensitive display.

[0126] In some embodiments, event handler(s) 190 include or have access to data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are included in a single module of the respective application 136-1 or application view 191. In other embodiments, they are included in two or more software modules.

[0127] It will be understood that the above discussion regarding event processing of user touches on a touch-sensitive display also applies to other forms of user input for operating multifunction device 100 having input devices, not all of which are necessarily initiated on a touchscreen. For example, mouse movements and mouse button presses, touch movements such as tapping, dragging, scrolling on a touchpad, optionally coordinated with single or multiple keyboard presses or holds, pen stylus input, device movement, verbal commands, detected eye movements, biometric input, and / or any combination thereof, are optionally utilized as inputs corresponding to sub-events that define the recognized event.

[0128] FIG. 2 illustrates portable multifunction device 100 with touchscreen 112 according to some embodiments. The touchscreen optionally displays one or more graphics within user interface (UI) 200. In this embodiment, as well as other embodiments described below, a user may select one or more of the graphics by performing a gesture on the graphics, for example, using one or more fingers 202 (not drawn to scale) or one or more styluses 203 (not drawn to scale). In some embodiments, selection of one or more graphics is performed when the user breaks contact with the one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, upward, and / or downward), and / or a roll of a finger (right to left, left to right, upward, and / or downward) in contact with device 100. In some implementations or situations, accidental contact with a graphic does not select the graphic. For example, if the gesture corresponding to selection is a tap, a swipe gesture sweeping over an application icon optionally does not select the corresponding application.

[0129] Device 100 also optionally includes one or more physical buttons, such as a "home" button or menu button 204. As previously mentioned, menu button 204 is optionally used to navigate to any application 136, optionally within a set of applications running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key within a GUI displayed on touchscreen 112.

[0130] In some embodiments, device 100 includes touchscreen 112, menu button 204, pushbuttons 206 for powering the device on / off and locking the device, volume control buttons 208, subscriber identity module (SIM) card slot 210, headset jack 212, and external docking / charging port 124. Pushbutton 206 is optionally used to power the device on / off by pressing and holding the button down for a predetermined period of time, to lock the device by pressing and releasing the button before the predetermined period of time has elapsed, and / or to unlock the device or begin the unlocking process. In alternative embodiments, device 100 also accepts verbal input via microphone 113 for activating or deactivating some functions. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on touchscreen 112 and / or one or more tactile output generators 167 for generating a tactile output for a user of device 100.

[0131] FIG. 3 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface according to some embodiments. Device 300 need not be portable. In some embodiments, device 300 is a laptop computer, a desktop computer, a tablet computer, a multimedia playback device, a navigation device, an educational device (such as a child's learning toy), a gaming system, or a control device (e.g., a home or commercial controller). Device 300 typically includes one or more processing units (CPUs) 310, one or more network or other communication interfaces 360, memory 370, and one or more communication buses 320 interconnecting these components. Communication bus 320 optionally includes circuitry (sometimes referred to as a chipset) that interconnects and controls communication between system components. Device 300 includes an input / output (I / O) interface 330 with a display 340, which is typically a touchscreen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350, a touchpad 355, a tactile output generator 357 (e.g., similar to tactile output generator 167 described above with reference to FIG. 1A ) that generates tactile output on device 300, and sensors 359 (e.g., light, acceleration, proximity, touch-sensing, and / or contact intensity sensors similar to contact intensity sensor 165 described above with reference to FIG. 1A ). Memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices located remotely from CPU 310. In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, the programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A).Additionally, memory 370 optionally stores additional programs, modules, and data structures not present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, ​​word processing module 384, website creation module 386, disc authoring module 388, and / or spreadsheet module 390, whereas memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store these modules.

[0132] Each of the above-identified elements of FIG. 3 is optionally stored in one or more of the memory devices mentioned above. Each of the above-identified modules corresponds to a set of instructions that perform the functions described above. The above-identified modules or programs (e.g., instruction sets) need not be implemented as separate software programs, procedures, or modules; thus, in various embodiments, various subsets of these modules are optionally combined or otherwise reconfigured. In some embodiments, memory 370 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 370 optionally stores additional modules and data structures not described above.

[0133] Attention is now directed to user interface embodiments, optionally implemented on portable multifunction device 100, for example.

[0134] 4A shows an exemplary user interface for a menu of applications on portable multifunction device 100 according to some embodiments. A similar user interface is optionally implemented on device 300. In some embodiments, user interface 400 includes the following elements, or a subset or superset thereof: signal strength indicator(s) 402 for wireless communication(s), such as cellular and Wi-Fi signals; ●Time 404, ●Bluetooth (registered trademark) indicator 405, ● Battery status indicator 406, Tray 408, which contains icons for frequently used applications, such as: An icon 416 for the phone module 138, labeled "Phone," optionally including an indicator 414 of the number of missed calls or voicemail messages; icon 418 of the email client module 140, labeled "Mail," optionally including an indicator 410 of the number of unread emails; ○ An icon 420 for the browser module 147, labeled "Browser"; and ○ An icon 422 of the video and music player module 152, also called the iPod (trademark of Apple Inc.) module 152, labeled "iPod"; and ●Icons for other applications, such as: ○ Icon 424 of IM module 141, labeled "Messages"; icon 426 of the calendar module 148, labeled "Calendar"; ○ Icon 428 of the image management module 144, labeled "Photos" ○ An icon 430 of the camera module 143, labeled "camera"; ○ Icon 432 of the online video module 155, labeled "Online Video"; Icon 434 of Stock Price Widget 149-2, labeled "Stock Price" ○ An icon 436 for the map module 154, labeled "Map"; Icon 438 of weather widget 149-1, labeled "Weather" ○ Icon 440 of alarm clock widget 149-4, labeled "Clock" ○ Icon 442 of Training Support Module 142, labeled "Training Support"; ○ An icon 444 of the Notes module 153 labeled "Notes," and ○ An icon 446 for a settings application or module labeled “Settings” that provides access to settings for the device 100 and its various applications 136.

[0135] 4A are merely exemplary. For example, icon 422 for video and music player module 152 may be labeled "Music" or "Music Player," although other labels are optionally used for various application icons. In some embodiments, the label for each application icon includes the name of the application corresponding to the respective application icon. In some embodiments, the label for a particular application icon is different from the name of the application corresponding to that particular application icon.

[0136] 4B shows an example user interface on a device (e.g., device 300 of FIG. 3 ) that has touch-sensitive surface 451 (e.g., tablet or touchpad 355 of FIG. 3 ) that is separate from display 450 (e.g., touchscreen display 112). Device 300 also optionally includes one or more contact intensity sensors (e.g., one or more of sensors 359) that detect the intensity of a contact on touch-sensitive surface 451, and / or one or more tactile output generators 357 that generate a tactile output for a user of device 300.

[0137] Although some of the following examples are given with reference to input on touchscreen display 112 (which combines a touch-sensitive surface and a display), in some embodiments, the device detects input on a touch-sensitive surface that is separate from the display shown in FIG. 4B . In some embodiments, the touch-sensitive surface (e.g., 451 in FIG. 4B ) has a primary axis (e.g., 452 in FIG. 4B ) that corresponds to a primary axis (e.g., 453 in FIG. 4B ) on the display (e.g., 450). According to these embodiments, the device detects contact with touch-sensitive surface 451 (e.g., 460 and 462 in FIG. 4B ) at locations that correspond to respective locations on the display (e.g., in FIG. 4B , 460 corresponds to 468 and 462 corresponds to 470). In this way, user input (e.g., contacts 460 and 462 and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4B ) is used by the device to operate a user interface on the display (e.g., 450 in FIG. 4B ) of the multifunction device when the touch-sensitive surface is separate from the display. It should be understood that similar methods are optionally used for the other user interfaces described herein.

[0138] Additionally, while the following examples are given primarily with reference to finger input (e.g., finger contacts, finger tap gestures, finger swipe gestures), it should be understood that in some embodiments, one or more of the finger inputs are replaced with input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture is optionally replaced by a mouse click (e.g., instead of a contact) followed by movement of a cursor along the path of the swipe (e.g., instead of movement of the contact). As another example, a tap gesture is optionally replaced with a mouse click while the cursor is positioned over the location of the tap gesture (e.g., instead of detecting a contact and then ceasing contact detection). Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice are optionally used simultaneously, or a mouse and finger contacts are optionally used simultaneously.

[0139] FIG. 5A shows an exemplary personal electronic device 500. Device 500 includes a main body 502. In some embodiments, device 500 can include some or all of the features described with respect to devices 100 and 300 (e.g., FIGS. 1A-4B). In some embodiments, device 500 has a touch-sensitive display screen 504, hereafter touchscreen 504. Alternatively or in addition to touchscreen 504, device 500 has a display and a touch-sensitive surface. Similar to devices 100 and 300, in some embodiments, touchscreen 504 (or the touch-sensitive surface) optionally includes one or more intensity sensors that detect the intensity of an applied contact (e.g., a touch). The one or more intensity sensors of touchscreen 504 (or the touch-sensitive surface) can provide output data representing the intensity of the touch. A user interface of device 500 can respond to a touch based on the intensity of the touch, meaning that touches of different intensities can invoke different user interface actions on device 500.

[0140] Exemplary techniques for detecting and processing touch intensity can be found, for example, in International Patent Application No. PCT / US2013 / 040061, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application," published as International Patent Application No. WO / 2013 / 169849, and related applications, including International Patent Application No. PCT / US2013 / 069483, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships," published as International Patent Application No. WO / 2014 / 105276, each of which is incorporated herein by reference in its entirety.

[0141] In some embodiments, device 500 has one or more input mechanisms 506 and 508. Input mechanisms 506 and 508, if included, can be physical mechanisms. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, device 500 has one or more attachment mechanisms. Such attachment mechanisms, if included, can allow device 500 to be attached to, for example, hats, eyewear, earrings, necklaces, shirts, jackets, bracelets, watch bands, chains, pants, belts, shoes, wallets, backpacks, etc. These attachment mechanisms allow a user to wear device 500.

[0142] FIG. 5B illustrates an exemplary personal electronic device 500. In some embodiments, device 500 can include some or all of the components described with respect to FIGS. 1A, 1B, and 3. Device 500 has a bus 512 operably coupling an I / O section 514 to one or more computer processors 516 and memory 518. I / O section 514 can be connected to a display 504, which can have touch-sensing components 522 and, optionally, an intensity sensor 524 (e.g., a contact intensity sensor). Additionally, I / O section 514 can be connected to a communication unit 530 that receives application and operating system data using Wi-Fi, Bluetooth, near-field communication (NFC), cellular, and / or other wireless communication techniques. Device 500 can include input mechanisms 506 and / or 508. Input mechanism 506 is optionally a rotatable input device or a depressible and rotatable input device, for example. In some examples, input mechanism 508 is optionally a button.

[0143] In some examples, the input mechanism 508 is optionally a microphone. The personal electronic device 500 optionally includes various sensors, such as a GPS sensor 532, an accelerometer 534, an orientation sensor 540 (e.g., a compass), a gyroscope 536, a motion sensor 538, and / or combinations thereof, all of which may be operably connected to the I / O section 514.

[0144] The memory 518 of the personal electronic device 500 can include one or more non-transitory computer-readable storage media for storing computer-executable instructions that, when executed by one or more computer processors 516, can cause the computer processors to perform the techniques described below, including processes 800, 900, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, and 2700 (FIGS. 8A-8B, 9A-9B, 18A, 18B, 19, 20, 21, 22, 23, 24, 25, and 27, respectively). A computer-readable storage medium can be any medium that can tangibly contain or store computer-executable instructions for use by or in connection with an instruction execution system, apparatus, or device. In some examples, the storage medium is a transitory computer-readable storage medium. In some examples, the storage medium is a non-transitory computer-readable storage medium. Non-transitory computer-readable storage media may include, but are not limited to, magnetic, optical, and / or semiconductor storage devices. Examples of such storage devices include magnetic disks, CDs, DVDs, or optical disks based on Blu-ray® technology, as well as resident solid-state memory such as flash and solid-state drives. Personal electronic device 500 is not limited to the components and configuration of FIG. 5B and may include other or additional components in multiple configurations.

[0145] As used herein, the term "affordance" refers to a user-interactive graphical user interface object that is optionally displayed on the display screen of device 100, 300, and / or 500 (FIGS. 1A, 3, and 5A-5B). For example, images (e.g., icons), buttons, and text (e.g., hyperlinks) each optionally constitute an affordance.

[0146] As used herein, the term “focus selector” refers to an input element that indicates the current portion of the user interface with which the user is interacting. In some implementations involving a cursor or other location marker, the cursor acts as the “focus selector,” such that when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 of FIG. 3 or touch-sensitive surface 451 of FIG. 4B) while the cursor is positioned over a particular user interface element (e.g., a button, window, slider, or other user interface element), the particular user interface element is adjusted according to the detected input. In some implementations involving a touchscreen display (e.g., touch-sensitive display system 112 of FIG. 1A or touchscreen 112 of FIG. 4A) that enables direct interaction with user interface elements on the touchscreen display, a detected contact on the touchscreen acts as the “focus selector,” such that when input (e.g., a press input by contact) is detected at the location of a particular user interface element (e.g., a button, window, slider, or other user interface element) on the touchscreen display, the particular user interface element is adjusted according to the detected input. In some implementations, focus is moved from one region of the user interface to another region of the user interface without corresponding cursor movement or contact movement on the touchscreen display (e.g., by using the tab key or arrow keys to move focus from one button to another), and in these implementations, the focus selector moves to follow the movement of focus between various regions of the user interface. Regardless of the particular form the focus selector takes, the focus selector is generally a user interface element (or contact on a touchscreen display) that is controlled by the user to communicate the user's intended interaction with the user interface (e.g., by indicating to the device the element of the user interface with which the user intends to interact).For example, while a press input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen), the position of a focus selector (e.g., a cursor, touch, or selection box) over a corresponding button indicates that the user intends to activate that corresponding button (and not other user interface elements shown on the device's display).

[0147] As used herein and in the claims, the term "characteristic intensity" of a contact refers to a characteristic of that contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on a plurality of intensity samples. The characteristic intensity is optionally based on a predetermined number of intensity samples, i.e., a set of intensity samples collected during a predetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) associated with a predetermined event (e.g., after detecting the contact, before detecting lift-off of the contact, before or after detecting the start of contact movement, before detecting the end of the contact, before or after detecting an increase in the intensity of the contact, and / or before or after detecting a decrease in the intensity of the contact). The characteristic intensity of the contact is optionally based on one or more of the maximum intensity of the contact, the mean intensity of the contact, the average intensity of the contact, the top 10 percentile intensity of the contact, half the maximum intensity of the contact, 90 percent of the maximum intensity of the contact, etc. In some embodiments, the duration of the contact is used in determining the characteristic intensity (e.g., when the characteristic intensity is an average of the intensity of the contact over time). In some embodiments, the characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an operation is performed by the user. For example, the set of one or more intensity thresholds optionally includes a first intensity threshold and a second intensity threshold. In this example, a contact having a characteristic intensity that does not exceed the first threshold results in a first action, a contact having a characteristic intensity that exceeds the first intensity threshold but not the second intensity threshold results in a second action, and a contact having a characteristic intensity that exceeds the second threshold results in a third action. In some embodiments, the comparison between the characteristic intensity and the one or more thresholds is not used to determine whether to perform the first action or the second action, but rather to determine whether to perform one or more actions (e.g., whether to perform the respective action or to refrain from performing the respective action).

[0148] In some embodiments, a portion of the gesture is identified for purposes of identifying the characteristic intensity. For example, the touch-sensitive surface optionally receives successive swipe contacts that transition from a start location to an end location, at which point the intensity of the contacts increases. In this example, the characteristic intensity of the contacts at the end location is optionally based on only a portion of the successive swipe contacts (e.g., only the portion of the swipe contacts at the end location) rather than the entire swipe contact. In some embodiments, a smoothing algorithm is optionally applied to the intensity of the swipe contacts before determining the characteristic intensity of the contacts. For example, the smoothing algorithm optionally includes one or more of an unweighted moving average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. In some situations, these smoothing algorithms eliminate small increases or decreases in the intensity of the swipe contacts for purposes of identifying the characteristic intensity.

[0149] The intensity of a contact on the touch-sensitive surface is optionally characterized with respect to one or more intensity thresholds, such as a contact-detection intensity threshold, a light press intensity threshold, a deep press intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the light press intensity threshold corresponds to an intensity at which the device performs an action typically associated with clicking a physical mouse button or trackpad. In some embodiments, the deep press intensity threshold corresponds to an intensity at which the device performs an action different from an action typically associated with clicking a physical mouse button or trackpad. In some embodiments, when a contact is detected having a characteristic intensity below the light press intensity threshold (e.g., above a nominal contact-detection intensity threshold below which the contact is not detected), the device moves the focus selector according to the movement of the contact on the touch-sensitive surface without performing an action associated with the light press intensity threshold or the deep press intensity threshold. In general, unless otherwise specified, these intensity thresholds are consistent across the various sets of user interface diagrams.

[0150] An increase in the characteristic intensity of a contact from an intensity below the light press intensity threshold to an intensity between the light press intensity threshold and the deep press intensity threshold may be referred to as inputting a "light press." An increase in the characteristic intensity of a contact from an intensity below the deep press intensity threshold to an intensity above the deep press intensity threshold may be referred to as inputting a "deep press." An increase in the characteristic intensity of a contact from an intensity below the contact-detection intensity threshold to an intensity between the contact-detection intensity threshold and the light press intensity threshold may be referred to as detecting a contact on the touch surface. A decrease in the characteristic intensity of a contact from an intensity above the contact-detection intensity threshold to an intensity below the contact-detection intensity threshold may be referred to as detecting a lift-off of the contact from the touch surface. In some embodiments, the contact-detection intensity threshold is zero. In some embodiments, the contact-detection intensity threshold is greater than zero.

[0151] In some embodiments described herein, one or more actions are performed in response to detecting a gesture including a respective press input or in response to detecting a respective press input performed by a respective contact (or multiple contacts), where the respective press inputs are detected based at least in part on detecting an increase in intensity of the contact (or multiple contacts) above a press input intensity threshold. In some embodiments, the respective actions are performed in response to detecting an increase in intensity of the respective contact above the press input intensity threshold (e.g., a “downstroke” of the respective press input). In some embodiments, the press input includes an increase in intensity of the respective contact above the press input intensity threshold followed by a decrease in intensity of the contact below the press input intensity threshold, and the respective actions are performed in response to detecting a subsequent decrease in intensity of the respective contact below the press input threshold (e.g., an “upstroke” of the respective press input).

[0152] In some embodiments, the device employs intensity hysteresis to avoid accidental input, sometimes referred to as “jitter,” and the device defines or selects a hysteresis intensity threshold that has a predetermined relationship to the press input intensity threshold (e.g., the hysteresis intensity threshold is X intensity units below the press input intensity threshold, or the hysteresis intensity threshold is 75%, 90%, or some reasonable percentage of the press input intensity threshold). Thus, in some embodiments, the press input includes an increase in the intensity of each contact above the press input intensity threshold followed by a decrease in the intensity of the contact below the hysteresis intensity threshold corresponding to the press input intensity threshold, and a respective action is performed in response to detecting a subsequent decrease in the intensity of each contact below the hysteresis intensity threshold (e.g., an “upstroke” of each press input). Similarly, in some embodiments, a press input is detected only when the device detects an increase in the intensity of the contact from an intensity below the hysteresis intensity threshold to an intensity above the press input intensity threshold, and optionally a subsequent decrease in the intensity of the contact to an intensity below the hysteresis intensity, and a respective action is performed in response to detecting the press input (e.g., an increase in the intensity of the contact or a decrease in the intensity of the contact, as the case may be).

[0153] For ease of explanation, descriptions of operations performed in response to a press input associated with a press input intensity threshold, or a gesture including a press input, are optionally triggered in response to detecting any of: an increase in the intensity of the contact above the press input intensity threshold; an increase in the intensity of the contact from an intensity below a hysteresis intensity threshold to an intensity above the press input intensity threshold; a decrease in the intensity of the contact below the press input intensity threshold; and / or a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the press input intensity threshold. Further, in examples where an operation is described as being performed in response to detecting a decrease in the intensity of the contact below a press input intensity threshold, the operation is optionally performed in response to detecting a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to and lower than the press input intensity threshold.

[0154] Attention is now directed to embodiments of user interfaces (“UIs”) and related processes implemented on an electronic device such as portable multifunction device 100, device 300, or device 500.

[0155] Figures 6A-6MM show exemplary user interfaces for generating and sending a virtual avatar, according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the processes in Figures 8A-8B and 9A-9B. Figures 7A-7J show exemplary user interfaces for receiving and playing a virtual avatar, according to some embodiments. Figures 6A-6MM and 7A-7J use a virtual avatar as an example of a virtual avatar.

[0156] FIG. 6A illustrates device 600 having a display 601, which in some cases is a touch-sensitive display, and a camera 602 including at least an image sensor capable of capturing data representing at least a portion of the spectrum (e.g., visible light, infrared, or ultraviolet). In some embodiments, camera 602 includes multiple image sensors and / or other types of sensors. In some embodiments, in addition to capturing data representing sensed light, camera 602 can capture other types of data, such as depth data. For example, in some embodiments, camera 602 also uses speckle, time-of-flight, parallax, or focus-based techniques to capture depth data. Image data captured by device 600 using camera 602 includes data corresponding to a portion of the light spectrum for a scene within the camera's field of view. In some embodiments, the captured image data also includes depth data related to the light data. In some other embodiments, the captured image data includes sufficient data to determine or generate depth data related to data for the portion of the light spectrum. In some embodiments, device 600 includes one or more features of device 100, device 300, or device 500.

[0157] In some examples, electronic device 600 includes a depth camera, such as an infrared camera, a thermographic camera, or a combination thereof. In some examples, the device further includes a light emitting device (e.g., a light projector), such as an IR flood light, a structured light projector, or a combination thereof. The light emitting device is optionally used to illuminate the object during image capture by the visible light camera and the depth camera (e.g., the IR camera), and information from the depth camera and the visible light camera is used to determine a depth map of different portions of the object captured by the visible light camera. In some embodiments, the depth map (e.g., a depth map image) includes information (e.g., values) related to the distance of objects in the scene from a viewpoint (e.g., a camera). In one embodiment of a depth map, each depth pixel defines a position on the Z axis of the viewpoint where its corresponding two-dimensional pixel is located. In some examples, the depth map consists of pixels, each pixel defined by a value (e.g., 0 to 255). For example, a value of "0" represents a pixel located farthest in a "three-dimensional" scene, while a value of "255" represents a pixel located closest to the viewpoint (e.g., camera) in the "three-dimensional" scene. In other examples, the depth map represents the distance between objects in a scene and the plane of the viewpoint. In some embodiments, the depth map includes information about the relative depths of various features of an object of interest as seen by a depth camera (e.g., the relative depths of the eyes, nose, mouth, and ears on a user's face). In some embodiments, the depth map includes information that enables a device to determine the contours of an object of interest in the z-direction. In some embodiments, the lighting effects described herein are displayed using disparity information from two cameras (e.g., two visible light cameras) for rear-facing images and depth information from a depth camera combined with image data from a visible light camera for front-facing images (e.g., selfie images).In some embodiments, the same user interface is used when determining depth information using two visible-light cameras and when determining depth information using a depth camera, providing a consistent experience to the user even when using dramatically different techniques to determine the information used in generating lighting effects. In some embodiments, while displaying a camera user interface with one of the lighting effects applied, the device detects selection of a camera switch affordance and switches from a front-facing camera (e.g., a depth camera and a visible-light camera) to a rear-facing camera (e.g., two visible-light cameras spaced apart from each other) (or vice versa), and replaces the display from the front-facing camera's field of view to the rear-facing camera's field of view (or vice versa) while maintaining the display of user interface controls for applying lighting effects.

[0158] 6A, device 600 displays a home screen interface with multiple icons for various applications, including an icon for a messaging application 603. In response to a gesture (e.g., a tap gesture 604) on icon 603, device 600 displays a user interface in FIG.

[0159] In FIG. 6B, device 600 displays messaging interface 608. Elements 605-1 through 605-6 correspond to previous messaging communications. Each element 605-1 through 605-6 represents one communication with one or more remote users associated with the electronic device. In response to a gesture on a particular element (e.g., tap gesture 606), device 600 updates messaging interface 608 to display a portion of the previous messaging communication with the remote user or users that are part of the communication, as shown in FIG. 6C.

[0160] 6C , device 600 displays a messaging interface 608 for messaging communication with a remote user called “John” (and having the initials or monogram “JA”). Messaging interface 608 includes a message area 609 that includes four previously exchanged messages 610-1 through 610-3 (message 610-3 was sent from the user of device 600 to “John,” and the other two messages were received by device 600 from “John”). Messaging interface 608 also includes a message composition area 612 and message options icons, including icon 614 to the left of message composition area 612 (e.g., to access an interface for selecting stickers and / or other multimedia elements for the message). In some embodiments, the message options icons enable sending various types of messages, including photos, emojis, stickers, and other forms of non-text messages, such as those described below.

[0161] In response to device 600 detecting selection of message composition area 612 (e.g., via tap gesture 616 in FIG. 6C), messaging interface 608 is updated as shown in FIG. 6D. For example, in FIG. 6D, message options icons are hidden (but can be displayed again by selecting button 618), suggested message replies 620 are displayed, and a virtual keyboard 622 is displayed. In some cases, virtual keyboard 622 is used to enter and send a new message to the remote user.

[0162] In FIG. 6E, message composition area 612 includes the text "I'm running late," entered via virtual keyboard 622 or other methods, such as voice input. In response to selection of send button 621, device 600 transmits the text as part of the message to one or more participants associated with the communication of message 609. In the case of FIG. 6E, device 600 transmits the message to a user called "John." In FIG. 6F, device 600 has updated message area 609 to reflect the sending of the message by updating message area 612 to include message 610-4.

[0163] In some cases, the message options icon is accessed to add or create a new message (e.g., by adding non-textual content to the message). For example, in response to device 600 detecting selection of affordance 618 (e.g., via tap gesture 624 in FIG. 6F ), the message options icon, including icon 614, is redisplayed, as shown in FIG. 6G . In response to selection of icon 614 (e.g., via a gesture such as tap gesture 626 in FIG. 6H ), device 600 updates messaging interface 608 by replacing virtual keyboard 622 with multimedia item interface 628, as shown in FIG. 6I , which now displays recent items menu 629 (sometimes known as a recent items “tray”) that includes previously sent multimedia items (e.g., stickers 630-1 through 630-4 in FIG. 6I , but which can also include other types of multimedia items, such as audio, animation, or video). Using this interface, a user can select and resend previously sent multimedia items. For example, a user may select one of the stickers in the recent items menu 629 of FIG. 6I via a tap gesture on the selected sticker. In response to such a selection, device 600 places the sticker in message composition area 612 or sends the selected sticker to one or more remote users involved in the communication represented in message area 609. In some embodiments, tap and drag gestures are used to place the selected sticker (or other multimedia item) in message composition area 612 or message area 609 (and in some cases, a particular message). For example, a particular sticker is selected via a tap gesture. Without releasing contact with touch-sensitive display 601, the sticker is dragged to either message composition area 612 or message area 609 via a drag gesture.Once the desired location for the sticker is reached, contact with the touch-sensitive display 601 is discontinued and the sticker is placed at the last location of contact. If the last location of contact was in the message area 609, the sticker is sent to one or more remote users associated with the communication represented in the message area 609. Optionally, the sticker is sent to the remote user along with data associating the sticker with a particular message (e.g., the sticker is sent along with data indicating the particular location of the particular message in which the sticker is "stuck"). These techniques are not specific to selecting and sending stickers; they may also be applied to other types of multimedia items selectable from the recent items menu 629 or elsewhere.

[0164] 6I, the multimedia item interface 628 also includes a menu selection button 632 (which allows menus or interfaces other than the recent items menu 629 to be selected via the display of buttons corresponding to available menus or other selectable items) and a full screen button 634 (which allows the multimedia item interface 628 to expand to more of the display (or the entire display)). The full screen button 634 is described further below.

[0165] In addition to using menu selection button 632 to switch menus or interfaces, gestures can also optionally be used to switch menus. For example, in response to a swipe gesture (e.g., a swipe represented by movement of contact 636 across multimedia item interface 628, as shown in FIGS. 6J and 6K), the device updates multimedia item interface 628 to replace the display of recent items menu 629 with virtual avatar menu 638. While recent items menu 629 is replaced with virtual avatar menu 638, scroll indicator 639 provides feedback as to the number of other menus available in multimedia item interface 628.

[0166] In Figure 6L, virtual avatar menu 638 completely replaces the display of recent items menu 629. In response to device 600 detecting selection of continuation affordance 640 (e.g., via a gesture such as tap gesture 642 in Figure 6M), virtual avatar interface 643 is displayed, as shown in Figure 6N. This interface allows the user to generate a new virtual avatar that reflects the user's facial movements and expressions, as described further below. In some embodiments, virtual avatar menu 638 is not displayed at all. Instead, virtual avatar interface 643 is displayed without first displaying virtual avatar menu 638.

[0167] Virtual avatar interface 643 of FIG. 6N includes avatar template representations 644-1 through 644-7 corresponding to different avatar frameworks (e.g., avatar characters with different appearances and behaviors). Each avatar template represents an avatar framework onto which detected facial movements and expressions can be mapped. Indicator 645 corresponds to the currently selected avatar template. Virtual avatar preview 646 is a “live” preview of the virtual avatar in that it updates to reflect the user's current facial movements and expressions. For example, in some embodiments, using camera 602, device 600 continuously captures image data from camera 602. The captured image data includes visible light data and depth data. Device 600 analyzes the captured image data to identify facial movements (e.g., muscle movements, head orientation, gaze direction, etc.) and / or facial expressions (e.g., smile, frown, angry expression, sad expression, confused expression, etc.). Device 600 then updates avatar preview 646 to reflect the detected characteristics of the user according to the parameters of the avatar framework currently associated with virtual avatar preview 646. In some embodiments, device 600 automatically and continuously begins updating virtual avatar preview 646 upon first executing or displaying virtual avatar interface 643. Detecting a selection of a different avatar template representation causes device 600 to update virtual avatar preview 646 based on the newly selected avatar template.

[0168] FIG. 6O shows several examples of a user's face in captured image data 650-1 through 650-5 and corresponding updates 651-1 through 651-5 to the virtual avatar preview. These are examples of device 600 updating emoji preview 646 to reflect the user's facial movements, expressions, and pose. In captured image data 650-1, device 600 detects (e.g., based on facial features, muscles, movements, and / or expressions) that the user is looking straight, smiling, and / or happy. In response, device 600 updates the virtual avatar preview to reflect the user's smiling and / or happy expression, in addition to updating the virtual avatar preview's eyes to look straight, as shown in update 651-1. While the detected physical features of the user in the captured image data may be the same physical features of the virtual avatar that the virtual avatar is updated to reflect the user, in other cases, the detected change in the user's physical features results in an update of a different type of physical feature of the virtual avatar. For example, in FIG. 6O , as shown by images 650-2 and 651-2, monkeys do not have eyebrows, so changes in the user's eyebrows are mapped to the monkey's ears (or other features). In this example, the user's mouth and eyes are mapped to the monkey's mouth and eyes. In example image data 650-3 and update 651-3, the user's unhappy expression and / or frown are reflected in the corresponding features of the virtual avatar preview. In some embodiments, when the user holds a facial expression or facial pose, as shown by images 650-3 and 650-4, the virtual avatar preview is updated with additional features, such as tears in the case of update 651-4. This type of predetermined update can also occur in response to a detected lack of movement. In some embodiments, the update is also based on user movement detected in the image data. For example, device 600 detects a rotation of the user's head, resulting in an update that similarly rotates the virtual avatar preview. In some embodiments, the update is also based on a physical model of the virtual avatar features. For example, in image data 650-5, device 600 detects that the user's head is shaking.In response, device 600 generates update 651-5 to reflect the head shaking. Additionally, in update 651-5, the puppy's ears also stick out as a result of the physics model applied to the puppy's ears.

[0169] In FIG. 6P, device 600 detects the selection of record button 652 via a gesture (e.g., a tap gesture represented by contact 653). In response, virtual avatar interface 643 updates to indicate that an animated virtual avatar is being generated, as shown in FIG. 6Q. For example, record button 652 is replaced with stop button 654, avatar template representations 644-1 through 644-7 are no longer displayed, and recording progress indicator 656 is displayed, indicating the time that animated emojis have been recorded and the relative amount of time the virtual avatar may still be recorded. Recording can be stopped in any number of ways, such as the expiration of a predetermined amount of time (e.g., 15 seconds) or selection of stop button 654. In some embodiments, during recording, device 600 detects and / or stores a series of data points used to create the animated virtual avatar. For example, in some embodiments, device 600 records a time series of facial movements and / or facial expressions (e.g., as values ​​in a range of possible values, each value in the range of possible values ​​corresponding to a predetermined movement or expression) that are then mapped onto an avatar template to create an animated virtual avatar. Alternatively, device 600 records an animated virtual avatar by creating a video recording of a virtual avatar preview as device 600 updates the virtual avatar preview to reflect the user's facial movements and / or expressions. In some embodiments, device 600 also records sound captured by a microphone of device 600 so that the recorded animated virtual avatar includes sound that can be played along with the recorded animation of the virtual avatar.

[0170] 6R shows a later point in time during the recording of the animated virtual avatar. The virtual avatar preview 646 has been updated to reflect newly detected facial movements and / or expressions from the user. The indicator 656 has also been updated to reflect further progress in recording the animated virtual avatar.

[0171] FIG. 6RA illustrates that during avatar recording, device 600 detects that a user has changed their position relative to the device. Specifically, at the time corresponding to FIG. 6RA, the user's face is no longer within the camera's field of view. In response, device 600 displays a virtual avatar at the edge of avatar interface 643 (e.g., the edge corresponding to the last detected position of the user's face), displays framing corners 653 around the virtual avatar, and displays message 655A (“Bring Face into View”) to prompt the user to adjust their position relative to the device. In some embodiments, the virtual avatar remains stationary (or assumes a predetermined pose (e.g., a neutral pose)) when the user's face is not detected, but recording of the virtual avatar continues even after the user's face is no longer detected within the camera's field of view.

[0172] FIG. 6RB shows device 600 after a user remains outside the camera's field of view for longer than a predetermined threshold time. In response to detecting that the user has remained outside the camera's field of view for longer than the predetermined time, device 600 pauses recording of the virtual avatar. As shown in FIG. 6RB, device 600 replaces stop button 654 with record button 648 in response to pausing recording. Device 600 also displays message 655B ("Tap to resume") indicating to the user that recording has been paused. In some embodiments, such as that shown in FIG. 6RC, the user can resume recording by tapping anywhere on avatar interface 643 (e.g., tap gesture 657), including tapping record button 648 to resume recording as shown in FIG. 6RD. Pausing virtual avatar recording when a user remains outside the camera's field of view for longer than a predetermined threshold time and requiring other input to resume recording reduces energy usage and depth camera usage, which extends battery life and extends depth camera life for devices that operate on battery power.

[0173] 6S shows a later point in time during the recording of the animated virtual avatar. The virtual avatar preview 646 has been further updated to reflect newly detected facial movements and / or expressions from the user. The indicator 656 has also been updated to reflect further progress in recording the animated virtual avatar.

[0174] In Figure 6S, a gesture (e.g., a tap gesture represented by contact 658) is received requesting that recording of the animated virtual avatar be stopped. In response, device 600 stops recording of the animated virtual avatar and updates the virtual avatar interface as shown in Figure 6T. In other cases, device 600 stops recording of the animated virtual avatar and updates the virtual avatar interface as shown in Figure 6T in response to the expiration of a predetermined period of time (e.g., 15 seconds).

[0175] 6SA-6SC illustrate another embodiment of virtual avatar interface 643 during recording (e.g., generating) a virtual avatar. As shown in FIG. 6SA, device 600 displays timer 659 (e.g., showing 10 seconds remaining) indicating the time remaining in the current avatar recording session (e.g., a session initiated by activating record button 648). In FIG. 6SB, the same recording session has progressed for 4 seconds, and timer 659 now displays 6 seconds remaining in the avatar recording session. In FIG. 6SC, the recording session has ended (i.e., FIG. 6SC is 10 seconds later than FIG. 6SA). In response to the end of the recording session, device 600 replaces timer 659 with a trash can affordance 660-1 that can be activated (e.g., by a tap gesture) to discard the completed recording session. In some embodiments, trash can affordance 660-1 can function similarly to discard affordance 660 of FIGS. 6T and 6U-6UA.

[0176] In FIG. 6T , instead of displaying a virtual avatar preview, virtual avatar interface 643 now plays back a recorded animated virtual avatar 659, as shown by three snapshots of the playback of animated virtual avatar 659. In some embodiments, the recorded animated virtual avatar is played in a loop (e.g., played at least twice without user input, as shown by the arrows in FIG. 6T ). Virtual avatar interface 643 also includes a discard button 660, a mute button 662, and a confirm button 664 (displayed in place of record button 652). Discard button 660 discards the displayed recorded animated virtual avatar without saving and sending it to the remote user. Mute button 662 allows the user to mute playback of audio from the recorded animated virtual avatar. The confirm button 664 allows the recorded animated virtual avatar to be sent to a remote user (e.g., directly to one or more users associated with a communication displayed in the message area 609 or moved to the message composition area 612 in response to activation of the confirm button 664 before the user sends the message). After the device 600 detects selection of the confirm button 664, the virtual avatar interface 643 is updated and returns to the state described with respect to FIG. 6N. In some embodiments, the confirm button 664 includes a glyph or icon similar to or the same as the send glyph or icon (e.g., 670 of FIG. 6V) displayed on the send button for sending a message in the message composition area to indicate that selecting the confirm button 664 allows the recorded animated virtual avatar to be sent to a remote user.

[0177] During playback of animated virtual avatar 659, in response to a tap gesture 665 on a representation of an avatar template different from the currently selected template, the animated virtual avatar is updated to reflect the new avatar template without the need to re-record the animated virtual avatar. This is shown in FIG. 6U, which shows animated virtual avatar 659 replaced by animated virtual avatar 666. The recorded facial muscles, movements, features, and expressions used to generate animated virtual avatar 659 of FIG. 6T are re-applied to the newly selected avatar template in FIG. 6U.

[0178] In FIG. 6UA, while animated avatar 666 is playing, device 600 detects tap gesture 661 corresponding to selection of discard affordance 660. In response, device 600 discards the captured animated avatar data (e.g., cancels adding the animated avatar to message composition area 612) and transitions to the interface of FIG. 6UB. In FIG. 6UB, device 600 displays pre-recorded avatar interface 643 similar to that seen in FIG. 6P (e.g., including a record button). In contrast to FIG. 6P, the avatar template remains that of a robot (e.g., virtual avatar 666) rather than reverting to monkey virtual avatar 659. That is, detection of the change from avatar 659 to avatar 666 during playback shown in FIGS. 6T and 6U is preserved.

[0179] Returning to FIG. 6T , in response to the gesture (e.g., a tap gesture represented by contact 667), device 600 adds the recorded animated virtual avatar 668 to message composition area 612 (see FIG. 6V ) and returns virtual avatar interface 643 to the state described in FIG. 6N (see FIG. 6V ). The user can then add message content (e.g., text or other multimedia items) to the message (e.g., in response to a tap gesture represented by contact 672 on send affordance 670, as shown in FIG. 6W ) before device 600 sends the message (see FIG. 6V ). Alternatively, when device 600 detects selection of confirm button 664, device 600 sends the recorded animated virtual avatar to one or more remote users associated with the communication displayed in message area 609, which is then updated to reflect that animated virtual avatar 668 has been sent to one or more users associated with the communication included in message area 609, as shown in FIG. 6X .

[0180] FIGS. 6Y-6BB illustrate virtual avatar interface 643's response to user input scrolling through a list of avatar templates. For example, in response to a swipe gesture (e.g., as depicted in FIGS. 6Y-6AA by the movement of contact 676 vertically across the avatar template), device 600 scrolls through the avatar templates and changes the currently selected avatar template. The avatar template present in avatar template indicator 645 is updated based on the swipe gesture. In response to detecting a new selected avatar template, device 600 updates the virtual avatar preview. For example, in FIG. 6Z, when device 600 detects selection of avatar template representation 644-5, virtual avatar preview 678 (based on the avatar template corresponding to representation 644-5) is displayed, and in FIG. 6AA, when avatar template representation 644-8 is selected, virtual avatar preview 680 (based on the avatar template corresponding to representation 644-8) is displayed.

[0181] In addition to generating animated puppet emoji recordings, emoji interface 643 also enables generating static virtual avatars (e.g., stickers with expressions / appearances determined based on the state of the virtual avatar). For example, in FIG. 6CC, in response to user input on virtual avatar preview 680 (e.g., a tap-and-hold gesture represented by contact 682), device 600 generates a sticker corresponding to the state of virtual avatar preview 680 at the time associated with the user input (e.g., when the input was received, ended, or some other time associated with the user input). In embodiments, device 600 displays sticker 683 (FIGS. 6DD and 6EE) peeled from virtual avatar preview 680 to indicate that the sticker has been generated and / or that the user can place the sticker.

[0182] After device 600 generates the sticker, the user optionally selects from several actions for the sticker. For example, the user can have device 600 place the sticker in a recent menu or other similar interface that allows for later use. The user can also have device 600 place the sticker in message composition area 612 before device 600 sends a message that includes the sticker, and the user can place a sticker in message area 609 (and optionally) for a particular message to have device 600 send the sticker to one or more users participating in a communication in message area 609.

[0183] For example, in Figure 6FF, device 600 detects liftoff of contact 682 while the contact is still on virtual avatar preview 680. In response, device 600 saves the generated sticker to device 600, such as to a database or library in memory of device 600 accessible through recent items menu 629 (Figure 6I), so that the sticker is optionally selectable via recent items menu 629 or other interface of device 600. Device 600 optionally indicates that the sticker has been saved locally via an animation with different graphical versions 684 and 686 moving toward menu selection button 632, as shown in Figures 6FF-6GG.

[0184] As another example, FIGS. 6HH-6KK show an example of device 600 sending generated stickers to one or more users participating in the communication represented in message area 609. In FIG. 6II, device 600 detects user input on virtual avatar preview 680 (e.g., a tap-and-drag gesture represented by contact 688 in FIGS. 6HH-6JJ beginning with virtual avatar preview 680). When device 600 detects the user dragging the sticker representation into message area 609, sticker representation 690 follows contact 688. When device 600 detects liftoff of contact 688 in message area 609, device 600 sends sticker 691 to one or more remote users who are participants in the communication represented in message area 609, as shown in FIG. 6KK.

[0185] In Figure 6LL, device 600 updates virtual avatar interface 643 to display more of the screen (or full screen mode) in response to selection of full screen button 634 (e.g., via a tap gesture represented by contact 692 in Figure 6LL). Figure 6MM shows virtual avatar interface 643 after it has been expanded to use more of display 601. Button 692, when selected, causes device 600 to return virtual avatar interface 643 to its previous configuration.

[0186] 7A-7J illustrate messaging interface 608 after receiving an animated emoji from a remote user. While Figures 7A-7J use device 600 of Figures 6A-6MM as an example, the user interface and functionality illustrated in Figures 7A-7J also apply to other devices (e.g., devices 100, 300, or 500), including devices that have not previously sent stickers or animated virtual avatars.

[0187] FIG. 7A shows message interface 608 after receiving animated virtual avatar 700 from a remote user named "John" (and with the initials or monogram "JA"), immediately prior to playing the animated virtual avatar. In some embodiments, device 600 automatically plays animated virtual avatar 700 after receiving it. Mute button 702, when selected, causes device 600 to mute any sound associated with animated virtual avatar 700. In some embodiments, the sound is also muted when the animated virtual avatar scrolls off the display. In some embodiments, virtual avatar interface 643 is displayed as described with respect to FIGS. 6A-6MM (e.g., virtual avatar interface 643 includes a preview virtual avatar based on detected facial movements / expressions and a selected avatar template).

[0188] In Figure 7B, a still frame 703 of the animated virtual avatar 700 is displayed in place of the animated virtual avatar 700 as the animated virtual avatar 700 plays once (e.g., plays once from start to finish). A replay button 704 is also displayed in the message area 609, allowing the animated virtual avatar 700 to be played again, for example, by a tap feature represented by contact 706 in Figure 7C. Figure 7D shows the device 600 playing the animated virtual avatar 700 again (playing an animated emoji is described with respect to Figure 7A).

[0189] In some embodiments, when device 600 receives user input on mute button 702 (e.g., a tap gesture represented by contact 708 in FIG. 7E ) while animated virtual avatar 700 is playing, device 600 stops playing the sound associated with animated virtual avatar 700 (e.g., animated virtual avatar 700 still moves without sound) while continuing to play animated virtual avatar 700. In some embodiments, in response to selection of mute button 702 (or if sound is turned off or accessibility features are enabled on device 600), a duplicate button 714 is displayed, as shown in FIG. 7H . In response to selection of duplicate button 714 (e.g., via a tap gesture represented by contact 716 in FIG. 7G ), a duplicate 718 of the sound of animated virtual avatar 700 is displayed, as shown in FIG. 7H . The content of duplicate 718 is generated locally to device 600 or remotely (e.g., using a remote server computing resource).

[0190] In response to a user input on the animated virtual avatar 700 (e.g., a tap-and-hold gesture represented by contact 720 in FIG. 7I ), device 600 displays a menu of options related to the animated virtual avatar 700, as shown in FIG. 7J . For example, menu 722 includes several reply buttons 723-1 through 723-6 that device 600 can send to one or more remote users participating in the communication represented in message area 609. Also displayed is menu 724 having copy button 726, save button 728, and other buttons 730. Copy button 726 copies the animated virtual avatar 700 to the clipboard of device 600. Save button 728 saves the animated virtual avatar 700 on device 600 (e.g., in a database or library where it can later be accessed by an application installed on device 600). Other buttons 730 display additional operations that can be performed with respect to the animated virtual avatar 700.

[0191] 8A-8B are flow diagrams illustrating a method for using an electronic device 800, according to some embodiments. Method 800 is performed on a device (e.g., 100, 300, 500, 600) that has a display and a camera. Some operations of method 800 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0192] As described below, method 800 provides an intuitive way to create and send emojis, such as virtual avatars. The method reduces the cognitive burden on a user when creating and sending emojis, thereby creating a more efficient human-machine interface. For battery-operated computing devices, allowing users to create and send emojis faster and more efficiently conserves power and extends the time between battery charges.

[0193] An electronic device (e.g., 600) having a camera (e.g., 602) (e.g., configured with one or more sensors for capturing data representing visible light, IR light, depth data, etc.) and a display (e.g., 601) displays a virtual avatar generation interface (e.g., 643 of FIG. 6N) (e.g., for selecting an emoji (animated or static), generating static stickers, and / or recording an animated virtual avatar) (802). The electronic device displays a preview of a virtual avatar (e.g., 646 of FIG. 6N) (e.g., a 2D or 3D computer-generated graphical object intended to convey, in some cases, a non-verbal message such as an emotion or reaction) in the virtual avatar generation interface (e.g., an animated virtual avatar selected from a plurality of different available virtual avatar templates) (804). The virtual avatar preview responds to changes in the appearance of a face within the camera's field of view (e.g., FIG. 6O) (e.g., the animated virtual avatar reflects the user's head movements, facial expressions, and orientation detected in image data from the camera's one or more image sensors). While displaying the virtual avatar preview, the electronic device detects (806) an input (e.g., contact 652, 682, or 690) at the virtual avatar generation interface. In response to detecting (808) the input at the virtual avatar generation interface and determining that input begins at the virtual avatar preview (e.g., 682 or 690) (e.g., a touch-and-hold input on an animated virtual avatar or a trackpad input controlling a cursor), the electronic device generates (810) a static virtual avatar sticker (e.g., 683 or 691) (e.g., a still image of an animated emoji that can be "sticked" to a specific location in a message area) representing the facial expression within the camera's field of view at the respective time. In some embodiments, the respective time is determined based on the timing of the input (e.g., when the input is first received, when the input ends, when a gesture corresponding to the input begins moving across the touch-sensitive surface, or any other time associated with the input).In accordance with determining that the input includes activating a record affordance (e.g., 648) in the virtual avatar generation interface (e.g., tapping the record affordance), the electronic device generates (812) an animated virtual avatar (e.g., 668) representing a sequence of facial expression changes within the camera's field of view over a predetermined period of time (e.g., as shown in FIGS. 6Q-6S). In some embodiments, the period is determined based on the timing of the input (e.g., the period begins when the start of the input is detected, when the end of the input is detected, when some type of movement of the input is detected, such as if the input is a gesture on a touch-sensitive surface, or some other period based on the input). In some embodiments, the virtual avatar is three-dimensional. In some embodiments, a preview of the virtual avatar (e.g., 646) or the animated virtual avatar (e.g., 659) is displayed in 3D. Distinguishing user input between two possible communication styles (e.g., animated virtual avatar and static virtual avatar) avoids the need for separate interfaces for generating each type of message content. Reducing the number of inputs required to communicate a desired message improves device usability, makes the user-device interface more efficient (e.g., by helping the user achieve their intended communication by enabling multiple types of multimedia communication from a single interface), and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0194] In some embodiments, the electronic device displays (814) a messaging interface (e.g., interface 608) (e.g., a messaging application such as Apple Messages) that includes a message area (e.g., 609). The message area includes messages (e.g., 610-1 through 610-4) (e.g., messages sent from a user of the electronic device and messages received from a remote user of a different electronic device) from two or more participants (e.g., remote user "John" and the user of device 600, FIG. 6C) in a communication (e.g., the communication in message area 609, FIG. 6N) (e.g., a messaging thread). A virtual avatar generation interface is displayed simultaneously with the messaging interface (e.g., FIG. 6N) (e.g., the virtual avatar generation interface is displayed in the bottom half of the messaging interface). In some embodiments, a preview of the virtual avatar (e.g., 646) is automatically displayed as part of the initial display of the virtual avatar generation interface.

[0195] In some embodiments, the messaging interface includes a message composition area (e.g., 612) (e.g., a message entry area for entering text, emojis, and other content before sending the message to a recipient), and the input is a tap on a virtual avatar preview (e.g., 646). The electronic device displays a static virtual avatar (e.g., 683 or 691) in the message composition area in response to detecting an input in the virtual avatar generation interface. In some embodiments, displaying the virtual avatar generation interface includes replacing the display of the messaging interface's virtual keyboard (e.g., 622) with a display of the virtual avatar generation interface (e.g., transition from FIG. 6H to FIG. 6N, no intervening view). Displaying the multimedia content of the message before sending the message reduces the likelihood of error messages and allows the user to add more content (e.g., via text or other content) before sending the message. Reducing the number of messages required to communicate a desired message improves device usability, provides a more efficient user-device interface (e.g., by helping a user achieve intended communication while reducing the number of messages required to communicate), and allows a user to use the device more quickly and effectively, thereby reducing power usage and improving device battery life.

[0196] In some embodiments, the avatar generation interface includes a static virtual avatar area (e.g., 629) (e.g., a tray of previously generated stickers displayed in a bottom portion of the avatar generation interface) that includes a collection of one or more previously generated virtual avatars (e.g., 630-1 through 630-4). In response to user input (e.g., 682 of FIG. 6CC), the electronic device adds (612) the generated virtual avatar to the collection of one or more previously generated virtual avatars (e.g., submitting the avatar for inclusion in the collection of virtual avatars, marking the virtual avatar as a favorite, or otherwise marking the virtual avatar). In some embodiments, the collection of virtual avatars (e.g., stickers) is displayed in response to user input (e.g., 626) (e.g., including miniature versions of newly generated stickers in a tray) (e.g., selecting a virtual avatar collection affordance in the avatar generation user interface or messaging user interface). In some embodiments, the tray of previously generated stickers is hidden until it receives input from the user requesting the tray be displayed (e.g., input 626) or until some other event detected at the electronic device indicates that the tray is likely relevant to the current state of the message interface or avatar generation interface. In some embodiments, after adding a virtual avatar to the collection of virtual avatars, the electronic device receives a request from the user to share the collection of virtual avatars with a second user, and in response, the electronic device sends the collection of virtual avatars to the second user. Maintaining the multimedia content of previously sent messages allows users to add and reuse previous content when available for new messages. Eliminating the need to recreate content improves device usability, makes the user-device interface more efficient (e.g., by eliminating repeated generation of content), and reduces power usage and improves device battery life by allowing users to use the device more quickly and effectively.

[0197] In some embodiments, the input begins (816) at a preview of the virtual avatar (e.g., 680) and ends at a location within the message area (see, e.g., FIGS. 6HH-6KK) (e.g., a gesture beginning with a finger touching the virtual avatar preview (e.g., 680), continuing to drag the finger across the message area, and ending with the finger being released in the message area (in some cases, the gesture may end at a particular message within the message area, and a sticker is associated with that particular message, optionally moving as the message moves within the conversation)). The electronic device sends (818) a static virtual avatar (e.g., 691) to participants (e.g., one or more remote users) associated with the communication (e.g., FIG. 6KK). In some embodiments, an animation is displayed in response to the gesture showing the static virtual avatar being peeled away from the virtual avatar preview (FIGS. 6CC-6FF).

[0198] In some embodiments, the static virtual avatar (e.g., 691) has an appearance determined based on the facial expression in the camera's field of view at the time an input (e.g., 688) is detected in the virtual avatar preview (e.g., 680). In some embodiments, the electronic device stops the virtual avatar preview (820) in response to detecting the start of an input in the virtual avatar preview and reacts to the change in facial appearance in the camera's field of view. This indicates to the user that a sticker has been generated and gives the user a preview of what the sticker will look like if it were dragged onto a communication displayed in message area 609 by sending it to the user. This enhances device usability and constitutes an improved and more efficient man-machine interface by displaying a preview of the sticker that will be generated without the user having to perform additional interactions or complete a full sticker generation gesture before seeing the resulting sticker. This reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and effectively.

[0199] In some embodiments, the virtual avatar preview (e.g., 680) resumes responding to changes after the input moves away from the virtual avatar (e.g., animation resumes when a static avatar is dragged toward a message conversation). In some embodiments, the virtual avatar preview (e.g., 680) ceases responding to changes in facial appearance until the input dragging the static avatar ends. Resuming updates of the virtual avatar preview allows the user to compare the appearance of the generated sticker with other possible appearances of the virtual avatar that may serve as the basis for different / additional stickers. This improves device usability, makes the user-device interface more efficient (e.g., by helping the user achieve their intended results by providing feedback about other content that could be generated before the user submits the generated content), and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0200] In some embodiments, the electronic device displays a send or confirm affordance (e.g., 664) in place of the record affordance in response to expiration of a time period for generating the animated virtual avatar (e.g., expiration of a 5-, 10-, or 15-second timer, or user input to stop the time period) (e.g., the virtual record button is no longer displayed, and instead a virtual send button is displayed in place of the virtual record button). In response to receiving input selecting the send or confirm affordance (e.g., a tap gesture on the send affordance of a touch-sensitive display), the electronic device sends the generated animated virtual avatar to the remote user (824) (e.g., see FIGS. 6U and 6X, which do not initially send the animated virtual avatar to the message composition area 612, as shown in FIGS. 6V and 6W) (e.g., the animated virtual avatar is sent to the remote user associated with the messaging thread or session without an animated virtual avatar first placed in another area of ​​the messaging interface, such as the message composition area). Displaying a submit or confirm button instead of a record button after recording of the animated virtual avatar is complete allows more information to be displayed in the interface by reclaiming the area occupied by buttons that are not applicable to the current state of the interface and providing more contextually relevant functionality to the user. This improves usability of the device, makes the user-device interface more efficient (e.g., by displaying more information / options on the display without cluttering the display with unused elements), and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0201] In some embodiments, the electronic device displays (822) a confirmation affordance (e.g., 664) instead of the record affordance in response to expiration of a time period for generating the animated virtual avatar. In response to receiving input (e.g., via contact 667) selecting the confirmation affordance (e.g., a tap gesture on the confirmation affordance of a touch-sensitive display), the electronic device displays a representation of the animated virtual avatar (e.g., a static graphical element or an animated virtual avatar) within a message composition area (e.g., 612) of a messaging interface (e.g., FIG. 6V) (e.g., an area of ​​the messaging interface that displays text entered on a keyboard). In some embodiments, the time period is based on a predetermined amount of time (e.g., represented by progress indicator 656). After generating the animated virtual avatar, the electronic device stops displaying the preview of the virtual avatar and displays a looped version of the animated virtual avatar (e.g., FIG. 6T). Displaying a looped version of the animated virtual avatar includes displaying an animation sequence two or more times (e.g., as described below with respect to method 900). Displaying a submit or confirm button instead of a record button after the animated virtual avatar has finished recording allows the interface to display more information by reclaiming the area occupied by buttons that are not (or are less) applicable to the current state of the interface. This improves usability of the device, makes the user-device interface more efficient (e.g., by showing more information / options on the display without cluttering the display with unused elements), and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0202] In some embodiments, a looped version of the animated virtual avatar is displayed using a first virtual avatar template (e.g., represented by element 644-4 or other element indicated by indicator 645 in FIG. 6N). The electronic device displays representations of a plurality of other virtual avatar templates (e.g., elements 644-1 through 644-7) (e.g., miniature generic versions of different virtual avatar templates, such as smiling faces, animals, robots, or other objects) including a representation of a second virtual avatar template (e.g., element 644-8 in FIG. 6Z), where the second virtual avatar template is different from the first virtual avatar template. In some embodiments, any one or more of the virtual avatar templates in the plurality of virtual avatar templates are based on emojis available for sending via a messaging application. After the electronic device begins displaying a looped version of the animated virtual avatar (e.g., FIG. 6T), in response to receiving user input selecting a first virtual avatar template representation (e.g., 665), the electronic device updates the display of the looped version of the animated virtual avatar to reflect a second virtual avatar template (e.g., FIG. 6U) (e.g., the animated virtual avatar is still based on a sequence of facial expression changes, but the appearance of the animated virtual avatar changes to reflect the new virtual avatar template). For example, the animated virtual avatar may change from a monkey to a robot, but still reflect the same sequence of facial expression changes within the camera's field of view over time (see, e.g., the transition from FIG. 6T to FIG. 6U). Updating the animated virtual avatar based on the newly selected avatar template allows the user to fine-tune the multimedia content of the intended message by allowing the user to select the style of the animated virtual avatar after recording the movements and actions of the animated virtual avatar.Eliminating the need to re-record animated virtual avatar content to try new avatar templates improves device usability, makes the user-device interface more efficient (e.g., by eliminating repetitive content generation), and allows users to use the device more quickly and effectively, thereby reducing power usage and improving device battery life.

[0203] In some embodiments, a preview of the virtual avatar (e.g., 646) is automatically displayed upon activation of the virtual avatar generation interface. In some embodiments, the preview of the virtual avatar is displayed immediately upon display of the virtual avatar generation interface without any user input.

[0204] In some embodiments, the electronic device, in response to detecting a characteristic (e.g., position, orientation, movement) of a first physical feature of a face (e.g., a smile, tongue sticking out, ear wagging, eyebrow raising, or any other movement of any other physical feature) within the camera's field of view, updates the first physical feature of a displayed preview of the virtual avatar based on the detected characteristic, where the type of the first physical feature of the face (e.g., eyes, eyebrows, mouth, tongue, ears) is the same as the type of the first physical feature of the displayed preview. In some embodiments, when the user's mouth opens, the virtual avatar's mouth opens accordingly (e.g., 650-1 and 651-1 in FIG. 6O). Similar results can be based on facial expressions. For example, if movement of one or more of the facial physical features or characteristics is detected, the electronic device can determine that a predetermined emotion is being displayed. In response, the displayed preview of the virtual avatar can be updated to reflect the predetermined movement by updating corresponding physical features or characteristics to reflect the detected facial expression. By mapping a user's physical features to similar physical features of a virtual avatar, the user can provide movements, facial expressions, and poses that provide input to the system that intuitively map onto the virtual avatar, without requiring tedious or time-consuming touch or keystrokes. This improves device usability, makes the user-device interface more efficient (e.g., by assisting the user in achieving intended results and reducing user errors by mapping the user's features to the virtual avatar in a predictable way when operating / interacting with the device), and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0205] In some embodiments, in response to detecting a characteristic of a second physical feature of the face within the camera's field of view, the electronic device updates the second physical feature of the displayed preview of the virtual avatar based on the detected characteristic, where the type of second physical feature of the face is different from the type of second physical feature of the displayed preview (e.g., movement of eyebrows 650-2 and ears 651-2 in FIG. 6O). In some embodiments, if a user smiles indicating that the user is happy, a different feature of the virtual avatar, such as a unicorn horn or robotic lights, can change to reflect the smile. Similar results can be based on facial expressions. For example, if movement of one or more of the facial physical features or characteristics is detected, the electronic device can determine that a predetermined emotion is being displayed. In response, the displayed preview of the virtual avatar is updated to reflect a predetermined movement, optionally by updating a different set of physical features or characteristics to reflect the detected facial expression. By mapping the user's physical features to different physical features of the virtual avatar, the user can provide movements, expressions, and poses that provide input to the system that maps to avatar characteristics that the user cannot otherwise easily control. This improves usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in achieving intended results by mapping the user's characteristics to a virtual avatar so that additional characteristics of the virtual avatar are controlled when operating / interacting with the device, reducing user errors), and further reduces power usage and improves the battery life of the device by allowing the user to use the device more quickly and effectively.

[0206] In some embodiments, the electronic device, in response to detecting facial movement within the camera's field of view, updates a physical model of the virtual avatar and a third physical feature of the displayed preview of the virtual avatar based on the detected movement (e.g., 650-5 and 651-5 in FIG. 6O). In some embodiments, for example, if the virtual avatar is based on a puppy virtual avatar template, when it detects that the user's face is shaking, the virtual avatar's face shakes and the virtual avatar's ears stick out to reflect the physics of the shaking movement even though the user's ears do not stick out in response to the shaking. In some embodiments, the same physical feature of the displayed preview of the virtual avatar is updated based on movement of the corresponding facial feature within the camera's field of view and of the physical model (e.g., the ears move based on the user's ear movement and also based on the physical model of the floppy puppy's ears). By updating the virtual avatar based on the virtual avatar's physical model, users can create realistic, interactive virtual avatars that can communicate a wider range of non-verbal information. This improves the usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in conveying their intended message using more realistic movements of the virtual avatar), and allows the user to use the device more quickly and effectively, thereby reducing power usage and improving the device's battery life.

[0207] In some embodiments, the virtual avatar preview is based on a predetermined virtual avatar template (e.g., the avatar template associated with representation 644-4 in FIG. 6N). The electronic device updates the virtual avatar preview based on one or more predetermined actions associated with the predetermined virtual avatar template. In some embodiments, if no movement or change in facial expression is detected from a face within the camera's field of view (e.g., 650-3 and 650-4), the virtual avatar preview exhibits a predetermined response (e.g., 651-4), such as blinking, turning the head, forming a facial expression, or other action.

[0208] In some embodiments, the electronic device, in response to determining that the face is no longer detected within the camera's field of view (e.g., face tracking has failed because the face has moved out of the field of view, the face is no longer visible from the camera's view, or the face has changed position such that the device can no longer accurately track the movement of its facial features), gradually fades the display of the virtual avatar preview (e.g., virtual avatar preview 646 fades). In some embodiments, the device makes other changes to the virtual avatar preview to indicate that it is no longer able to track the user's face, such as degrading the virtual avatar preview from the last information detected by the device, such as changing the size, rotation, or movement of the virtual avatar preview. In some embodiments, the electronic device, in response to determining that a face is no longer detected within the camera's field of view (e.g., face tracking has failed because the face has moved out of the field of view, the face is no longer visible from the camera's view, or the face has repositioned so that the device can no longer accurately track the movement of its facial features), displays a message indicating that the face is no longer properly detected by the camera (e.g., a display prompt is displayed on the virtual avatar 643 of FIG. 6N or in place of the virtual avatar preview 646 of FIG. 6N). In some embodiments, the electronic device, in response to determining that a face is no longer detected within the camera's field of view (e.g., face tracking has failed because the face has moved out of the field of view, the face is no longer visible from the camera's view, or the face has repositioned so that the device can no longer accurately track the movement of its facial features), updates the display of the virtual avatar preview based on changes in facial appearance that occurred during the period before the face was no longer detected within the field of view (e.g., immediately before or a short time ago) (e.g., device 600 repeatedly displays transitions from a smile to a frown or eye movement).In some embodiments, updating the display of the virtual avatar preview based on changes in facial appearance that occurred during a period before the face was no longer detected within the camera's field of view includes gradually slowing the updates of the virtual avatar preview over time so that the virtual avatar gradually stops updating (e.g., a slowly rotating avatar stops rotating, slowly opening and closing eyes stop opening and closing, and a slowly opening and closing mouth stops opening and closing). Displaying feedback regarding whether the virtual avatar preview is tracking the user's face allows the user to determine whether the device is being held properly and whether the detection conditions for the user's face are adequate. Providing the user with improved feedback of the device's status improves device operability and makes the user-device interface more efficient by providing better continuity in the user interface through an indication that the device is still attempting to track the user's face. This provides a more intuitive man-machine interface and allows the user to continue interacting with the device even when the device is unable to track the user's face.

[0209] It should be noted that the process details described above with respect to method 800 (e.g., FIGS. 8A-8B) apply equally to the methods described below. For example, method 900 optionally includes any one or more of the features of the various methods described above with reference to method 800. For example, the generation of stickers described above with respect to method 800 is optionally incorporated into the user interface described below with respect to method 900. As another example, the muting of sound before transmitting an animated virtual avatar (e.g., an animated virtual avatar) described above with respect to method 800 is optionally incorporated into the user interface described below with respect to method 900. For the sake of brevity, these details will not be repeated below.

[0210] The operations in the information processing methods described above are optionally performed by executing one or more functional modules in an information processing device, such as a general-purpose processor (e.g., as described with respect to FIGS. 1A, 3, and 5A) or an application-specific chip. Furthermore, the operations described above with reference to FIGS. 8A and 8B are optionally performed by the components shown in FIGS. 1A-1B. For example, detecting input in virtual avatar generation interface (806) is optionally implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive surface 604, and event dispatcher module 174 transmits the event information to application 136-1. Each event recognizer 180 of application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predetermined event or sub-event, such as selecting an object on the user interface. When a corresponding predefined event or sub-event is detected, event recognizer 180 activates event handler 190 associated with the detection of that event or sub-event. Event handler 190 optionally utilizes or invokes updater 176 or object updater 177 to update application internal state 192. In some embodiments, event handler 190 accesses a corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes can be implemented based on the components shown in FIGS. 1A-1B.

[0211] 9A-9B are flow diagrams illustrating a method for using an electronic device 900, according to some embodiments. Method 900 is performed on a device (e.g., 100, 300, 500, 600) that has a display and a camera. Some operations of method 900 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0212] As described below, method 900 provides an intuitive way to generate and send emojis, such as virtual avatars. The method reduces the cognitive burden on a user when generating and sending emojis, thereby creating a more efficient human-machine interface. For battery-operated computing devices, allowing users to generate and send emojis faster and more efficiently conserves power and extends the time between battery charges.

[0213] An electronic device (e.g., 600) having a camera (e.g., configured with one or more sensors for capturing data representing visible light, IR light, depth data, etc.) and a display (e.g., 601) displays a virtual avatar generation interface (e.g., 643 of FIG. 6N) (902) (e.g., selecting an emoji, generating static emoji, and recording animated emoji). The electronic device displays a preview of a virtual avatar (e.g., 646 of FIG. 6N) (e.g., a 2D or 3D computer-generated graphical object intended to convey, in some cases, a non-verbal message such as an emotion or reaction) in the virtual avatar generation interface (e.g., a moving emoji selected from a plurality of different available emoji styles or templates) (904). The virtual avatar preview responds to changes in the appearance of a face within the camera's field of view (e.g., FIG. 6O) (e.g., an animated emoji reflects the user's head movement, facial expression, and orientation as detected in image data from one or more image sensors). The electronic device receives a request (e.g., contact 652) to generate an animated virtual avatar based on changes in facial expressions of a face within the camera's field of view (906). In response to receiving the request to generate the animated virtual avatar, the electronic device records a sequence of facial expressions of the face within the camera's field of view (908) (e.g., FIGS. 6Q-6S) (e.g., the sequence includes a series of data points to provide a mapping of points that can be applied to a virtual avatar template to generate the animated virtual avatar). After recording the facial expressions of the face within the camera's field of view, the electronic device displays a looped version (e.g., FIGS. 6T and 6U) of the animated virtual avatar (e.g., 659) that includes an animation sequence based on the sequence of facial expressions recorded in response to the request to generate the animated virtual avatar (e.g., the animated virtual avatar is displayed by sequentially mapping a series of data points representing the recorded facial expressions to a predetermined animated virtual avatar template).The electronic device displays a looped version of the animated virtual avatar two or more times. In some embodiments, recording the sequence of facial expressions includes recording a time sequence of values ​​of discrete mapping points of a predetermined virtual avatar template. Displaying the looped version of the animated virtual avatar allows the user to subsequently review the content of the animated virtual avatar to understand whether the appropriate message is being conveyed. Providing improved visual feedback to the user improves device usability, reduces cases of error, makes the user-device interface more effective (e.g., by assisting the user in achieving the intended result and reducing user errors when operating or interacting with the device by providing feedback that directs the device to inputs that will cause the device to produce the intended result), and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0214] In some embodiments, the electronic device stops recording the sequence of facial expressions in response to the expiration of a timer (e.g., a 5, 10, or 15 second timer) (e.g., represented by progress indicator 656). In some embodiments, the electronic device stops recording the sequence of facial expressions in response to receiving user input (e.g., contact 658) (e.g., the user tapping a virtual button displayed on the display). By limiting the duration of the recording of the animated virtual avatar, a user can create a recording of the animated virtual avatar while limiting the impact on the device's computing resources (e.g., storage). This improves usability of the device by conserving the device's computing resources.

[0215] In some embodiments, the electronic device replaces the display of the preview with a display of a looped version of the animated virtual avatar (912) (see, e.g., the transition from FIG. 6S to FIG. 6T) (e.g., the generated animated virtual avatar is played to the user in a loop as the recording of the facial expression sequence is completed). Playing the looped version of the recorded animated emoji allows the user to automatically review the animated emoji before deciding whether to send, delete, or save the animated emoji. This improves device usability and makes the user-device interface more effective (e.g., by helping the user achieve the intended result by providing feedback that indicates the result before the user commits to it, and by reducing user errors when operating or interacting with the device), and further reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and effectively.

[0216] In some embodiments, the request to generate an animated virtual avatar includes selecting a record affordance (e.g., 648) displayed in the virtual avatar generation interface. The electronic device records the facial expression of a face within the camera's field of view and then replaces the display of the record affordance with a send affordance or a confirm affordance (e.g., 664). In some embodiments, the send affordance operates as described above with respect to method 800. Upon recording the animated virtual avatar in response to selecting the record affordance, the user can use the virtual avatar preview to verify that the device is tracking the user and that the currently selected virtual avatar template matches the message the user wants to communicate. This improves device usability and makes the user-device interface more effective (e.g., by helping the user achieve the intended result by providing a preview of the intended result before the user generates it and reducing user errors when operating or interacting with the device), and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0217] In some embodiments, a looped version of the animated virtual avatar is displayed (918) using the first virtual avatar template (e.g., the avatar template corresponding to element 644-4). The electronic device displays representations of a plurality of other virtual avatar templates (e.g., elements 644-1 through 644-7) (e.g., miniature generic versions of different virtual avatar templates, such as smiling faces, animals, robots, or other objects), including a representation of a second virtual avatar template (e.g., element 644-8 of FIG. 6Z). The second virtual avatar template is different from the first virtual avatar template. In some embodiments, any one or more of the virtual avatar templates in the plurality of virtual avatar templates are based on emojis available for sending via a messaging application. After beginning to display the looped version of the animated virtual avatar, in response to receiving user input selecting the first virtual avatar template representation, the electronic device updates the display of the looped version of the animated virtual avatar to reflect the second virtual avatar template (922) (e.g., the animated virtual avatar is still based on a sequence of facial expression changes, but the appearance of the animated virtual avatar changes to reflect the new virtual avatar template). For example, the animated virtual avatar may change from a monkey to a robot, but still reflect the same sequence of facial expression changes within the camera's field of view over time (see, e.g., the transition from FIG. 6T to FIG. 6U). In some embodiments, the electronic device displays multiple representations of the virtual avatar template (914) (e.g., miniature, generic versions of different virtual avatar templates, such as smiling faces, animals, robots, or other subjects), including a representation of the first virtual avatar template.In response to receiving user input corresponding to a selection of a representation of the first virtual avatar template, the electronic device updates (916) the display of a looped version of the animated virtual avatar to correspond to the first virtual avatar template (e.g., changing the animation to consist of a robot based on the robot virtual avatar template instead of a puppy based on the puppy virtual avatar template, without the user having to re-record any facial expressions). Updating the animated virtual avatar based on the newly selected avatar template allows the user to fine-tune the multimedia content of the intended message by allowing the user to select the style of the animated virtual avatar after recording the movements and actions of the animated virtual avatar. Eliminating the need to re-record animated virtual avatar content to preview new avatar templates improves device usability, makes the user-device interface more efficient (e.g., by eliminating repetitive content generation), and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0218] In some embodiments, the preview virtual avatar is based on a second avatar template. In response to detecting a first characteristic of a first physical feature of the face (e.g., the user's eyebrow movement) within the camera's field of view (e.g., 650-2 in FIG. 6O), the electronic device updates (920) the first physical feature of the displayed preview of the virtual avatar based on the detected first characteristic (e.g., causing the virtual avatar preview to move its eyebrows). The first physical feature of the displayed preview has a first feature type (e.g., eyebrow). After receiving user input corresponding to the selection of a first graphical element (e.g., switching the avatar template from a puppy to a monkey) and in response to detecting a second characteristic of the first physical feature of the face within the camera's field of view (e.g., the user's eyebrow movement), the electronic device updates (922) the second physical feature of the displayed preview of the virtual avatar (e.g., 651-2 in FIG. 6O) based on the detected second characteristic (e.g., the monkey's ear movement), such that the second physical feature of the displayed preview has a second feature type (e.g., ears) that is different from the first feature type (e.g., eyebrows). By mapping the same physical feature of the user to different physical features of different avatar templates, the user can have a wide range of options for communicating messages by having the same input to generate various virtual avatars. This improves device usability, makes the user-device interface more efficient (e.g., by assisting the user in achieving their intended message by providing more options for conveying the message), and further reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and effectively.

[0219] In some embodiments, in response to receiving user input (e.g., via contact 676 in FIGS. 6Y-6AA) corresponding to a request to scroll through the multiple representations of the virtual avatar template, the electronic device scrolls the display of the multiple representations of the virtual avatar template to display a second graphical element that is not part of the multiple representations of the virtual avatar template. In some embodiments, the scrolling is based on a speed of the user input corresponding to the request. Scrolling the virtual avatar templates allows a user to quickly review different virtual avatar options. Additionally, scrolling the display of the multiple representations of the virtual avatar template allows a user to review previous and next virtual avatar templates. This improves device usability and makes the user-device interface more effective (e.g., by providing feedback to the device indicating which inputs will cause the device to produce the intended result, helping the user achieve the intended result and reducing user errors when operating or interacting with the device), and further reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and effectively.

[0220] In some embodiments, the speed of scrolling gradually decreases over time after detecting the end of user input (e.g., scrolling gradually stops as if the representations of the virtual avatar had inertia that was gradually slowed by friction). Gradually decreasing the scrolling speed over time allows the user to continue to view different virtual avatar template options without having to provide additional input. This improves device usability and makes the user-device interface more effective (e.g., by helping the user achieve intended results by providing feedback of possible outcomes without requiring additional interaction and reducing user errors when operating or interacting with the device), and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0221] In some embodiments, the electronic device generates an audible and / or tactile output corresponding to a currently selected virtual avatar template changing from one virtual avatar template to a different virtual avatar template in response to receiving user input corresponding to the request. For example, an audible and / or tactile output is generated when each of the multiple representations of the virtual avatar template scrolls past the location where the currently selected virtual avatar template is displayed. By generating audible or tactile feedback, the user can determine when a new selection has occurred. This improves device usability, makes the user's interface with the device more effective (e.g., by assisting the user in achieving an intended result and reducing user errors when operating or interacting with the device by providing feedback indicating when a new selection is made), and further reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and effectively.

[0222] In some embodiments, the electronic device stores data for the animated virtual avatar in a database on the electronic device in response to receiving user input on the animated virtual avatar, input corresponding to a request to save the animated virtual avatar (e.g., FIGS. 6CC-6GG). For example, the electronic device stores data representing the animated virtual avatar in a directory or library in non-volatile storage of the electronic device.

[0223] In some embodiments, the electronic device receives a request (e.g., contact 688) to send an animated virtual avatar to a remote user of a remote device (e.g., FIGS. 6HH-6KK). In accordance with a determination that the remote device meets a first set of criteria (e.g., the remote device has the required version of the application necessary to play the first version of the animated virtual avatar), the electronic device sends the first version of the animated virtual avatar to the user of the remote device (e.g., sending non-graphical data representing a sequence of recorded facial expressions and a display of a virtual avatar template to enable the remote device to play the animated virtual avatar). In accordance with a determination that the remote device does not meet the first set of criteria (e.g., the remote device does not have an appropriate messaging application or version of a messaging application to play the first version of the animated virtual avatar), the electronic device sends the user of the remote device a second version of the animated virtual avatar that differs from the first version (e.g., sending a video file representing the animated virtual avatar). Determining which version of the animated virtual avatar to send to the remote user conserves device resources by sending only minimal compatible information to the remote user. Furthermore, doing so reduces the need for the user to retransmit information in a more compatible format (e.g., in response to a remote user indicating that the initial format could not be displayed). Efficient and effective data transfer improves device usability and further reduces power usage and improves device battery life by allowing the user to use the device more quickly and effectively.

[0224] In some embodiments, the electronic device plays audio data based on sounds recorded while recording a sequence of facial expressions and an audio filter associated with a given avatar template (924) while displaying a looped version of the animated virtual avatar. In some embodiments, the electronic device plays audio data based on sounds recorded while recording a sequence of facial expressions while displaying a looped version of the animated virtual avatar. In response to receiving user input corresponding to a selection of a mute affordance (e.g., 662 in FIGS. 6T and 6U), the electronic device stops playing the audio data. Playing filtered audio for a virtual avatar animated based on filters specific to the virtual avatar's avatar template allows users to communicate messages more effectively by increasing options for how the message is communicated and providing a more appealing animated virtual avatar. This improves device usability, makes the user-device interface more efficient (e.g., by assisting the user in achieving the intended message by providing the user with more options for how the message is communicated), and further reduces power usage and improves device battery life by allowing users to use the device more quickly and effectively.

[0225] In some embodiments, the electronic device, in response to receiving a request to send an animated virtual avatar to the remote user (926) and pursuant to a determination that the request to send the animated virtual avatar to the remote user (e.g., contact 667) was received while audio data associated with displaying a looped version of the animated virtual avatar was muted, sends data representing the animated virtual avatar to the remote user without sending sound data for the animated virtual avatar (928). In response to a determination that the request to send the animated virtual avatar to the remote user was received while audio data associated with displaying a looped version of the animated virtual avatar was not muted, the electronic device sends data representing the animated virtual avatar to the remote user along with sound data for the animated virtual avatar (930). Sending an animated virtual avatar without sound when the user mutes the sound on playback of the animated virtual avatar effectively allows the user to select whether to include sound in a message sent to the remote user. This improves the usability of the device, makes the user's interface with the device more efficient (e.g., by assisting the user in achieving intended results with minimal interaction), and allows the user to use the device more quickly and effectively, thereby reducing power usage and improving the device's battery life.

[0226] In some embodiments, in response to receiving a request (e.g., contact 652) to generate an animated virtual avatar, the electronic device records a first facial movement of a face within the camera's field of view, and displays a looped version of the animated virtual avatar, including animating the virtual avatar based on a physical model of the animated virtual avatar and the first facial movement (see, e.g., image data 650-5 and updates 651-5 in FIG. 6O). By updating the animated virtual avatar based on the virtual avatar's physical model, a user can create a realistic, interactive virtual avatar capable of conveying a wider range of nonverbal communications. This improves device usability, makes the user-device interface more efficient (e.g., by assisting the user in conveying their intended message using more realistic movements of the virtual avatar), and allows the user to use the device more quickly and effectively, thereby reducing power usage and improving device battery life.

[0227] In some embodiments, the electronic device adds to the animated virtual avatar a predetermined animation expression (e.g., see 651-5 in FIG. 6O) corresponding to the particular pose of the face in the camera's field of view in response to detecting that a particular feature of the face within the camera's field of view is maintained in a particular pose for more than a threshold time while recording a sequence of facial expressions (e.g., see 650-4 and 650-5 in FIG. 6O). For example, if the face has a neutral expression for a predetermined period of time, a predetermined movement, such as a head turn or wink, is added to the animated virtual avatar. As another example, if the face has an angry expression for a predetermined period of time, one or more additional features, such as color or steam coming from the ears to suggest anger, are added to the animated virtual avatar. Updating the animated virtual avatar based on the device detecting that the user's facial features are maintained in a particular pose for a predetermined period of time allows the user to add more actions to the animated virtual avatar than are possible with facial expressions, features, and movements alone. This improves the usability of the device, makes the user-device interface more effective (e.g., by helping the user achieve intended results by providing additional mechanisms for communicating actions that do not correspond to easily achievable facial expressions, movements, or features), and further reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and effectively.

[0228] In some embodiments, while recording the sequence of facial expressions, the electronic device adds a first facial expression to the sequence of facial expressions (e.g., recording a happy facial expression, a tongue-out facial expression, or other facial expression that was not actually recorded as a facial expression formed by a face in the field of view of the camera while recording the facial expressions) in response to receiving user input via another input mechanism separate from the camera (e.g., a touch on a touch-sensitive surface, a movement of the electronic device detected by a motion sensor, an activation of a button, or other input). The first facial expression is based on the user input received via the input mechanism. In some embodiments, while the animated virtual avatar is looping, the user can add additional expressions to the animated virtual avatar using touchscreen controls such that the user can gradually add expressions to the animated virtual avatar as the animated virtual avatar loops; thus, the animated virtual avatar includes the facial changes selected by the user, even if the facial changes differ from the facial changes recorded based on the facial expressions of the face in the field of view of the camera (e.g., the user's face) when initially creating the animated virtual avatar. Updating the animated virtual avatar based on user input other than that captured by a camera allows the user to add more actions to the animated virtual avatar than are possible with facial expressions, features, and movements alone, which improves usability of the device, makes the user's interface with the device more effective (e.g., by helping the user achieve intended results by providing an additional mechanism for communicating actions that do not correspond to easily achievable facial expressions, movements, or features), and further reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and effectively.

[0229] It should be noted that the details of the processes described above with respect to method 900 (e.g., FIGS. 9A-9B) are also applicable in an analogous manner to the methods described below. For example, method 900 optionally includes any one or more of the features of the various methods described above with reference to method 800. For example, displaying an animated virtual avatar preview based on a sequence of recorded facial features, movements, and / or expressions, and based on a framework associated with the avatar template described with respect to method 900, may be applied to the sticker and animated virtual avatar interface described with respect to method 800 above.

[0230] The operations in the information processing methods described above are optionally performed by executing one or more functional modules in an information processing device, such as a general-purpose processor (e.g., as described with respect to FIGS. 1A, 3, and 5A) or an application-specific chip. Additionally, the operations described above with reference to FIGS. 9A-9B are optionally performed by the components shown in FIGS. 1A-1B. For example, receiving a request to generate an animated virtual avatar (906) is optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects a contact on touch-sensitive surface 604, and event dispatcher module 174 transmits the event information to application 136-1. Each event recognizer 180 of application 136-1 compares the event information to a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predetermined event or sub-event, such as selecting an object on a user interface. When a corresponding predefined event or sub-event is detected, event recognizer 180 activates event handler 190 associated with the detection of that event or sub-event. Event handler 190 optionally utilizes or invokes updater 176 or object updater 177 to update application internal state 192. In some embodiments, 190 accesses a corresponding GUI updater event handler 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes can be implemented based on the components shown in FIGS. 1A-1B.

[0231] Figures 10A-10I, 11A-11C, 12A-12C, 13, 14A-14D, 15A-15B, 16A-16B, and 17A-17B show exemplary user interfaces for creating and modifying virtual avatars, according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the processes in Figures 18A, 18B, 19, 20, 21, 22, 23, 24, and 25.

[0232] In some embodiments, the virtual avatar is a representation of the user that may be graphically rendered. In some embodiments, the virtual avatar is non-photorealistic (e.g., cartoonish). In some embodiments, the avatar is an anthropomorphic structure such as a stylized animal (e.g., avatars 1100, 1300, 1500, 1600, and 1700), a stylized robot (e.g., avatar 1400), or a stylized generally inanimate object (e.g., avatar 1000). In some embodiments, the virtual avatar includes an avatar face having one or more avatar features (e.g., avatar facial features). In some embodiments, the avatar features correspond to (e.g., are mapped to) one or more physical features of the user's face such that detected movement of the user's physical features affects the avatar features (e.g., affects the graphical representation of the features).

[0233] In some examples, a user can manipulate the characteristics or features of a virtual avatar using a camera sensor (e.g., camera 602) (e.g., camera module 143, light sensor 164, depth camera sensor 175). When the user's physical characteristics (e.g., facial features) and position (e.g., head position or head tilt) change, the electronic device detects the change and alters the displayed image of the virtual avatar to reflect the change in the user's physical characteristics and position. In some embodiments, the changes in the user's physical characteristics and position indicate different facial expressions, emotions, context, tone, or other non-verbal communication. In some embodiments, the electronic device alters the displayed image of the virtual avatar to represent these facial expressions, emotions, context, tone, or other non-verbal communication.

[0234] 10A-10I, 11A-11C, 12A-12C, 13, 14A-14D, 15A-15B, 16A-16B, 17A-17B, and 26A-26D illustrate example user inputs and corresponding changes to example virtual avatars (e.g., Winnie the Pooh, bear, alien, rabbit, robot, unicorn, chicken, and pig avatars) displayed on an electronic device. In some embodiments, the electronic device includes one or more elements and / or features of devices 100, 300, and 500. 10A-10I, 11A-11C, 12A-12C, 13, 14A-14D, 15A-15B, 16A-16B, 17A-17B, and 26A-26D represent images of a user detected by an electronic device when the user is within the field of view of one or more cameras (e.g., camera 602) (e.g., camera module 143, light sensor 164, depth camera sensor 175) and / or other sensors (e.g., infrared sensors). In other words, the image of the user is from the perspective of a camera (e.g., camera 602) (e.g., camera module 143, light sensor 164, depth camera sensor 175), which in some embodiments may be located on the electronic device (e.g., devices 100, 300, and 500) and in other embodiments may be located separately from the electronic device (e.g., an external camera or sensor that passes data to the electronic device). In some embodiments, the boundaries of the images on the left side of Figures 10A-10I, 11A-11C, 12A-12C, 13, 14A-14D, 15A-15B, 16A-16B, 17A-17B, and 26A-26D represent the boundaries of the field of view of one or more cameras (e.g., 602) (e.g., camera module 143, light sensor 164, depth camera sensor 175) and / or other sensors (e.g., infrared sensors). In some embodiments, the image of the user is displayed on a display of the electronic device (e.g., touchscreen 112, display 340, display 450, display 504). In some embodiments, the image of the user is transmitted to an external electronic device for display.In some embodiments, the external electronic device includes one or more elements and / or features of devices 100, 300, and 500. In some embodiments, user image data is collected and processed by the device but is not immediately displayed on the electronic device or transmitted to the external device.

[0235] Each of the images on the right of FIGS. 10A-10I, 11A-11C, 12A-12C, 13, 14A-14D, 15A-15B, 16A-16B, and 17A-17B shows a virtual avatar (e.g., a Puu avatar) in a presented (e.g., modified and displayed) state based on the corresponding detected image of the user located on the left side of the figure. In some embodiments, the virtual avatar is shown from the perspective of a user viewing the virtual avatar. In some embodiments, the virtual avatar is displayed on an electronic device display (e.g., touchscreen 112, display 340, display 450, display 504). In some embodiments, the virtual avatar is transmitted to an external electronic device for display. In some embodiments, the images on the right of Figures 10A-10I, 11A-11C, 12A-12C, 13, 14A-14D, 15A-15B, 16A-16B, and 17A-17B represent the position of a virtual avatar within a display area of ​​an electronic device's display (e.g., touch screen 112, display 340, display 450, display 504), and the boundaries of the images on the right of Figures 10A-10I, 11A-11C, 12A-12C, 13, 14A-14D, 15A-15B, 16A-16B, and 17A-17B represent the boundaries of the display area containing the virtual avatar. In some embodiments, the display area depicted on the right corresponds to an avatar display area of ​​an application user interface, such as the virtual avatar interface 643, message composition area 612, or message area 609 (or portions thereof) described above.

[0236] In some embodiments, the magnitude of the response of an avatar feature (e.g., a separate element of the avatar that can be moved or changed separately relative to other avatar features) corresponds to the magnitude of the change in the user's physical feature (e.g., a detected or tracked feature, such as the user's muscle, muscle group, or anatomical feature such as the eye). For example, in some embodiments, the magnitude of the change in the physical feature is determined according to the range of potential motion of the physical feature, with the magnitude representing the relative position of the physical feature within the range of motion (e.g., a predicted or modeled range of motion) of that physical feature. In such embodiments, the magnitude of the response of the avatar feature is similarly the relative position of the avatar feature within the range of motion of the avatar feature. In some embodiments, the magnitude of the change is determined based on a comparison or measurement (e.g., distance) of the start and end positions of the physical feature due to the change. In such embodiments, the change in the physical feature can be translated (e.g., directly or as a scaled or adjusted value) into a modification of a first avatar feature by applying the measured change in the physical feature to the avatar feature.

[0237] In some embodiments, the change to the avatar feature has both a magnitude component and a direction component, and the direction component of the change of the avatar feature is based on the direction component of the change in any one or more of the physical features to which the avatar feature responds. In some embodiments, the direction of the avatar feature's response corresponds (e.g., directly or inversely) to the relative direction of the change in the user's physical feature, and the relative direction of the change in the physical feature is determined based on the direction of movement of the physical feature from an initial position (e.g., a neutral, resting position of the physical feature, or, in some embodiments, the position of the physical feature as initially detected by the device). In some embodiments, the direction of the avatar feature's response corresponds directly to the relative direction of the change in the physical feature (e.g., the physical feature moves up, and the avatar feature also moves up). In other embodiments, the direction of the avatar feature's response corresponds inversely to the relative direction of the change in the physical feature (e.g., the physical feature moves up, and the avatar feature moves down).

[0238] In some embodiments, the directional component of the change in the avatar feature is mirrored relative to the directional component of the change in the physical feature. For example, when a physical feature (e.g., the user's mouth) moves to the left, the avatar feature (e.g., the avatar's mouth) moves to the right. In some embodiments, the directional component of the change in the avatar feature is the same as the directional component of the change in the physical feature for movement along the vertical axis and is mirrored for movement along the horizontal axis, similar to the effect seen when looking in a mirror. In some embodiments, the neutral resting position of the user's iris is determined to be a specific location (e.g., center) relative to the periphery of the user's eyeball.

[0239] FIG. 10A illustrates an exemplary embodiment showing an electronic device modifying a Poo avatar 1000 in response to detecting changes in a user's facial features. The Poo avatar is shown having four display states (1011A, 1011B, 1011C, and 1011D), each corresponding to one of the user's four detection states (1001A, 1001B, 1001C, and 1001D). Specifically, in each display state of FIG. 10A , the electronic device positions or modifies the Poo avatar's features in response to detecting the position or change in position of any one or more of the user's physical features, such as facial features, detected in the respective state. In the embodiment shown in FIG. 10A , the detected user's facial features include the user's mouth 1020 (with corners 1020A and 1020B) and the user's eyebrows 1022. In some embodiments, the tracked physical features may include other facial features, such as eyelids, irises, muscles, or muscle groups. In the embodiment of FIG. 10A, the Pu avatar features include an avatar's face 1000C, a mouth 1030, an avatar's eyes 1032, an avatar's upper portion 1034, an avatar's lower portion 1036, and (in certain states) an avatar's eyebrows 1038.

[0240] As shown at 1001A, the electronic device detects a neutral facial expression of the user. For example, the electronic device detects that the user's mouth 1020 and eyebrows 1022 are positioned in a relaxed, neutral state and are not in a position associated with a particular facial expression (e.g., smiling or frowning). In response to detecting the user's neutral facial expression, the electronic device displays a Poo avatar 1000 having a neutral expression (e.g., a neutral state) at 1011A. Specifically, the electronic device displays a Poo avatar with the avatar's mouth 1030 in a relaxed, neutral state, not in a position typically associated with a particular facial expression (e.g., smiling or frowning). In some embodiments, the avatar's neutral position corresponds to another representation of a related image, such as a static Poo emoji found in messaging applications. Additionally, the electronic device displays Poo avatar face 1000C without eyebrows 1038 and displays the avatar's eyes 1032 oriented perpendicular to the display (or the focal plane of a camera (e.g., camera 143, light sensor 164)). The electronic device also displays Poo avatar upper portion 1034 in a neutral upright position above lower portion 1036.

[0241] As shown in 1011B, the electronic device detects the position of the user's mouth 1020 to form a smiling facial expression (e.g., one or both of the corners of the user's mouth 1020A and 1020B are positioned in an upward pose (e.g., upward position) to form a smiling facial expression). In response to detecting the position of the user's mouth 1020, the electronic device changes the display of the avatar's mouth 1030 to have a smiling expression, such that the avatar's mouth 1030 has an open smiling position as shown in 1011B. As shown in 1011B, the eyes 1032, upper portion 1034, and lower portion 1036 remain unchanged relative to their original positions in 1011A.

[0242] As shown in 1001C, the electronic device detects the user's frowning facial expression. In some embodiments, the electronic device detects the frowning facial expression by detecting one or both of the user's mouth corners 1020A and 1020B in a downward pose (e.g., a downward position) and the user's eyebrows 1022 in a downward position (e.g., frowned or positioned lower on the user's face when compared to the position of the eyebrows 1022 in the relaxed, neutral state of 1001A and 1001B). In response to detecting the user's frowning facial expression, the electronic device modifies the Poo avatar to have a frowning, droopy face, as shown in 1011C. For example, the electronic device modifies the Poo avatar such that the corners of the avatar's mouth 1030 are curved downward with the mouth 1030 in a slightly open position, and the lower portion 1036 of the Poo avatar is curved downward similar to the position of the Poo avatar's mouth 1030 bent downward. In the embodiment of FIG. 10A, while the electronic device detects the downward position of the user's eyebrows 1022, the corresponding anatomical portion of the Pua avatar above the avatar's eyes 1032 remains unchanged.

[0243] In some embodiments, the electronic device modifies the Poo avatar to have a droopy face as shown in 1011C by displaying an animation of the mouth 1030 pointing downward and the bottom portion 1036 bending downward as the mouth 1030 moves to the downward position. In some embodiments, the electronic device further modifies the Poo avatar so that the tip 1040 of the Poo avatar tilts or slopes downward as the Poo avatar forms a droopy face. In some embodiments, the position of the tip 1040 is specifically based on the position of the user's eyebrows 1022 (a physical feature that does not anatomically correspond to the tip 1040). In some embodiments, the electronic device modifies the Poo avatar to return to its neutral position when the user is no longer making the frowning expression. In such embodiments, the electronic device modifies the Poo avatar to return to the neutral state of 1011A by displaying an animation of the mouth 1030 moving to the neutral position and the bottom portion 1036 returning to the neutral position. In some embodiments, returning the Poo avatar from a drooping surface to a neutral state includes the electronic device displaying the tip 1040 of the Poo avatar straightened in its neutral position.

[0244] As shown in 1001D, the electronic device detects that the corners 1020A and 1020B of the user's mouth are slightly raised and the user's eyebrows 1022 are in a raised position (e.g., higher on the user's face when compared to the position of the eyebrows 1022 in the relaxed, neutral state shown in 1001A and 1001B). In response to detecting the position of the corners 1020A and 1020B of the user's mouth 1020, the electronic device alters the display of the avatar so that the corners of the avatar's mouth 1030 are slightly raised to match the position of the corners 1020A and 1020B of the user's mouth 1020. In response to detecting a lifted position of the user's eyebrows 1022, the electronic device modifies the Poo avatar by introducing eyebrows 1038 located above the Poo avatar's eyes 1032 in the lifted position (e.g., to convey the impression that the Poo avatar 1000 is lifting its eyebrows 1038) and stretching the top portion 1034 of the Poo avatar upward (e.g., by stretching the tips 1040 of the Poo avatar while maintaining the original position of the bottom portion 1036). In the embodiments shown in 1001D and 1011D, the electronic device introduces the avatar's eyebrows 1038 and stretches the tips 1040 of the Poo avatar when the user's eyebrows 1022 are lifted. In some embodiments, the electronic device removes the avatar's eyebrows 1038 and relaxes the tips 1040 when the user's eyebrows 1022 return to a neutral position. In some embodiments, the electronic device removes the Poo avatar's eyebrows 1038 by animating the eyebrows 1038 to move downward toward the Poo avatar's eyes 1032 and disappear onto the Poo avatar's face 1000C above the eyes 1032.

[0245] 10B illustrates an exemplary embodiment showing an electronic device modifying a Poo avatar in response to detecting changes in a user's facial features, where the modifications to the Poo avatar include exaggerated movements of the avatar features. In some embodiments, exaggerating the virtual avatar features allows the user to affect the greatest changes to the avatar features without having to uncomfortably change the corresponding facial features. For example, as shown in FIG. 10B, the user can have the avatar open its mouth as wide as possible (e.g., in a surprised expression) without having to uncomfortably open the user's mouth (e.g., without having to open the user's mouth to the maximum extent of the user's predicted or determined range of mouth movement).

[0246] The Poo avatar is shown in FIG. 10B with three display states (1012A, 1012B, and 1012C), each corresponding to one of the user's three detected states (1002A, 1002B, and 1002C). Specifically, in each display state of FIG. 10B , the electronic device positions or modifies Poo avatar features in response to detecting the position or change in position of any one or more of the user's physical features, such as facial features, detected in the user's respective state. In the embodiment shown in FIG. 10B , the detected user's facial features include the user's mouth 1020. In some embodiments, the tracked physical features may include other facial features, such as eyelids, irises, muscles, muscle groups, etc. In the embodiment of FIG. 10B , the Poo avatar features include the avatar's mouth 1030, the avatar's eyes 1032, the avatar's upper portion 1034, and the avatar's lower portion 1036.

[0247] As shown in 1002A, the electronic device detects a first state of the user in which the user's mouth 1020 is slightly open (e.g., 10% of the maximum range of the predicted or determined range of the user's mouth movements). In response to detecting the user's slightly open mouth 1020, the electronic device modifies the Poo avatar so that the Poo avatar's mouth 1030 has an open position (e.g., 20% of the maximum range of the modeled range of the avatar's mouth movements) that is larger than the user's mouth 1020 (e.g., within their respective ranges of movement), while leaving other features of the avatar, such as the Poo avatar's eyes 1032, upper portion 1034, and lower portion 1036, unchanged, as shown in 1012A.

[0248] As shown in 1002B, the electronic device detects a change in the user's facial features in which the user's mouth 1020 is more widely open than it was in state 1002A (e.g., 25% of the maximum range of the predicted or determined range of the user's mouth movements). In response to detecting the user's mouth 1020 transitioning from the slightly open position of 1002A to the wider opening of 1002B, the electronic device changes the Poo avatar's mouth 1030 to increase in size, as shown in 1012B, so that the mouth 1030 has an even more open position than shown in 1012A (e.g., 50% of the maximum range of the modeled range of the avatar's mouth movements), while still maintaining the positions of the other avatar features, including the Poo avatar's eyes 1032, upper portion 1034, and lower portion 1036.

[0249] As shown in 1002C, the electronic device detects yet another change in the user's facial features, where the user's mouth 1020 is open wider than it was in 1002B (e.g., 50% of the maximum range of the user's mouth movements). In response to detecting the user's mouth 1020 transitioning from the open position of 1002B to the wider opening of 1002C, the electronic device resizes the Poo avatar's mouth 1030 to be larger, as shown in 1012C, so that the mouth 1030 has an even larger open position (e.g., 100% of the maximum range of the avatar's modeled range of mouth movements) than the position shown in 1012B. However, in 1012C, the opening of mouth 1030 is greater than the height of bottom portion 1036. As a result, the electronic device expands bottom portion 1036 of Poo avatar 1000 at 1042 to maintain the structural integrity of Poo avatar 1000 in response to the user's open mouth 1020. In other words, the device modifies one or more interconnected portions of the virtual avatar (e.g., bottom portion 1036) to maintain a consistent positioning of the avatar and its features in response to the user's open mouth 1020. For example, as shown in 1012C, the electronic device enlarges the virtual avatar's bottom portion 1036 adjacent to the avatar's mouth 1030 in region 1042 to accommodate the increased size of the enlarged avatar's mouth 1030. If the electronic device did not modify bottom portion 1036 in this manner, the enlarged mouth 1030 would extend beyond the structure of the virtual avatar, thereby potentially interfering with the context and / or tone in which the user is attempting to communicate using the virtual avatar.

[0250] In some embodiments, the increase in size of the avatar's mouth 1030 (e.g., from the position shown in 1012A to the position shown in 1012B, or from the position shown in 1012B to the position shown in 1012C) is not proportional to the increase in size of the user's mouth 1020 (e.g., from the position shown in 1002A to the position shown in 1002B, or from the position shown in 1002B to the position shown in 1002C), but rather is scaled to provide an exaggerated rate of size change. For example, in some embodiments, the scale is a multiple of 2 such that the relative open position of the avatar's mouth is twice the relative open position of the user's mouth. For example, if the user's mouth is open 10% of the user's mouth's maximum range of motion, the electronic device displays the avatar's mouth open 20% of the maximum range of the avatar's mouth movement modeled.

[0251] FIG. 10C illustrates an exemplary embodiment showing an electronic device modifying a Poo avatar in response to detecting changes in a user's physical characteristics, including rotating (e.g., tilting) an upper portion of the Poo avatar forward and backward while maintaining a lower portion of the Poo avatar stationary. The electronic device displays a Poo avatar having three display states (1013A, 1013B, and 1013C), each corresponding to one of the user's three detection states (1003A, 1003B, and 1003C). Specifically, in each display state of FIG. 10C , the electronic device positions or modifies the Poo avatar's features in response to detecting the position or change in position of any one or more of the user's physical features, such as facial features, detected in the respective state. In the embodiment shown in FIG. 10C , the user's physical features include the user's face 1024, chin 1026, and head 1028. In some embodiments, the tracked physical features may include other facial features, such as eyelids, irises, muscles, or muscle groups. In the embodiment of FIG. 10C, the Poo avatar features include the avatar's mouth 1030, the avatar's eyes 1032, the avatar's top portion 1034 (including the Poo avatar's tip 1040), and the avatar's bottom portion 1036.

[0252] As shown in 1003A, the electronic device detects the user's face 1024 having a rotated upward position. For example, the user lifts their chin 1026 and tilts their head 1028 back (e.g., away from the field of view of the camera (e.g., camera 143, light sensor 164)) to position their face 1024 in an upward orientation. In response to detecting the user's face upward position 1024, the electronic device changes the Poo avatar to look up by tilting an upper portion 1034 of the Poo avatar away from the display (e.g., backward—away from the focal plane of the camera (e.g., camera 143, light sensor 164)), as shown in 1013A. In this backward tilt position, the electronic device displays the Poo avatar's tip 1040 positioned toward the rear of the Poo avatar 1000 to indicate the shifted position of the tip 1040 when the Poo avatar is changed to look up. Additionally, the electronic device modifies the Poo avatar's eyes 1032 to look up (e.g., by shifting the Poo avatar's pupils or irises 1032A toward the top of the avatar's eyes 1032), as shown at 1013A. While the electronic device tilts the Poo avatar's top portion 1034 and modifies the Poo avatar's eyes 1032 to look up, the electronic device leaves other characteristics of the Poo avatar unchanged. For example, the electronic device maintains the position of the avatar's mouth 1030 and fixes the position of the Poo avatar's bottom portion 1036 such that the electronic device shows the top portion 1034 rotating backward about an axis (e.g., the X-axis) extending along the width of the bottom portion 1036.

[0253] As shown in 1003B, the electronic device detects the user's face 1024 having a rotated downward position. For example, the user has lowered (or tucked) their chin 1026 and tilted their head 1028 forward (e.g., toward the focal plane of the camera (e.g., camera 143, light sensor 164)), positioning their face 1024 downward. In response to detecting the downward position of the user's face 1024, the electronic device changes the Poo avatar to look down by tilting the top portion 1034 of the Poo avatar in a direction toward the display (e.g., forward—toward the focal plane of the camera (e.g., camera 143, light sensor 164)), as shown in 1013B. In this forward tilted position, the electronic device displays the tip 1040 of the Poo avatar positioned toward the front of the Poo avatar to indicate the shifted position of the tip 1040 when the Poo avatar is changed to look down. Additionally, the electronic device modifies the Poo avatar's eyes 1032 to look down (e.g., by shifting the Poo avatar's pupils or irises 1032A toward the bottom of the avatar's eyes 1032), as shown at 1013B. While the electronic device tilts the Poo avatar's top portion 1034 and modifies the Poo avatar's eyes 1032 to look down, the electronic device leaves other features of the Poo avatar unchanged. For example, the electronic device maintains the position of the avatar's mouth 1030 and fixes the position of the Poo avatar's bottom portion 1036 such that the electronic device shows the top portion 1034 rotating forward about an axis (e.g., the X-axis) extending along the width of the bottom portion 1036.

[0254] As shown in 1003C, the electronic device detects that the user's position (specifically, the position of the user's face 1024 and head 1028) is in the downward rotated position shown in 1003B, but also shifts downward in the field of view of the camera (e.g., camera 143, light sensor 164) from the position shown in 1003B. In response, the electronic device displays the Pooh avatar 1000 in the forward tilt position shown in 1013B, but also shifts downward in the display area at 1013C to mirror the downward shift of the user in the field of view of the camera.

[0255] FIG. 10D illustrates an exemplary embodiment showing an electronic device modifying a Poo avatar in response to detecting changes in a user's physical features, including rotating an upper portion of the Poo avatar while keeping a lower portion of the Poo avatar stationary. A Poo avatar is shown having four display states (1014A, 1014B, 1014C, and 1014D), each corresponding to four detection states of the user (1004A, 1004B, 1004C, and 1004D). In each display state of FIG. 10D , the electronic device positions or modifies Poo avatar features in response to detecting the position or change in position of any one or more of the user's physical features, such as facial features, detected in the respective state. In the embodiment shown in FIG. 10D , the user's physical features include the user's mouth 1020, face 1024, head 1028, and shoulders 1021. In some embodiments, the tracked physical features may include other facial features, such as eyelids, irises, muscles, or muscle groups. In the embodiment of FIG. 10D, the Poo avatar features include the avatar's mouth 1030, the avatar's eyes 1032, the avatar's top portion 1034 (including the Poo avatar's tip 1040), and the avatar's bottom portion 1036.

[0256] As shown in 1004A, the electronic device detects the user's head 1028, and optionally the user's face 1024 (or various physical features including the face 1024), rotating to the user's right side while the user's shoulders 1021 remain forward. In response, the electronic device modifies the Poo avatar by twisting the top portion 1034 of the Poo avatar to the right (while keeping the bottom portion 1036 fixed) so that the twisting motion of the virtual avatar mirrors the rotational motion of the user's head 1028 and face 1024 to the right, as shown in 1014A. The electronic device also detects a smiling pose of the user's mouth 1020 and modifies the avatar's mouth 1030 to a smiling position. As shown in 1014A, the electronic device twists the top portion 1034 of the Poo avatar around an axis 1051 (e.g., the Y-axis) extending vertically through the center of the Poo avatar. As the electronic device twists the Poo avatar's top portion 1034 to the right, the electronic device also shifts the Poo avatar's tip 1040 to the left, moves the Poo avatar's eyes 1032 to the right, and increases the amount of wrinkles 1034A or layers formed in the Poo avatar's top portion 1034, thereby giving the Poo avatar a distorted appearance that includes a slight twist 1070 in the bottom portion 1036 that is modeled based on the interconnected relationship between the top portion 1034 and the bottom portion 1036. These Poo avatar modifications provide an animation effect that mimics the user's physical movements, even though parts of the avatar (e.g., the Poo avatar's tip 1040) do not necessarily correspond anatomically to the user's physical features.

[0257] 1004B and 1014B show a similar effect in which the electronic device detects the user's head 1028, and optionally the user's face 1024 (or various physical features including the face 1024), rotating to the user's left side while the user's shoulders 1021 remain forward. In response, the electronic device modifies the Poo avatar by twisting the top portion 1034 of the Poo avatar to the left (while keeping the bottom portion 1036 fixed) so that the twisting motion of the virtual avatar mirrors the rotational motion of the user's head 1028 and face 1024 to the left, as shown in 1014B. As shown in 1014B, the electronic device twists the top portion 1034 of the Poo avatar about an axis 1051 extending vertically through the center of the Poo avatar. As the electronic device twists the Poo avatar's upper portion 1034 to the left, the electronic device also shifts the Poo avatar's tip 1040 to the right, moves the Poo avatar's eyes 1032 to the left, and increases the amount of wrinkles 1034A or layers formed in the Poo avatar's upper portion 1034, thereby giving the Poo avatar a distorted appearance that includes a slight twist 1070 in the lower portion 1036 modeled based on the interconnected relationship between the upper portion 1034 and the lower portion 1036.

[0258] In some embodiments, the electronic device does not track the movement (e.g., rotational movement) or positioning of the user's shoulder 1021 so that the user can affect changes to the virtual avatar without having to maintain a fixed orientation or position in front of a camera (e.g., camera 143, light sensor 164). For example, as shown in 1004C, the user's shoulder 1021 is tilted or rotated to the user's right, while the lower portion 1036 of the Poo avatar remains fixed, as shown in 1014C. However, the electronic device detects the user's head 1028, and optionally the user's face 1024, rotating to the user's right side. Thus, as shown in 1014C, the electronic device appropriately modifies the Poo avatar as described above with respect to 1014A, without further modifying the Poo avatar in response to the user rotating the shoulder 1021. A similar effect is shown in 1004D and 1014D, where the user's shoulder 1021 tilts or rotates to the user's left along with the user's head 1028, and the electronic device modifies the Poo avatar as described above with respect to 1014B in response to the user rotating the shoulder 1021, without further modifying the Poo avatar (e.g., lower portion 1036).

[0259] FIG. 10E illustrates an exemplary embodiment showing an electronic device modifying a Poo avatar in response to detecting changes in a user's physical characteristics, including tilting an upper portion of the Poo avatar while maintaining a stationary lower portion. A Poo avatar is shown having four display states (1015A, 1015B, 1015C, and 1015D), each corresponding to one of the user's four detection states (1005A, 1005B, 1005C, and 1005D). In each display state, the electronic device positions or modifies the Poo avatar's features in response to detecting the position or change in position of any one or more of the user's physical characteristics, such as facial features, detected in the respective state. In the embodiment shown in FIG. 10E, the user's physical characteristics include the user's mouth 1020, face 1024, head 1028, shoulders 1021, eyes 1023, and neck 1025. In some embodiments, the tracked physical features may include other facial features such as eyelids, irises, muscles, muscle groups, etc. In the embodiment of Figure 10E, the Poo avatar features include the avatar's mouth 1030, the avatar's eyes 1032, the avatar's upper portion 1034 (including the Poo avatar's tip 1040 and middle portion 1031), and the avatar's lower portion 1036.

[0260] As shown at 1005A, the electronic device detects the user's head 1028, and optionally the user's face 1024 (or various physical features including the face 1024), tilting to the user's right while the user's shoulders 1021 remain forward. The electronic device also detects that the user's neck 1025 is tilted slightly to the user's right. In response, the electronic device modifies the Poo avatar by tilting the top portion 1034 of the Poo avatar to the right (the top portion 1034 of the Poo avatar includes a tip 1040 and a middle portion 1031) while keeping the bottom portion 1036 fixed, such that the tilting movement of the virtual avatar mirrors the rightward tilt of the user's head 1028 (and / or face 1024) and neck 1025, as shown at 1015A.

[0261] In addition to mirroring the direction of tilt, the electronic device modifies the virtual avatar to account for the varying degrees of tilt present in various physical features of the user, as shown in 1005A. For example, an upper portion of the user (e.g., the user's head 1028) tilts more than a lower portion of the user (e.g., the user's neck 1025). Thus, as shown in 1015A, the electronic device modifies the virtual avatar so that the amount of movement or tilt is greatest at the top of the virtual avatar (e.g., the tip 1040) and least at the bottom of the virtual avatar (e.g., the bottom portion 1036). In other words, the amount of tilt decreases from the top to the bottom of the virtual avatar, which is consistent with the changing degrees of tilt displayed to the user in 1005A. This is demonstrated in 1015A by the tip 1040 of the virtual avatar, which has a greater degree of tilt, the middle portion 1031, which has a lower degree of tilt than the tip 1040, and the bottom portion 1036, which has no tilt. These Poo avatar modifications provide animation effects that mimic the user's physical movements, even though parts of the avatar (e.g., the Poo avatar's tip 1040) do not necessarily correspond anatomically to the user's physical features. Additionally, the electronic device modifies the virtual avatar with varying degrees of tilt to mimic reduced range of motion of the user's physical features, such as when the user tilts their head 1028 and neck 1025.

[0262] 1005B and 1015B show a similar effect in which the electronic device detects the user's head 1028 and neck 1025 tilted to the user's left side. In response, the electronic device modifies the Poo avatar, as shown in 1015B, by tilting the top portion 1034 of the Poo avatar to the left at varying degrees of tilt (e.g., the tip 1040 is tilted more than the middle portion 1031) while keeping the bottom portion 1036 fixed, such that the tilting movement of the virtual avatar mirrors the leftward tilt of the user's head 1028 and neck 1025, as described in more detail above with respect to 1005A and 1015A.

[0263] As shown in 1005C, the electronic device detects the user's eyes 1023 (e.g., the irises or pupils of the user's eyes) shifted to the user's right side and a smiling facial expression formed by corners 1020A and 1020B of the user's mouth 1020 positioned in an upward pose. In response to detecting the rightward movement of the user's eyes 1023, the electronic device modifies the Poo avatar's eyes 1032 to look to the right (e.g., by shifting the Poo avatar's pupils or irises 1032A toward the right side of the avatar's eyes 1032), as shown in 1015C. In response to detecting one or both of the user's mouth corners 1020A and 1020B positioned in an upward pose, the electronic device modifies the display of the avatar's mouth 1030 to have a smiling facial expression, with the avatar's mouth 1030 having an open smiling position, as shown in 1015C. As shown at 1015C, the upper portion 1034 and the lower portion 1036 remain unchanged with respect to their respective neutral positions (shown at 1011A).

[0264] 1005D and 1015D illustrate a similar effect in which the electronic device detects a smiling expression on the user and the user's eye 1023 (e.g., the iris or pupil of the user's eye) moves to the user's left side. In response to detecting the leftward shift of the user's eye 1023, the electronic device alters the Poo avatar's eye 1032 to look to the left (e.g., by shifting the Poo avatar's pupil or iris 1032A toward the left side of the avatar's eye 1032), as shown in 1015D. In response to detecting one or both of corners 1020A and 1020B in an upward pose, the electronic device alters the display of the avatar's mouth 1030 to have a smiling expression, as described above with respect to 1015C. Similarly, the upper portion 1034 and lower portion 1036 remain unchanged in 1015D relative to their respective neutral positions (shown in 1011A and 1015C).

[0265] FIG. 10F illustrates an exemplary embodiment of an electronic device that modifies a Poo avatar in response to detecting a shift in a user's position within a field of view of a camera (e.g., camera 143, optical sensor 164). The modification of the Poo avatar involves shifting (e.g., translating) the Poo avatar in a direction corresponding to the change in the user's position within the field of view of the camera. The Poo avatar is shown having four display states (1016A, 1016B, 1016C, and 1016D) in four display regions, each corresponding to one of four detection states of the user (1006A, 1006B, 1006C, and 1006D). In each display state of FIG. 10F, the electronic device positions or modifies the Poo avatar in response to detecting a position or change in the user's position detected within the field of view of the camera as indicated by the user's respective state. In each of the four display states, the display state boundaries (eg, boundaries 1016A, 1016B, 1016C, and 1016D) represent the boundaries of the display area containing the virtual avatar.

[0266] As shown at 1006A, the electronic device detects a horizontally centered position of the user within the field of view of a camera (e.g., camera 143, light sensor 164). In response to detecting the horizontally centered position of the user within the field of view of the camera, the electronic device displays a pool avatar horizontally centered within the display area, as shown at 1016A.

[0267] In 1006B, the electronic device detects the user's position as being off-center (e.g., shifted or translated) to the right within the field of view of the camera (e.g., camera 143, light sensor 164). In other words, the user shifts to the user's left (e.g., shifted to the right relative to the camera's field of view), while remaining fully visible within the camera's field of view. In response to detecting the user's shifted position in 1006B, the electronic device shifts the horizontal position of the entire Poo avatar (including both the upper portion 1034 and the lower portion 1036) so that the Poo avatar is displayed in a left-shifted position, as shown in 1016B, to mirror the user's directional shift to the user's left. As shown in 1006B, the user is shifted to the left with their left shoulder 1021A near the right edge of the field of view. Thus, the electronic device displays the Poo avatar located near the left edge of the display area in 1016B, mirroring the direction of the user's shifted position within the camera's field of view. In some embodiments, the user's shifted position is mirrored by a shift of the virtual avatar in both direction and magnitude. In some embodiments, the user's shifted position is mirrored by a shift of the virtual avatar in direction only, and the magnitude of the virtual avatar's shift is adjusted (e.g., attenuated) to keep the virtual avatar's position within the bounds of the display area. Examples of such embodiments are described below with respect to 1006C, 1016C, 1006D, and 1016D.

[0268] In 1006C, the electronic device detects the user's position as being off-center (e.g., shifted or translated) far to the right within the field of view of the camera (e.g., camera 143, light sensor 164). In other words, the user is shifted far to the user's left (e.g., shifted to the right relative to the camera's field of view), but shifted such that the user's left shoulder 1021A is no longer within the camera's field of view. In response to detecting the user's significantly shifted position in 1006C, the electronic device shifts the horizontal position of the Poo avatar so that the entire Poo avatar (including both the upper portion 1034 and the lower portion 1036) is displayed in a left-shifted position with the Poo avatar's outermost edge (e.g., edge 1036A of the lower portion 1036) positioned entirely against the left boundary of the display area shown in 1016C. The shifting display of the Poo avatar in 1016C mirrors the direction of the user's shift to the left, but instead of shifting the Poo avatar so that part of the avatar extends beyond the display area in 1016C (as the user does in 1006C), the device positions the Poo avatar at the edge of display area 1016C. By maintaining the position of the virtual avatar within the display area (e.g., 1016A, 1016B, 1016C, and 1016D), even when part of the user is beyond the field of view of the camera (e.g., camera 143, light sensor 164), the electronic device allows the user to affect changes in the virtual avatar without having to maintain a fixed orientation or position in front of the camera.

[0269] A similar effect is shown in 1006D and 1016D. In 1006D, the electronic device detects that the user has shifted to the right (e.g., left within the camera's field of view) such that the user's right shoulder is no longer within the camera's field of view. In response to detecting the user's far-shifted position, the electronic device shifts the horizontal position of the Poo avatar so that the entire Poo avatar (including both the upper portion 1034 and the lower portion 1036) is displayed entirely in a right-shifted position with the Poo avatar's outermost edge (e.g., edge 1036B of the lower portion 1036) positioned against the right boundary of the display area shown in 1016D. As described above, by maintaining the position of the virtual avatar within display area 1016D, the electronic device allows the user to affect changes in the virtual avatar without having to maintain a fixed orientation or position in front of the camera, even when portions of the user are beyond the field of view of the camera (e.g., camera 143, light sensor 164).

[0270] FIG. 10G illustrates an exemplary embodiment of an electronic device that modifies a Poo avatar in response to detecting a shift in the position of a user's physical features within the field of view of a camera (e.g., camera 143, optical sensor 164). The modification of the Poo avatar includes shifting (e.g., translating) the Poo avatar in a direction corresponding to the shift in the position of the user's physical features within the field of view of the camera. The embodiment illustrated in FIG. 10G is similar to that described above with respect to FIGS. 10D-10F in that the electronic device tracks the movement and position (e.g., rotational and / or translational) of the user's head 1028, but does not track the movement or position of the user's shoulders 1021 and, optionally, the user's neck 1025. Furthermore, the embodiment illustrated in FIG. 10G is similar to the embodiment of FIG. 10F in that the modifications to the virtual avatar mirror the user's movements in direction, but not necessarily in magnitude. By implementing these techniques, the electronic device allows the user to affect changes in the virtual avatar without having to maintain a fixed orientation or position in front of a camera (e.g., camera 143, light sensor 164).

[0271] A Poo avatar is shown having two display states (1017A and 1017B) in two display regions, each of the two display states of the Poo avatar corresponding to two detection states of the user (1007A and 1007B). In each display state of FIG. 10G, the device positions or modifies the Poo avatar in response to detecting the position or change in position of the user's physical features detected within the camera's field of view as shown in the user's respective state. In each of the two display states, the display state boundary (e.g., the boundary of 1017A and 1017B) represents the boundary of the display region containing the virtual avatar.

[0272] In 1007A, the electronic device detects the user's head 1028 and optionally the user's neck 1025 shifted (e.g., translated) to the left within the field of view of the camera (e.g., camera 143, light sensor 164). In other words, the user's head 1028 and neck 1025 are shifted to the user's right (e.g., shifted to the left relative to the field of view of the camera). In response to detecting the shifted position of the user's head 1028 and optionally the user's neck 1025 at 1007A, the electronic device shifts the horizontal position of the entire Poo avatar (including both the upper portion 1034 and the lower portion 1036) so that the Poo avatar is displayed in a right-shifted position, as shown in 1017A, to mirror the shift of the user's head to the user's right.

[0273] A similar effect is shown in 1007B and 1017B. In 1007B, the electronic device detects the user's head 1028 and optionally the user's neck 1025 shifted (e.g., translated) to the right within the field of view of the camera (e.g., camera 143, light sensor 164). In other words, the user's head 1028 and neck 1025 shift to the user's left (e.g., shifted to the right relative to the field of view of the camera). In response to detecting the shifted position of the user's head 1028 and optionally the user's neck 1025 in 1007B, the electronic device shifts the horizontal position of the entire Poo avatar (including both the upper portion 1034 and the lower portion 1036) so that the Poo avatar is displayed in a left-shifted position, as shown in 1017B, to mirror the shift of the user's head to the user's left.

[0274] FIG. 10H illustrates an exemplary embodiment of an electronic device that modifies a Poo avatar in response to detecting a change in the position of a user's physical features within the field of view of a camera (e.g., camera 143, optical sensor 164). Modifying the Poo avatar includes increasing or decreasing the size of the Poo avatar and shifting (e.g., translating) the Poo avatar in a direction corresponding to the shift in the position of the user's physical features within the field of view of the camera. The Poo avatar is shown with four display states (1018A, 1018B, 1018C, and 1018D) in four display regions, each corresponding to one of the user's four detection states (1008A, 1008B, 1008C, and 1008D). In each display state of FIG. 10H, the electronic device positions or modifies the Poo avatar in response to detecting a position or change in position of the user's physical features detected within the field of view of the camera as indicated by the user's respective state. In each of the four display states, the display state boundaries (eg, boundaries 1018A, 1018B, 1018C, and 1018D) represent the boundaries of the display area containing the virtual avatar.

[0275] In 1008A, the electronic device detects that the user's head 1028 has shifted (e.g., translated) upward (e.g., the user is stretching their neck 1025 upward) relative to the shoulders 1021 within the field of view of the camera (e.g., camera 143, optical sensor 164). In response to detecting the upwardly shifted position of the user's head 1028 in 1008A, the electronic device shifts the vertical position of the entire Poo avatar (including both the upper portion 1034 and the lower portion 1036) so that the entire Poo avatar is displayed in an upwardly shifted position with the top edge of the Poo avatar (e.g., edge 1040A of tip 1040) located near the upper boundary of the display area shown in 1018A to mirror the upward shift of the user's head 1028 shown in 1008A.

[0276] In 1008B, the electronic device detects a downward shift (e.g., translation) of the user's head 1028 relative to the user's shoulder 1021 (e.g., the user shrugging their head 1028) within the field of view of the camera (e.g., camera 143, optical sensor 164). In response to detecting the downward shift of the user's head 1028 in 1008B, the electronic device shifts the vertical position of the entire Poo avatar (including both the upper portion 1034 and the lower portion 1036) so that the entire Poo avatar is displayed in a downward shifted position with the lowermost edge of the Poo avatar (e.g., edge 1036C of the lower portion 1036) located near the lower boundary of the display area as shown in 1018B, to mirror the downward shift of the user's head 1028 shown in 1008B.

[0277] At 1008C, the electronic device detects an increase in the size of the user's head 1028 within the field of view of the camera (e.g., camera 143, light sensor 164), for example, when the user's head 1028 is positioned closer to the camera. In response to detecting an increase in the size of the user's head 1028 at 1008C, the electronic device increases the overall size of the Poo avatar. In some embodiments, the electronic device increases the size of the Poo avatar in response to a detected change in the size of the user's head 1028 from one detected state (e.g., the neutral state of 1001A in FIG. 10A ) to another state (e.g., detected state 1008C). At 1018C, the electronic device increases the size of the Poo avatar to fill the display area without extending any portion of the Poo avatar beyond the boundaries of the display area. In some embodiments, the electronic device increases the size of the virtual avatar to create the impression that the avatar is very close to the electronic device's display (e.g., touchscreen 112, display 340, display 450, display 504).

[0278] For example, the electronic device increases the size of the Poo avatar in 1018C so that the tip 1040 of the Poo avatar is adjacent the top boundary of the display area of ​​1040A, the bottom portion 1036 of the Poo avatar is adjacent the bottom boundary of the display area of ​​1036C, the left edge of bottom portion 1036 is near the left boundary of the display area of ​​1036A, and the right edge of bottom portion 1036 is near the right boundary of the display area of ​​1036B. In some embodiments as shown in 1018C, the electronic device proportionally increases the size of the Poo avatar so that the relative positions of various avatar features (e.g., the avatar's eyes 1032, mouth 1030, top portion 1034, and bottom portion 1036) are not distorted relative to the shape of the Poo avatar. For example, when the electronic device increases the size of the Pua avatar at 1018C, the avatar's eyes 1032, mouth 1030, top portion 1034 (including tip 1040), and bottom portion 1036 also increase in size, but otherwise remain unchanged.

[0279] In 1008D, the electronic device detects a decrease in the size of the user's head 1028 within the field of view of the camera (e.g., camera 143, light sensor 164), for example, when the user's head 1028 is positioned farther from the camera. In response to detecting a decrease in the size of the user's head 1028 in 1008D, the electronic device decreases the overall size of the Poo avatar. In some embodiments, the electronic device decreases the size of the Poo avatar in response to a detected change in the size of the user's head 1028 from one detected state (e.g., the neutral state of 1001A in FIG. 10A ) to another state (e.g., detected state 1008D). In some embodiments, such as 1018D, the electronic device decreases the size of the Poo avatar to create the impression that the virtual avatar is positioned farther from the electronic device's display (e.g., touchscreen 112, display 340, display 450, display 504).

[0280] For example, the electronic device reduces the size of the Poo avatar in 1018D such that the tip 1040 of the Poo avatar is located away from the top boundary of the display area in 1040A, the bottom portion 1036 of the Poo avatar is located away from the bottom boundary of the display area in 1036C, the left edge of the bottom portion 1036 is located away from the left boundary of the display area in 1036A, and the right edge of the bottom portion 1036 is located away from the right boundary of the display area in 1036B. In some embodiments as shown in 1018D, the electronic device proportionally reduces the size of the Poo avatar such that the relative positions of the various avatar features (e.g., the avatar's eyes 1032, mouth 1030, top portion 1034, and bottom portion 1036) are not distorted relative to the shape of the Poo avatar. For example, when the electronic device reduces the size of the Pua avatar at 1018D, the avatar's eyes 1032, mouth 1030, top portion 103...

Claims

1. 1. A method comprising:

1. An electronic device in communication with one or more cameras and a display device, comprising: displaying a representation of a virtual avatar via a display device, the representation of the virtual avatar including a virtual avatar that responds to changes in one or more physical features of a user's face within a field of view of the one or more cameras; detecting a first configuration of one or more physical features of the user, including one or more facial physical features of the user, while displaying a representation of the virtual avatar; while detecting the first configuration of one or more physical characteristics of the user; modifying a representation of the virtual avatar to include a first animation effect in accordance with a determination that the first configuration of the one or more physical features satisfies the animation criterion, the animation criterion including a requirement that the first configuration be maintained for at least a first threshold time to satisfy the animation criterion; refraining from modifying a representation of the virtual avatar to include the first animation effect in accordance with the first configuration of one or more physical features that do not satisfy the animation criterion. And, Detecting a change in a first physical feature of the face; in response to detecting a change in a first physical feature of the face, modifying a first avatar characteristic based on the change in the first physical feature of the face while displaying the first animation effect; A method comprising:

2. the representation of the virtual avatar includes one or more avatar characteristics; The method further includes, in response to detecting the first configuration of one or more physical characteristics of the user, modifying at least one of the one or more avatar characteristics based on the first configuration of the one or more physical characteristics of the user. The method of claim 1.

3. the first animation effect includes visually introducing one or more virtual objects distinct from the displayed virtual avatar. The method according to claim 1 or 2.

4. when the first configuration of the one or more physical features includes a first predetermined relative spatial positioning of two or more of the user's physical features from a set of two or more predetermined relative spatial positioning of the user's physical features, the first configuration of the one or more physical features satisfies the animation criterion and the one or more virtual objects are determined based on the first predetermined relative spatial positioning. The method according to claim 3.

5. the first predetermined relative spatial positioning of two or more of the physical features of the user corresponds to a grimacing expression formed by at least an upper lip and a lower lip of the user's face and a closed jaw on the face, and the one or more virtual objects include one or more hearts; The method according to claim 4.

6. the first predetermined relative spatial positioning of two or more of the physical features of the user corresponds to a sad facial expression formed by at least first and second corners of the user's mouth being lower than a center of the mouth, and the one or more virtual objects include one or more tears; The method according to claim 4.

7. the first predetermined relative spatial positioning of two or more of the physical features of the user corresponds to a frown expression formed by at least two eyebrows on the user's face having a lowered position, and the one or more virtual objects include one or more storm clouds. The method according to claim 4.

8. the first predetermined relative spatial positioning of two or more of the physical features of the user corresponds to a staring expression formed by narrowing at least two eyes of the user's face, and the one or more virtual objects include one or more laser beams. The method according to claim 4.

9. and modifying the representation of the virtual avatar to include the first animation effect further comprises displaying an animation of the one or more virtual objects moving relative to the virtual avatar.

9. The method according to any one of claims 3 to 8.

10. animating the one or more virtual objects moving relative to the virtual avatar includes displaying animated movement of the one or more virtual objects from a start position to a destination position, where for each of the one or more virtual objects, the destination position is assigned a predetermined position relative to the virtual avatar based on a distribution function; 10. The method of claim 9.

11. and wherein the animation of the one or more virtual objects moving relative to the virtual avatar includes movement having a direction based on a displayed orientation of the virtual avatar.

11. The method according to claim 9 or 10.

12. the one or more virtual objects are a plurality of virtual objects emitted at time intervals selected based on a distribution function; 12. The method according to any one of claims 3 to 11.

13. the virtual avatar corresponds to a first virtual avatar template of a plurality of virtual avatar templates, and visual characteristics of the first animation effect are based on the first virtual avatar template.

13. The method according to any one of claims 1 to 12.

14. after modifying a representation of the virtual avatar to include the first animation effect; and modifying a representation of the virtual avatar to include a second animation effect in accordance with a determination that the first configuration of one or more physical features satisfies additional animation criteria, the additional animation criteria including a requirement that the first configuration be maintained for at least a second threshold time after modifying the representation of the virtual avatar to include the first animation effect to satisfy the additional animation criteria.

14. The method according to any one of claims 1 to 13.

15. 15. A method for causing a computer to carry out the method according to any one of claims 1 to 14. Computer program.

16. 1. An electronic device comprising: A memory for storing a computer program according to claim 15; one or more processors capable of executing the computer programs stored in the memory; Equipped with the electronic device is configured to communicate with a display device and one or more cameras; Electronic devices.

17. 1. An electronic device configured to communicate with a display device and one or more cameras, comprising: Means for carrying out the method according to any one of claims 1 to 14, Electronic devices.