Displaying custom electronic message graphics

By generating custom graphics and combining user identifiers and scene identifiers, the problem of the lack of diversity in traditional emojis is solved, and personalized graphic representation and interactive experience are achieved.

CN115526947BActive Publication Date: 2026-08-04SNAP INC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SNAP INC
Filing Date
2017-07-19
Publication Date
2026-08-04

AI Technical Summary

Technical Problem

Traditional emojis lack diversity and cannot personalize a user's appearance, gender, or ethnicity, resulting in visually identical conversations and a lack of identification of participants' visual personalities.

Method used

By generating custom graphics, combining user identifiers and scene identifiers, a custom graphic including an avatar is generated and displayed within the e-message.

Benefits of technology

It enables personalized graphic representation, generating unique graphics based on user information and scenarios, thus enhancing the visual individuality and interactive experience of electronic messages.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115526947B_ABST
    Figure CN115526947B_ABST
Patent Text Reader

Abstract

A system according to various example embodiments includes a processor and a user interface coupled to the processor, the user interface including an input device and a display screen. The system further includes a memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations including: receiving, via the input device of the user interface, an electronic message including a scene identifier for a graphic; retrieving a user identifier for a user associated with the system; generating a custom graphic based on the scene identifier and the user identifier; and presenting the custom graphic within the electronic message via the display screen of the user interface.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of Chinese patent application No. 201780057353.7, entitled “Displaying Custom Electronic Message Graphics” (filed on July 19, 2017).

[0002] Priority requirements

[0003] This application claims priority to U.S. Patent Application Serial No. 15 / 290,941, filed October 11, 2016, and also to U.S. Patent Application Serial No. 15 / 290,943, filed October 11, 2016, and each of them claims priority to U.S. Provisional Patent Application No. 62 / 364,190, filed July 19, 2016. Priority to each of these is hereby claimed, and the entire contents of each are incorporated herein by reference. Background Technology

[0004] The popularity of electronic messaging, especially instant messaging, continues to grow. Users increasingly use emojis (ideograms and icons) within electronic messages such as text and email, reflecting a global demand for more intuitive communication. However, traditional emojis and similar graphics are often generic and lack diversity: each individual user is represented by the same facial combination, regardless of appearance, gender, or ethnicity. Furthermore, every conversation using traditional emojis looks identical, and there is no visual personality or cue to identify participants or differentiate one interaction from the next. Embodiments of this disclosure address these and other problems. Summary of the Invention

[0005] According to one aspect of this disclosure, a system for displaying custom graphics is provided, comprising: a processor; and a memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations including: receiving, via a user interface, the content of an electronic message including a scene identifier for the graphics; generating a custom graphics comprising an avatar and based on the scene identifier and a user identifier associated with a user; and causing the custom graphics to be displayed on a display screen within the electronic message.

[0006] According to another aspect of this disclosure, a computer-implemented method for displaying custom graphics is provided, comprising: receiving, by a processor, an electronic message including a scene identifier for the graphics via a user interface; generating the custom graphics, the custom graphics including an avatar and based on the scene identifier and a user identifier associated with a user; and causing the custom graphics to be displayed on a display screen of a client device within the electronic message.

[0007] According to another aspect of this disclosure, a non-transitory computer-readable medium is provided that stores instructions which, when executed by a computer system, cause the computer system to perform operations including: receiving, via a user interface, an electronic message including a scene identifier for a graphic; generating a custom graphic including an avatar and based on the scene identifier and a user identifier associated with a user; and causing the custom graphic to be displayed on a display screen within the electronic message. Attached Figure Description

[0008] In the accompanying drawings, the figures are not necessarily drawn to scale, and the same labels can describe similar components in different figures. The same labels with different letter suffixes can represent different instances of similar components. Some embodiments are shown in the figures by way of example and not limitation.

[0009] Figure 1 This is a block diagram illustrating an example messaging system for exchanging data (e.g., messages and associated content) over a network.

[0010] Figure 2 This is a block diagram illustrating further details of a messaging system according to an exemplary embodiment.

[0011] Figure 3 This is a schematic diagram illustrating data that can be stored in a database of a messaging server system according to various exemplary embodiments.

[0012] Figure 4A and Figure 4B This is an exemplary flowchart of a process according to various aspects of this disclosure.

[0013] Figures 5A-5F It is shown Figures 4A-4B Screenshots of the steps of the method described in the document.

[0014] Figure 6 This is a block diagram illustrating a representative software architecture that can be used in conjunction with the various hardware architectures described herein.

[0015] Figure 7 This is a block diagram illustrating components of a machine capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any one or more methods discussed herein, according to some exemplary embodiments. Detailed Implementation

[0016] The following description includes systems, methods, techniques, instruction sequences, and computer program products embodying illustrative embodiments of the present disclosure. In the following description, numerous specific details are set forth for purposes of explanation in order to provide an understanding of various embodiments of the subject matter of the invention. However, it will be apparent to those skilled in the art that embodiments of the subject matter of the invention can be practiced without these specific details. Generally, well-known examples of instructions, protocols, structures, and techniques need not be shown in detail.

[0017] Furthermore, embodiments of this disclosure improve the functionality of electronic messaging software and systems by generating and displaying custom graphics within electronic messages. Custom graphics can be generated based on a user identifier and one or more context identifiers. For example, a user can enter one or more traditional emojis, text, and other inputs within an electronic message (such as an SMS text or email), and the system will generate a custom graphic within the electronic message to replace the input. The size of the custom image can be set based on the location of the input within the message, allowing for the automatic generation and presentation of smaller or larger images to the user.

[0018] In some embodiments, custom graphics can be generated and presented within electronic messages based on sensor information (such as location information, motion information, light levels, temperature, etc.) obtained from sensor components of a mobile device. Custom graphics can also be generated based on information about the user and / or information about the user's mood obtained from social networks. Custom graphics can be generated using such information along with personalized avatars for the user (and the user's friends). For example, the system can determine from calendar information and geolocation information that the user is celebrating a birthday at an Italian restaurant with two friends and generate a graphic showing the three friends smiling as they share a huge bowl of spaghetti. In another example, the system can determine from previous electronic messages and social media posts that the user is currently suffering from the flu at home and generate a custom graphic showing the user lying in bed with a box of tissues and a thermometer in his / her mouth in an unpleasant state. In this context, "avatar" can include any image similar to (or otherwise associated with) the user. Furthermore, the use of user-associated avatars through embodiments of this disclosure provides a personalization standard for electronic messages that is not possible with traditional UNICODE emojis or other standard characters.

[0019] Figure 1This is a block diagram illustrating an example messaging system 100 for exchanging data (e.g., messages and associated content) over a network. The messaging system 100 includes multiple client devices 102, each managing multiple applications including a messaging client application 104. Each messaging client application 104 is communicatively coupled to other instances of the messaging client application 104 and a messaging server system 108 via a network 106 (e.g., the Internet). As used herein, the term "client device" may refer to any machine that interfaces with a communication network (such as network 106) to obtain resources from one or more server systems or other client devices. Client devices may be, but are not limited to, mobile phones, desktop computers, laptop computers, portable digital assistants (PDAs), smartphones, tablet computers, ultrabooks, netbooks, notebook computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, or any other communication device that a user can use to access the network.

[0020] exist Figure 1 In the example shown, each messaging client application 104 is able to communicate and exchange data with another messaging client application 104 and messaging server system 108 via network 106. The data exchanged between messaging client applications 104 and between messaging client applications 104 and messaging server system 108 includes functions (e.g., commands to invoke functions) and payload data (e.g., text, audio, video, or other multimedia data).

[0021] Network 106 may include, or be in combination with, the following: ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a Common Old-Style Telephone Service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks. For example, a network or a portion of a network may include a wireless or cellular network, and the coupling may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or other types of cellular or wireless coupling. In this example, coupling can be implemented using any of various types of data transmission technologies, such as Single Carrier Radio Transmission (1xRTT), Evolved Data Optimization (EVDO), General Packet Radio Service (GPRS), Evolution Enhanced Data Rate (EDGE) for GSM, the 3rd Generation Partnership Project (3GPP) including 3G, 4G networks, Universal Mobile Telecommunications System (UMTS), High-Speed ​​Packet Access (HSPA), Global Microwave Access Interoperability (WiMAX), Long Term Evolution (LTE) standards, other standards defined by various standards-setting organizations, other remote protocols, or other data transmission technologies.

[0022] Messaging server system 108 provides server-side functionality to a specific messaging client application 104 via network 106. While some functions of messaging system 100 are described herein as being performed by messaging client application 104 or by messaging server system 108, it will be understood that the location of certain functions within messaging client application 104 or messaging server system 108 is a design choice. For example, it is technically preferred that certain technologies and functions be initially deployed within messaging server system 108, but that technology and functions are later migrated to messaging client application 104, in which client device 102 has sufficient processing power.

[0023] The messaging server system 108 supports various services and operations provided to the messaging client application 104. These operations include sending data to and receiving data from the messaging client application 104, and processing data generated by the messaging client application 104. As an example, this data may include message content, client device information, geolocation information, media annotations and overlays, message content persistence conditions, social network information, and live event information. Data exchange within the messaging system 100 is invoked and controlled via functions available in the user interface (UI) of the messaging client application 104.

[0024] Now turning to message server system 108, application programming interface (API) server 110 is coupled to application server 112 and provides a programming interface to application server 112. Application server 112 is communicatively coupled to database server 118, which provides access to database 120, in which data associated with messages processed by application server 112 is stored.

[0025] Specifically, the application programming interface (API) server 110 handles the receiving and sending of message data (e.g., commands and message payloads) between the client device 102 and the application server 112. Specifically, the API server 110 provides a set of interfaces (e.g., routines and protocols) that can be invoked or queried by the messaging client application 104 to call functions of the application server 112. Application Programming Interface (API) server 110 exposes various functions supported by application server 112, including account registration, login functionality, sending messages from one messaging client application 104 to another messaging client application 104 via application server 112, sending media files (e.g., images or videos) from messaging client application 104 to messaging server application 114, and setting media data collections (e.g., stories) that may be accessed by another messaging client application 104, obtaining the friend list of the user of client device 102, obtaining such collections, obtaining messages and content, adding and deleting friends in the social graph, the location of friends within the social graph, and opening and applying events (e.g., related to messaging client application 104).

[0026] Application server 112 manages multiple applications and subsystems, including messaging server application 114, image processing system 116, and social networking system 122. Messaging server application 114 implements various messaging techniques and functions, particularly those related to the aggregation and other processing (e.g., text and multimedia content including images and video clips) of content received from multiple instances of messaging client application 104. As will be described in further detail, text and media content from multiple sources can be aggregated into content collections (e.g., referred to as stories or galleries). Messaging server application 114 then makes these collections available to messaging client application 104. Given the hardware requirements for such processing, messaging server application 114 can also perform other processor- and memory-intensive data processing on the server side.

[0027] Application server 112 also includes an image processing system 116, which is dedicated to performing various image processing operations, typically relating to images or videos received within the payload of messages at message server application 114.

[0028] Social networking system 122 supports various social networking features and services, and makes these features and services available to messaging server application 114. To this end, social networking system 122 maintains and accesses entity graph 304 within database 120. Examples of features and services supported by social networking system 122 include identifiers of other users in messaging system 100 who have a relationship with a particular user or who are “followed” by a particular user, as well as identifiers of other entities and followers of a particular user.

[0029] Application server 112 is communicatively coupled to database server 118, which provides easy access to database 120, where data associated with messages processed by message server application 114 is stored.

[0030] Some embodiments may include one or more wearable devices, such as a pendant having an integrated camera integrated with, communicating with, or coupled to the client device 102. Any desired wearable device may be used in conjunction with embodiments of this disclosure, such as watches, glasses, goggles, headphones, wristbands, earplugs, clothing (such as hats or jackets with integrated electronics), clip-on electronics, and / or any other wearable device.

[0031] Figure 2 This is a block diagram illustrating further details of a messaging system 100 according to an exemplary embodiment. Specifically, the messaging system 100 is shown to include a messaging client application 104 and an application server 112, which in turn includes multiple subsystems, namely an ephemeral timer system 202, a collection management system 204, and an annotation system 206.

[0032] The short-time timer system 202 is responsible for implementing temporary access to content permitted by the messaging client application 104 and the messaging server application 114. To this end, the short-time timer system 202 includes multiple timers that selectively display and enable access to messages and associated content via the messaging client application 104 based on the duration and display parameters associated with a message or message set (e.g., a SNAPCHAT story).

[0033] The collection management system 204 is responsible for managing media collections (e.g., collections of text, images, video, and audio data). In some examples, collections of content (e.g., messages, including images, videos, text, and audio) can be organized into “event libraries” or “event stories.” Such collections can be available for a specified time period, such as the duration of the event the content relates to. For example, content related to a concert can be provided as a “story” for the duration of the concert. The collection management system 204 can also be responsible for publishing icons that notify the user interface of the messaging client application 104 of the existence of a specific collection.

[0034] The collection management system 204 further includes a curatorial interface 208, which allows the collection manager to manage and curate specific collections of content. For example, the curatorial interface 208 enables event organizers to curate collections of content related to a specific event (e.g., removing inappropriate content or redundant messages). Additionally, the collection management system 204 employs machine vision (or image recognition technology) and content rules to automatically curate content collections. In some embodiments, users may be paid to include user-generated content in the collection. In such cases, the curatorial interface 208 operates to automatically pay such users for using its content.

[0035] Annotation system 206 provides various functions that enable users to annotate or otherwise modify or edit media content associated with messages. For example, annotation system 206 provides functions related to the generation and publication of media overlays for messages processed by messaging system 100. Annotation system 206 can operablely provide media overlays (e.g., SNAPCHAT filters) to messaging client application 104 based on the geographic location of client device 102. In another example, annotation system 206 can operablely provide media overlays to messaging client application 104 based on other information such as the social network information of the user of client device 102. Media overlays may include audio and visual content and visual effects. Examples of audio and visual content include images, text, logos, animations, and sound effects. Examples of visual effects include color overlays. Audio and visual content or visual effects can be applied to media content items (e.g., photos) at client device 102. For example, media overlays include text that can be overlaid on a photo generated by client device 102. In another example, media overlays include identifiers for location overlays (e.g., Venice Beach), the name of the live event, or the name of a merchant overlay (e.g., Beach Cafe). In yet another example, annotation system 206 uses the geographic location of client device 102 to identify media overlays that include the name of a merchant at the geographic location of client device 102. Media overlays may include other tags associated with the merchant. Media overlays may be stored in database 120 and accessed through database server 118.

[0036] In one exemplary embodiment, annotation system 206 provides a user-based publishing platform that allows users to select a geographic location on a map and upload content associated with that location. Users can also specify the environment in which specific media overlays should be provided to other users. Annotation system 206 generates media overlays that include the uploaded content and associates the uploaded content with the selected geographic location.

[0037] In another exemplary embodiment, annotation system 206 provides a merchant-based publishing platform that enables merchants to select specific media coverages associated with geographic locations via a bidding process. For example, annotation system 206 associates the media coverage of the highest-bidding merchant with the corresponding geographic location for a predefined amount of time.

[0038] Figure 3 This is a schematic diagram 300 illustrating data 300 that may be stored in a database 120 of a messaging server system 108 according to certain exemplary embodiments. Although the contents of the database 120 are shown as including multiple tables, it will be understood that the data may be stored in other types of data structures (e.g., as an object-oriented database).

[0039] Database 120 includes message data stored in message table 314. Entity table 302 stores entity data, including entity diagram 304. Entities maintaining records in entity table 302 can include individuals, company entities, organizations, objects, locations, events, etc. Regardless of type, any entity related to the data stored in messaging server system 108 can be an identifiable entity. Each entity is provided with a unique identifier and an entity type identifier (not shown).

[0040] Entity Graph 304 also stores information about the relationships and associations between entities. For example, such relationships could be social, based on professional interests (e.g., working in a shared company or organization), or based on activities.

[0041] Database 120 also stores annotation data (e.g., in the form of filters) in annotation table 312. Filters stored in annotation table 312 are associated with and applied to videos (whose data is stored in video table 310) and / or images (whose data is stored in image table 308). In one example, a filter is an overlay displayed as an overlay on an image or video during presentation to the recipient user. Filters can be of various types, including user-selected filters from a filter gallery presented to the sending user by messaging client application 104 when the sending user is composing a message. Other types of filters include geolocation filters (also known as geographic filters), which can be presented to the sending user based on geographic location. For example, based on geographic location information determined by the GPS unit of client device 102, messaging client application 104 can present neighborhood- or location-specific geolocation filters within the user interface. Another type of filter is a data filter, which can be selectively presented to the sending user by messaging client application 104 based on other input or information collected by client device 102 during the message creation process. Examples of data filters include the current temperature at a specific location, the current speed at which the sending user is traveling, the battery life of the client device 102, or the current time.

[0042] Other annotation data that can be stored in image table 308 is so-called "shot" data. A "shot" can be a real-time special effect and sound that can be added to an image or video.

[0043] As described above, video table 310 stores video data, and in one embodiment, the video data is associated with messages that are recorded in message table 314. Similarly, image table 308 stores image data associated with messages in which message data is stored in entity table 302. Entity table 302 can associate various annotations from annotation table 312 with various images stored in image table 308 and various videos stored in video table 310.

[0044] Story table 306 stores data about collections of messages and associated images, videos, or audio data, compiled into collections (e.g., SNAPCHAT stories or galleries). The creation of a specific collection can be initiated by a specific user (e.g., individual users whose records are maintained in entity table 302). A user can create a "personal story" in the form of a collection of content that has already been created and sent / broadcast by that user. For this purpose, the user interface of messaging client application 104 can include user-selectable icons to allow the sending user to add specific content to his or her personal story.

[0045] Collections can also constitute "live stories," which are collections of content from multiple users, created manually, automatically, or using a combination of manual and automated techniques. For example, a "live story" can form a curated flow of user-submitted content from different locations and events. For instance, options can be presented to a user (whose client device has location services enabled and who is at a public location event at a specific time) via the user interface of messaging client application 104 to contribute content to a specific live story. Live stories can be identified by messaging client application 104 based on the user's location. The end result is a "live story" told from a community perspective.

[0046] Another type of content collection is called a "location story," which allows a user (whose client device 102 is located in a specific geographic location, such as a college or university campus) to contribute to a specific collection. In some embodiments, contributing to a location story may require a second level of authentication, verifying that the end user belongs to a specific organization or other entity (e.g., a student on a university campus).

[0047] Embodiments of this disclosure can generate and render custom images for use in electronic messages such as SMS or MMS text messages and emails. Custom images can also be used in conjunction with SNAPCHAT stories, SNAPCHAT filters, and short message delivery features discussed herein.

[0048] Figure 4A Exemplary processes according to various aspects of this disclosure are described. In this example, method 400 includes receiving the content of an electronic message (405), obtaining a user identifier (410), generating a custom graphic based on the electronic message content and the user identifier (415), presenting the custom graphic (420), and sending an electronic message containing the custom graphic (425). The steps of method 400 may be performed in whole or in part, and may be combined with other methods (such as... Figure 4B Method 430) can be performed by some or all of the steps, and can be performed by any number of different systems, such as Figure 1 and / or Figure 7 The system described in [the document].

[0049] In some embodiments, custom graphics can be generated to replace or supplement emoji characters / icons defined by the UNICODE standard. For example, refer to Figure 5A Based on the content of the electronic message input by the user (e.g., via an input device), a scene identifier 510 (emoji character) is obtained (405) to be combined with a user identifier (“jacob”) 505. Based on the user identifier 505 and the scene identifier 510, the system generates a custom graphic 515 (415). In this example, the custom graphic 515 is a personalized avatar of the user mimicking the winking and tongue-out emoji in the scene identifier. As used herein, “electronic message” can mean any message in electronic form, such as email, Short Message Service (SMS) messages, Multimedia Messaging Service (MMS) messages, Instant Messaging (IM), Internet Relay Chat (IRC) messages, and any other form of real-time, near real-time, synchronous, or asynchronous electronic message format.

[0050] In some embodiments, a custom graphic 515 is pre-generated and rendered (425) in the graphics menu, such as Figure 5F The bottom of screenshot 580 is shown. Alternatively or concurrently, in response to user input in an electronic message, a custom graphic 515 can be generated in real-time or near real-time. For example, user input of UNICODE characters (such as emojis) and / or text can be used to generate a custom graphic that replaces the user input within the text message. For example, see Reference Figure 5B The system can obtain (405) a smiling facial expression scene identifier 515 from the user's input in the electronic message, automatically obtain the user identifier (410) stored in the device the user is using to input the message, and generate (415) a custom graphic of the user's smiling avatar 520, which can be presented in the electronic message instead of the original generic UNICODE character 515, thereby replacing the user's original input.

[0051] Embodiments of this disclosure can obtain (405) multiple scene identifiers. For example, refer to Figure 5C Users can input two scene identifiers (winking emoji 525 and flying coins 530) as inputs into an e-message, which are used (in combination with the user's obtained user identifier) ​​to generate (415) a custom graphic of the user's avatar blinking as the coins are tossed.

[0052] In addition to acquiring UNICODE characters (such as emojis) as scene identifiers, embodiments of this disclosure can also acquire and analyze text, other images, and videos to identify scene identifiers. For example, in Figure 5D In one embodiment, the user inputs a surprised emoji 540 and the word "tank" 545, which the system uses to generate a custom graphic of the user's avatar sitting on a tank 550. In other embodiments, the user can insert an image or video of a tank instead of the word "tank," and the system can perform image recognition analysis on the input to identify the tank and generate the custom graphic 550.

[0053] (410) A user identifier can be obtained from input within an electronic message. For example, a user can enter his or her name via the user interface of their computing device to generate a custom image based on their own avatar, and can enter text, images, or videos of another person (e.g., a friend of the user) to generate a custom image using the friend's avatar. Alternatively or alternatively, a user identifier can be obtained based on information stored within the user's computing device. Any such identifier can be used, such as the user's full name or the username associated with the user. The user identifier can also be an identifier associated with the user's computing device, such as a Unique Device Identifier (UDID) or an Advertising Identifier (IDFA).

[0054] Embodiments of this disclosure can generate (415) custom graphics based on any other desired criteria, such as the positioning of a graphic in an electronic message. Similarly, the rendering (420) of a custom graphic can be based on its size. Reference now... Figure 5E Custom graphics presented separately (such as graphic 555) may be displayed as relatively larger than custom graphics presented inline at the same size as the surrounding text (such as graphic 560) or as a graphic presented at the beginning or end of a line of text (such as graphic 565). In some embodiments, custom graphics may also be displayed as a complete image (such as graphic 570). The size of the custom graphics may be automatically determined by the system based on user input or a combination of both.

[0055] Refer again Figure 4A Electronic messages containing custom graphics can be sent (425) via the Internet for distribution to one or more recipients. The computer system performing method 400 can communicate with any number of other systems and devices, including servers. Various communication protocols and media can be used to perform such communication, including those described above with reference to network 106. In some embodiments, for example, communication with a server may include sending an image modified using live data to the server. Figure 7 In the exemplary system 700 shown, such communication can be implemented using a communication module 740.

[0056] Electronic messages can also be sent (425) directly or via a network other than the Internet to another user's device. Additionally, electronic messages, custom graphics, or both can be presented to the user and / or recipient for a predetermined period of time, as discussed in more detail above with reference to short messages.

[0057] Custom graphics can be generated based on a variety of different information and can be used in a variety of different applications. Figure 4B Another exemplary process according to various aspects of this disclosure is described. In this example, method 430 includes obtaining sensor information (435) from sensor components coupled to a computer system, obtaining avatar information associated with a user of the computer system (440), obtaining information about the user (445), identifying the user's emotions based on the obtained user information (450), receiving information about the user's contacts (455), and generating a custom graphic (460). Method 430 further includes presenting the custom graphic (465), receiving edits to the custom graphic (470), and modifying the custom graphic based on the received edits (475). Method 430 also includes receiving a selection of the custom graphic (480), generating (485) and presenting (490) a custom response image based on the selection, and sending the custom response image (495).

[0058] In various embodiments, custom graphics can be generated based on data collected from various sensor components (460), including, for example, those referenced below. Figure 7 The described components include biometric component 730, motion component 734, environmental component 736, and / or positioning component 738, as well as other sensor components. In one exemplary embodiment, the sensor components include a biometric component for detecting facial expressions of a user of a computing device, and wherein generating custom graphics (460) includes recognizing the user's emotion (450) based on facial expressions (e.g., happiness, sadness, excitement, etc.) and generating graphics (e.g., facial expressions on the user's avatar) based on the recognized emotion. Such sensor components may be integrated with or locally coupled to a computing device used by a user to prepare electronic messages. Alternatively or additionally, such sensor components may be remotely accessed by the computing device via a network (e.g., the Internet).

[0059] The system can obtain avatar information (440) associated with a user of the computing device, a user contact, or other individual. As described above, the avatar of a user or individual can be any image resembling or otherwise associated with the user or individual. In addition to images, the obtained avatar information can include any desired characteristics of the user, such as the user's age, height, weight, interests, preferences (e.g., regarding clothing), and such characteristics can be used to generate or modify the user / individual's avatar image. In various embodiments, the avatar information can include any number of different images associated with the user, and generating (460) a custom graphic can include at least a portion of such images within the custom graphic. For example, the user's avatar information (e.g., images of the user's face from different angles and with different expressions) can be used to generate a custom image, such as a user riding a tank ( Figure 5D ) or playing football ( Figure 5F ).

[0060] In addition to detecting the user's emotions via biometric components (as described above), the system can also identify the user's emotions (450) based on information about the user that can be obtained from various sources (445). Any such information can be obtained from any desired source, such as the user's social network entries, the user's microblog entries, the user's electronic communications, or other sources.

[0061] For example, the system can identify such entries via the Internet and perform keyword searches on these entries to identify words indicating the user's emotions, such as "sad," "depressed," "happy," etc. Similarly, the system can perform image recognition analysis on photos posted by the user (e.g., on the user's social network pages) and identify facial expressions in a manner similar to facial recognition analysis used based on the aforementioned biometric components. Based on such entries, the system can generate custom graphics (460) reflecting the user's emotions, such as a graphic showing the user's avatar frowning in response to determining that the user is sad or depressed, or a graphic showing the user's avatar smiling or laughing in response to determining that the user is happy or excited. Alternatively or additionally, the system can determine the user's emotions based on direct input from the user himself / herself. For example, the user can type in input (e.g., via an input device on the user's computing device's user interface) to select the user's emotion. Such input can take various forms, such as a textual description of the user's emotion, and / or a graphic selected by the user to indicate his / her emotion (e.g., a happy face indicating the user is happy).

[0062] In addition to information about a user of a computer system performing functions associated with embodiments of this disclosure, the system may further obtain or receive information (455) about the user's contacts for generating (460) a custom graphic. In one exemplary embodiment, a user's contact is identified as associated with an electronic message (e.g., as a sender or receiver), and information about the contact is obtained (455) by the system. Such information may be obtained from the computing device itself (e.g., from an electronic address book) and from external sources (such as a social network page associated with the contact (or containing information about the contact—such as from a social network page from the user)) or the contact's computing device. In some cases, the contact's information may include the contact's own personalized avatar information (e.g., an image and features associated with the contact), on which the system may generate a custom graphic (460) to include a custom avatar image for the contact. The contact's custom avatar image may be presented to the user as part of the custom graphic and along with the electronic message (465). The custom graphic may be further generated (460) based on the content of the electronic message itself. For example, if a user and a contact participate in an instant messaging discussion about hiking together, the system can automatically obtain the avatar information of the user (440) and the contact (455) and generate a custom graphic depicting the user and contact hiking together to be inserted into the electronic message. In this way, embodiments of this disclosure can greatly improve the functionality of the electronic messaging system by providing dynamic, customizable visual content that a user can share with his or her contact.

[0063] The system can also generate custom graphics (460) based on other information, such as the current time, current date, and events associated with the user or user contacts stored in the user's electronic calendar. For example, the system can determine that the user is currently attending a contact's birthday party based on calendar entries in the user's smartphone or other computing device and geolocation information for the computing device, and generate a custom image depicting the user and the contact's head with a birthday cake.

[0064] Custom graphics can be presented in a variety of different ways (465), such as within electronic messages. In some embodiments, refer again to Figure 5EGraphics can be displayed alone (images 555 and 570) or in combination with text and / or other images (images 560 and 565). In some embodiments, some or all of the custom graphics can be selected by the user, such as as content linked to the Internet via Hypertext Transfer Protocol (HTTP) or as part of a software application that initiates its functionality. Custom graphics can also be presented as optional icons or links (described below) and as part of a collection of media overlays (e.g., SNAPCHAT filters) and / or electronic messages (e.g., SNAPCHAT stories) (465). Menus for custom graphics can be presented for selection and included in electronic messages, such as... Figure 5F As illustrated in the example depicted. Custom graphics can also be presented (465) for a predetermined time period, as discussed in more detail above with reference to short messages.

[0065] In one exemplary embodiment, the custom graphic includes a custom avatar of the user or a contact of the user, and the graphic can be selected by the user. In response to the user receiving a selection of the custom graphic (480), the system generates a custom response image based on the current mood of the user or a contact of the user (485), and presents the response image to the user via the display screen of the user's computing device (490). The user can further select the custom response image to send to a contact.

[0066] In a specific example of a response image, consider a user contact's avatar displayed next to their name in the user's address book. The contact's avatar can be dynamically updated to indicate their mood throughout the day. Selecting a user contact's avatar image can convey potential information about the contact's mood (e.g., if Bob's avatar looks sad, it might mean "Bob failed his test today," or if Bob's avatar looks happy, it might mean "Bob won first place in his competition today"). Based on the contact's mood and / or potential information associated with that mood, the system can generate one or more custom response images that the user can send to the contact's computing device (alone or with an electronic message) by selecting the contact's avatar. For example, in response to the first scenario above, the system could generate a generic "Good luck!" response image or a more specific "I'm sorry about this exam" response image. Alternatively, the system could generate a generic "Congratulations!" response image or a more specific "Congratulations on winning the competition!" response image. Response images can include one or more of the user's avatar image and the contact's avatar image. In some embodiments, a selection of possible response images can be generated and presented to the user, allowing them to select the response image they deem most suitable to send to the contact. The response image can be sent to the contact's computing device in any desired manner, such as directly to the contact's computing device via the Internet, or to a server that reroutes the image to the contact. In this way, embodiments of this disclosure enhance the interaction between the user and his / her contact, and provide opportunities for discussion and interaction compared to conventional systems.

[0067] Embodiments of this disclosure can generate (460) and present (465) custom graphics to a user, and receive edits (470) and modify (475) the custom graphics. For example, a custom graphic can be generated and displayed in a menu of the graphic (e.g., Figure 5F (As shown) for the user to select. The user can use the input device of the user interface on the user's computing device to select a custom graphic and apply edits, such as adding / removing text and making graphic edits. Graphic edits may include, for example, adding or removing features to the user's avatar (e.g., adding / removing a hat or mustache to the user's avatar), changing the size or shape of the image, applying graphic effects to the image (shadows, stretching, pitch, etc.), and other edits. The initial custom graphic may be permanently modified based on user input (475), or saved as a different image for the user to retrieve later.

[0068] Software Architecture

[0069] Figure 6 This is a block diagram illustrating example software architecture 606, which can be used in conjunction with various hardware architectures described herein. Figure 6 This is an example of a non-limiting software architecture, and it is understood that many other architectures can be implemented to facilitate the functionality described herein. Software architecture 606 can be implemented in, for example... Figure 7 The execution is performed on the hardware of machine 700, which includes processor 704, memory 714, and I / O components 718, etc. A representative hardware layer 652 is shown and can represent, for example... Figure 7 The machine 700. A representative hardware layer 652 includes a processing unit 654 having associated executable instructions 604. The executable instructions 604 represent executable instructions of the software architecture 606, including implementations of the methods, components, etc., described herein. Hardware layer 652 also includes memory and / or a memory / storage device 656, which also has executable instructions 604. Hardware layer 652 may also include other hardware 658.

[0070] As used herein, the term "component" means a device, physical entity, or logic having boundaries defined by functional or subroutine calls, branch points, application programming interfaces (APIs), and / or other technologies that provide specific processing or control functionality, such as partitions or modularity. Components can be combined with other components via their interfaces to perform machine processes. Components can be encapsulated functional hardware units designed for use with other components, and part of a program that typically performs related functions.

[0071] Components can constitute software components (e.g., code embodied on a machine-readable medium) or hardware components. A "hardware component" is a tangible unit capable of performing certain operations and can be configured or arranged in a physical manner. In various exemplary embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware components of a computer system (e.g., a processor or a group of processors) can be configured by software (e.g., an application or an application portion) to operate to perform certain operations as described herein. Hardware components can also be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware component may include dedicated circuitry or logic permanently configured to perform certain operations.

[0072] Hardware components can be dedicated processors, such as field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs). Hardware components can also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by this software, the hardware component becomes a specific machine (or a specific component of a machine), uniquely customized to perform the configured functions and no longer a general-purpose processor. It should be understood that cost and time considerations can drive the decision to implement hardware components mechanically in dedicated and permanently configured circuitry or in temporarily configured circuitry (e.g., software-configured).

[0073] A processor can be or includes any circuitry or virtual circuitry (physical circuitry simulated by logic executed on an actual processor) that manipulates data values ​​and generates corresponding output signals applied to operate the machine based on control signals (e.g., “commands,” “opcodes,” “machine codes,” etc.). For example, a processor can be a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), or any combination thereof. A processor can further be a multi-core processor having two or more independent processors (sometimes referred to as “cores”) capable of executing instructions simultaneously.

[0074] Therefore, the phrase "hardware component" (or "hardware-implemented component") should be understood to include tangible entities, i.e., entities with physical construction, permanent configuration (e.g., hardwired), or temporary configuration (e.g., programming), that operate or perform certain operations described herein in a certain way. Consider embodiments where hardware components are temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each hardware component at any given time. For example, in cases where hardware components include a general-purpose processor configured by software as a dedicated processor, the general-purpose processor can be configured at different times as correspondingly different dedicated processors (e.g., including different hardware components). The software accordingly configures one or more specific processors, for example, constituting a specific hardware component at one time and different hardware components at different times. Hardware components can provide information to and receive information from other hardware components. Therefore, the described hardware components can be considered communicatively coupled. In cases where multiple hardware components exist simultaneously, communication can be achieved through signal transmission (e.g., via appropriate circuitry and buses) between two or more hardware components. In embodiments where multiple hardware components are configured or instantiated at different times, communication between the hardware components can be achieved, for example, by storing and retrieving information in a memory structure accessible to the multiple hardware components.

[0075] For example, a hardware component may perform an operation and store the output of that operation in a memory device communicatively coupled to it. Another hardware component may then later access the memory device to retrieve and process the stored output. The hardware component may also initiate communication with input or output devices and may operate on resources (e.g., information sets). Various operations of the example methods described herein may be performed, at least in part, by one or more processors configured, either temporarily (e.g., by software) or permanently, to perform the relevant operations. Whether temporarily or permanently configured, the processor may constitute a processor-implemented component for performing one or more operations or functions described herein. As used herein, "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the methods described herein may be implemented, at least in part, by processors, where a particular processor or processors are examples of hardware. For example, at least some operations of the method may be performed by one or more processors or processor-implemented components.

[0076] Furthermore, one or more processors may operate to support the performance of related operations in a “cloud computing” environment or as “Software as a Service” (SaaS). For example, at least some operations in the operation may be performed by a group of computers (as an example of a machine including processors), and these operations may be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application programming interfaces (APIs)). The performance of some operations in the operation may be distributed among processors, residing not only within a single machine but also deployed across multiple machines. In some exemplary embodiments, the processor or processor-implemented components may reside in a single geographic location (e.g., within a home environment, office environment, or server cluster). In other exemplary embodiments, the processor or processor-implemented components may be distributed across multiple geographic locations.

[0077] exist Figure 6 In the exemplary architecture, software architecture 606 can be conceptualized as a stack of layers, where each layer provides specific functionality. For example, software architecture 606 may include layers such as operating system 602, library 620, application 616, and presentation layer 614. Operationally, application 616 and / or other components within a layer can call application programming interface (API) API call 608 via the software stack and receive message 612 in response to API call 608. The layers shown are representative in nature, and not all software architectures have all layers. For example, some mobile or dedicated operating systems may not provide framework / middleware 618, while other operating systems may provide such layers. Other software architectures may include additional or different layers.

[0078] Operating system 602 can manage hardware resources and provide public services. Operating system 602 may include, for example, a kernel 622, services 624, and drivers 626. Kernel 622 can serve as an abstraction layer between hardware and other software layers. For example, kernel 622 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. Services 624 can provide other public services to other software layers. Drivers 626 are responsible for controlling the underlying hardware or interface with the underlying hardware. For example, depending on the hardware configuration, drivers 626 may include display drivers, camera drivers, Bluetooth® drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, etc.

[0079] Library 620 provides a common infrastructure used by application 616 and / or other components and / or layers. Library 620 provides functionality that allows other software components to perform tasks in a way that is easier than directly interfaced with the underlying operating system 602 functions (e.g., kernel 622, services 624, and / or drivers 626). Library 620 may include system libraries 644 (e.g., the C standard library), which provide functions such as memory allocation, string manipulation, and mathematical functions. Additionally, library 620 may include API libraries 646, such as media libraries (e.g., libraries for supporting the rendering and manipulation of various media formats such as MPREG4, H.264, MP3, AAC, AMR, JPG, and PNG), graphics libraries (e.g., OpenGL frameworks for rendering 2D and 3D content on a display), database libraries (e.g., SQLite providing various relational database functions), web libraries (e.g., WebKit providing web browsing functionality), and so on. Library 620 may also include various other libraries 648 to provide many other APIs to application 616 and other software components / modules.

[0080] The framework / middleware 618 (sometimes also called middleware) provides a higher level of common infrastructure that can be used by application 616 and / or other software components / modules. For example, the framework / middleware 618 can provide various graphical user interface (GUI) functions, advanced resource management, advanced location services, etc. The framework / middleware 618 can provide a wide range of other APIs that can be used by application 616 and / or other software components / modules, some of which may be targeted to a specific operating system 602 or platform.

[0081] Application 616 includes built-in application 638 and / or third-party application 640. Examples of representative built-in applications 638 may include, but are not limited to, contact applications, browser applications, book reader applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 640 may include applications developed by entities other than the vendor of a specific platform using the Android™ or iOS™ Software Development Kit (SDK), and may be mobile software running on mobile operating systems such as iOS™, Android™, Windows® Phone, or other mobile operating systems. Third-party applications 640 may invoke API calls 608 provided by the mobile operating system (such as operating system 602) to implement the functions described herein.

[0082] Application 616 can use built-in operating system functions (e.g., kernel 622, services 624, and / or drivers 626), libraries 620, and frameworks / middleware 618 to create a user interface to interact with the system's user. Alternatively or additionally, in some systems, interaction with the user may occur through a presentation layer (such as presentation layer 614). In these systems, the application / component "logic" can be separated from the aspects of the application / component that interact with the user.

[0083] Figure 7 This is a block diagram illustrating components (also referred to herein as "modules") of a machine 700, capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any or more methods discussed herein, according to some exemplary embodiments. Specifically, Figure 7A graphical representation of a machine 700 in the form of an example computer system is shown, within which instructions 710 (e.g., software, programs, applications, applets, application software, or other executable code) can be executed to cause the machine 700 to perform any or more of the methods discussed herein. Thus, the instructions 710 can be used to implement the modules or components described herein. The instructions 710 transform the general, non-programmable machine 700 into a specific machine 700 programmed to perform the described and illustrated functions in the described manner. In alternative embodiments, the machine 700 operates as a standalone device or can be coupled (e.g., network-connected) to other machines. In a networked deployment, the machine 700 can operate as a server machine or client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machine 700 may include, but is not limited to, server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), personal digital assistants (PDAs), entertainment media systems, cellular phones, smartphones, mobile devices, wearable devices (e.g., smartwatches), smart home devices (e.g., smart appliances), other smart devices, network devices, network routers, network switches, network bridges, or any machine capable of executing instructions 710 that sequentially or otherwise specify the actions to be taken by machine 700. Furthermore, although only a single machine 700 is shown, the term "machine" may also be considered as a collection of machines that individually or jointly execute instructions 710 to perform any or more of the methods discussed herein.

[0084] Machine 700 may include processor 704, memory / storage device 706, and I / O components 718, which may be configured to communicate with each other, for example, via bus 702. Memory / storage device 706 may include memory 714 (such as main memory or other memory storage device) and storage cell 716, both of which may be accessed by processor 704, for example, via bus 702. Storage cell 716 and memory 714 store instructions 710 embodying any one or more methods or functions described herein. During execution of machine 700, instructions 710 may also reside wholly or partially within memory 714, storage cell 716, at least one processor in processor 704 (e.g., within the processor's cache memory), or any suitable combination thereof. Thus, the memory of memory 714, storage cell 716, and processor 704 are examples of machine-readable media.

[0085] As used herein, the terms “machine-readable medium,” “computer-readable medium,” etc., may refer to any component, device, or other tangible medium capable of temporarily or permanently storing instructions and data. Examples of such media may include, but are not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage devices (e.g., erasable programmable read-only memory (EEPROM)), and / or any suitable combination thereof. The term “machine-readable medium” should be considered to include a single medium or multiple media capable of storing instructions (e.g., a centralized or distributed database, or associated caches and servers). The term “machine-readable medium” may also be considered to include any medium or combination of media capable of storing instructions (e.g., code) that are executable by a machine, such that when executed by one or more processors of the machine, the instructions cause the machine to perform any or more of the methods described herein. Thus, “machine-readable medium” can refer to a single storage device or apparatus, as well as a “cloud-based” storage system or storage network that includes multiple storage devices or apparatuses. The term “machine-readable medium” does not include the signal itself.

[0086] I / O component 718 may include various components to provide a user interface for receiving input, providing output, generating output, sending information, exchanging information, acquiring measurements, etc. The specific I / O component 718 included in the user interface of a particular machine 700 will depend on the type of machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine may not include such a touch input device. Understandably, I / O component 718 may include... Figure 7Many other components are not shown. The grouping of I / O components 718 according to function is merely for the purpose of simplifying the following discussion, and the grouping is by no means limiting. In various exemplary embodiments, I / O components 718 may include output components 726 and input components 728. Output components 726 may include visual components (e.g., displays, such as plasma display panels (PDPs), light-emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), auditory components (e.g., speakers), haptic components (e.g., vibration motors, resistive mechanisms), other signal generators, and so on. Input components 728 may include alphanumeric input components (e.g., keyboards, touchscreens configured to receive alphanumeric input, photoelectric keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other pointing instruments), haptic input components (e.g., physical buttons, touchscreens providing position and / or force for touch or touch gestures, or other haptic input components), audio input components (e.g., microphones), and so on. The input component 728 may also include one or more image acquisition devices, such as a digital camera for generating digital images and / or videos.

[0087] In a further exemplary embodiment, I / O component 718 may include biometric component 730, motion component 734, environmental component 736 or positioning component 738, and a variety of other components. One or more of these components (or portions thereof) may be collectively referred to herein as “sensor components” or “sensors” for collecting various data relating to machine 700, the environment of machine 700, the user of machine 700, or combinations thereof.

[0088] For example, biometric component 730 may include components for detecting expressions (e.g., hand gestures, facial expressions, vocal expressions, body posture, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), and identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition). Motion component 734 may include accelerometer components (e.g., accelerometers), gravity sensor components, rotation sensor components (e.g., gyroscopes), etc. Environmental component 736 may include, for example, illumination sensor components (e.g., photometers), temperature sensor components (e.g., one or more thermometers for detecting ambient temperature), humidity sensor components, pressure sensor components (e.g., barometers), acoustic sensor components (e.g., one or more microphones for detecting background noise), proximity sensor components (e.g., infrared sensors for detecting nearby objects), gas sensors (e.g., gas detection sensors for detecting hazardous gas concentrations or measuring pollutants in the atmosphere for safety purposes), or other components that may provide indications, measurements, or signals corresponding to the surrounding physical environment. Positioning component 738 may include positioning sensor components (e.g., a Global Positioning System (GPS) receiver component), altitude sensor components (e.g., an altimeter or barometer that can detect from which altitude air pressure can be derived), orientation sensor components (e.g., a magnetometer), etc. For example, the positioning sensor components may provide location information associated with system 700, such as the GPS coordinates of system 700 and / or information about the current location of system 700 (e.g., the name of a restaurant or other business).

[0089] Communication can be implemented using various technologies. I / O component 718 may include communication component 740, operable to couple machine 700 to network 732 or device 720 via coupler 722 and coupler 724, respectively. For example, communication component 740 may include a network interface component or another suitable device interfaced with network 732. In further examples, communication component 740 includes wired communication components, wireless communication components, cellular communication components, near field communication (NFC) components, Bluetooth® components (e.g., Bluetooth Low Energy®), Wi-Fi® components, and other communication components that provide communication via other modes. Device 720 may be another machine or any of various peripheral devices (e.g., peripheral devices coupled via Universal Serial Bus (USB)).

[0090] Furthermore, the communication component 740 may detect identifiers or include components operable to detect identifiers. For example, the communication component 740 may include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) codes, Aztec codes, data matrices, digital graphics, MAX codes, PDF417, Supercodes, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying audio signals from the tag). Additionally, various information can be derived via the communication component 740, which can indicate a specific location, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, location via detecting NFC beacon signals, etc.

[0091] Additional examples

[0092] Example 1 includes a system comprising: a processor; a user interface coupled to the processor, the user interface including an input device and a display screen; a sensor assembly coupled to the processor, the sensor assembly including a position sensor for determining position information associated with the system; and a memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations including: obtaining sensor information from the sensor assembly, the sensor information including position information from the position sensor; obtaining avatar information associated with a user of the system from the memory; generating a custom graphic based on the sensor information and the user's avatar information; and displaying the custom graphic within an electronic message via the display screen of the user interface.

[0093] In Example 2, the system of Example 1 may further include a subject containing the following: wherein the avatar information includes one or more images associated with the user, and wherein generating a custom graphic includes incorporating at least a portion of the one or more images associated with the user within the custom graphic.

[0094] In Example 3, the system of any one of Examples 1-2 may further include the following: wherein the sensor component includes a biometric component for detecting facial expressions of a user of the system, and wherein generating a custom graphic includes: identifying the user's emotion based on the detected facial expressions, and generating a custom graphic based on the identified user's emotion.

[0095] In Example 4, the system of any one of Examples 1-3 may further include a subject comprising: a communication module coupled to the processor, wherein generating a custom graph includes: obtaining user-related information from a social network via the Internet through the communication module; identifying the user's emotions based on the obtained social network information; and generating a custom graph based on the identified user's emotions.

[0096] In Example 5, the system of any one of Examples 1-4 may further include the following subject matter: the system of claim 1, wherein generating a custom graphic includes receiving information identifying the user's emotions via an input device of a user interface, and generating a custom graphic based on the identified user emotions.

[0097] In Example 6, the system of any one of Examples 1-5 may further include the following: wherein one or more of custom graphics and electronic messages are temporarily displayed on a screen for a predetermined period of time.

[0098] In Example 7, the system of any one of Examples 1-6 may further include a subject containing the following: wherein the generation of custom graphics is further based on one or more of the following: the current time, the current date, and user-associated events identified by the system from calendar entries stored in memory.

[0099] In Example 8, the system of any one of Examples 1-7 may further include a subject comprising: wherein the memory further stores instructions for: receiving an edit of a custom graphic from a user via an input device of a user interface; and modifying the custom graphic based on the received edit, wherein the edit includes one or more of the following: text editing and graphic editing.

[0100] In Example 9, the system of any one of Examples 1-8 may further include a communication module coupled to the processor, wherein the memory further stores instructions for: obtaining information about a user's contact associated with an electronic message via the Internet through the communication module, wherein the contact information includes avatar information associated with the contact and the contact's current mood; generating a custom avatar image for the user's contact based on the avatar information associated with the contact and the contact's current mood; and presenting the custom avatar image for the contact in conjunction with the electronic message via a display screen of the user interface.

[0101] In Example 10, the system of any one of Examples 1-9 may further include the following: wherein a custom avatar image for a contact is selectable, and wherein the memory further stores instructions for: receiving a selection of a custom avatar image for a contact via an input device of the user interface; generating a custom response image based on the contact's current mood in response to the selection of a custom avatar image for the contact; presenting the custom response image to the user via a display screen of the user interface; and sending the custom response image to a computer system associated with the contact via a communication module via the Internet in response to the user selecting a custom response image via an input device of the user interface.

[0102] In Example 11, the computer-implemented method includes any combination of the steps described in Examples 1-10.

[0103] In Example 12, a non-transitory computer-readable medium story instruction, when executed by a computer system, causes the computer system to perform any combination of operations including the steps described in Examples 1-10.

[0104] When phrases such as “at least one of A, B or C”, “at least one of A, B and C”, “one or more of A, B or C” or “one or more of A, B and C” are used, it is intended that the phrase be interpreted as meaning that A may exist alone in an embodiment, B may exist alone in an embodiment, C may exist only in an embodiment, or any combination of elements A, B and C may exist in a single embodiment; for example, A and B, A and C, B and C, or A and B and C.

[0105] This patent document contains a portion of copyrighted material. The copyright holder does not object to any fax copying of the patent document or patent disclosure as it appears in the patent documents or records of the Patent and Trademark Office, but otherwise reserves all copyright. The following statement applies to the software and data described below and in the accompanying drawings that form part of this document: © 2016 SNAPCHAT, INC. Copyright 2016, All Rights Reserved.

[0106] Changes and modifications may be made to the disclosed embodiments without departing from the scope of this disclosure. These and other changes or modifications are intended to be included within the scope of this disclosure as set forth in the following claims.

Claims

1. A system for displaying custom graphics, comprising: processor; as well as A memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations, including: The user interface coupled to the processor receives the content of an electronic message including a scene identifier for graphics, wherein the scene identifier includes UNICODE characters, wherein the UNICODE characters are emoji characters or emoji icons; Obtain a user identifier for the user associated with the system; Based on the scene identifier and the user identifier, a custom graphic is generated, wherein the custom graphic includes a personalized avatar based on the user identifier, wherein the avatar mimics the expression of the scene identifier; and The custom graphic is displayed on the screen within the electronic message.

2. The system of claim 1, further comprising a communication module coupled to the processor, wherein, The memory further stores instructions for sending the electronic message, including the custom graphic, to the server via the Internet.

3. The system according to claim 1, wherein, Obtaining the user identifier includes analyzing the text entered within the electronic message.

4. The system according to claim 1, wherein, Obtaining the user identifier includes analyzing one or more identifiers associated with the user stored in the memory of the system.

5. The system according to claim 1, wherein, One or more of the custom graphic and the electronic message are temporarily displayed for a predetermined period of time.

6. The system according to claim 1, wherein, The electronic message includes multiple scene identifiers, and the custom graphic is generated based on the user identifier and the multiple scene identifiers.

7. The system according to claim 1, wherein, The scene identifier includes the UNICODE characters and UNICODE text.

8. The system according to claim 1, wherein, Generating the custom graphic includes: determining the size of the custom graphic based on the location of the scene identifier within the electronic message, and wherein presenting the custom graphic includes: presenting the custom graphic within the electronic message based on the size of the custom graphic.

9. A computer-implemented method for displaying custom graphics, comprising: The computer system receives, via a user interface coupled to the computer system, an electronic message including a scene identifier for graphics, wherein the scene identifier includes UNICODE characters, wherein the UNICODE characters are emoji characters or emoji icons; The computer system obtains a user identifier for the user associated with the computer system; The computer system generates a custom graphic based on the scene identifier and the user identifier, the custom graphic including a personalized avatar based on the user identifier, wherein the avatar mimics the expression of the scene identifier; and The computer system displays the custom graphic within the electronic message on a display screen.

10. The method of claim 9, further comprising: The electronic message, including the custom graphic, is sent to the server via the Internet through a communication module coupled to the computer system.

11. The method according to claim 9, wherein, Obtaining the user identifier includes analyzing the text entered within the electronic message.

12. The method according to claim 9, wherein, Obtaining the user identifier includes analyzing one or more identifiers associated with the user stored in the memory of the computer system.

13. The method according to claim 9, wherein, One or more of the custom graphic and the electronic message are temporarily displayed for a predetermined period of time.

14. The method according to claim 9, wherein, The electronic message includes multiple scene identifiers, and the custom graphic is generated based on the user identifier and the multiple scene identifiers.

15. The method according to claim 9, wherein, The scene identifier includes the UNICODE characters and UNICODE text.

16. The method according to claim 9, wherein, Generating the custom graphic includes: determining the size of the custom graphic based on the location of the scene identifier within the electronic message, and wherein presenting the custom graphic includes: presenting the custom graphic within the electronic message based on the size of the custom graphic.

17. A non-transitory computer-readable medium storing instructions that, when executed by a computer system, cause the computer system to perform operations, the operations including: The system receives an electronic message including a scene identifier for graphics via a user interface coupled to the computer system, wherein the scene identifier includes UNICODE characters, wherein the UNICODE characters are emoji characters or emoji icons; Obtain a user identifier for the user associated with the computer system; Based on the scene identifier and the user identifier, a custom graphic is generated, the custom graphic including a personalized avatar based on the user identifier, wherein the avatar mimics the expression of the scene identifier; and The custom graphic is displayed on the screen within the electronic message.

18. The computer-readable medium of claim 17, wherein, One or more of the custom graphic and the electronic message are temporarily displayed for a predetermined period of time.

19. The computer-readable medium of claim 17, wherein, The electronic message includes multiple scene identifiers, and the custom graphic is generated based on the user identifier and the multiple scene identifiers.

20. The computer-readable medium of claim 17, wherein, Generating the custom graphic includes: determining the size of the custom graphic based on the location of the scene identifier within the electronic message, and wherein presenting the custom graphic includes: presenting the custom graphic within the electronic message based on the size of the custom graphic.