US Pat. No. 9,668,217

SYSTEMS AND METHODS FOR WEARABLE INITIATED HANDSHAKING

SNAP INC., Venice, CA (U...

1. A method comprising:
verifying, by a client device, an established low-power wireless connection from the client device to a wearable camera device;
communicating via the low-power wireless connection, a new data query;
receiving, from the wearable camera device in response to the new data query, a new camera data message identifying first
camera data stored on the wearable camera device;

performing, by the client device, a high-speed connection status check;
communicating, in response to the high-speed connection status check, a connection communication from the client device to
the wearable camera device, wherein the connection communication instructs the wearable camera device to activate high-speed
wireless circuitry of the wearable camera device;

establishing a high-speed wireless connection to the wearable camera device; and
receiving the first camera data via the high-speed wireless connection.

US Pat. No. 10,402,689

GENERATING AN IMAGE MASK USING MACHINE LEARNING

Snap Inc., Santa Monica,...

1. A method comprising:generating, using one or more processors of a user device, a plurality of images, each of the plurality of images comprising a plurality of pixels;
generating, by the one or more processors, keyframe mask data for keyframes of the plurality of images using a machine learning scheme, the keyframe mask data assigning pixels from the plurality of pixels to a plurality of segments, each segment from the plurality of segments describing a type of image feature area depicted in the plurality of images;
generating, by the one or more processors, non-keyframe mask data for non-keyframes of the plurality of images by, for a given non-keyframe, applying a guided filter to the given non-keyframe and a preceding keyframe mask, the preceding keyframe mask generated by the machine learning scheme from a keyframe that precedes the given non-keyframe in the plurality of images;
generating, by the one or more processors, a plurality of modified images by applying a visual effect to pixels in the plurality of images that correspond to a specified segment from the plurality of segments; and
storing, by the one or more processors, the plurality of modified images in memory of the user device.

US Pat. No. 9,813,642

DYNAMIC ACTIVITY-BASED IMAGE GENERATION

SNAP INC., Venice, CA (U...

1. A system comprising:
a processor;
a user interface coupled to the processor and including a display;
an activity sensor coupled to the processor;
a communication module coupled to the processor;
a digital camera coupled to the processor; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to:
generate an image via the digital camera;
retrieve activity data associated with a user of the system from the activity sensor;
modify the image to represent the activity data within the image;
transmit the modified image, using the communication module, to a server; and
cause the system to present one or more of the generated image and the modified image using the display, wherein one or more
of the generated image and the modified image are temporarily presented using the display for a predetermined period of time.

US Pat. No. 9,928,874

METHOD FOR REAL-TIME VIDEO PROCESSING INVOLVING CHANGING FEATURES OF AN OBJECT IN THE VIDEO

SNAP INC., Venice, CA (U...

1. A computer-implemented method for real-time video processing for changing features of an object in a video, the method being performed in connection with a computerized system comprising a processing unit and a memory, the method comprising:providing the object in the video, the object being at least partially and at least occasionally presented in frames of the video;
detecting the object in the video;
generating a list of at least one element of the object, the list being based on the object's features to be changed according to a request for modification;
detecting the at least one element of the object in the video;
tracking the at least one element of the object in the video;
transforming the frames of the video to generate modified frames such that the at least one element of the object is modified within the video in which the object is detected while the video is provided at a computing device and the object is detected in the video, the frames transformed according to the request for modification resulting in at least one modified element, the at least one modified element being a version of the at least one elements detected and tracked within the video; and
providing the modified frames including the at least one modified element within the video.

US Pat. No. 9,984,499

IMAGE AND POINT CLOUD BASED TRACKING AND IN AUGMENTED REALITY SYSTEMS

Snap Inc., Venice, CA (U...

1. A method for reducing augmented reality perspective position error comprising:determining, using a first positioning system of a device, a first position estimate for the device, wherein the first positioning system comprises at least a first positioning hardware module coupled to a memory and at least one processor of the device;
accessing, based on the first position estimate, three-dimensional (3D) point cloud data describing an environment associated with the first position estimate;
accessing a first image of the environment captured by a companion device, wherein the companion device is separate from the device and associated with a different location than the device;
processing the first image to match at least a portion of a set of key points of the 3D point cloud to the first image;
determining, based on the match of the portion the set of key points of the 3D point cloud to the first image, a second position estimate for the companion device;
generating a model of a virtual object within the 3D point cloud;
generating, using the second position estimate for the companion device, the model of the virtual object within the 3D point cloud, and the match of the portion the set of key points of the 3D point cloud to the first image, a first augmented reality image comprising the virtual object in the environment;
communicating the first position estimate and the first image together as part of a first communication from the device to a cloud server computer;
wherein the processing of the image to match at least a portion of a set of key points of the 3D point cloud to the first image and the determining of the second position estimate are performed by the cloud server computer;
tracking, at the device, motion of the companion device;
receiving, at the device from the cloud server computer, the second position estimate; and
generating, at the device, using the second position estimate and the motion of the companion device from a first image capture time to a second position estimate receipt time, a third position estimate;
wherein the first augmented reality image is further generated using the third position estimate to align the virtual object within a second image of the environment,
wherein the companion device comprises a device selected from the set of: an augmented reality helmet, an augmented reality visor, augmented reality glasses, and an augmented reality glasses attachment; and
wherein the device comprises a smartphone.

US Pat. No. 9,946,067

SYSTEMS AND METHODS FOR REDUCING BOOT TIME AND POWER CONSUMPTION IN WEARABLE DISPLAY SYSTEMS

SNAP INC., Venice, CA (U...

1. A method comprising:establishing a low-power wireless connection between a wearable device and a client device;
receiving, at low-power wireless circuitry of the wearable device, a display communication comprising instructions to display content data including visual direction information indicating a path of direction and a turn on a display of the wearable device;
processing, by a low-power processor coupled to the low-power wireless circuitry, the display communication;
powering, in response to the processing of the display communication, a high-speed processor;
accessing, by the high-speed processor, the content data;
accessing, by the wearable device, location data from a global positioning system (GPS) receiver;
determining, using the high-speed processor and the location data, that a physical location of a user is approaching the path of direction of the visual direction information;
displaying the visual direction information in response to the determining that the physical location of the user is approaching the path of direction;
determining, using the positioning system, whether the turn of the visual direction information displayed on the wearable device has been made;
determining, by the high-speed processor, a first period of time for display of the content data based on whether the turn of the visual direction information has been made;
powering on the display and displaying, using the display, the content data for the first period of time;
automatically turning off the display following display of the content data for the first period of time; and
automatically turning off the high-speed processor following display of the content data for the first period of time.

US Pat. No. 9,746,692

WEARABLE ELECTRONIC DEVICE WITH ARTICULATED JOINT

SNAP INC., Venice, CA (U...

1. A wearable device comprising:
a frame defining one or more optical element holders configured to hold respective optical elements for viewing by a user
in a viewing direction;

an elongate temple moveably connected to the frame for holding the frame in position when the device is worn by the user;
an articulated joint connecting the temple and the frame to permit movement of the temple relative to the frame between a
wearable position in which the temple is generally aligned with the viewing direction, and a collapsed position in which the
temple extends generally transversely to the viewing direction, the articulated joint including a base foot fixed to the frame
and oriented transversely to the viewing direction, wherein the base foot is configured to be embedded into the housing and
is configured to have the housing extend into and around at least a portion of the base foot; and

onboard electronic components housed by at least one of the temple and the frame;
wherein the onboard electronic components are housed in the frame in a first end portion located at a lateral end of the frame,
the first end portion projecting rearward relative to the one or more optical element holders and comprising a housing that
defines a cavity configured to receive the onboard electronic components therein.

US Pat. No. 9,532,171

GEO-LOCATION BASED EVENT GALLERY

Snap Inc., Venice, CA (U...

1. A computer implemented method, comprising:
receiving, at a server computer, geo-location data from a device of a user;
comparing, by the server computer, the geo-location data with a geo-location fence associated with an event;
determining, by the server computer, that the geo-location data corresponds to the geo-location fence associated with the
event;

responsive to the determining that the geo-location data corresponds to the geo-location fence associated with the event,
supplying, by the server computer, user-selectable event gallery information, associated with an event gallery of the event,
to the device for addition to a destination list on the device, wherein the destination list comprises an entry for an individual
in a social network;

detecting, by the server computer, selection of the user-selectable event gallery information in the destination list by the
user of the device; and

responsive to the detecting of the selection of the user-selectable event gallery information by the user of the device, adding,
by the server computer, the user as a follower of the event, with access to the event gallery.

US Pat. No. 9,516,465

LOCATION-BASED MESSAGING

SNAP INC., Venice, CA (U...

1. A location based method for communication, the method comprising:
receiving, at an input device of a first mobile device, a first recipient selection input identifying a second mobile device,
wherein the first mobile device is different than the second mobile device and the second mobile device is associated with
a first identifier value;

receiving, at the input device of the first mobile device, a first content message associated with the first recipient selection
input;

receiving, at the input device of the first mobile device, a first geofence input associated with the first content message,
wherein the first geofence input identifies a first delivery area;

initiating communication of the first content message from the first mobile device to the second mobile device via a network,
wherein the first content message is configured for presentation on the second mobile device when the second mobile device
is within the first delivery area;

receiving, at a cloud server computer from the first mobile device, a location based message comprising the first identifier
value, the first content message, and the first delivery area;

notifying the second mobile device, using a push message, of the location based message;
receiving, at the second mobile device, the push message;
synchronizing, by the second mobile device, an unfound message list with the cloud server computer to receive the location
based message from the cloud server computer;

measuring, by the second mobile device, a location change of the second mobile device;
determining, based on the measuring of the location change, that the second device is within the first delivery area;
adding the first content message to a local found list; and
outputting a found notification using an output of the second mobile device to notify a second device user of the first content
message.

US Pat. No. 9,952,452

EYEWEAR HAVING SELECTIVELY EXPOSABLE FEATURE

Snap Inc., Venice, CA (U...

1. A wearable device comprising:a body configured to hold one or more optical elements, the body being disposable between a collapsed condition and a wearable condition in which the device is wearable by a user to hold the one or more optical elements within user view, wherein the body comprises:
a frame that holds the one or more optical elements, and
a pair of temples mounted to the frame at respective articulated joints, the temples being hingedly moveable relative to the frame to dispose the device between the collapsed condition and the wearable condition,
electronics carried by the body;
an onboard battery carried by the body and coupled to the electronics for powering the electronics when the body is in the wearable condition, at least; and
a connector that is configured to enable establishment of an electrical charging connection between the onboard battery and an external charging device, the connector being housed by the body such that the connector is substantially obscured from view when the body is in the wearable condition, and such that the connector is exposed for connective access by the external charging device when the body is in the collapsed condition, wherein the connector is located at the articulated joint between one of the temples and the frame.

US Pat. No. 9,886,647

IMAGE SEGMENTATION FOR OBJECT MODELING

SNAP INC., Venice, CA (U...

1. A computer implemented method, comprising:
accessing a set of images within a video stream;
identifying an object of interest in one or more images of the set of images, the object of interest having a first portion
and a second portion;

detecting a region of interest within the one or more images;
generating one or more binarization matrices from the one or more images;
determining a pixel radius;
filtering the one or more binarization matrices to exchange a first pixel value for a second pixel value where a pixel associated
with the first pixel value is proximate to a set of pixels of the second pixel value;

identifying a first set of median pixels of the first portion and a second set of median pixels of the second portion;
determining a polyline approximating the first portion and the second portion of the object of interest; and
generating a model for the polyline.

US Pat. No. 9,882,907

APPARATUS AND METHOD FOR SINGLE ACTION CONTROL OF SOCIAL NETWORK PROFILE ACCESS

Snap Inc., Venice, CA (U...

1. A computer implemented method, comprising:
allowing a user to access a user-controlled social network profile page with posts organized by category;
permitting a user to traverse an interface element across the posts to establish a set position for the interface element;
providing access to posts on a first side of the set position for the interface element to define a viewable profile; and
blocking access to posts on a second side of the set position for the interface element to define a non-viewable profile,
wherein blocking access to posts includes blocking access to posts observed by at least some social network members associated
with the user, while the user has access to posts on the first side of the set position and the second side of the set position.

US Pat. No. 10,055,895

LOCAL AUGMENTED REALITY PERSISTENT STICKER OBJECTS

Snap Inc., Venice, CA (U...

14. A device comprising:a display;
an input component coupled to the display;
a memory coupled to the display and the input component;
an image sensor; and
one or more processors coupled to the display, the image sensor, the input component, and the memory, the one or more processors configured to process video image frames captured by the image sensor and output local AR images using local AR tracking of an AR sticker object by:
processing a user input associating a first portion of a first image of the video image frames with the AR sticker object and a target;
generating, based on the user input and the first portion of the first image, a first target template associated with the target;
tracking the target across frames of the video image frames following the first image by calculating changes in the first portion of the first image using the first target template;
initiating a global tracking based on a determination that the target is outside a boundary area the global tracking comprising using a global tracking template for tracking movement in the video image frames captured following the determination that the target is outside the boundary area; and
resuming tracking the target when the global tracking determines that the target is within the boundary area, and displaying the AR sticker object on the display based on the tracking of the target;
wherein tracking the target across the frames of the video image frames following the first image by calculating the changes in the first portion of the first image using the first target template comprises:
identifying the first target template associated with the AR sticker object described by Ji=I0(si);
wherein Ji is the first target template associated with the AR sticker object for integer set i, the first target template comprising a set of color values sampled at a plurality of sample points Si associated with the target and a target area in an initial AR model image I0 of one or more images of the first plurality of images.

US Pat. No. 9,851,585

HEAT SINK CONFIGURATION FOR WEARABLE ELECTRONIC DEVICE

SNAP INC., Venice, CA (U...

1. A wearable device comprising:
an eyewear body including a frame configured for wearing by a user to hold one or more optical elements within a field of
view of the user and an elongate temple connected to the frame at an articulated joint;

onboard electronic components carried by the eyewear body and comprising a heat source that generates heat during electrically
powered operation thereof, wherein the heat source is located within the frame;

a core wire that is disposed within the body to form part of a structural framework for at least part of the eyewear body,
the core wire being thermally coupled to the heat source to provide a heat sink for the heat source, wherein the core wire
is located within the temple and extends longitudinally along the temple from a first longitudinal end portion thereof toward
a second longitudinal end portion thereof; and

a thermal coupling comprising at least a second heat sink for the heat source extending between the heat source and the core
wire across the articulated joint between the temple and the frame.

US Pat. No. 9,749,270

INTERACTIVE AVATAR IN MESSAGING ENVIRONMENT

SNAP INC., Venice, CA (U...

1. A method for communicating via an avatar, the method comprising:
sending, by one or more processors, an email that includes an embedded avatar from a sender at a first computing device to
a recipient at a second computing device;

responsive to the recipient at the second computing device selecting the embedded avatar, providing, by one or more processors,
an interface through which said recipient interacts to submit a query via the avatar;

receiving, by one or more processors, the query via a communication protocol;
parsing and analyzing, by one or more processors, the received query;
retrieving, by one or more processors, an answer corresponding to the parsed and analyzed query from a mailbox of the sender,
wherein the mailbox of the sender includes emails associated with the parsed and analyzed query;

sending, by one or more processors, the answer to the second computing device; and
initiating, by one or more processors, display of the answer via the avatar on the second computing device.

US Pat. No. 10,091,221

SYSTEMS AND METHODS FOR IP-BASED INTRUSION DETECTION

Snap Inc., Venice, CA (U...

1. A computer implemented method for device security comprising:analyzing, using one or more processors of a server computer, a login history comprising login request data for the server computer to identify a plurality of usernames, wherein each username of the plurality of usernames is associated with a corresponding login request from a first internet protocol (IP) address within a threshold time period of a first request time, wherein the login history comprises at least a first login request associated with a username, a password, the first IP address, and a first login request time;
determining, using the one or more processors, that a total number of login requests from the first IP address within the threshold time period is above a credential security threshold;
determining, using the one or more processors, that a number of usernames associated with the total number of login requests is above a username threshold;
determining, using the one or more processors, that a login success ratio is below a threshold login success ratio after determining that the total number of login requests from the first IP address is above the credential security threshold; and
in response to determining the login success ratio is below the threshold login success ratio and determining that a number of unique usernames is above a unique username threshold, automatically performing a security action using the server computer;wherein the security action further comprises:identifying, using the one or more processors, a plurality of accounts, wherein each account of the plurality of accounts is associated with a successful login from the IP address during the threshold time period;
identifying, for each account of the plurality of accounts using the one or more processors, an associated set of user actions taken during the threshold time period; and
initiating, using the one or more processors, a custom security action for each account based on the associated set of user actions for each account;
determining, using the one or more processors, a total number of locations associated with registration of the plurality of usernames; and
initiating, using the one or more processors, a group security action for the plurality of usernames when the total number of locations is above a location threshold value.

US Pat. No. 9,693,191

PRIORITIZATION OF MESSAGES WITHIN GALLERY

SNAP INC., Venice, CA (U...

1. A method of processing messages, the method comprising:
providing, by a server computer, a dashboard to be displayed to an owner of a brand, the dashboard comprising a message received
from a user device, the message comprising an instance of an appearance of a mark or logo of the owner of the brand;

receiving, at the server computer, a prioritization of the at message from the owner of the brand;
creating, by the server computer, a gallery of messages including the message; and
prioritizing, by the server computer, the message in the gallery according to the prioritization from the owner of the brand.

US Pat. No. 10,068,117

CUSTOM FUNCTIONAL PATTERNS FOR OPTICAL BARCODES

Snap Inc., Venice, CA (U...

1. A system comprising:a hardware processor coupled to a memory, the hardware processor comprising a communication module;
the communication module to receive a request to generate a scannable image from a user, the request including a specification of data to encode into the scannable image;
an encoder module to render data marks that encodes the specification of data for detection between a bounding shape that surrounds the data marks and an encircled portion of the scannable image, the encircled portion of the scannable image does not contain the data marks;
the encoder module further to generate the scannable image to include the data marks such that they surround the encircled portion of the scannable image; and
the communication module further to transmit the scannable image to a storage location.

US Pat. No. 9,882,954

SELECTIVE PARTIAL UPDATES OF WEB CONTENT

SNAP INC., Venice, CA (U...

1. A method, performed by a content proxy server comprising:
receiving a request, from a client device or from another content proxy server, for a partial update of web content on the
client device, the request comprising an identifier that identifies at least one web content element associated with the web
content;

responsive to receiving the request, determining whether a current version of the at least one web content element identified
by the identifier resides in a local web content storage device;

in response to determining that a current version of the at least one web content element resides in the local web content
storage device:

retrieving the current version from the local web content storage device;
formatting a response to the request containing the current version from the local web content storage device; and
sending the response to the client device or to the another content proxy server from which the request was received;
in response to determining that a current version of the at least one web content element does not reside in the local web
content storage device, determining whether a parent element of the at least one web content element resides in the local
web content storage device:

responsive to determining that, the parent element does not reside in the local content storage device:
forwarding the request to a further content proxy server or an application server for fulfillment;
receiving a fulfillment response from the further content proxy server or the application server;
forwarding the fulfillment response to the client device or to the another content proxy server from which the request was
received;

responsive to determining that the parent element does reside in the local web content storage device:
extracting the at least one web content element from the parent element;
formatting a response to the request containing the at least one web content element: and
sending the response to the client device or to the another content proxy server from which the request was received.

US Pat. No. 9,852,328

EMOTION RECOGNITION IN VIDEO CONFERENCING

SNAP INC., Venice, CA (U...

1. A computer-implemented method for video conferencing, the method comprising:
receiving a video including a sequence of images and an audio stream;
detecting at least one object of interest in one or more of the images;
locating feature reference points of the at least one object of interest;
aligning a virtual face mesh to the at least one object of interest in one or more of the images based at least in part on
the feature reference points;

finding over the sequence of images at least one deformation of the virtual face mesh, wherein the at least one deformation
is associated with at least one face mimic;

determining that the at least one deformation refers to a facial emotion selected from a plurality of reference facial emotions;
recognizing a speech emotion in the audio stream of the at least one object of interest; and
generating a communication bearing data associated with one or more of the facial emotion and the speech emotion.

US Pat. No. 9,836,890

IMAGE BASED TRACKING IN AUGMENTED REALITY SYSTEMS

SNAP INC., Venice, CA (U...

1. A method for determining a device location comprising:
determining, using a first positioning system, a first position estimate for the device;
accessing, based on the first position estimate, building location information describing one or more location points for
at least a first building associated with the first position estimate;

capturing, by an image sensor of the device, a first image of an environment;
identifying, using the building location information, a first surface in the first image of the environment, wherein the first
surface matches the one or more location points of the building location information for the first building; and

calculating, based at least in part on a perspective associated with surface of the first image of the environment, a second
position estimate of the device.

US Pat. No. 10,127,631

AUTOMATIC IMAGE INPAINTING USING LOCAL PATCH STATISTICS

Snap Inc., Santa Monica,...

1. A system comprising:a processor;
a user interface coupled to the processor and including a display;
a communication module coupled to the processor; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:
receiving a user input identifying a user-selected region within an image;
determining a local region for the user-selected region of the image based on a size of the user-selected region, the local region including a portion of the image outside of the user-selected region that surrounds the user-selected region;
enlarging the local region by a predefined padding size;
scaling the user-selected region to a predetermined size, the scaling of the user-selected region yielding a scaled region;
identifying a plurality of patch matches within the local region, each patch match comprising two identical image patches, each image patch comprising one or more pixels of the image; and
inpainting the scaled region using at least a portion of the plurality of patch matches identified within the local region, the inpainting of the scaled region yielding a modified image.

US Pat. No. 10,074,381

AUGMENTED REALITY SPEECH BALLOON SYSTEM

Snap Inc., Venice, CA (U...

1. A system comprising:a memory; and
at least one hardware processor coupled to the memory and comprising instructions that causes the system to perform operations comprising:
causing display at a client device, of a presentation of a space, the presentation of the space including at least a first person;
detecting, by the client device, speech that includes speech properties;
identifying the first person as a source of the speech;
transcribing the speech to a text string based on the speech properties;
determining an emotional effect of the speech based on the speech properties;
selecting a speech bubble from a speech bubble library based on the emotional effect of the speech; and
causing display of the speech bubble at a position adjacent to the first person within the presentation of the space in response to the identifying the first person as the source of the speech, the speech bubble containing a display of the text string.

US Pat. No. 10,051,253

BINARIZATION OF A VIDEO STREAM

Snap Inc., Venice, CA (U...

1. A computer implemented method, comprising:receiving, by one or more processors of a client device, a set of images in a video stream, the set of images including at least a portion of a face, each pixel in the set of images having a first intensity value;
converting, by the one or more processors of the client device, one or more images of the set of images to a set of single channel images, the set of single channel images corresponding to a single channel associated with an aspect of the face;
generating a set of approximation images from the set of single channel images, the set of approximation images generated by, for each pixel, replacing a second intensity value with an approximation value, the second intensity value of a pixel being an intensity value of the pixel within a single channel image of the set of single channel images, the approximation value generated as a logarithm of the first intensity value and the second intensity value; and
generating a set of binarized images by thresholding the set of approximation images, wherein thresholding the set of approximation images is based on a threshold intensity value corresponding to a fractional luminance value of at least a portion of the set of images.

US Pat. No. 9,980,100

DEVICE LOCATION BASED ON MACHINE LEARNING CLASSIFICATIONS

Snap Inc., Venice, CA (U...

1. A method comprising:transmitting, using one or more processors of a client device, a request for venue data to one or more servers, the request comprising geolocation data generated by the client device;
receiving, from the one or more servers, a venue dataset comprising a plurality of venues, each venue of the plurality of venues associated with tags that describe the venue;
identifying an image generated by the client device;
classifying an object depicted in the image using a machine learning scheme;
selecting a venue from the venue dataset based at least in part on the classified object matching a tag associated with the venue;
selecting one or more display elements that are pre-associated with the selected venue; and
displaying, on the client device, a presentation comprising the one or more display elements and the image.

US Pat. No. 9,881,094

SYSTEMS AND METHODS FOR AUTOMATED LOCAL STORY GENERATION AND CURATION

SNAP INC., Venice, CA (U...

1. A method comprising:
receiving, at a server system, a plurality of content communications comprising content from a plurality of client devices,
each content communication comprising one or more pieces of content, a location associated with the each piece of the content,
and a time associated with each piece of the content;

processing, by the server system, each content communication from the plurality of content communications to determine a set
of content characteristics for each piece of the content in the plurality of content communications;

automatically generating at least a first story, wherein the first story comprises a first plurality of pieces of the content
from the plurality of content communications, and wherein the first plurality of pieces of content for the first story are
selected based on the set of content characteristics for each piece of the content of the first plurality of pieces of content,
the set of content characteristics based on the location associated with the content, the time associated with the content,
and one or more content categories;

associating, by the server system, a visibility of the first story with a first visibility area associated with the location
for each piece of the content of the first plurality of pieces of content;

communicating the first story to a second plurality of client devices within the first visibility area;
analyzing, by the server system, a second plurality of incoming content messages to determine system trends associated with
the first story; and

adjusting, by the server system, the visibility of the first story to a second visibility area based on the system trends;
wherein the one or more content categories are determined using machine vision processes operating as part of the server system
to analyze each received content communication and generate one or more content characteristic values for each piece of the
content from a content dictionary;

wherein the one or more content categories are determined using the content characteristic values for each piece of the content
and

wherein the corresponding location where each piece of content was generated is determined based on a global positioning system
(GPS) measurement performed by a corresponding device of the plurality of client devices.

US Pat. No. 10,268,921

IMAGE SEGMENTATION FOR OBJECT MODELING

Snap Inc., Santa Monica,...

1. A computer implemented method, comprising:identifying, by a processor, an object of interest in an image;
determining, by the processor, a type associated with the object of interest;
selecting, based on the type associated with the object of interest, a predetermined shape from a plurality of predetermined shapes for a region of interest to encompass the object of interest;
adjusting a size of the selected predetermined shape to encompass the object of interest;
identifying, by the processor, median pixels within the selected predetermined shape that has been adjusted in size and encompasses the object of interest;
determining, by the processor, a polyline approximating a portion of the object of interest based on the median pixels; and
generating, by the processor, a model for the polyline.

US Pat. No. 9,978,125

GENERATING AND DISTRIBUTING IMAGE FILTERS

Snap Inc., Venice, CA (U...

1. A system comprising:a processor; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:
detecting that a client device in communication with the system has captured an image;
identifying an object in the image;
identifying an image overlay having object criteria satisfied by the identified object;
providing the identified image overlay to the client device;
storing the provided image overlay in a collection of image overlays associated with the client device;
determining that the collection of image overlays contains more than a specified number of stored image overlays of a specified type; and
in response to determining that the collection of image overlays contains more than the specified number of stored image overlays of the specified type, providing a new image overlay to the client device.

US Pat. No. 9,971,169

EYEWEAR WITH CONDUCTIVE TEMPLE JOINT

Snap Inc., Venice, CA (U...

1. A system comprising:eyewear including:
a frame, a temple, one or more onboard electronics components including a battery carried by the temple or frame, and a first charging port exposed and configured to facilitate charging of the battery when the temple is positioned in a collapsed position and a second charging port exposed and configured to facilitate charging of the battery when the temple is positioned in a wearable position, wherein with the temple in the wearable position the first charging port is at least partially covered at an interface between the temple and frame so as to be inaccessible to facilitate charging;
a case configured to receive the frame and the temple therein with the temple positioned in the collapsed position, the case including a connector configured to couple to at least one of the first and second charging ports, the case configured to charge the battery; and
a cable with a connector configured to couple to at least one of the first and second charging ports of the eyewear when the temple is positioned in the collapsed position.

US Pat. No. 9,852,543

AUTOMATED THREE DIMENSIONAL MODEL GENERATION

SNAP INC., Venice, CA (U...

1. A method, comprising:
causing presentation of a graphical user interface frame encompassing a graphical rendering of a field of view of an image
capture device of a mobile computing device;

detecting a face within the graphical user interface frame and the field of view of the image capture device;
generating a movement instruction directing movement of the face within the field of view of the image capture device;
detecting a first change in position of the face within the field of view of the image capture device by:
identifying a set of facial tracking points on the face;
identifying a first key frame, in which the set of facial tracking points have a set of first positions;
determining a change in position of one or more facial tracking points by identifying a trajectory for each of the one or
more facial tracking points, determining an average length of the trajectories, and determining the average length exceeds
a trajectory threshold;

responsive to determining the change in position and the average length exceeding the trajectory threshold, identifying a
second key frame where the one or more facial tracking points have a second position;

detecting a second change in position of the face within the field of view of the image capture device;
identifying one or more subsequent key frames based on one or more changes in position of the one or more facial tracking
points along the trajectories;

based on the first key frame, the second key frame, and the one or more subsequent key frames, generating a set of relative
position estimates for the mobile computing device with respect to the face, a relative position estimate of the set of relative
position estimates being generated for each key frame;

based on the first key frame, the second key frame, the one or more subsequent key frames, and the set of relative position
estimates, generating a set of depth maps including a depth map for each key frame, the set of depth maps generated by:

generating a first depth map having a first resolution, and
based on the first depth map, generating a second depth map having a second resolution higher than the first resolution; and
generating a three dimensional model of the face.

US Pat. No. 9,692,967

SYSTEMS AND METHODS FOR REDUCING BOOT TIME AND POWER CONSUMPTION IN CAMERA SYSTEMS

SNAP INC., Venice, CA (U...

1. A method comprising:
receiving, at an interface of a camera device, a user input, the camera device further comprising a low-power processor, a
high-speed processor, a camera, a memory, a battery, an image processor, low-power wireless circuitry integrated with the
low-power processor as part of low-power circuitry of the camera device, and high-speed wireless circuitry integrated with
the high-speed processor as part of high-speed circuitry of the camera device that is different from the low-power wireless
circuitry, wherein the low-power wireless circuitry comprises Bluetooth™ low energy circuitry, and wherein the high-speed
wireless circuitry comprises wireless circuitry compliant with Institute of Electrical and Electronics Engineers (IEEE) 802.11
standards;

transmitting a user input signal from the interface to the low-power processor of the camera device;
in response to the user input signal, automatically:
booting the image processor;
capturing, using the image processor, first camera data;
writing the first camera data to the memory; and
shutting down the image processor after writing the first camera data to the memory;
establishing, using the low-power circuitry, a low-power wireless connection with a client device, wherein the low-power wireless
connection is established after the shutting down of the image processor;

receiving, via the low-power circuitry, a communication from the client device requesting a transfer of the first camera data;
initiating, using the low-power circuitry, a boot of the high-speed processor;
initiating, using the high-speed processor, a power-on of the high-speed wireless circuitry;
establishing a high-speed wireless connection with the client device using the high-speed wireless circuitry;
communicating the first camera data to the client device using the high-speed wireless connection;
automatically powering down the high-speed processor and the high-speed wireless circuitry after completion of communication
of the first camera data to the client device; and

receiving, at the interface of the camera device, a second user input, wherein the second user input is received during communication
of the first camera data to the client device;

interrupting communication of the first camera data to the client device in response to receipt of the second user input;
and

in response to the user second input, automatically:
booting the image processor;
capturing, using the image processor, second camera data;
writing the second camera data to the memory;
shutting down the image processor; and
resuming communication of the first camera data to the client device after the writing of the second camera data to the memory,
wherein the second camera data is communicated to the client device with the first camera data.

US Pat. No. 9,686,216

SERVER SIDE EMAIL CONTENT MODIFICATION TO SELECTED EMAIL RECIPIENTS

SNAP INC., Venice, CA (U...

1. A method for prohibiting electronic mail content propagation comprising:
receiving, at a server, an electronic mail message;
identifying, at the server, a recipient electronic mail addresses and a proximity policy in the electronic mail message, the
proximity policy indicating nodes associated with a prohibited node that are prohibited from receiving content of the electronic
mail message;

using the proximity policy to identify a network of nodes in a social network data structure of a social network,
the network of nodes being nodes that are grouped with the prohibited node in the social network data structure, the network
of nodes corresponding to a plurality of prohibited electronic mail addresses designated to not receive content of the electronic
mail message;

modifying, at the server, the electronic mail message by selectively removing content of the electronic mail message; and
conveying, by the server, the modified electronic mail message to the plurality of prohibited electronic mail addresses; and
conveying, by the server, the electronic mail message to the recipient electronic mail addresses.

US Pat. No. 9,652,896

IMAGE BASED TRACKING IN AUGMENTED REALITY SYSTEMS

Snap Inc., Venice, CA (U...

1. A method for determining a device location comprising:
determining, using a first positioning system, a first position estimate for the device;
accessing, based on the first position estimate, a set of structure facade data describing one or more structure facades associated
with the first position estimate;

capturing, by an image sensor of the device, a first image of an environment;
identifying, using the set of structure facade data, a first structure facade portion of the first image of the environment,
wherein the first structure façade portion matches first structure façade data of the set of structure façade data; and

calculating, based at least in part on the first structure facade portion of the first image of the environment, a second
position estimate of the device.

US Pat. No. 9,584,456

STORAGE AND PROCESSING OF EPHEMERAL MESSAGES

Snap INC., Venice, CA (U...

1. A system comprising:
a storage including a volatile memory and a non-volatile memory; and
a message reception module comprising at least one processor and configured to:
receive a message from a first communication device;
determine that the message is part of a conversation that includes a previous message that was stored in the storage for less
than a specified time period;

store the message in the volatile memory based on the determination; and
copy the message from the volatile memory to the non-volatile memory based on not detecting a specified triggering event prior
to a storage time of the message in the volatile memory exceeding the specified time period.

US Pat. No. 10,095,034

EYEWEAR WITH INTEGRATED HEADS-UP DISPLAY

Snap Inc., Venice, CA (U...

1. A device comprising:a transmissive optical element;
a frame configured for wearing by a user such that the frame supports the transmissive optical element in a viewing position in which a field of view of the user is at least partially covered by the transmissive optical element; and
an integrated near-eye display mechanism configured for displaying visual information coincident with the transmissive optical element in a display area that is elongate and that extends substantially laterally across at least a part of the field of view of the user, the display mechanism comprising:
a partially transmissive display reflector carried by the transmissive optical element and configured operatively to reflect towards the user light projected on to a reflective surface of the display reflector, the display area of the display mechanism being defined by a visible extent of the display reflector from a perspective of the user; and
a projector assembly supported by the frame such that the projector assembly is, from the perspective of the user, located substantially above the display reflector, the projector assembly being configured to project computer-generated images on to the reflective surface of the display reflector.

US Pat. No. 10,027,882

DEVICE AND METHOD FOR PHOTO AND VIDEO CAPTURE

Snap Inc., Venice, CA (U...

1. An image capture device comprising:an image sensor capable of being configured to capture an image or video;
a single user input element capable of detecting user activity at the single user input element;
a processor coupled with the image sensor and configured to perform operations comprising:
detecting a state change of the single user input element from a first state to a second state based on a detected user activity;
determining a duration of the second state;
storing an image from the image sensor based on the duration of the second state being less than a time interval; and
capturing a video recording based on the duration of the second state being greater than the time interval, wherein the video recording is captured until a state change of the single user input element from the second state to the first state is detected.

US Pat. No. 9,978,124

GEO-LOCATION-BASED IMAGE FILTERS

Snap Inc., Venice, CA (U...

1. A system comprising:a processor; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:
detecting that a client device in communication with the system has captured an image;
identifying an object in the image;
identifying a location of the object in the image;
identifying an image overlay associated with the identified location and having object criteria satisfied by the identified object;
providing the identified image overlay to the client device;
storing the provided image overlay in a collection of image overlays associated with the client device;
determining that the collection of image overlays contains more than a specified number of stored image overlays of a specified type; and
in response to determining that the collection of image overlays contains more than the specified number of stored image overlays of the specified type, providing a new image overlay to the client device.

US Pat. No. 9,854,219

GALLERY OF VIDEOS SET TO AN AUDIO TIME LINE

SNAP INC., Venice, CA (U...

1. A machine, comprising:
a processor; and
a memory connected to the processor, the memor storing instructions executed by he processor to:
receive, from a plurality of users, a plurality of messages, each message comprising audio content and video content taken
by each of the plurality, of users, the audio content and video content to be incorporated into an audio timeline associated
with a designated gallery constructed to comprise a sequence of videos from a plurality of users set to an audio time line,

for each message of the plurality of messages:
evaluate audio fingerprints within the audio content of the message,
match the audio fingerprints to known audio fingerprints to establish matched audio fingerprints,
determine that the matched audio fingerprints correspond to the designated gallery,
determine an audio segment of the audio time line of the designated gallery to which the audio content of the message corresponds;
and

add the audio content and video content from the message to the audio time line of the designated gallery at the audio segment
to which the audio content of the message corresponds.

US Pat. No. 9,830,708

IMAGE SEGMENTATION OF A VIDEO STREAM

SNAP INC., Venice, CA (U...

1. A computer implemented method for segmenting a video stream, comprising:
determining an approximate location of an eye within a video stream comprising a set of images to identify an area of interest
within one or more images of the set of images;

binarizing the area of interest within the one or more images to generate a binarized image from the video stream;
identifying an initial pupil location of a pupil of the eye within the binarized image by identifying a set of first pixels
within the binarized image, the set of first pixels having a first value and having an area greater than a predetermined percentage
of the area of interest and determine an approximate center of mass of the set of first pixels;

determining an initial iris radius for the eye; and
based on the initial pupil location and the initial iris radius, determining a final pupil location and a final iris radius.

US Pat. No. 9,785,796

APPARATUS AND METHOD FOR AUTOMATED PRIVACY PROTECTION IN DISTRIBUTED IMAGES

Snap Inc., Venice, CA (U...

1. A method executed by a computer, comprising:
receiving an image from a client device;
executing a facial recognition technique against an individual face within the image to obtain a recognized face;
applying privacy rules to the image; and
distributing a privacy protected version of the image, wherein the privacy protected version of the image has an altered image
feature, wherein the privacy protected version of the image is distributed to an ephemeral gallery including a collection
of ephemeral images shown in sequence, and wherein the ephemeral gallery is available for an ephemeral period of time, wherein
each ephemeral image has an associated message duration parameter that indicates a display duration for the corresponding
ephemeral image during viewing of the ephemeral gallery, and each ephemeral image has a gallery participation parameter that
indicates a time value for continued availability of the corresponding ephemeral image in the ephemeral gallery, wherein a
particular one of the plurality ephemeral images is removed from the ephemeral gallery in response to the identification of
an expired gallery participation parameter corresponding to the particular ephemeral image, and wherein the ephemeral gallery
is eliminated upon expiration of either a gallery timer or upon expiration of the gallery participation parameter of a last
ephemeral image in the ephemeral gallery, the last ephemeral image being that one of the plurality of ephemeral images which
was posted to the ephemeral gallery last.

US Pat. No. 9,769,110

MESSAGE DELIVERY IN MESSAGING NETWORKS

SNAP INC., Venice, CA (U...

1. A method for message delivery in messaging networks, comprising:
creating, by a requester computing device, a request message comprising a unique message identifier;
sending, by the requester computing device via a first one of a plurality of second messaging manager systems, the request
message to a first messaging manager system, wherein after the requester computing device sends the request message to the
first messaging manager system the requester computing device disconnects from the first one of the plurality of second messaging
manager systems;

wherein a reply message is created by the first messaging manager system in response to receipt of the request message and
the unique message identifier of the request message is copied into the reply message, wherein the reply message is published
to each of a plurality of replicated message queues, and wherein the reply message is to be received by the requester computing
device from any one of the plurality of replicated message queues;

connecting, by the requester computing device, to a second one of the plurality of second messaging manager systems;
specifying, by the requester computing device, the unique message identifier of the request message to receive the reply message;
and

receiving, by the requester computing device, the reply message from one of the plurality of replicated message queues.

US Pat. No. 9,754,355

OBJECT RECOGNITION BASED PHOTO FILTERS

SNAP INC., Venice, CA (U...

1. A system comprising:
a processor; and
a memory coupled to the processor, the memory including instructions which, when executed by the processor, cause the system
to:

access filter data and object criteria,
generate a photo filter using the filter data;
store data specifying an association between the photo filter and the object criteria;
detect that a client device of the server has taken a photograph;
identify an object in the photograph;
based on the identified object satisfying the object criteria associated with the photo filter in the stored data, provide
the photo filter to the client device;

store photo filters provided to the client device in a photo filter collection associated with the client device;
determine that the photo filter collection includes more than a specified number of stored photo filters of a specified type,
and

provide a new photo filter to the client device in response to the determination.

US Pat. No. 9,647,972

MESSAGE DELIVERY IN MESSAGING NETWORKS

Snap Inc., Venice, CA (U...

1. A method for message delivery in messaging networks, comprising:
creating, by a backend messaging manager system executing on one or more processors, a reply message in response to receipt
of a request message from a requester via a first one of a plurality of front end messaging manager systems;

copying into the reply message, by the backend messaging manager system, a unique message identifier of the request message
from the received request message;

publishing, by, the backend messaging manager system, the reply message to each of a plurality of replicated message queues,
wherein the reply message is received by the requester on any one of the plurality of replicated message queues and wherein
the reply message is identifiable by the requester using the copied unique message identifier of the request message on any
one of the plurality of replicated message queues prior to being consumed by the requester, and wherein the requester receives
the reply message via a second one of the plurality of front end messaging manager systems;

determining that the reply message is consumed by the requester via a first replicated message queue of the plurality of replicated
message queues; and

sending a notification message to the plurality of the replicated message queues, other than the first replicated message
queue, wherein the reply message is deleted from each of the plurality of replicated message queues based on receiving the
notification message.

US Pat. No. 9,781,335

DEVICE AND METHOD FOR PHOTO AND VIDEO CAPTURE

SNAP INC., Venice, CA (U...

1. An image capture device comprising:
an image sensor capable of being configured to capture an image or video;
a single user input element capable of detecting user interface activity;
a processor coupled with the image sensor and configured to perform operations comprising:
detecting a state change of the single user input element from an OFF state to an ON state;
determining a duration of the ON state;
providing a first distinct signal indicating that an image capture is triggered, based on the duration of the ON state being
less than a time interval; and

providing a second distinct signal indicating that a video recording is triggered, based on the duration of the ON state being
greater than the time interval, wherein the video recording is captured until a state change of the single user input element
from the ON state to the OFF state is detected.

US Pat. No. 9,608,949

SIMULTANEOUS SHARING COMMUNICATION INTERFACE

Snap Inc., Venice, CA (U...

1. A method comprising:
enabling, by a computing device, a communication between a user of the computing device and another user of another computing
device;

receiving, by the computing device, multimedia information, the multimedia information also received by the other computing
device;

inserting, by the computing device, the multimedia information into a sequence of multimedia information; and
simultaneously sharing, by the computing device and independent of the communication by the user with the other user, the
sequence of multimedia information in a sharing strip with the user and with the other user, the sequence configured to be
editable by the user and the other user and the edited sequence further configured to be shared with the user and the other
user, the simultaneously sharing further comprising sending one or more portions of the multimedia information in a send order
based on an order of one or more selected thumbnails, each of the one or more portions of the multimedia information associated
with a different selected thumbnail.

US Pat. No. 9,911,073

FACIAL PATTERNS FOR OPTICAL BARCODES

SNAP INC., Venice, CA (U...

1. A method comprising:
accessing, at a computing device, an image, the image including a geometric shape;
determining, using a facial recognition module, that the accessed image includes a face inside the geometric shape;
determining, using the face inside the geometric shape, an orientation of the geometric shape;
decoding, based on the determined orientation of the geometric shape, data encoded within the geometric shape;
accessing, via a network, a resource that corresponds to the decoded data; and
presenting, at a display device of the computing device, a graphical output corresponding to the accessed resource.

US Pat. No. 9,906,479

STORAGE MANAGEMENT FOR EPHEMERAL MESSAGES

SNAP INC., Venice, CA (U...

1. A system comprising:
a storage device for storing electronic messages sent between users of a network; and
a storage controller implemented by at least one processor and configured to:
assign a future time to each of a plurality of logical disks, each future time indicating when the logical disk is available
for writing, the assignments based on an available storage capacity of the logical disk;

determine an estimated prospective deletion time for an electronic message;
selecting one of the plurality of logical disks having an assigned future time closest to the estimated prospective deletion
time or having an assigned future time closest to the estimated prospective deletion time without being earlier than the estimated
prospective deletion time; and

store the electronic message in the selected logical disk.

US Pat. No. 10,566,026

METHOD FOR REAL-TIME VIDEO PROCESSING INVOLVING CHANGING FEATURES OF AN OBJECT IN THE VIDEO

Snap Inc., Santa Monica,...

1. A method, comprising:providing at least a portion of an object in frames of a video;
detecting the object in the video, the object including a set of features;
generating a list of at least one element of the object, the list being based on the set of features;
transforming at least one feature of the object within the frames of the video to generate modified frames with at least one modified feature, the at least one feature associated with an element selected from the list and the at least one feature being transformed in the modified frames within the video in which the object is detected while the video is provided at a computing device and the object is detected in the video; and
providing the modified frames including the at least one modified feature within the video.

US Pat. No. 10,165,402

SYSTEM TO TRACK ENGAGEMENT OF MEDIA ITEMS

Snap Inc., Santa Monica,...

1. A system comprising:a memory; andat least one hardware processor coupled to the memory and comprising an engagement tracking application that causes the system to perform operations comprising:detecting an exposure of a plurality of client devices to media content, the media content associated with a physical location;
classifying the plurality of client devices as exposed client devices in response to the detecting the exposure of the plurality of client devices to the media content;
detecting the exposed client devices at the physical location during a period of time;
calculating a visitation of the physical location during the period of time in response to the detecting the exposed client devices at the physical location during the period of time;
retrieving a baseline visitation of the physical location during the period of time, the baseline visitation indicating a historical average visitation to the physical location during the period of time;
calculating a lift associated with the media content based on the visitation and the baseline visitation; and
generating a visualization of the lift.

US Pat. No. 10,075,404

EPHEMERAL GALLERY OF EPHEMERAL MESSAGES WITH OPT-IN PERMANENCE

Snap Inc., Venice, CA (U...

1. A server, comprising:a processor; and
a memory storing instructions executed by the processor to:
maintain a plurality of ephemeral galleries of ephemeral messages including a first ephemeral gallery and a second ephemeral gallery an ephemeral gallery of ephemeral messages, wherein each ephemeral message is a photograph or a video, and each particular ephemeral gallery in the plurality of ephemeral galleries has a gallery timer that establishes a lifespan of the particular ephemeral gallery,
post a first ephemeral message to the first ephemeral gallery, wherein the ephemeral message has an associated a first message duration parameter and a first gallery participation parameter, wherein the first message duration parameter specifies a period of time for which the first ephemeral message is displayed, and the first gallery participation parameter specifies a period of time that the first ephemeral message will continue to be available for viewing in the first ephemeral gallery,
remove a second ephemeral message from the first ephemeral gallery in response to the identification of an expired a second gallery participation parameter of the second ephemeral message expiring, the second ephemeral message after removal thereof being unavailable for recipient viewing as part of the ephemeral gallery,
eliminate the first ephemeral gallery upon an earlier one of: a first expiration of the gallery timer associated with the first ephemeral gallery and a second expiration of a gallery participation parameter of a last most recent ephemeral message posted to the first ephemeral gallery, wherein a time period of the gallery timer is at least partly concurrent with a time period of the gallery participation parameter of the most recent ephemeral message, and
wherein eliminating the first ephemeral gallery comprises making the first ephemeral gallery unavailable for recipient viewing, and
preserve the second ephemeral gallery in response to receiving user input indicative of gallery preservation a gesture applied to an indicium to save the ephemeral gallery to produce a preserved gallery.

US Pat. No. 10,560,898

WEARABLE DEVICE LOCATION SYSTEMS

Snap Inc., Santa Monica,...

1. A method for improving a time to first fix for location circuitry of a wearable device, the method comprising:storing, in a memory associated with a high-speed circuit of a wearable device, time to first fix support data for a location circuit of the wearable device, wherein the location circuit is separate from the high-speed circuit;
initiating a location fix operation at the wearable device while operating the location circuit of the wearable device in a location circuit low-power state comprising a real-time clock and operating the high-speed circuit of the wearable device in a high-speed circuit low-power state;
in response to initiation of the location fix operation, booting the high-speed circuit and the location circuit, and automatically communicating the time to first fix support data in the memory to the location circuit on booting the high-speed circuit;
generating location state data at the location circuit using the time to first fix support data.

US Pat. No. 10,284,508

EPHEMERAL GALLERY OF EPHEMERAL MESSAGES WITH OPT-IN PERMANENCE

Snap Inc., Venice, CA (U...

1. A server, comprising:a processor; and
a memory storing instructions executed by the processor to:
maintain a plurality of ephemeral galleries of ephemeral messages including a first ephemeral gallery and a second ephemeral gallery an ephemeral gallery of ephemeral messages, wherein each ephemeral message is a photograph or a video, and each particular ephemeral gallery in the plurality of ephemeral galleries has a gallery timer that establishes a lifespan of the particular ephemeral gallery,
post a first ephemeral message to the first ephemeral gallery, wherein the ephemeral message has an associated a first message duration parameter and a first gallery participation parameter, wherein the first message duration parameter specifies a period of time for which the first ephemeral message is displayed, and the first gallery participation parameter specifies a period of time that the first ephemeral message will continue to be available for viewing in the first ephemeral gallery,
remove a second ephemeral message from the first ephemeral gallery in response to the identification of an expired a second gallery participation parameter of the second ephemeral message expiring, the second ephemeral message after removal thereof being unavailable for recipient viewing as part of the ephemeral gallery,
eliminate the first ephemeral gallery upon an earlier one of: a first expiration of the gallery timer associated with the first ephemeral gallery and a second expiration of a gallery participation parameter of a last most recent ephemeral message posted to the first ephemeral gallery, wherein a time period of the gallery timer is at least partly concurrent with a time period of the gallery participation parameter of the most recent ephemeral message, and
wherein eliminating the first ephemeral gallery comprises making the first ephemeral gallery unavailable for recipient viewing, and
preserve the second ephemeral gallery in response to receiving user input indicative of gallery preservation a gesture applied to an indicium to save the ephemeral gallery to produce a preserved gallery.

US Pat. No. 9,726,904

EYEWEAR WITH CONDUCTIVE TEMPLE JOINT

SNAP Inc., Venice, CA (U...

1. A wearable device comprising:
a frame configured to hold one or more optical elements, a temple connected to the frame at an articulated joint such that
the temple is disposable between a collapsed condition and a wearable condition in which the device is wearable by a user
to hold the one or more optical elements within user view;

onboard electronics components comprising at least a pair of electronics components carried by the frame and the temple respectively;
and

a coupling mechanism that is incorporated in the articulated joint and that is configured to electrically connect the pair
of electronics components across the articulated joint both when the temple is in the wearable condition and when the temple
is in the collapsed condition;

wherein the coupling mechanism comprises a first connector on a first face of the temple and a second connector on a second
face of the temple, wherein the articulated joint comprises a hinge assembly that is configured such that the first connector
conductively contacts with a complementary connector on the frame when the temple is in the wearable condition, and such that
the second connector conductively contacts a second complementary connector on the frame when the temple is in the collapsed
condition.

US Pat. No. 9,634,966

INTEGRATED TWO-WAY COMMUNICATIONS BETWEEN DATABASE CLIENT USERS AND ADMINISTRATORS

SNAP INC., Venice, CA (U...

1. A method for communicating between database client users and administrators, the method comprising:
receiving, at at least one processor of a computer system and from a database administrator (DBA) responsible for managing
aspects of a particular database, a message request comprising: a database name of the particular database, a plurality of
message recipients, and message content including a file attachment, the message request being a request to send the message
content to database client users currently connected to the particular database;

determining an Internet Protocol (IP) address associated with each message recipient of the plurality of message recipients,
without using an instant messaging address for each respective message recipient of the plurality of message recipients;

after determining the IP address associated with each respective message recipient of the plurality of message recipients,
transmitting a first message comprising the message content including the file attachment to each of the determined IP addresses,
the first message not including identification of any specific users of the particular database;

receiving a second message from one IP address of the determined IP addresses to which the first message was transmitted,
the second message comprising a reply message to the first message and being transmitted to an IP address of a database server
associated with the database administrator (DBA), the second message further not including an identity of the database administrator
(DBA); and

initiating display of the second message in a display window.

US Pat. No. 9,560,264

DEVICE AND METHOD FOR PHOTO AND VIDEO CAPTURE

Snap Inc., Venice, CA (U...

1. An image capture device comprising:
an image sensor capable of being configured to capture an image or a video,
a single user input element capable of detecting a first action from a user;
a processor connected to the image sensor and configured to:
determine a duration that a user applies the first action to the single user input element, store an image from the image
sensor based on the duration being less than a time interval; and

store the video from the image sensor based on the duration being greater than the time interval; and
the image sensor further being configured to capture the video starting after the user applies the first action and to continue
to capture the video for a portion of the duration, based on the duration being greater than the time interval.

US Pat. No. 10,235,562

EMOTION RECOGNITION IN VIDEO CONFERENCING

Snap Inc., Santa Monica,...

1. A computer-implemented method for video conferencing, the method comprising:receiving a video including a sequence of images corresponding to a videoconference between first and second users;
detecting at least one object of interest in one or more of the images;
locating feature reference points of the at least one object of interest;
determining that at least one deformation between two or more of the feature reference points refers to a facial emotion selected from a plurality of reference facial emotions;
determining that the facial emotion is a negative facial emotion; and
in response to determining that the facial emotion is the negative facial emotion, generating a communication for transmission to a non-participant of the videoconference between the first and second users, the communication bearing data associated with the negative facial emotion.

US Pat. No. 10,084,735

APPARATUS AND METHOD FOR ALTERNATE CHANNEL COMMUNICATION INITIATED THROUGH A COMMON MESSAGE THREAD

Snap Inc., Venice, CA (U...

1. A server, comprising:a processor; and
a memory storing a multiple channel message thread module with instructions executed by the processor to:
identify when participants at client devices are actively displaying a common text communication message thread at the same time to establish a participant viewing state indicative of the presence of the participants;
in response to the participant viewing state, activate by the server without input from the participants an alternate communication session between the client devices in an active but mute state;
supply to the client devices an alternate channel communication prompt in response to the operation to activate the alternate communication session; and
complete the alternate communication session at the client devices by eliminating the mute state in response to activation of the alternate channel communication prompt by at least one participant, wherein the alternate communication session is one of an audio session and a video session.

US Pat. No. 10,042,187

HEAT MANAGEMENT FOR ELECTRONIC DEVICES

Snap Inc., Venice, CA (U...

1. A case for eyewear device having an eyewear body carrying onboard electronic components that comprise a heat source that generates heat during electrically powered operation thereof, the case comprising:a case body having a hollow interior defining a holding space configured for holding the eyewear device;
one or more supports defined by the interior of the case body and configured for engagement with a portion of the eyewear device to support the eyewear device in a stowed position within the holding space;
one or more heat sinks housed by the case body and thermally conductively coupled in a heat transfer relationship with the heat source of the eyewear device; and
a first heat conduction pathway thermally connected to the one or more heat sinks and extending into the case body, the first heat conduction pathway thereby conducting heat from the heat source into the case body when the eyewear device is supported in the stowed position.

US Pat. No. 9,659,244

CUSTOM FUNCTIONAL PATTERNS FOR OPTICAL BARCODES

SNAP INC., Venice, CA (U...

1. A system comprising:
a hardware processor coupled to a memory, the hardware processor comprising a communication module;
the communication module to receive a request to generate a scannable image from a user, the request including a specification
of data to encode into the scannable image;

an encoder module to render data marks that encodes the specification of data and a bounding shape that contains the data
marks and a custom functional pattern, the custom functional pattern does not contain the data marks;

the encoder module further to generate the scannable image to include the data marks, the custom functional pattern and the
bounding shape, the custom functional pattern being positioned at a particular location with respect to the data marks and
the bounding shape in the scannable image to facilitate decoding of the specification of data encoded by the data marks; and

the communication module further to transmit the scannable image to a storage location specified by the user.

US Pat. No. 9,576,190

EMOTION RECOGNITION IN VIDEO CONFERENCING

Snap Inc., Venice, CA (U...

1. A computer-implemented method for video conferencing, the method comprising:
receiving a video including a sequence of images;
detecting at least one object of interest in one or more of the images;
locating feature reference points of the at least one object of interest;
aligning a virtual face mesh to the at least one object of interest in one or more of the images based at least in part on
the feature reference points;

finding over the sequence of images at least one deformation of the virtual face mesh, wherein the at least one deformation
is associated with at least one face mimic;

determining that the at least one deformation refers to a facial emotion selected from a plurality of reference facial emotions;
generating an emotional status of an individual based on the facial emotion selected from the plurality of reference facial
emotions;

determining that the facial emotion is a negative facial emotion; and
generating a communication bearing data associated with the negative facial emotion only where the facial emotion is determined
to be a negative facial emotion.

US Pat. No. 9,537,811

EPHEMERAL GALLERY OF EPHEMERAL MESSAGES

Snap Inc., Venice, CA (U...

1. A server, comprising:
a processor; and
a memory storing instructions executed by the processor to:
maintain an ephemeral gallery comprising a plurality of ephemeral messages posted by a user for viewing by one or more recipients,
wherein each of the ephemeral messages comprises a photograph or a video, the maintaining of the ephemeral gallery comprising
making the ephemeral gallery available for viewing, upon request, via respective user devices associated with the one or more
recipients;

for each of the plurality of ephemeral messages,
maintain an associated message duration parameter that indicates a display duration for the corresponding ephemeral message
during viewing of the ephemeral gallery, and

maintain a gallery participation parameter that indicates a time value for continued availability of the corresponding ephemeral
message in the ephemeral gallery;

responsive to receiving an ephemeral gallery view request from one of the one or more recipients, cause automated sequential
display of the plurality of ephemeral messages on a corresponding user device by performance of operations comprising:

starting a message timer when viewing of one of the plurality of the ephemeral messages is commenced,
determining that the message timer expires when the message timer equals the corresponding display duration,
responsive to expiry of the message timer, displaying a next one of the plurality of ephemeral messages in the ephemeral gallery,
and

repeating the starting, determining, and displaying operations until all ephemeral messages in the ephemeral gallery are viewed;
remove a particular one of the plurality ephemeral messages from the ephemeral gallery in response to the identification of
an expired gallery participation parameter corresponding to the particular ephemeral message, the particular ephemeral message
after removal thereof being unavailable for recipient viewing as part of the ephemeral gallery; and

eliminate the ephemeral gallery so that the ephemeral gallery is unavailable for viewing responsive to any recipient request,
the ephemeral gallery being eliminated upon expiration of either a gallery timer or upon expiration of the gallery participation
parameter of a last message in the ephemeral gallery, the last message being that one of the plurality of ephemeral messages
which was posted to the ephemeral gallery last.

US Pat. No. 10,284,509

STORAGE AND PROCESSING OF EPHEMERAL MESSAGES

Snap Inc., Santa Monica,...

1. A method comprising:receiving at a server an ephemeral message from a first client device for transmission to a second client device associated with a recipient of the message upon receipt by the server of a request from the second client device;
storing the message in a memory of the server; and
deleting the message from the memory of the server without transmitting the message to the second client device, the deleting being performed based on an occurrence of a triggering event, the triggering event comprising automatically receiving an indication from the first client device, wherein the triggering event occurs after the server receives the message from the first client device, and after the message has been received and stored.

US Pat. No. 10,182,047

PICTOGRAPH PASSWORD SECURITY SYSTEM

Snap Inc., Santa Monica,...

1. A method comprising: receiving, at a server computer, an assigned pictograph sequence request from a client device; accessing, by one or more processors of the server computer, a first data structure that contains a plurality of pictographs that are displayable on the client device; generating, using the one or more processors, a template pictograph sequence that includes at least two pictographs from the first data structure; accessing, by the one or more processors, a second data structure that contains words and phrases that are associated with the pictographs contained in the first data structure; determining, by the one or more processors, an association phrase for the template pictograph sequence, the association phrase based on the words and phrases associated with pictographs within the template pictograph sequence and based on an order of pictographs within the template pictograph sequence, the association phrase being determined at least in part by selecting, based on a second pictograph of the at least two pictographs, at least one of the words and phrases associated with a first pictograph of the at least two pictographs as a first word or phrase of the association phrase; computing a first coherency metric representing a first coherency between the selected at least one of the words and phrases associated with the first pictograph and a first of at least one of the words and phrases associated with the second pictograph; computing a second coherency metric representing a second coherency between the selected at least one of the words and phrases associated with the first pictograph and a second of the at least one of the words and phrases associated with the second pictograph; and in response to determining that the second coherency metric is greater than the first coherency metric, selecting the second of the at least one of the words and phrases associated with the second pictograph as a second word or phrase of the of the association phrase; storing the template pictograph sequence on a memory; and transmitting instructions that cause a display of the pictograph sequence and the association phrase to the client device, the display presentable within a user interface.

US Pat. No. 10,135,949

SYSTEMS AND METHODS FOR STORY AND SUB-STORY NAVIGATION

Snap Inc., Santa Monica,...

1. A method comprising:communicating, by a server system, at least a portion of a first story to a first client device based, at least in part, on a first client device association with a user segment assigned to the first story, wherein the first story comprises a first plurality of pieces of content configured for individual display of each piece of content of the first plurality of pieces of content in order on a screen of the first client device, and wherein each piece of content of the first plurality of pieces of content comprises one image or one video clip;
receiving, at the server system from the first client device, a first selection communication associated with a first piece of content of the first story;
accessing, in response to the first selection communication associated with the first piece of content, a second story comprising a second plurality of pieces of content sharing at least a portion of a set of content characteristics of the first piece of content, wherein the second story is selected in response to the first selection communication based on the portion of the set of content characteristics of the first piece of content, wherein each piece of content of the second plurality of pieces of content comprise one image or one video clip; and
communicating at least a portion of the second plurality of pieces of content to the first client device;
wherein the second story is automatically generated by the server system in response to receipt of the selection communication at the server system by selecting, from a database of the server system, the second plurality of pieces of content based on each image or video clip of the second plurality of pieces of content sharing the portion of the set of content characteristics.

US Pat. No. 9,742,713

APPARATUS AND METHOD FOR MAINTAINING A MESSAGE THREAD WITH OPT-IN PERMANENCE FOR ENTRIES

Snap Inc., Venice, CA (U...

1. A server, comprising:
a processor; and
a memory storing a message thread module with instructions executed by the processor to maintain a message thread between
users of client devices by

serving a message thread with a new text entry to a client device in response to a request for the message thread from a user;
collecting message thread state change from the client device, wherein the message thread state change represents an indication
to automatically delete the new text entry of the message thread after the duration of a transitory display period on the
client device unless an indication of a gesture applied to a display screen presenting the new text entry of the message thread
is received from the client device during the transitory display period, wherein the transitory display period is a single
digit number of seconds, and absence of the indication of the gesture causes the indication to automatically delete the new
text entry such that the new text entry is only viewed once for the single digit number of seconds;

queuing the message thread state change at the server along with additional message thread state changes associated with the
collecting operation performed for additional users and corresponding additional client devices associated with the message
thread;

revising the message thread based upon the message thread state change and the additional message thread state changes to
form shared message thread state, wherein revising includes asynchronous batch mode processing in response to a satisfied
synchronization condition;

storing persistently the shared message thread state until a next synchronization event; and
supplying the shared message thread state in response to a request for the message thread from a user that occurs after the
next synchronization event and supplying the message thread with the new text entry in response to a request for the message
thread from a user that occurs before the next synchronization event.

US Pat. No. 10,200,813

GEO-LOCATION BASED EVENT GALLERY

Snap Inc., Santa Monica,...

1. A method comprising:determining, by a computing device, a geolocation associated with a user operating the computing device;
sending, by the computing device, the geolocation to a server computer to determine that the geolocation associated with the user operating the computing device corresponds to a geo-fence associated with a plurality of galleries;
receiving, by the computing device, user-selectable gallery information comprising indicia for each of the plurality of galleries corresponding to the geo-fence, from the server computer in response to the geolocation sent to the server computer;
providing, by the computing device, the user-selectable gallery information comprising the indicia for each of the plurality of galleries corresponding to the geo-fence to the user operating the computing device;
detecting, by the computing device, a selection of indicia for a gallery in the plurality of galleries of the user-selectable gallery information, by the user of the computing device;
displaying, by the computing device, the gallery associated with the selection of the indicia for the gallery, the gallery comprising a plurality of messages appearing with photographs as the background for each message;
providing, by the computing device, a user interface to generate a message with a photograph as the background in response to a message in the gallery;
receiving, by the computing device, a message generated by the user of the computing device, the message comprising a photograph as the background of the message; and
sending, by the computing device, the message generated by the user to the server computer, wherein the server computer adds the message generated by the user to the gallery associated with the selection of the indicia for the gallery in the plurality of galleries of the user-selectable gallery information and wherein the message generated by the user is accessible by other users accessing the gallery information to view the message comprising the photograph as the background of the message.

US Pat. No. 10,097,497

STORAGE AND PROCESSING OF EPHEMERAL MESSAGES

Snap Inc., Venice, CA (U...

1. A system comprising:a hardware processor;
a memory comprising instructions which, when executed by the processor, cause the system to:
store messages received from client devices in a volatile memory for a standard time period;
move the stored messages to a non-volatile memory after they have been stored in the volatile memory for the standard time period;
determine that a first message stored in the volatile memory includes an indicator for extended storage in the volatile memory;
move the first message from the volatile memory to the non-volatile memory after it has been stored in the volatile memory for an extended time period that is longer than the standard time period; and
delete the stored messages from the volatile or non-volatile memory based on detection of a triggering event.

US Pat. No. 9,971,171

BATTERY ASSEMBLY FOR A WEARABLE ELECTRONIC DEVICE

Snap Inc., Venice, CA (U...

1. A method of forming a wearable device comprising:mounting a battery on a rigid battery carrier to form a battery assembly;
forming a first component of the device by housing the battery assembly in a body of a plastics material that is relatively lower in rigidity than a material of battery carrier, so that the battery assembly is configured to form at least part of a structural framework of the first component; and
connecting together the first component to a second component at an articulated joint, the battery assembly being secured to the articulated joint by a rigid mechanical connection formed at least, in part within a body of the first device component, the second component being configured to carry onboard electronics to be powered by the battery.

US Pat. No. 9,922,226

PRESENTING AN AUGMENTED REALITY WITHIN A CUSTOM GRAPHIC

SNAP INC., Venice, CA (U...

1. A method comprising:
receiving, at a server, a scanned image from a client device;
extracting candidate shape features from the scanned image,
identifying a custom graphic by comparing the candidate shape features with a reference shape feature of the custom graphic;
identifying an optical barcode based on the custom graphic;
identifying an augmented reality and a user interface item based on the optical barcode;
transmitting the augmented reality to the client device for display, at the client device, within the custom graphic of the
scanned image;

receiving, at the server, an indication that the scanned image was selected at the client device; and
transmitting, to the client device, the user interface item for display at the client device.

US Pat. No. 9,843,720

USER INTERFACE FOR ACCESSING MEDIA AT A GEOGRAPHIC LOCATION

SNAP INC., Venice, CA (U...

1. A mobile device comprising:
a processor; and
a memory storing instructions that, when executed by the processor, configure the mobile device to:
receive an identification of a geographic boundary related to a media item;
detect that the mobile device is located within the geographic boundary;
generate a notification in the mobile device in response to determining that the mobile device is located within the geographic
boundary, the notification comprising an instruction to orient the mobile device in a direction associated with the media
item;

cause the media item to be displayed in a display of the mobile device in response to detecting that the mobile device is
oriented in the direction associated with the media item; and

display a real time image captured by the mobile device in the display in response to detecting that the mobile device is
located within the geographic boundary related to the media item,

the media item displayed as layer on top of the real time image in the display in response to detecting that the mobile device
is oriented in the direction associated with the media item, a displayed size of the media item being smaller than a displayed
size of the real time image, a position of the media item in the display based on an orientation of the mobile device relative
to the direction associated with the media item.

US Pat. No. 9,705,831

APPARATUS AND METHOD FOR MAINTAINING A MESSAGE THREAD WITH OPT-IN PERMANENCE FOR ENTRIES

Snap Inc., Venice, CA (U...

1. A method implemented by a server with a processor and a memory storing instructions executed by the processor to maintain
a first message thread and a second message thread between a first user and a second user by:
directing, by the server, a second client device to display a text entry of the second message thread for a duration of a
transitory display period, wherein the text entry is from the first user and is presented on a second display screen associated
with the second client device of the second user, and wherein the first user generates the text entry with a first indication
to preserve the text entry in the first message thread, wherein the first indication is a first gesture applied to a first
display screen of a first client device associated with the first user that is received by the server as the first indication;

automatically deleting at the server the text entry of the second message thread for the second user after the duration of
the transitory display period unless a second indication of a second gesture applied to the second display screen presenting
the text entry of the message thread on the second client device associated with the second user is received at the server
during the transitory display period, in which case the text entry of the message thread is maintained by the server for the
second message thread and the server provides feedback to the first user that the text entry of the second message thread
is preserved; and

modifying, at the direction of the server, the text entry of the first message thread associated with the first user on the
first display screen associated with the first user if the server receives the second indication that the second user applied
the second gesture to the second display screen associated with the second user during the transitory display period, wherein
modifying includes the server providing first indicia indicating that only the first user provided the first indication and
that there was no second indication and therefore only the first user preserved the text entry or second indicia in response
to the first indication and the second indication to indicate that both the first user and the second user preserved the text
entry.

US Pat. No. 10,345,617

WEARABLE ELECTRONIC DEVICE WITH ARTICULATED JOINT

Snap Inc., Santa Monica,...

1. A wearable device comprising:a frame defining one or more optical element holders configured to hold respective optical elements for viewing by a user in a viewing direction;
an elongate temple moveably connected to the frame for holding the frame in position when the device is worn by the user; and
an articulated joint connecting the temple and the frame to permit movement of the temple relative to the frame between a wearable position in which the temple is generally aligned with the viewing direction, and a collapsed position in which the temple extends generally transversely to the viewing direction, the articulated joint including a base foot fixed to the frame and oriented transversely to the viewing direction, wherein the base foot is additionally a portion of a housing of the frame that is integrated into the housing, wherein the base foot is abutted along one or more internal surfaces disposed within the frame in a conductive heat exchange relationship by one or more heat sinks internal to the frame.

US Pat. No. 10,102,447

IMAGE SEGMENTATION FOR OBJECT MODELING

Snap Inc., Santa Monica,...

1. A computer implemented method, comprising:accessing a set of images within a video stream;
identifying an object of interest in one or more images of the set of images, the object of interest having a first portion and a second portion;
detecting a region of interest within the one or more images;
generating one or more binarization matrices from the one or more images;
determining a pixel radius;
filter the one or more binarization matrices to exchange a first pixel value for a second pixel value where a pixel associated with the first pixel value is proximate to a set of pixels of the second pixel value, based on the pixel radius;
identifying a first thickness and a first set of median pixels of the first portion and a second thickness and a second set of median pixels of the second portion;
determining a polyline approximating the first portion and the second portion of the object of interest; and
generating a model for the polyline.

US Pat. No. 9,759,933

BATTERY ASSEMBLY FOR A WEARABLE ELECTRONIC DEVICE

SNAP INC., Venice, CA (U...

1. A method of forming a wearable device comprising:
mounting a battery on a rigid battery carrier to form a battery assembly;
forming a first component of the device by housing the battery assembly in a body of a plastics material that is relatively
lower in rigidity than a material of battery carrier, so that the battery assembly is configured to form at least part of
a structural framework of the first component, wherein forming the first component comprises:

machining a base to form a cavity therein,
inserting the battery assembly into the cavity, and
machining a cover separate from the base and configured to thermally mate therewith;and
connecting together the first component to a second component at an articulated joint, the battery assembly being secured
to the articulated joint by a rigid mechanical connection formed at least in part within a body of the first device component,
the second component being configured to carry onboard electronics to be powered by the battery.

US Pat. No. 10,499,191

CONTEXT SENSITIVE PRESENTATION OF CONTENT

Snap Inc., Santa Monica,...

1. A method of invoking an application on an electronic display of a computing device, comprising:determining, via one or more hardware processors, a time of an event;
determining, via the one or more hardware processors, a current time;
determining, for a plurality of widgets, via the one or more hardware processors, a weight for each of the plurality of widgets, at least one of the weights based on the time of the event and the current time;
ranking, via the one or more hardware processors, the plurality of widgets based on their respective weights, the ranking comprising:
determining that a user is scheduled to attend the event;
determining that a first widget of the plurality of widgets is configured to assist the user to travel to the event; and
assigning a first rank to the first widget that is greater than a second rank assigned to a second widget of the plurality of widgets in response to determining that the first widget is configured to assist the user to travel to the event;
selecting, via the one or more hardware processors, a subset of the plurality of widgets based on the ranking; and
displaying, via the one or more hardware processors, the subset of the widgets.

US Pat. No. 10,341,304

DEVICE INDEPENDENT ENCRYPTED CONTENT ACCESS SYSTEM

Snap Inc., Santa Monica,...

1. A method, comprising:receiving a first authentication credential at a user device, the first authentication credential being associated with a user;
based on the first authentication credential, accessing, by one or more processors of the user device, a second authentication credential stored on a key server;
generating, by the one or more processors, an authentication token and an encryption token;
based on the authentication token, accessing, by the one or more processors, a plurality of encrypted content elements, an encrypted master key, and a plurality of encrypted content keys, each content element of the plurality of content elements associated with a separate encrypted content key of the plurality of encrypted content keys;
in response to accessing the encrypted master key, decrypting the master key to generate a master key using the encryption token;
in response to generating the master key, decrypting the plurality of encrypted content keys to generate a plurality of content keys using the master key;
decrypting one or more encrypted content elements of the plurality of encrypted content elements using one or more content keys of the plurality of content keys associated with the one or more encrypted content elements to generate a plurality of content elements;
causing presentation of at least a portion of the plurality of content elements on a display device of the user device.

US Pat. No. 10,164,975

AUTHENTICATION VIA CAMERA

Snap Inc., Santa Monica,...

20. A system comprising:one or more hardware processors; and
a memory comprising instructions which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising:
mapping an optical barcode to a user identity, and generating, by the authentication server, the user identity verification image to include a geometric shape with a custom pattern and the optical barcode within the geometric shape;
receiving a request from a mobile device for a user identity verification image;
transmitting, to a mobile device, the user identity verification image for the user of the mobile device in response to the request;
receiving, from a computing device, a scanned image captured by the computing device, wherein the computing device is different from the mobile device;
determining whether the scanned image includes data from the user identity verification image, the data including the optical barcode; and
transmitting, to a web server accessed by the computing device, an indication that the user of the mobile device's identity has been verified upon determining that the scanned image includes the data from the user identity verification image, and the optical barcode, and the determining further based on the mapping between the optical barcode and the user identity.

US Pat. No. 10,123,166

CONTENT REQUEST BY LOCATION

Snap Inc., Santa Monica,...

1. A method of obtaining media content of an event, comprising:identifying a subset of a plurality of client terminals of a plurality of users, client terminals of the subset being located in proximity to a geographic location of a real-life event at a time of the real-life event;
sending a message to each client terminal of the subset, the message containing a request,
to present on a respective display, to acquire media content documenting the real-life event in the geographic location, the request comprising instructions for imaging the real-life event;
receiving, from a first client terminal of the subset, a media content item in response to the message,
the media content item being acquired by the first client terminal of the subset and the media content item documenting the real-life event;
making the media content item available for access by a second client terminal; identifying a second subset of the plurality of client terminals of users potentially interested in the real-life event; and
providing the media content item to the second subset of client terminals,
the providing including sending a message with a reference to a network-accessible content file containing the media content item.

US Pat. No. 10,102,680

IMAGE BASED TRACKING IN AUGMENTED REALITY SYSTEMS

Snap Inc., Santa Monica,...

1. A method for determining a device location comprising:capturing, by an image sensor of the device, a first image of an environment;
accessing building location information describing one or more location points for at least a first building, wherein the building location information is associated with a first position estimate of the device;
processing the first image of the environment using the building location information, to identify a match between a first wall portion of the first image of the environment and the one or more location points of the building location information; and
calculating, based at least n part on a perspective associated with the first wall portion of the first image of the environment and the match between the first wall portion and the one or more location points, a second position estimate of the device.

US Pat. No. 10,082,926

APPARATUS AND METHOD FOR ALTERNATE CHANNEL COMMUNICATION INITIATED THROUGH A COMMON MESSAGE THREAD

Snap Inc., Venice, CA (U...

1. A server, comprising a processor; anda memory storing a multiple channel message thread module with instructions executed by the processor to:
identify when participants at client devices are actively viewing a common message thread at the same time to establish an active participant viewing state;
in response to the active participant viewing state, activate by the server without input from the participants an alternate communication session between the client devices in an active but mute state;
supply to the client devices an alternate channel communication lock prompt in response to the operation to activate the alternate communication session; and
complete the alternate communication session at the client devices by eliminating the mute state in response to activation of the alternate channel communication lock prompt by at least one participant, wherein the alternate communication session is one of an audio session and a video session.

US Pat. No. 9,801,018

CONTENT REQUEST BY LOCATION

SNAP INC., Venice, CA (U...

1. A method of obtaining media content of an event, comprising:
receiving from a client terminal over a network a message comprising an interest to receive a media content documenting a
real-life event;

identifying a subset of a plurality of client terminals of a plurality of users, members of said subset are located in proximity
to respective a geographic location of said real-life event at respective time of said first real-life event, said client
terminal is not a member of said subset;

sending a message to each member of said subset of said plurality of client terminals containing instructions to present on
a respective display on a request to acquire media content documenting said real-life event in said geographic location, said
request comprising instructions defined by one of said plurality of users for imaging at least one of a specific location
and a specific item in said real-life event; and

receiving at least one media content item sent using at least one member of said subset in response to said message, said
at least one media content item is acquired using said at least one member of said subset and documents said real-life event
in response to said message;

making said at least one media content item available for access by said client terminal.

US Pat. No. 9,794,303

METHOD AND SYSTEM FOR INTEGRATING REAL TIME COMMUNICATION FEATURES IN APPLICATIONS

Snap Inc., Venice, CA (U...

1. A computer, comprising:
a processor; and
a memory connected to the processor, the memory storing instructions executed by the processor to:
receive a real time communication request from a client device,
perform an evaluation of the number of client devices associated with the real time communication request, wherein the evaluation
results in the coordination of peer-to-peer communications in the event of two client devices and an attempt to host a real
time communication session using a first protocol in the event of three or more client devices,

invoke a second protocol for the real time communication session in the event that the attempt to host the real time communication
session using the first protocol is unsuccessful,

attempt to transition the real time communication session from the second protocol to the first protocol in response to the
first protocol connectivity success,

coordinate the peer-to-peer communications after confirming that the first protocol communication is operative for the two
client devices, and

designate client device feed qualities based upon peer-to-peer adaptation monitoring of a single communication session between
the two client devices.

US Pat. No. 10,616,470

WEARABLE ELECTRONIC DEVICE WITH HARDWARE SECURED CAMERA

Snap Inc., Santa Monica,...

1. A securable image capture device comprising:a housing defining an imaging aperture;
an image capture component coupled to the housing and aligned with the imaging aperture, the image capture component configured to capture image data of a field of view aligned with the imaging aperture;
a locking component coupled to the image capture component, the locking component comprising a programmable gate array programmable with a voltage corresponding to a power source, the locking component modifying a capture state of the image capture component to selectively enable image capture responsive to a selection releasing the locking component; and
a control component coupled to the locking component, the control component physically selectable or manipulable by a user of the securable image capture device, wherein interaction with the control component comprises the selection releasing the locking component and triggering modification of the capture state of the image capture component.

US Pat. No. 10,382,669

AUTOMATED ADJUSTMENT OF IMAGE STABILIZATION MODE

Snap Inc., Santa Monica,...

1. An eyewear device comprising:an eyewear body;
a camera mounted on the eyewear body and configured to be operable in a video capture mode and in a photo capture mode;
a button mechanism mounted on the eyewear body and configured for receiving user input to control operation of the camera, the button mechanism being disposable by a user between a pressed condition and a released condition; and
a camera controller incorporated in the eyewear body and configured to:
identify a press duration for which the button mechanism is disposed by to the pressed condition before being returned to the released condition; and
based on the identified press duration, automatically select an image stabilization mode to be applied to image data captured by the camera, the image stabilization mode being automatically switchable by the camera controller based on the identified press duration between a photographic stabilization mode and a video stabilization mode.

US Pat. No. 10,380,720

LOCATION-BASED IMAGE FILTERS

Snap Inc., Santa Monica,...

1. A system comprising:a processor; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:
detecting that a client device in communication with the system has captured an image;
identifying an image overlay based on the image;
providing the identified image overlay to the client device;
storing the provided image overlay in a collection of image overlays associated with the client device;
determining that the collection of image overlays contains more than a specified number of stored image overlays of a specified type; and
in response to determining that the collection of image overlays contains more than the specified number of stored image overlays of the specified type, providing a new image overlay to the client device.

US Pat. No. 10,346,985

GAZE-BASED CONTROL OF DEVICE OPERATIONS

Snap Inc., Santa Monica,...

1. A method comprising:receiving a video stream from an imaging device, the video stream depicting one or more eyes;
determining a gaze direction for the one or more eyes depicted in the video stream relative to a display device of a client device by calculating a cone having a radius and angle based on an appearance of the one or more eyes;
detecting a change in the gaze direction of the one or more eyes; and
triggering an operation in the client device responsive to the change in the gaze direction exceeding a predetermined percentage threshold of a viewable area of the display device.

US Pat. No. 10,334,154

AUTOMATED ADJUSTMENT OF DIGITAL IMAGE CAPTURE PARAMETERS

Snap Inc., Santa Monica,...

1. A portable electronic device comprising:a frame;
a camera mounted on the frame and configured to capture and process image data according to a plurality of image capture parameters;
an input mechanism provided on the frame and configured for receiving user input to control operation of the camera, the input mechanism being disposable by a user between an engaged condition and a disengaged condition; and
a camera controller incorporated in the frame and configured to automatically adjust one or more of the plurality of image capture parameters of the camera based at least in part on an activation duration indicating a duration for which the input mechanism is disposed to the engaged condition during user engagement with the input mechanism, the one or more automatically adjusted image capture parameters including an image stabilization parameter adjustable by the camera controller between a first mode and a second mode on-board image stabilization at the portable electronic device during image capture being more resource intensive in the first mode than in the second mode.

US Pat. No. 10,285,001

GENERATION, CURATION, AND PRESENTATION OF MEDIA COLLECTIONS

Snap Inc., Santa Monica,...

10. A device comprising:a processor; and
a computer readable medium coupled with the processor, the computer readable medium comprising instructions stored thereon that are executable by the processor to cause a computing device to perform operations comprising:
receiving a request from a user to activate a new media collection, the new media collection to be accessible only for a default predetermined window of time and to comprise a default geographic boundary size for where media content for the media collection originates;
receiving user input increasing the default predetermined window of time that the new media collection is accessible;
receiving, at the first computing device, user input increasing the default geographic boundary size for where media content for the media collection originates;
sending the request to a server computer for activation of the new media collection including the user input to increase the default predetermined window of time that the new media collection is accessible and the user input to increase the default geographic boundary size for where media content originates;
receiving confirmation that the new media collection was activated for the increased predetermined window of time and the increased geographic boundary size for where media content originates;
receiving, from one or more computing devices, a plurality of content messages originating in the increased geographic boundary size and associated with the new media collection for selection to include in the new media collection, the content messages comprising photos and video;
causing display of the plurality of content messages comprising photos and video for selection to include in the new media collection;
receiving user input selecting a subset of the plurality of content messages displayed, to be included in the new media collection;
sending, to a server computer, an indication of the selected subset of the plurality of content messages to be included in the new media collection;
wherein the server computer causes the selected subset of the plurality of content messages to be included in the new media collection and displayed in response to a request from at least a second computing device to view the new media collection based on determining the request occurs within the increased predetermined window of time that the new media collection is accessible; and
wherein the new media collection is no longer accessible after the increased predetermined window of time.

US Pat. No. 10,262,250

FACIAL PATTERNS FOR OPTICAL BARCODES

Snap Inc., Santa Monica,...

1. A method comprising:determining, via one or more hardware processors, that an image includes a face, the determining based in part on detecting two eyes in the face;
determining a line passing through the two eyes;
determining a second line perpendicular to the first line;
determining, based on the second line, an orientation of the image;
decoding, based on the determined orientation, data encoded within the image; and
accessing, via the one or more hardware processors, a resource based on the decoded data.

US Pat. No. 10,212,356

PARALLEL HIGH DYNAMIC EXPOSURE RANGE SENSOR

Snap Inc., Santa Monica,...

1. A system comprising:an image sensor including a first plurality of pixels and a second plurality of pixels, wherein a first pixel from the first plurality of pixels is disposed immediately adjacent a second pixel of the second plurality of pixels in a sensing area;
an optical device configured to control an amount of exposure of the first pixel and the second pixel such that the first pixel has a first exposure and the second pixel has a second exposure, wherein the first exposure and the second exposure are taken simultaneously synchronously, and wherein the first exposure differs from the second exposure; and
a non-transitory processor-readable storage medium storing processor executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
determine both a first luminance from the first exposure and a second luminance from the second exposure; and
determine a composite luminance from the first luminance and the second luminance wherein the composite luminance is determined by interpolating between the first luminance and the second luminance and according to a light condition, and wherein the interpolating comprises a bicubic interpolation where the value of the first pixel is based on sixteen pixels surrounding the first pixel.

US Pat. No. 10,198,819

IMAGE SEGMENTATION AND MODIFICATION OF A VIDEO STREAM

Snap Inc., Santa Monica,...

16. A non-transitory machine-readable storage medium storing processor executable instructions that, when executed by a processor of a machine, cause the machine to perform operations comprising:determining an approximate location of a mouth within a video stream including a face and comprising a first set of images and a second set of images;
identifying an area of interest within the one or more images of the first set of images, the area of interest being a portion of the one or more images encompassing the approximate location of the mouth;
generating, by the client device, a modified area of interest by converting the pixels within the area of interest to values along a grayscale to generate a grayscale area of interest, the pixels converted to grayscale by, for each pixel, generating a grayscale value by multiplying a fixed intensity value with a quotient of a triplet of color saturation values of the pixel;
identifying a set of teeth visible within the mouth in the grayscale area of interest;
identifying a first set of pixels and a second set of pixels within the grayscale area of interest and adding at least a portion of the first set of pixels as a set of landmark points within a binary mask of the face, the first set of pixels corresponding to the set of teeth within the mouth; and
when the teeth are visible within the second set of images, modifying a color value for the first set of pixels within the second set of images of the video stream.

US Pat. No. 10,135,765

REAL-TIME DISPLAY OF MULTIPLE ANNOTATED IMAGES

Snap Inc., Santa Monica,...

1. A method comprising:causing presentation, on a plurality of client devices, of a real-time slide show comprising annotated images from submissions to the real-time slide show by the plurality of client devices, the annotated images being annotated with location data generated by location sensors of the plurality of client devices;
receiving, from one of the plurality of client devices, a request to include an additional image in the real-time slide show while the real-time slide show is active, the request further including additional location data generated by an additional location sensor of the one of the plurality of client devices; and
in response to the request to include the additional image in the real-time slide show, generating an additional annotated image from the additional image and publishing the additional annotated image to the real-time slide show for simultaneous display on the plurality of client devices, the additional annotated image being automatically annotated with the additional location data.

US Pat. No. 10,069,876

METHOD AND SYSTEM FOR INTEGRATING REAL TIME COMMUNICATION FEATURES IN APPLICATIONS

Snap Inc., Venice, CA (U...

1. A computer, comprising:a processor; and
a memory connected to the processor, the memory storing instructions executed by the processor to:
receive a real time communication request from a client device,
perform an evaluation of the number of client devices associated with the real time communication request, wherein the evaluation results in the coordination of peer-to-peer communications in the event of two client devices and an attempt to host a real time communication session using a first protocol in the event of three or more client devices,
invoke a second protocol for the real time communication session in the event that the attempt to host the real time communication session using the first protocol is unsuccessful,
attempt to transition the real time communication session from the second protocol to the first protocol in response to the first protocol connectivity success, wherein the first protocol is the User Datagram Protocol and the second protocol is the Transmission Control Protocol,
host an application program interface operative to supply analytics on real time communication sessions, and
supply to a client a prompt regarding charges associated with a real time communication session and prompts for choosing a payment method for the charges.

US Pat. No. 10,061,977

DETERMINING A MOOD FOR A GROUP

Snap Inc., Venice, CA (U...

1. A machine-readable medium having no transitory signals and storing instructions that, when executed by processing circuitry of a machine, cause the machine to perform operations comprising:receiving, by a mood detection system comprising the processing circuitry, a request from a computer network to monitor attendee sentiment at an event, the event including two or more attendees;
receiving, by the mood detection system, from a plurality of client devices over the computer network, a corresponding plurality of messages from respective social network members to a corresponding second plurality of social network members, each message including an indication of a position of the client device of the social network member and an indicator comprising at least one of an image of a face of an attendee or a description representing an emotion of an attendee;
assembling, by the mood detection system and based on the respective position indications, from the plurality of messages a set of messages that were received from social network members at the event;
determining, by the mood detection system, a numerical value for each of the indicators in the assembled set of messages, numerical values for each of the images of a face determined by defining points for one or more regions of the respective faces and comparing a distribution of the points with points defined in an electronic database of facial expressions;
aggregating the numerical values to determine an aggregate mood of the attendees of the event; and
displaying, on an electronic display, by the mood detection system, a graphical representation of the aggregated numerical values.

US Pat. No. 9,936,022

COMPUTER DEVICE FOR READING E-BOOK AND SERVER FOR BEING CONNECTED WITH THE SAME

SNAP INC., Venice, CA (U...

1. A networking service server comprising:a hardware processor;
memory coupled to the hardware processor;
a database configured to store a plurality of service data; and
a searching module configured for searching the database according to a content identifier sent from a computer device, and further configured to select a corresponding service data from the plurality of service data,
wherein the server is configured to generate a message according to the corresponding service data and return the message to the computer device, configured to be in communication with the computer device via a network, and wherein the server is configured to receive the content identifier from the computer device, and wherein the server is configured to download an e-book to the device, the e-book comprising the content identifier and content corresponding to the content identifier; and
the plurality of service data comprising a plurality of membership data of a social networking service, such that the searching module is configured to select a corresponding membership data from the plurality of membership data and treat the selected membership data as the corresponding service data.

US Pat. No. 9,825,898

PRIORITIZATION OF MESSAGES WITHIN A MESSAGE COLLECTION

SNAP INC., Venice, CA (U...

1. A method of processing messages, the method comprising:
receiving, at a server computer, priority information from at least one sponsor, the priority information to be used in determining
a priority of one or more messages received from a plurality user devices;

creating, by the server computer, a message collection using a plurality of messages received from the plurality of user devices;
applying, by the server computer, the priority information to at least one of the messages in the message collection;
prioritizing, by the server computer, the at least one message in the message collection according to the applied priority
information; and

supplying, by the server computer, the message collection with the at least one message in an order of presentation based
on the applied priority information of the at least one message.

US Pat. No. 10,565,743

SYNTHESIZING CLOUD STICKERS

Snap Inc., Santa Monica,...

1. A non-transitory computer readable storage medium comprising instructions that when executed, cause one or more hardware processors to perform a method of modifying image content, the method comprising:displaying, by one or more electronic hardware processors, an image;
determining, by the one or more electronic hardware processors, a sky region of the image;
receiving, by the one or more electronic hardware processors, user input that places content within the image;
determining, by the one or more electronic hardware processors, whether the content has been placed by the user input within the sky region of the image; and
in response to determining that the content was placed by the user input within the sky region of the image, modifying, by the one or more electronic hardware processors, the content to have a texture resembling an attribute of the sky region.

US Pat. No. 10,540,575

EPHEMERAL CONTENT MANAGEMENT

Snap Inc., Santa Monica,...

1. A method of image tagging on a mobile device, comprising:accessing, by one or more processors of the mobile device, image data for a first image;
processing, by the one or more processors, the image data to determine one or more characteristics of the image data;
processing the one or more characteristics to assign an ephemeral status indicator for the image data; and
selecting a storage status for the image data based on the ephemeral status indicator for the image data;
accessing a content database comprising messaging history data associated with the one or more characteristics of the image data, wherein the one or more characteristics are further processed with the messaging history data to assign the ephemeral status indicator for the image data, and wherein the storage status is selected between a non-ephemeral camera roll storage and an ephemeral local application storage;
storing, based on the ephemeral status indicator, the image data for the first image within the non-ephemeral camera roll storage;
receiving, at the mobile device, a first user input selecting the first image from within an ephemeral messaging client application;
in response to the first user input, importing the first image from the non-ephemeral camera roll storage into the ephemeral local application storage of the ephemeral messaging client application, wherein the first user input selects the first image for inclusion in a first content collection comprising a plurality of content elements; and
publishing, by the mobile device, the first content collection via an ephemeral messaging server system, wherein the first image is presented within the first content collection based on a time of generation of the first image compared with a time of publication associated with publication of the first content collection.

US Pat. No. 10,503,924

APPARATUS AND METHOD FOR AUTOMATED PRIVACY PROTECTION IN DISTRIBUTED IMAGES

Snap Inc., Santa Monica,...

1. A method executed by a computer, comprising:receiving a digital image from a client device;
executing a facial recognition technique against an individual face within the digital image to obtain a recognized face;
adding textual content to the digital image in response to the recognized face to form an enhanced digital image;
applying privacy rules to the enhanced digital image, wherein the privacy rules are associated with privacy settings for a user associated with the recognized face; and
distributing a privacy protected version of the enhanced digital image, wherein the privacy protected version of the enhanced digital image has an altered image feature, and wherein the distribution of the privacy protected version of the enhanced digital image is limited by selectively blocking distribution of the enhanced digital image in accordance with the privacy rules.

US Pat. No. 10,311,916

GALLERY OF VIDEOS SET TO AN AUDIO TIME LINE

Snap Inc., Santa Monica,...

1. A method comprising:generating, by a first computing device, a new message comprising video content and associated audio content, the message associated with a first user;
receiving, by the first computing device, a selection from the first user of a selectable song associated with a designated gallery comprising video content of each of a plurality of messages received from a plurality of computing devices associated with a plurality of users, each video content of each of the plurality of messages positioned in the audio timeline of the selectable song based on audio fingerprints of each of the video content;
automatically causing, by the first computing device, the video content of the new message to be positioned at a location in the audio timeline of the selectable song based on an audio fingerprint of the audio content of the new message; and
displaying, by the first computing device, the designated gallery comprising the video content of the plurality of messages received from the plurality of computing devices associated with the plurality of users and the video content of the new message.

US Pat. No. 10,242,477

CODED VISION SYSTEM

Snap Inc., Santa Monica,...

1. A method comprising:receiving a user action through a display device displaying one or more images comprising an image feature, the display device being a display of a client device of a first user that has a first user account on a network platform, the image feature being an identifier of a second user account on the network platform, the second user account belonging to a second user;
determining whether the second user account on the network platform has avatar data of the second user;
in response to determining that the second user account has avatar data from the second user, receiving, from a server of the network platform, a response comprising the avatar data of the second user;
generating a combined avatar that displays the avatar data of the second user with avatar data of the first user, the combined avatar generated from a combined avatar template that arranges the avatar data of the first user and the avatar data of the second user into a specified configuration; and
displaying, on the display device of the client device, the combined avatar on the one or more images.

US Pat. No. 10,242,503

SURFACE AWARE LENS

Snap Inc., Santa Monica,...

1. A system, comprising:a memory; and
at least one hardware processor coupled to the memory and comprising a virtual object rendering system, the virtual object rendering system causing the system to perform operations comprising:
receiving an input to activate a surface aware lens that facilitates rendering of a virtual object in a three-dimensional space captured within a camera view;
detecting a reference surface in the three-dimensional space captured within the camera view;
orienting the virtual object based on the reference surface, the orienting of the virtual object comprising:
assigning the virtual object to a position in three-dimensional space based on the detected reference surface, and
identifying tracking indicia operable to track the virtual object in the three-dimensional space;
rendering the virtual object to appear in the three-dimensional space captured within the camera view, the virtual object being rendered with respect to the reference surface;
tracking, by a first tracking subsystem from among a set of tracking subsystems, the virtual object at the position in the three-dimensional space using the tracking indicia;
detecting, by the first tracking subsystem, an interruption of the tracking indicia; and
in response to detecting the interruption of the tracking indicia, tracking the virtual object at the position in the three-dimensional space via a second tracking subsystem from among the set of tracking subsystems.

US Pat. No. 10,219,111

VISITATION TRACKING SYSTEM

Snap Inc., Santa Monica,...

1. A method comprising:retrieving location data from a client device;
identifying a geo-cell from among a set of geo-cells based on the location data from the client device;
accessing a database that comprises location identifiers of one or more physical locations within the geo-cell, each location identified by the location identifiers associated with media content, the media content including a first media object associated with a first location within the geo-cell;
determining a user density of at least the first location located within the geo-cell, the user density based on a number of request to access the first media object associated with the first location;
ranking the first location among the location identifiers within the database based on the user density of the first location; and
loading the first media object at the client device based on the ranking of the first location among the location identifiers.

US Pat. No. 10,218,114

CIRCUITS AND METHODS FOR WEARABLE DEVICE CHARGING AND WIRED CONTROL

Snap Inc., Santa Monica,...

1. A wearable device comprising:a charge interface comprising a first charge pad and a second charge pad; and
circuitry coupled to the first charge pad and the second charge pad and configured to:
perform a charging process in a charge state where the wearable device receives an electrical charge from a first device to charge a battery during an initial charging period via the first charge pad and the second charge pad;
sense, following the initial charging period, for a charge disconnect interrupt detected via the first charge pad and the second charge pad;
in response to the charge disconnect interrupt, communicate a transition signal via the first charge pad and the second charge pad to the first device;
following the transition signal, enter a transmission state and transmit data via the charge interface from the wearable device during a first time period;
enter a receive state and receive data via the charge interface from the first device during a second time period, wherein the second time period is different from the first time period and wherein the second time period occurs after communication of the transition signal; and
return to the charge state for a second charging period following the first time period and the second time period.

US Pat. No. 10,212,541

SELECTIVE LOCATION-BASED IDENTITY COMMUNICATION

Snap Inc., Santa Monica,...

1. A method comprising:identifying, by one or more processors, a current location of a mobile computing device;
detecting, by the one or more processors, a selection of a user interface element associated with the current location of the mobile computing device;
causing, by the one or more processors, presentation of a set of display elements corresponding to the current location, the set of display elements representing one or more display characteristics for the current location of the mobile computing device;
detecting, by the one or more processors, selection of a display element of the set of display elements;
in response to detecting the selection of the display element:
modifying, by the one or more processors, a display characteristic for the current location of the mobile computing device within a set of mobile computing devices, the modifying of the display characteristic for the current location of the mobile computing device changing the current location from a first display characteristic to a second display characteristic;
modifying, by the one or more processors, a depiction of the display element;
identifying, by the one or more processors, a time period associated with one or more of the display element and the display characteristic;
generating, by the one or more processors, a notification corresponding to the time period, the notification presented within a graphical user interface proximate to the modified depiction of the display element;
initiating, by the one or more processors, the time period associated with the display element, the time period initiated at a first time;
detecting, by the one or more processors, exhaustion of the time period at a second time subsequent to the first time; and
in response to detecting the exhaustion of the time period:
automatically reverting the depiction of the display element, and
automatically modifying the display characteristic for the current location of the mobile computing device from the second display characteristic to a third display characteristic.

US Pat. No. 10,200,327

STORAGE MANAGEMENT FOR EPHEMERAL MESSAGES

Snap Inc., Santa Monica,...

1. A system comprising: at least one hardware processor configured to:assign an individual time to each of a plurality of logical disks, each time indicating when the respective logical disk is available for writing;
select one of the plurality of logical disks having an assigned time closest to an estimated deletion time of an electronic message or having an assigned time closest to the estimated deletion time of the electronic message without being earlier than the estimated deletion time of the electronic message; and
store the electronic message on the selected logical disk;
marking each of the plurality of logical disks as unavailable in response to an amount of data stored on the logical disk exceeding a first size threshold;
in response to the amount of data stored on the logical disk decreasing below a second size threshold lower than the first size threshold;
copying electronic messages stored on the logical disk to a different logical disk,
deleting the electronic messages stored on the logical disk, and
clearing an unavailable designation from the logical disk.

US Pat. No. 10,198,859

AUTOMATED THREE DIMENSIONAL MODEL GENERATION

Snap Inc., Santa Monica,...

1. A method, comprising:causing presentation of a graphical user interface frame encompassing a graphical rendering of a field of view of an image capture device of a mobile computing device;
detecting a face within the graphical user interface frame and the field of view of the image capture device;
generating a movement instruction directing movement of the face within the field of view of the image capture device;
identifying a first key frame during a first change in position of the face within the field of view of the image capture device;
identifying one or more subsequent key frames corresponding to a second change in position of the face within the field of view of the image capture device;
based on the first key frame and the one or more subsequent key frames, generating a set of depth maps including a depth map for each key frame, the set of depth maps including a first depth map having a first resolution and a second depth map having a second resolution, the one or more subsequent key frames being identified and the set of depth maps being generated until a specified resolution is reached; and
generating a three dimensional model of the face based, at least in part, on the set of depth maps.

US Pat. No. 10,187,853

SYSTEMS AND METHODS FOR WEARABLE INITIATED HANDSHAKING

Snap Inc., Santa Monica,...

1. A method comprising:communicating, from a client device to a wearable camera device via a low-power wireless connection, a new data query;
receiving, from the wearable camera device in response to the new data query, a new camera data message identifying first camera data stored on the wearable camera device;
performing, by the client device, a high-speed connection status check;
communicating, in response to the high-speed connection status check, a connection communication from the client device to the wearable camera device, wherein the connection communication instructs the wearable camera device to activate high-speed wireless circuitry of the wearable camera device;
establishing a high-speed wireless connection to the wearable camera device for receipt of the first camera data from the wearable camera device.

US Pat. No. 10,154,192

APPARATUS AND METHOD FOR SUPPLYING CONTENT AWARE PHOTO FILTERS

Snap Inc., Santa Monica,...

1. A server, comprising:a photograph filter module with instructions executed by a processor to:
identify when a client device presents an image on a display;
select photograph filters based upon attributes of the client device and attributes of the image, wherein the attributes of the client device include geolocation of the client device, and wherein the attributes of the image include an object depicted in the image;
supply the photograph filters to the client device, wherein the photograph filters are configured to be independently selectable by a user in response to a gesture applied to the image as presented on the display of the client device, wherein each photograph filter is an overlay on top of the image to augment the image and is not presented on the display of the client device until it is overlaid on the image in response to the gesture applied to the image presented on the display of the client device;
receive a selection of a photograph filter; and
route the photograph filter and a photograph corresponding to the image to another client device.

US Pat. No. 10,133,705

MULTICHANNEL SYSTEM

Snap Inc., Santa Monica,...

1. A method comprising:receiving at a publication application of a server, from a first client device, a first layer and a second layer of content that depicts a story, the second layer including graphics images that correspond to the content;
grouping the content that depicts the story into an edition being used to represent the story;
generating, using one or more hardware processors of the server, a discovery page that enables selection of the edition including generating a first icon of a channel that is selectable to cause presentation of the edition, the channel corresponding to a source of the content;
causing presentation, using the one or more hardware processors of the server, of the discovery page on a second client device;
causing presentation, using the one or more hardware processors of the server, of the first layer of the content from the edition over the second layer of the content from the edition on the second client device based on selection of the first icon from the discovery page, the presenting of the second layer being performed in response to a vertical swipe across a screen of the second mobile device that displays the first layer, the first layer of the media content being a preview of a video and the second layer of the media content including the graphics images being superimposed over the video;
receiving, by the server, from the second client device, an ephemeral message that is available for a predefined duration of time, the ephemeral message including an annotated version of the content that depicts the story and an indication to share the annotated version of the content with a third client device, the annotated version of the content including a further image that is displayed over either the first layer of the content or the second layer of the content;
causing presentation, using the one or more hardware processors of the server, of the annotated version of the content on the third client device, the presentation limited to the predefined duration of time; and
causing presentation, using the one or more hardware processors of the server, of a second icon having a different color than the first icon on the third client device in response to all editions from the channel being viewed by the third client device.

US Pat. No. 10,123,167

CONTENT REQUEST BY LOCATION

Snap Inc., Santa Monica,...

1. A method of obtaining media content of an event, comprising:identifying a subset of a plurality of client terminals of a plurality of users,
client terminals of the subset being located in proximity to a geographic location of a real-life event at a time of the real-life event;
sending a message to each client terminal of the subset, the message containing a request,
to present on a respective display, to acquire media content documenting the real-life event in the geographic location, the request comprising instructions for imaging the real-life event;
receiving, from a first client terminal of the subset, a media content item in response to the message,
the media content item being acquired by the first client terminal of the subset and the media content item documenting the real-life event;
providing the media content item to the second client terminal,
the providing including sending a message with a reference to a network-accessible content file containing the media content item; and
distributing, to a second client terminal, the media content item, the distributing occurring at a frequency determined based on at least one of the time and the geographic location of the real-life event.

US Pat. No. 10,061,608

TRANSACTIONAL MESSAGING SUPPORT IN CONNECTED MESSAGING NETWORKS

Snap Inc., Venice, CA (U...

1. A method for transactional messaging support in connected messaging networks, the method comprising:receiving, at a computing system comprising a proxy application operating between a first messaging network which does not support transactional processing, and a second messaging network which does support transactional processing, a message from a first application on the first messaging network comprising instructions to use advanced features supported by the second messaging network on behalf of the first application;
reading, by the computing system, the message to obtain instructions from the first application for using a procedure of transactional processing supported by the second messaging network for the message, wherein the procedure is not supported by non-transactional processing of the first messaging network;
interpreting, by the computing system, the instructions of the first application obtained from the message for using the procedure of transactional processing supported by the second messaging network that is not supported by non-transactional processing of the first messaging network, to use advanced features supported by the second messaging network on behalf of the first application;
adding, by the computing system, the transactional processing to the message according to the instructions of the first application obtained from the message;
forwarding, by the computing system, to the second messaging network, the message with the transactional processing for the advanced features supported by the second messaging network;
determining, by the computing system, an outcome of the message; and
returning, by the computing system, the outcome of the message to the first application on the first messaging network;
wherein the message is one of a plurality of messages representing a first transaction and the instructions for transactional processing of the message includes exposing a beginning and an end of the plurality of messages so that the first application has control.

US Pat. No. 9,887,955

MESSAGE QUEUES FOR RAPID RE-HOSTING OF CLIENT DEVICES

SNAP INC., Venice, CA (U...

1. A method for relaying electronic messages between connected gateway servers, the method comprising:
assigning a first chain of the gateway servers to a first client device, the first chain starting at a first gateway server
of the gateway servers that hosts the first client device and ending at a second gateway server of the gateway servers;

assigning a second chain of the gateway servers to a second client device, the second chain starting at a third gateway server
of the gateway servers that hosts the second client device and ending at a fourth gateway server of the gateway servers;

receiving, at the first gateway server, an electronic message from a sender associated with the first client device to a recipient
associated with the second client device;

determining a sequence of the gateway servers that starts at the first gateway server and ends at the third gateway server,
the sequence comprising the first and second chains;

sending, by each of the gateway servers in the sequence, the electronic message to the subsequent gateway server in the sequence;
storing the electronic message in a message queue associated with the sender in each of the gateway servers of the first chain,
and

storing the electronic message in a message queue associated with the recipient in each of the gateway servers of the second
chain.

US Pat. No. 10,591,745

EYEWEAR WITH CONDUCTIVE TEMPLE JOINT

Snap Inc., Santa Monica,...

1. A wearable device comprising:a frame configured to hold one or more optical elements;
a temple connected to the frame at an articulated joint such that the temple is disposable between a collapsed condition and a wearable condition in which the device is wearable by a user to hold the one or more optical elements within user view;
one or more onboard electronics components carried by the frame and the temple, the onboard electronics components including a computer and a battery; and
a first electrical connector between the temple and the frame, the first electrical connector configured to create a first electrical connection only when the temple is positioned in a collapsed condition;
wherein via the first electrical connection the computer is operable and supplied with power when the temple is in the collapsed condition.

US Pat. No. 10,467,274

DEEP REINFORCEMENT LEARNING-BASED CAPTIONING WITH EMBEDDING REWARD

Snap Inc., Santa Monica,...

1. A method comprising:extracting, by an image captioning system, an image feature from an image;
analyzing, by a policy network of the image captioning system, the image feature to compute a probability of a next word to be generated for a caption describing the image feature, the probability comprising a list of options for the next word and a policy network score for each possible option in the list of options;
ranking, by the policy network of the image captioning system, the list of options for the next word of the caption based on the policy network score for each possible option in the list of options;
analyzing, by a value network of the image captioning system, the image feature and the probability of the next word generated by the policy network to generate a value network score for each possible option in the list of options;
ranking, by the value network, the list of options for the next word of the caption based on the value network score; and
selecting, by the image captioning system, a next word for the caption based on the ranking of the list of options by the policy network and the ranking of the list of options by the value network.

US Pat. No. 10,387,730

AUGMENTED REALITY TYPOGRAPHY PERSONALIZATION SYSTEM

Snap Inc., Santa Monica,...

1. A method comprising:capturing an image at a client device, the image depicting a physical location;
analyzing the image depicting the physical location to identify an occurrence of typography at a location within the image depicting the physical location, the occurrence of the typography comprising at least a text string, and a background pattern;
detecting properties of the text string, the properties of the text string including a character-set, a length, and a height;
identifying a first character and a second character that make up the character-set, the first character at a first position in the text string, and the second character at a second position in the text string;
receiving a request to remove the first character from the text string;
generating an updated text string based on the request to remove the first character from the text string, the updated text string including at least the second character; and
generating a presentation of the image at the client device, the presentation of the image including a display of the updated text string at the location of the occurrence of typography within the image depicting the physical location, the display of the updated text string comprising the background pattern at the first position of the text string previously occupied by the first character, and the second character at the second position of the text string.

US Pat. No. 10,382,372

PROCESSING MEDIA CONTENT BASED ON ORIGINAL CONTEXT

Snap Inc., Santa Monica,...

1. A method comprising:capturing, at a computing device, a media content item at a first time period;
detecting, by the computing device, context data for the media content item during the first time period when the media content item is captured;
storing, by the computing device, the media content item and the context data for the media content item;
receiving, at a second time period, by the computing device, an indication from a user to access the media content item;
retrieving, by the computing device, the media content item and the context data for the media content item;
displaying, by the computing device, the media content item to the user;
analyzing, by the computing device, the context data for the media content item to determine a first set of creative tools that are not available during the second time period but were available during the first time period based on the context data for the media content item;
providing to the user, by the computing device, creative tools comprising the first set of creative tools that were available during the first time period but not available during the second time period;
recording, by the computing device, each action performed by the user in applying or removing one or more of the first set of creative tools to the media content item; and
storing, by the computing device, the recorded user actions and the one or more of the first set of creative tools applied to the media content item separately from the media content item.

US Pat. No. 10,380,394

PRESENTING AN AUGMENTED REALITY WITHIN A CUSTOM GRAPHIC

Snap Inc., Santa Monica,...

1. A method comprising:receiving, by one or more hardware processors, an image from a client device;
identifying, by the one or more hardware processors, candidate shape features from the image;
identifying, by the one or more hardware processors, a custom graphic by comparing the candidate shape features with a reference shape feature of the custom graphic, the comparing comprising:
computing an area score by comparing a first candidate shape feature of the candidate shape features that represents an area value with a reference area of the reference shape;
determining that the area score fails to exceed an area rule threshold; and
analyzing a second candidate shape feature of the candidate shape features to identify the custom graphic in response to determining that the area score fails to exceed the area rule threshold; and
identifying, by the one or more hardware processors, an optical barcode based on the identified custom graphic;
identifying, by the one or more hardware processors, an augmented reality based on the optical barcode; and
transmitting, by the one or more hardware processors, the augmented reality to the client device
identifying, by the one or more hardware processors, a user account based on the optical barcode;
receiving, by the one or more hardware processors, an indication that the image including the optical barcode was selected at the client device; and
transmitting, to the client device, a user interface item associated with the user account in response to the indication.

US Pat. No. 10,348,960

APPARATUS AND METHOD FOR SUPPLYING CONTENT AWARE PHOTO FILTERS

Snap Inc., Santa Monica,...

1. A server, comprising:a photograph filter module with instructions executed by a processor to:
identify when a client device captures a photograph;
select a plurality of photograph filters based at least in part on geolocation information received from the client device, the plurality of photograph filters incorporating the geolocation information received from the client device;
supply the plurality of photograph filters to the client device, wherein the plurality of photograph filters are configured to be individually selectable for sequential presentation on a display of the client device and the plurality of photograph filters are not presented on the display of the client device until a gesture is applied to the display of the client device by a user, and then are sequentially overlaid on top of the photograph captured by the client device to augment the photograph in response to the gesture of the user applied to the display of the client device.

US Pat. No. 10,345,987

CONTENT COLLECTION NAVIGATION QUEUE

Snap Inc., Santa Monica,...

1. A method for network communication of image-based content collections, the method comprising:storing, at a database of a server computer system, a plurality of content messages from a plurality of client devices, wherein a corresponding piece of content from each content message is associated with a display time less than a threshold display time;
generating, by the server computer system, a first plurality of content collections from the plurality of content messages, each content collection of the first plurality of content collections comprising associated content from one or more content messages of the plurality of content messages;
communicating, from the server computer system to a first mobile device, interface information for each content collection of the first plurality of content collections, the interface information including a first selectable queue request element associated with a first content collection within the first plurality of content collections, a second selectable queue request element associated with a second content collection within the first plurality of content collections, and a queue play element;
receiving, from the first mobile device, a first story queue request associated with the first selectable queue request element within the interface information;
receiving, from the first mobile device, a second story queue request associated with the second selectable queue request element within the interface information;
receiving, from the first mobile device, a playlist request associated with the queue play element within the interface information;
communicating the one or more content messages from the first content collection to the first mobile device for display on the first mobile device in response to the playlist request; and
automatically communicating the one or more content messages from the second content collection to the first mobile device for automatic display on the first mobile device.

US Pat. No. 10,333,875

PROCESSING MEDIA CONTENT IN A MESSAGING SYSTEM

Snap Inc., Santa Monica,...

1. A method comprising:receiving, at a server computer, a request from a first device for instructions to process a plurality of media content items, the request including a unique identifier for each of the plurality of media content items;
determining, using the unique identifier for each of the plurality of media content items, a subset of the plurality of media content items to be processed by the first device;
generating instructions for processing the subset of the plurality of media content items by the first device;
sending the instructions to the first device;
receiving a request from the first device to share the plurality of media content items with a second device, the request including the unique identifier for each of the plurality of media content items to be shared, and processed media content items for the subset of the plurality of media content items;
generating a message including processed media content items for the plurality of media content items; and
sending the generated message to the second device.

US Pat. No. 10,331,743

SYSTEM AND METHOD FOR GENERATING AND INTERACTING WITH A CONTEXTUAL SEARCH STREAM

Snap Inc., Santa Monica,...

1. A method comprising:receiving, by a query platform system, a first query input from a first client device associated with a first user account;
converting the first query input into a query syntax normalized across multiple query services;
inputting the first query input through a first service provider application programming interface (API) that is mapped to the first query input according to the query syntax;
retrieving, first result data provided by a first external service system responsive to the first query input, the first external service system corresponding to the first service provider API;
processing, by the query platform system, the first result data into a first set of normalized first result data;
rendering, by the query platform system, the first set of normalized result data into a first result item;
generating, by the query platform system, a shareable search result stream comprising the first result item associated with the first user account;
receiving, by the query platform system, a second query input from a second client device of a second user associated with a second user account;
converting the second query input into a query syntax normalized across multiple query services;
inputting the second query input through a second service provider API that is mapped to the second query input according to the query syntax;
retrieving, second result data provided by a second external service system responsive to the second query input, the second external service system corresponding to the second service provider API;
processing, by the query platform system, the second result data into a second set of normalized second result data;
rendering, by the query platform system, the second set of normalized second result data into a second result item;
adding, by the query platform system, the second result item to the shareable search result stream associated with the first user account; and
providing, to the first client device of the first user account and the second client device of the second user account, the sharable search result stream comprising the first result item of the query of the first client device and the second result item of the query of the second client device.

US Pat. No. 10,324,942

SEGMENT DATA VISIBILITY AND MANAGEMENT IN A DISTRIBUTED DATABASE OF TIME STAMPED RECORDS

Snap Inc., Santa Monica,...

1. A non-transitory computer readable medium comprising computer executable instructions stored thereon to cause one or more processors to perform data storage and retrieval operations from a computer memory configured according to a distributed database of time stamped records collected into data segments, each data segment including data from a data source collected over a time interval, each data segment associated to a creation time that the data segment was created, each data segment stored on one of a plurality of query nodes, the operations comprising:building a timeline data structure for the data source and for a timeline view interval, the building of the timeline data structure comprising:
identifying, data segments that include data from the data source that was collected over a time interval included in the timeline view interval;
identifying, among the identified data segments, overlapping data segments that include overlapping portions of data collected over an overlapping time interval;
selecting the overlapping portion that is included in the overlapping segment having the most recent creation time; and
building the timeline data structure with the selected overlapping portion and with portions of the identified data segments that do not overlap with any portion of any other of the identified data segments.

US Pat. No. 10,327,100

SYSTEM TO TRACK ENGAGEMENT OF MEDIA ITEMS

Snap Inc., Santa Monica,...

1. A system comprising:a memory; and
at least one hardware processor coupled to the memory and comprising an engagement tracking application that causes the system to perform operations comprising:
presenting a message that includes media content at a device;
receiving a request to access the media content from the device, the request including a first timestamp;
detecting the device within a boundary of a geo-fence that encompasses a location associated with the media content;
determining a period of time between the request to access the media content and the detecting the device within the boundary of the geo-fence that encompasses the location based on at least the timestamp; and content;
calculating an engagement score of the media content based on the period of time.

US Pat. No. 10,319,149

AUGMENTED REALITY ANAMORPHOSIS SYSTEM

Snap Inc., Santa Monica,...

1. A system comprising:a memory; and
at least one hardware processor couple to the memory and comprising instructions that cause the system to perform operations comprising:
causing display of an ephemeral message that comprises a presentation of a space within a graphical user interface on an output display of a mobile device, the ephemeral message comprising a first display duration that defines a first period of time;
determining a location of the mobile device, the location corresponding to the space;
identifying a set of features of the space;
determining relative positions of the set of features, the relative positions indicating distances between each feature of the set of features and locations of each feature of the set of features in the space;
determining a perspective of the mobile device based on the relative positions of the set of features;
retrieving anamorphic media based on the location of the mobile device, the anamorphic media including a second display duration;
applying the anamorphic media within the presentation of the space based on the perspective of the mobile device for a second period of time, the second period of time based on the display duration of the anamorphic media, and wherein the first period of time defined by the first display duration exceeds the second period of time defined by the second display duration.

US Pat. No. 10,296,638

GENERATING A PROBABILITY OF MUSIC USING MACHINE LEARNING TECHNOLOGY

Snap Inc., Santa Monica,...

1. A method comprising:capturing, by a computing device, a plurality of segments of an audio stream;
for each segment of the plurality of segments of the audio stream:
performing, by the computing device, feature extraction on an audio signal of the segment using a feature extraction machine learning model that analyzes the audio signal to generate a feature vector for the segment;
generating, by the computing device, a prediction value for the segment for whether there is music in the segment using the extracted feature vector and a music detector machine learning model that analyzes the feature vector for the segment;
generating, by the computing device, a probability value that there is music in the audio stream based on aggregating the prediction values of the plurality of segments;
determining, by the computing device, that the probability value that there is music in the audio stream meets a predetermined threshold; and
causing the audio stream to be identified based on determining that the probability value that there is music in the audio stream meets a predetermined threshold.

US Pat. No. 10,270,839

CONTENT COLLECTION NAVIGATION AND AUTOFORWARDING

Snap Inc., Santa Monica,...

1. A method for network communication of image based content collections, the method comprising:storing, at a database of a server computer system, a plurality of content messages from a plurality of client devices, wherein a corresponding piece of content from each content message is associated with a display time less than a threshold display time;
generating, by the server computer system, a first plurality of content collections from the plurality of content messages, each content collection of the first plurality of content collections comprising associated content from one or more content messages of the plurality of content messages;
communicating, from the server computer system to a first mobile device, interface information for each content collection of the first plurality of content collections;
receiving, from the first mobile device, a first story request associated with a first selection, at the first mobile device, of a first content collection of the first plurality of content collections;
receiving, from the first mobile device, an autoforward communication associated with completion of a presentation of the first content collection at the first mobile device; and
automatically communicating a second content collection from the server computer system to the first mobile device for automatic display on the first mobile device in response to receipt of the story request and the autoforward communication, wherein the second content collection is selected automatically by the server computer system;
receiving, from the first mobile device, a live autoforward communication associated with completion of an end presentation of a final first content collection of the plurality of content collections at the first mobile device;
automatically communicating a first live content collection from the server computer system to the first mobile device for automatic display on the first mobile device in response to receipt of the live autoforward communication;
receiving, from the first mobile device, a live autoforward communication associated with completion of a presentation of the first live content collection at the first mobile device;
generating, following receipt of the live autoforward communication, a second live content collection; and
communicating a second live content collection from the server computer system to the first mobile device for automatic display on the first mobile device in response to receipt of the live autoforward communication;
wherein the first live content collection is generated automatically by:
receiving, at a server computer system, a content message from a first content source of a plurality of content sources, the content message comprising media content;
analyzing, by the server computer system, the content message to determine one or more quality scores and one or more context values associated with the content message;
storing the content message in a database of the server computer system along with the one or more quality scores and the one or more context values, the one or more context values including one or more of a content value, a generation time, a generation time period, a generation location, a generation area, and a quality value;
analyzing, by the server computer system, the content message with a plurality of content collections of the database to identify a match between at least one of the one or more context values and a topic associated with at least a first content collection of the one or more content collections; and
automatically adding, by the server computer system, the content message to the first live content collection based, at least in part, on the match;
wherein a first ordering of the first plurality of content collections is based at least in part on context values associated with each content collection of the plurality of content collections; and
wherein communicating of the second live content collection from the server computer system to the first mobile device is based on a second ordering determined by the live autoforward communication and one or more context values associated with the second live content communication.

US Pat. No. 10,217,488

SPHERICAL VIDEO EDITING

Snap Inc., Santa Monica,...

1. A computer-implemented method, comprising:receiving, using one or more processors of a computing device, first video data including spherical video data;
displaying a portion of a frame of the first video data on a display screen associated with the computing device, wherein the portion of the frame represents a viewport into the first video data and the viewport is associated with an original position for each frame of the first video data;
determining, within a duration between when the computing device detects a first input associated with generating second video data from the first video data and a second input associated with stopping generation of the second video data, movement data associated with an object within a time period when the display screen displays the portion of the frame of the first video data;
determining a plurality of new positions for the viewport using the movement data, wherein a new position corresponds to a movement associated with the object within the time period when the display screen displays the portion of the frame of the first video data; and
generating the second video data from the first video data using the plurality of new positions, wherein pixels of a frame of the second video data correspond to pixels of the frame of the first video data encompassed by the viewport at the new position.

US Pat. No. 10,216,236

SYSTEMS AND METHODS FOR TEMPERATURE MANAGEMENT IN WEARABLE DEVICES

Snap Inc., Santa Monica,...

1. A wearable electronic device, comprising:glasses;
a camera;
a wireless transmitter;
a computer, the computer configured to:
capture an image using the camera;
transmit the image using the wireless transmitter at a transmission rate less than a transmission rate limit of the wireless transmitter;
first determine a temperature of the wireless transmitter while transmitting the image;
second determine a rate of temperature change based on the determined temperature;
third determine whether to increase or decrease the transmission rate limit of the wireless transmitter based on the temperature and the rate of temperature change;
adjust the transmission rate limit of the wireless transmitter based on the third determination; and
transmit using the wireless transmitter at a second transmission rate less than the adjusted transmission rate limit of the wireless transmitter.

US Pat. No. 10,219,110

SYSTEM TO TRACK ENGAGEMENT OF MEDIA ITEMS

Snap Inc., Santa Monica,...

1. A system comprising:a memory; and
at least one hardware processor coupled to the memory and comprising an engagement tracking application that causes the system to perform operations comprising:
delivering an ephemeral message to a client device, the ephemeral message including a media item associated with a physical location;
receiving an access request for the media item from the client device;
detecting an exposure of the client device to the media item, based on the receiving the access request;
tracking user actions of the client device, in response to the detecting the exposure of the client device to the media item;
detecting the client device at the physical location associated with the media item, based on the tracking the user actions of the client device; and
calculating an engagement score of the media item based on the tracked user actions, in response to the detecting the client device at the physical location associated with the media item.

US Pat. No. 10,200,319

SEARCHABLE PEER-TO-PEER SYSTEM THROUGH INSTANT MESSAGING BASED TOPIC INDEXES

Snap Inc., Santa Monica,...

1. A method for locating information, the method comprising:detecting a conclusion of a chat session involving a first user at a first client device and a second user at a second client device;
retrieving a transcript of the chat session from the first client device, the transcript comprising a set of words;
determining a respective word incidence count for each word among the set of words;
determining a topic of the chat session based on the word incidence count in response to the detecting the conclusion of the chat session;
indexing the transcript and contact information of the first user at an index associated with the topic at the second client device;
receiving a search request that identifies the topic of the chat from a third client device, the third client device associated with a third user, the third user associated with the second user as a social network connection;
initializing a search for the topic in response to the receiving the search request, the initializing the search including accessing the index associated with the topic at one or more devices associated with social network connections of the third user, the one or more devices including the second device; and
initiating a communication session between the first device, the second device, and the third device in response to the search for the topic, based on the contact information associated with the transcript at the index.

US Pat. No. 10,182,311

PRIORITIZATION OF MESSAGES WITHIN A MESSAGE COLLECTION

Snap Inc., Santa Monica,...

1. A method of processing messages, the method comprising:receiving, at a server computer, priority information from at least one sponsor, the priority information to be used in determining a priority of one or more messages received from a plurality user devices;
creating, by the server computer, a message collection using a plurality of messages received from the plurality of user devices;
determining, by the server computer, based on the priority information received from the at least one sponsor, whether a first message in the message collection meets a minimum consideration to be prioritized in the message collection;
prioritizing, by the server computer, the first message in the message collection when the first message meets the minimum consideration to be prioritized in the message collection and according to the received priority information; and
not prioritizing, by the server computer, the first message in the message collection when the first message does not meet the minimum consideration to be prioritized in the message collection.

US Pat. No. 10,564,425

PROCESSING A MEDIA CONTENT BASED ON DEVICE MOVEMENT

Snap Inc., Santa Monica,...

1. A method comprising:displaying, by a computing device, a first portion of a circular video that was captured in a circular video format, the first portion comprising of an area of the circular video that fits in a display area of the computing device and excluding an area of the circular video that does not fit in the display area of the computing device;
detecting, by the computing device, movement of the computing device during playback of the first portion of the circular video;
receiving, by a computing device, movement data from one or more sensors of the computing device;
analyzing, by the computing device, the movement data to determine a direction of movement;
calculating a rotation of the display of the first portion of the circular video based on the direction of movement; and
causing the display of the first portion of the circular video to slide in a direction opposite to the direction of movement up to an edge of a predefined region, the predefined region being larger than the display area of the computing device and smaller than the circular video, to display a second portion of the circular video, the second portion comprising an area of the circular video including a sub-portion of the first portion of the circular video and an area that was not visible in the first portion of the circular video.

US Pat. No. 10,555,138

SIMPLIFIED MESSAGE GROUPING AND DISPLAY

Snap Inc., Santa Monica,...

1. A method, comprising:receiving, at a first client device comprising one or more hardware processors and a memory, a first plurality of messages, the plurality of messages being grouped within a conversation into two or more groups, each of the messages in each group meeting a respective group criterion;
generating a first overlaid card by arranging a first message group of a first of the two or more groups on the first overlaid card, the first message group arranged within the first overlaid card based on a criterion;
generating a second overlaid card by arranging a second message group of a second of the two or more groups on the second overlaid card, the second message group arranged within the second overlaid card based on the criterion;
determining a first font size for an arrangement of a second plurality of messages;
determining a second font size for the first and second message groups arranged in the first and second overlaid cards, wherein the second font size has a greater point size than the first font size;
receiving a user input to transition from displaying the first overlaid card to displaying the second overlaid card; and
in response to the user input to transition from displaying the first overlaid card to displaying the second overlaid card, displaying an animation while transitioning from displaying the first overlaid card to displaying the second overlaid card, the first overlaid card and the second overlaid card configured to exclusively display respectively the first and second message groups within the conversation.

US Pat. No. 10,547,970

MAPPING DISCOVERY SYSTEM

Snap Inc., Santa Monica,...

1. A method comprising:receiving, by a server system, location data indicating a geographic location of a first computing device;
determining, by the server system, that the first computing device is located within a predetermined geofence based on the received location data of the first computing device and that the first computing device is located within the predetermined geofence within a specified time period associated with the predetermined geofence;
determining a first user associated with the first computing device and accessing a database to look up the first user and determine that the first user of the first computing device is opted into chance mode;
determining a plurality of computing devices that are located within the predetermined geofence and determining a subset of the plurality of computing devices that are associated with users opted into chance mode;
filtering the subset of the plurality of computing devices based on criteria contained in profile data for the first user of the first computing device to generate a final list of computing devices;
accessing profile data for each user associated with a respective computing device in the final list of computing devices to determine a bitmoji for each user;
causing, by the server system, display on the first computing device of the bitmoji for each user associated with a respective computing device in the final list of computing devices on a map, each bitmoji presented in a location on the map associated with the respective computing device in the final list of computing devices;
receiving, from the first computing device, an action to send a notification to a second computing device in the final list of computing devices, the second computing device associated with a second user;
sending the notification to the second computing device associated with the second user;
receiving, from the second computing device, a response to the notification and establishing a two-way communication based on the response to the notification, the two-way communication allowing the first user and the second user to exchange messages; and
starting a timer once the two-way communication is established and deleting the messages exchanged between the first user and the second user once the timer reaches the end of a specified time period, causing the messages to be deleted from the first computing device and the second computing device.

US Pat. No. 10,535,139

GAZE-BASED CONTROL OF DEVICE OPERATIONS

Snap Inc., Santa Monica,...

1. A method comprising:receiving a video stream from an imaging device, the video stream depicting one or more eyes;
determining a gaze direction for the one or more eyes depicted in the video stream relative to a display device of a client device;
detecting a change in the gaze direction of the one or more eyes; and
triggering an operation in the client device responsive to the change in the gaze direction exceeding a predetermined percentage threshold of a viewable area of the display device.

US Pat. No. 10,509,553

INTERACTIVE IMAGE RECOLORING

Snap Inc., Santa Monica,...

1. A system comprising:a processor; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:
causing presentation of an image on a client device;
receiving user input including a stroke drawn on the image;
determining a region of interest in the image based on the stroke drawn on the image;
downsampling the region of interest in the image;
recolorizing the region of interest on the image, the recolorizing including replacing an original color of the region of interest with an alternative color, the recolorizing of the region of interest resulting in a recolorized image;
upsampling the region of interest in the recolorized image; and
causing presentation of the recolorized image on the client device.

US Pat. No. 10,506,371

SYSTEM TO TRACK ENGAGEMENT OF MEDIA ITEMS

Snap Inc., Santa Monica,...

1. A system comprising:a memory; and
at least one hardware processor coupled to the memory and comprising an engagement tracking application that causes the system to perform operations comprising:
associating media content with a set of geolocation coordinates that correspond with a location of interest;
receiving a first request to access the media content from a client device;
generating a record of the request to access the media content from the client device, the record including at least a timestamp;
receiving a second request to access the media content from the client device, the second request including the set of geolocation coordinates that correspond with the location of interest; and
calculating an engagement score of the media content based on the record, in response to the second request to access the media content.

US Pat. No. 10,474,353

APPLICATION CONTROL USING A GESTURE BASED TRIGGER

Snap Inc., Santa Monica,...

1. A method comprising:displaying, on a touchscreen display of a client device, a first full screen panel of an electronic document, the electronic document including the first full screen panel and a second full screen panel, the first full screen panel being navigable to the second full screen panel along a scroll direction of the electronic document, the second full screen panel comprising a modification trigger configured to initiate a subscription request to an electronic document server;
receiving, on the first full screen panel, a first gesture along the scroll direction;
displaying, on the touchscreen display of the client device, the second full screen panel of the electronic document in response to the receiving of the first gesture;
receiving, on the second full screen panel a second gesture along the scroll direction; and
executing the modification trigger in response to receiving the second gesture on the second full screen panel that comprises the modification trigger, the executing of the modification trigger causing the client device to transmit the subscription request to the electronic document server.

US Pat. No. 10,395,100

NEURAL NETWORKS FOR FACIAL MODELING

Snap Inc., Santa Monica,...

1. A method comprising:identifying, by one or more processors, a feature of an object depicted within an image;
retrieving a probability boundary that includes first and second values corresponding to first and second identifying aspects of a given object;
computing a numerical probability for the feature of the object, depicted within the image, that indicates a probability that the feature corresponds to a specified identifying aspect of a set of identifying aspects of the given object;
determining whether the numerical probability of the feature of the object is closer in proximity to the first or second value of the probability boundary to indicate whether the feature corresponds to the first or second identifying aspect of the given object; and
assigning an identification to the feature of the object, depicted within the image, based on the determination of whether the numerical probability of the feature of the object is closer in proximity to the first or second value of the probability boundary.

US Pat. No. 10,397,469

DYNAMIC IMAGE-BASED ADJUSTMENT OF IMAGE CAPTURE PARAMETERS

Snap Inc., Santa Monica,...

1. A device comprising::a frame;
a camera mounted on the frame and configured to capture and process image data according to a plurality of image capture parameters;
an input mechanism operable by the user to activate image-capture by the camera; and
a camera controller incorporated in the frame and configured to perform operations comprising:
extracting a plurality of video frames from video content captured by the camera responsive to user engagement with the input mechanism to activate image-capture by the camera;
determining a count of video frames in the plurality of video frames for which an image brightness metric exceeds a predefined brightness threshold; and
in response to identifying that the count of threshold-transgressing video frames exceeds a pre-defined threshold number, performing an automated adjustment action with respect to one or more of the plurality of image capture parameters of the camera, the automated adjustment action comprising automatically modifying the one or more image capture parameters.

US Pat. No. 10,374,993

MEDIA ITEM ATTACHMENT SYSTEM

Snap Inc., Santa Monica,...

12. A system comprising:a memory; and
at least one hardware processor couple to the memory and comprising instructions that cause the system to perform operations comprising:
generating a data object that includes a first media item at a client device;
presenting an interface that includes an option to assign a second media item to the data object, in response to the generating the data object at the client device;
receiving a selection of the second media item through the interface;
assigning an address to the second media item to the data object, the address to the second media item identifying a location to access the second media item;
causing display of a presentation of the first media item within the interface, the presentation including a graphical icon representative of the second media item;
receiving an input that selects the graphical icon representative of the second media item;
retrieving the second media item from the location identified by the address in response to the receiving the input that selects the graphical icon representative of the second media item; and
causing display of the second media item at a position within the presentation of the first media item within the interface in response to the retrieving the second media item.

US Pat. No. 10,366,543

IMAGE BASED TRACKING IN AUGMENTED REALITY SYSTEMS

Snap Inc., Santa Monica,...

1. A computing device comprising a display screen, the computing device being configured to display on the screen an augmented reality interface showing at least a first image an environment and an augmented reality pictogram overlaid a surface within the first image of the environment, wherein the augmented reality pictogram is aligned with the surface in the first image of the environment by accessing building location information describing one or more location points for at least a first building, wherein the building location information is associated with a first position estimate of the device, processing the first image of the environment using building location information to identify a match between a first wall portion of the first image of the and the one or more location points of the building location information, calculating, based at least in part on a perspective associated with the first wall portion of the first image of the environment and the match between the first wall portion and the one or more location points, a second position estimate of the device, and aligning the surface in the first image with the augmented reality pictogram using the second position estimate.

US Pat. No. 10,346,723

NEURAL NETWORK FOR OBJECT DETECTION IN IMAGES

Snap Inc., Santa Monica,...

1. A device implemented method for image recognition, the method comprising:accessing, using one or more processors of the device coupled to a memory of the device, an image depicting an object of interest and a background within a field of view;
detecting, by the one or more processors using a set of detection layers of the multilayer object model, at least a portion of the object of interest within the image;
detecting, by the one or more processors using a set of detection layers of the multilayer object model, at least a portion of the background within the image;
extracting, by the one or more processors using a set of image representation layers of the multilayer object model comprising a lower image representation layer and a higher image representation layer, context information from the portion of the background, wherein a layer output of the higher image representation layer includes the extracted context information; and
identifying, by the one or more processors, the object of interest from the detected portion of the object of interest and the context information, using the set of image representation layers of the multilayer object model, passing the layer output of the higher image representation layer including the extracted context information backward to the lower image representation layer.

US Pat. No. 10,339,365

AUTOMATED AVATAR GENERATION

Snap Inc., Santa Monica,...

1. A method, comprising:receiving, by one or more processors, one or more two-dimensional images depicting at least a portion of a face of a first user;
detecting, by the one or more processors, the portion of the face depicted within the one or more two-dimensional images;
identifying a set of facial landmarks within the portion of the face depicted within the one or more two-dimensional images;
in response to detecting the portion of the face and the set of facial landmarks, determining one or more characteristics representing the portion of the face depicted in the one or more two-dimensional images, the determining comprising:
identifying a set of colors within a hair region of the face;
determining a hair texture for the hair region based on variations in the set of colors that indicate edges, objects or shapes within the hair associated with the hair texture;
comparing a dimension of the hair region to one or more of the set of facial landmarks; and
determining hair length or hair volume based on the comparison of the dimension of the hair region to the one or more of the set of facial landmarks;
based on the one or more characteristics and the set of facial landmarks, generating a representation of a face for the at least one portion of the face depicted in the one or more images;
generating one or more sticker graphics incorporating the representation of the face, the generating of the one or more sticker graphics comprising generating a scaled version of the representation corresponding to a template graphic; and
generating, by a user device of the first user, a message, directed to a second user, that includes the one or more sticker graphics incorporating the representation of the face of the first user.

US Pat. No. 10,334,307

METHODS AND SYSTEMS OF PROVIDING VISUAL CONTENT EDITING FUNCTIONS

Snap Inc., Santa Monica,...

1. A server, comprising:a memory adapted to store code; and
at least one hardware processor adapted to execute instructions of the code to:
identify when a client device captures at least one of an image and a video file,
analyze textual content in a plurality of content providing network sources, available via a network, to identify at least one current event,
select one or more visual content editing functions based upon positional data pertaining to a location of the client device and according to the at least one current event, and
supply the one or more selected visual content editing functions to the client device;
wherein the one or more selected visual content editing functions are configured to be selectable by a user using a graphical user interface (GUI) presented on a display of the client device;
wherein each of the one or more selected visual content editing functions comprises instructions to generate an overlay adapted to be applied on top of the image or the video file in response to a selection made by the user using the GUI, wherein the one or more selected visual content editing functions are configured for the location of the client device.

US Pat. No. 10,300,545

LOW-PROFILE MECHANICAL RETENTION

Snap Inc., Santa Monica,...

1. An assembly comprising:a framework that includes a frame wall having an obverse side and an opposite reverse side, the framework defining a housing cavity;
electronics components located in the housing cavity;
a mounted component that is mounted on the frame wall such as to be exposed on the obverse side of the frame wall, the mounted component being a button member that is operable to control one or more functionalities of the electronics components;
a metal connector that is fast with the mounted component and that projects from the mounted component transversely through at least part of the frame wall;
a metal retainer that is located on the reverse side of the frame wall such that part of the frame wall is sandwiched between the mounted component and the retainer; and
a solder joint that fastens the retainer to the connector, thereby retaining the mounted component on the frame wall.

US Pat. No. 10,264,422

DEVICE LOCATION BASED ON MACHINE LEARNING CLASSIFICATIONS

Snap Inc., Santa Monica,...

1. A method comprising:transmitting, to one or more servers, a request comprising location data generated by a client device;
receiving, from the one or more servers, a venue dataset comprising a plurality of venues;
identifying, in memory of the client device, an image of a real-world environment;
classifying, using a machine learning scheme, an image attribute of the image depicting the real-world environment;
selecting a venue from the plurality of venues based at least in part on the venue matching the classified attribute of the image;
selecting one or more display elements that are pre-associated with the selected venue; and
displaying, on the client device, a presentation comprising the one or more display elements.

US Pat. No. 10,203,855

CUSTOMIZED USER-CONTROLLED MEDIA OVERLAYS

Snap Inc., Santa Monica,...

1. A system comprising:a processor;
a user interface coupled to the processor, the user interface comprising an input device and a display screen; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:
causing an image to be displayed on the display screen of the user interface;
receiving input, via the input device of the user interface, from a user of the system selecting an object within the image;
generating a media overlay containing the selected object;
transmitting the media overlay to a server;
receiving input from the user via the input device of the user interface for controlling usage of the media overlay; and
in response to the input from the user for controlling usage of the media overlay, transmitting instructions for controlling usage of the media overlay by other computing devices to the server.

US Pat. No. 10,198,671

DENSE CAPTIONING WITH JOINT INTERFERENCE AND VISUAL CONTEXT

Snap Inc., Santa Monica,...

1. A method comprising:processing an image to produce a feature map of the image;
analyzing the feature map to generate proposed bounding boxes for a plurality of visual concepts within the image;
cropping a respective region from the feature map for each proposed bounding box to generate a plurality of region features of the image;
analyzing the feature map to determine a context feature for the image using a proposed bounding box that is a largest in size of the proposed bounding boxes; and
for each region feature of the plurality of region features of the image:
analyzing the region feature to determine for the region feature a detection score that indicates a likelihood that the region feature comprises an actual object;
generating a caption for a bounding box for a visual concept in the image using the region feature and the context feature; and
localizing the visual concept by adjusting the bounding box around the visual concept based on the caption to generate an adjusted bounding box for the visual concept.

US Pat. No. 10,198,626

NEURAL NETWORKS FOR FACIAL MODELING

Snap Inc., Santa Monica,...

1. A method, comprising:receiving, by one or more processors, one or more images depicting at least a portion of one or more faces;
detecting, by the one or more processors, the portion of the one or more faces depicted within the one or more images;
in response to detecting each portion of the one or more faces, identifying a set of facial features depicted on the portion of the one or more faces depicted within the one or more image;
based on the identified set of facial features, generating a descriptor function representing the set of facial features, the descriptor function including a set of object functions and each object function representing a facial feature of the set of facial features;
in response to generating the descriptor function, fitting each of the object functions of the set of object functions;
defining a probability boundary that includes minimum and maximum values corresponding to first and second identifying aspects of a face;
identifying a numerical probability for each facial feature of the set of facial features, each numerical probability identifying a probability that a facial feature corresponds to a specified characteristic of a set of feature characteristics, wherein a first numerical probability for a first facial feature is identified between the defined probability boundary such that a closer proximity of the first numerical probability to the minimum value of the probability boundary indicates that the first facial feature corresponds to the first identifying aspect of the face and a closer proximity of the first numerical probability to the maximum value of the probability boundary indicates that the first facial feature corresponds to the second identifying aspect of the face; and
assigning an identification to each facial feature based on the numerical probabilities identified for each facial feature.

US Pat. No. 10,102,634

IMAGE SEGMENTATION OF A VIDEO STREAM

Snap Inc., Santa Monica,...

1. A computer implemented method for segmenting a video stream, comprising:determining an approximate location of an eye within a video stream comprising a set of images to identify an area of interest within one or more images of the set of images;
binarizing the area of interest within the one or more images to generate a binarized image from the video stream;
identifying an initial pupil location of a pupil of the eye within the binarized image;
determining an initial iris radius for the eye by identifying, within the binarized image, a first distance from a first corner of the eye to an outer edge of the iris and a second distance from a second corner of the eye to the outer edge of the iris and determining the initial iris radius based on the first distance and the second distance; and
determining a final pupil location and a final iris radius based at least in part on the initial pupil location and the initial iris radius.

US Pat. No. 10,102,423

OBJECT MODELING AND REPLACEMENT IN A VIDEO STREAM

Snap Inc., Santa Monica,...

1. A method, comprising:receiving, by one or more processors, one or more images depicting at least a portion of a hand;
determining pixels within the one or more images corresponding to the portion of the hand in a predetermined portion of a field of view of an image capture device, the portion of the hand having a finger;
based on the pixels corresponding to the portion of the hand, identifying a finger position of the finger;
determining a direction of the finger based on the finger position;
based on the direction of the finger, dynamically modifying a histogram threshold for identifying pixels as corresponding to the portion of the hand; and
replacing the portion of the hand and the finger with a graphical interface element aligned with the direction of the finger.

US Pat. No. 9,935,999

FILE DOWNLOAD MANAGER

SNAP INC., Venice, CA (U...

1. A method comprising:receiving, by one or more hardware processors, at least two file download requests from an application running on a client device, each download request indicating a respective context, each context indicating a list of component parts of the application that will use the respective file;
queuing the at least two file download requests on a download queue;
receiving, by the one or more hardware processors, from the client device, a second context, the second context indicating a second list of component parts of the application in which the user is located;
comparing, by the one or more hardware processors, the list of the respective context of each of the file download requests in the download queue to the second list of the second context;
ranking, by the one or more hardware processors, each of the file download requests in the download queue based on the comparisons;
selecting, by the one or more hardware processors, two or more of the file download requests in the download queue based on the respective rankings; and
concurrently executing, by one or more hardware processors, the selected file download requests.

US Pat. No. 9,699,203

SYSTEMS AND METHODS FOR IP-BASED INTRUSION DETECTION

Snap Inc., Venice, CA (U...

1. A method comprising:
receiving, at a server computer, a first plurality of login requests, each comprising a username and a password;
identifying a first internet protocol (IP) address and a first request time associated with each of the first plurality of
login requests;

determining that a total number of login requests from the first IP address within a threshold time period is above a credential
security threshold;

determining that a number of usernames associated with the first plurality of login requests is above a username threshold;
determining that a login success ratio is below a threshold login success ratio after determining that the total number of
login requests from the first IP address is above the credential security threshold; and

in response to determining the login success ratio is below the threshold login success ratio and determining that the number
of usernames is above the username threshold, automatically performing a security action using the server computer;

wherein determining the number of usernames associated with the total number of login requests comprises:
comparing each username with each other username to determine a difference value for each username pair, wherein the difference
value for each username pair comprises a sum of each character change, character addition, and character subtraction required
to transform a first username of each username pair into a second username of each username pair; and

for each username pair identified as similar usernames having a difference value less than a threshold difference value, counting
the similar usernames as a single username for the number of usernames as compared to the username threshold.

US Pat. No. 10,656,797

GLOBAL EVENT-BASED AVATAR

Snap Inc., Santa Monica,...

1. A method comprising:identifying, by one or more processors, a global event that begins at a particular time on a given date;
retrieving, by the one or more processors, a sequential list of time zones associated with a plurality of geographical locations;
determining, by the one or more processors, that a current time at a first time zone of the sequential list of time zones has reached the particular time on the given date;
in response to determining that the current time at the first time zone has reached the particular time on the given date, generating for display, by the one or more processors, an avatar representative of the global event on a map at a first geographical location of the plurality of geographical locations associated with the first time zone; and
navigating, by the one or more processors, the avatar on the map from the first geographical location to a second geographical location of the plurality of geographical locations when a current time at a second time zone of the sequential list of time zones, associated with the second geographical location, reaches the particular time on the given date.

US Pat. No. 10,659,914

GEO-LOCATION BASED EVENT GALLERY

Snap Inc., Santa Monica,...

1. A method comprising:determining by a computing device, that a geolocation of the computing device corresponds to a geo-fence associated with a plurality of galleries;
providing by the computing device, user-selectable gallery information comprising indicia for each of the plurality of galleries corresponding to the geo-fence;
detecting by the computing device, a selection of indicia for a gallery in the plurality of galleries of the user-selectable gallery information;
displaying by the computing device, the gallery associated with the selection of the indicia for the gallery, the gallery comprising a plurality of messages appearing with photographs as the background for each message;
providing by the computing device, a user interface to generate a message with a photograph as the background in response to a message in the gallery;
receiving, by the computing device, a generated message comprising a photograph as the background of the generated message; and
causing by the computing device, the generated message generated to be added to the gallery associated with the selection of the indicia for the gallery in the plurality of galleries of the user-selectable gallery information and wherein the generated message is accessible by other computing devices accessing the gallery information.

US Pat. No. 10,565,795

VIRTUAL VISION SYSTEM

Snap Inc., Santa Monica,...

1. A system comprising:one or more processors of a machine;
a camera;
a display device;
one or more sensors; and
a memory storing instructions that, when executed by the one or more processors, cause the machine to perform operations comprising:
receive, from a network platform, a plurality of lens virtual objects corresponding to different geographic locations, each of the plurality of lens virtual objects comprising one or more navigational display elements uploaded to the network platform by submitting client devices;
generate location data using the one or more sensors;
select a lens virtual object from the plurality of lens virtual objects based on the location data corresponding to a geographic location of the selected lens virtual object;
determine heading data using the geographic location of the selected lens virtual object, the heading data specifying a direction of the geographic location relative to a current orientation of the system; and
cause a presentation, on live video generated by the camera and displayed on the display device, of a navigational direction display element in the uploaded one or more navigational display elements associated with the selected lens virtual object, the navigational direction display element indicating the direction to the geographic location relative to the current orientation of the system.

US Pat. No. 10,543,547

LOW-PROFILE MECHANICAL RETENTION

Snap Inc., Santa Monica,...

1. An assembly comprising:a framework that includes a frame wall having an obverse side and an opposite reverse side;
a mounted component that is mounted on the frame wall such as to be exposed on the obverse side of the frame wall, the mounted component being of a polymeric plastics material;
a metal connector fast with the mounted component, the connector being partially embedded in the mounted component and projecting from the mounted component towards the reverse side of the frame wall;
a sheet metal retainer that is located on the reverse side of the frame wall such that part of the frame wall is sandwiched between the mounted component and the retainer, a thickness dimension of the retainer being transverse to the frame wall at the mounted component, the retainer defining one or more connection cavities in which part of the connector is received; and
a solder joint that connects the retainer and the connector at substantially parallel interface surfaces that are located within the one or more connection cavities and that extend at least partially along the thickness dimension the retainer, the solder joint fastening the retainer to the connector and thereby retaining the mounted component on the frame wall.

US Pat. No. 10,503,264

RADIAL GESTURE NAVIGATION

Snap Inc., Santa Monica,...

1. A system comprising:one or more hardware processors, configured to perform operations comprising:
detecting a touch and hold gesture;
detecting a plurality of continuous touch positions of physical contact between an object and a touchscreen including an initial position and a second position, the plurality continuous touch positions including a first plurality of continuous touch positions along a first direction, the plurality of continuous touch positions immediately following the touch and hold gesture without interruption of touch contact; and
in response to the detection of the plurality of continuous touch positions immediately following the touch and hold gesture:
determining a distance between the initial position and the second position,
selecting an action based on the distance, the selection independent of an angle of a line formed by the continuous touch positions and a reference line of the touchscreen,
and
performing the selected action comprising invoking a media related operation in response to detecting the first plurality of continuous touch positions;
immediately following the first plurality of continuous touch positions, detecting a second plurality of continuous touch positions starting from the second position and ending at a third position, wherein the second plurality of continuous touch positions are along a second direction, and
in response to detecting the second plurality of continuous touch positions immediately following the first plurality of continuous touch positions, adjusting a parameter of the media related operation that was invoked in response to detecting the first plurality of continuous touch positions.

US Pat. No. 10,496,272

ALTERNATE CONTENT INSERTION LOGIC

Snap Inc., Santa Monica,...

1. A method comprising:presenting, as part of a content discovery session, a first content item from a content discovery collection, the content discovery collection including a plurality of content items that are ordered sequentially for presentation in the content discovery session, the sequential ordering defining that a second content item immediately follows the first content item at a particular position in the sequence, some positions in the sequence predesignated as eligible to receive inserted alternative content and some positions in the sequence predesignated as ineligible to receive inserted alternate content;
identifying a content item type of the plurality of content items in the content discovery collection;
setting, based on the identified content item type, a threshold of a number of content items;
in response to receiving an advancement input to the particular position in the sequence, if a number of content items presented as part of the content discovery session meets or exceeds the set threshold of the number of content items and an amount of elapsed time of the content discovery session meets or exceeds a threshold amount of time, and if the particular position in the sequence is designated as eligible to receive inserted content, presenting a first alternate content item in the particular position, the first alternate content item not being included in the content discovery collection and after presenting the first alternate content item, presenting the second content item, and
otherwise, presenting the second content item in the particular position of the sequence.

US Pat. No. 10,469,764

SYSTEMS AND METHODS FOR DETERMINING SETTINGS FOR FAST VIDEO CAPTURE AND SENSOR ADJUSTMENT

Snap Inc., Santa Monica,...

1. A method for generating auto bracketing settings, the method comprising:receiving, at a server computer from a first device, first video capture data for a first video clip captured using a first set of auto bracketing settings;
analyzing the first video capture data to determine a first set of performance values associated with the first set of auto bracketing settings;
receiving, at the server computer from a second device, second video capture data for a second video clip captured using a second set of auto bracketing settings;
analyzing the second video capture data to determine a second set of performance values associated with the second set of auto bracketing settings; and
generating, based on the first set of performance values and the second set of performance values, a set of auto bracketing update information comprising a set of update auto bracketing settings;
wherein the first set of performance values and the second set of performance values each comprise a quality value for a first frame and a responsiveness value for the first frame of a corresponding video clip.

US Pat. No. 10,445,938

MODIFYING MULTIPLE OBJECTS WITHIN A VIDEO STREAM

Snap Inc., Santa Monica,...

1. A method comprising:receiving a set of images within a video stream;
identifying, by one or more processors of a machine, at least a portion of a face in a first subset of images of the set of images;
determining, by the one or more processors, face characteristics h analyzing the portion of the face in the first subset of images;
identifying, by the one or more processors, an obstruction on the portion of the face in the first subset of images;
applying, by the one or more processors, a graphical representation of glasses to the face based on the face characteristics to obscure the identified obstruction, the graphical representation of the glasses applied in a second subset of images of the set of images occurring within the video stream as the video stream is being received;
detecting a change in the portion of the face between a first image in the first subset of the images and a second image in the first subset of the images;
in response to detecting the change in the portion of the face, modifying a visual attribute of the graphical representation of the glasses; and
causing, by the one or more processors, presentation of a modified video stream including the portion of the face with the graphical representation of the glasses in the second subset of images of the set of images while receiving the video stream.

US Pat. No. 10,382,373

AUTOMATED IMAGE PROCESSING AND CONTENT CURATION

Snap Inc., Santa Monica,...

1. A method comprising:receiving, at a server computer system, a content message from a first content source of a plurality of content sources, the content message comprising media content;
analyzing, by the server computer system, the content message to determine context values comprising one or more quality scores and one or more content values associated with the content message;
storing the content message in a database of the server computer system along with the one or more quality scores and the one or more content values;
analyzing, by the server computer system, the content message with a plurality of content collections of the database to identify a match between at least one of the content values and a topic associated with at least a first content collection of the plurality of content collections; and
automatically adding, by the server computer system, the content message to the first content collection based at least in part on the match;
communicate, to a curation tool, the first content collection following transmission of the first content collection to a first set of client devices;
receive, from the curation tool, a set of content collection adjustments;
update the content collection in response to the set of content collection adjustments from the curation tool; and
transmitting the content collection as updated to a second set of client devices.

US Pat. No. 10,379,377

HEAT SINK CONFIGURATION FOR WEARABLE ELECTRONIC DEVICE

Snap Inc., Santa Monica,...

1. A pair of smart glasses comprising:a frame;
an elongate temple connected to the frame at an articulated joint;
onboard electronic components carried by one or more of the frame and the temple and comprising a heat source that generates heat during electrically powered operation thereof; and
a thermal coupling comprising at least a first heat sink for the heat source and extending between the heat source and a second heat sink across the articulated joint between the temple and the frame.

US Pat. No. 10,348,662

GENERATING CUSTOMIZED ELECTRONIC MESSAGING GRAPHICS

Snap Inc., Santa Monica,...

1. A system comprising:a processor;
a user interface coupled to the processor, the user interface comprising an input device and a display screen;
a sensor component coupled to the processor, the sensor component comprising a location sensor for determining location information associated with the system; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:
retrieving sensor information from the sensor component, the sensor information including location information from the location sensor;
retrieving, from the memory, avatar information associated with a user of the system, wherein avatar information includes one or more images resembling the user;
generating a customized graphic based on the sensor information and the user's avatar information, wherein generating the customized graphic includes:
selecting at least a portion of one or more images resembling the user based on the location information from the location sensor to generate a modified image, and
incorporating the modified image into the customized graphic; and
presenting the customized graphic within an electronic message via the display screen of the user interface.

US Pat. No. 10,327,096

GEO-FENCE SELECTION SYSTEM

Snap Inc., Santa Monica,...

1. A method comprising:associating media content with a geo-fence, the geo-fence encompassing a portion of a geographic region;
over a sampling period, sampling location data of a client device, the location data identifying locations of the client device within the geographic region at different respective sampling times, the different respective sampling times including a first sampling time, the first sampling time comprising a first time of day;
defining a boundary based on the identified locations of the client device;
associating the boundary with the at least the first time of day within a database;
detecting an intersection between the boundary defined based on the identified locations of the client device and one or more geo-fences that include the geo-fence;
retrieving the media content associated with at least the geo-fence in response to the detecting the intersection between the boundary and the one or more geo-fences that include the geo-fence;
loading the media content at a memory location of the client device at a second time of day, the second time of day occurring prior to the first time of day associated with the boundary.

US Pat. No. 10,204,137

SYSTEM AND METHOD FOR DATA COLLECTION TO VALIDATE LOCATION DATA

Snap Inc., Santa Monica,...

1. A method of tuning data collection strategies of an electronic device having a processor and a memory, the method comprising:receiving, from the user, place query data that identifies a location of the user at an instance of time, wherein the place query data is based on information identifying multiple places of interest at the location at the instance of time;
causing an acoustic device at the location to emit a high frequency audio signal that identifies the location;
collecting the high frequency audio signal at a client device associated with the user in response to the receiving the place query data that identifies the location of the user;
validating the location of the user based on the high frequency audio signal;
assigning an indicator of data fidelity to the location of the user at the instance of time based on the place query data received from the user and the validating the location of the user based on the audio signal, wherein the indicator of data fidelity reflects a degree of accuracy of an aggregate of place query data for the location;
collecting observation data from the location of the user at a predetermined rate of data collection, wherein the observation data includes a measurement from at least one sensor coupled to the electronic device;
monitoring a battery life measurement of the electronic device; and
adjusting the predetermined rate of data collection of the observation data based on the indicator of data fidelity assigned to the location of the user at the instance of time, the observation data collected from the location of the user, and the battery life measurement.

US Pat. No. 10,168,879

INTERACTIVE IMAGE RECOLORING

Snap Inc., Santa Monica,...

1. A system comprising:a processor;
a user interface coupled to the processor and including a display;
a communication module coupled to the processor; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:
causing presentation of an image on a client device;
receiving user input including a single stroke drawn on the image;
expanding the single stroke drawn on the image to generate an expanded stroke mask;
refining the expanded stroke mask to determine a precise boundary that defines a region of interest in the image;
recolorizing the region of interest on the image, the recolorizing including replacing an original color of the region of interest with an alternative color, the recolorizing of the region of interest resulting in a recolorized image; and
causing presentation of the recolorized image on the client device.

US Pat. No. 10,055,717

MESSAGE PROCESSOR WITH APPLICATION PROMPTS

Snap Inc., Venice, CA (U...

1. A computer implemented method, comprising:displaying, via a messaging application operating on a computer system, a message interface on a display screen of the computer system, the message interface having a message functionality prompt to alternately invoke a photograph or video mode, wherein the message functionality prompt is at a first location in the message interface and comprises a button, and wherein the first location is associated with a first region of the message interface that is separate from a second text input region in the message interface used for message generation, wherein the second text input region is usable by the sender for inputting a text message;
receiving, by the computer system via the messaging application, one of a plurality of different special characters a special character in a message generated by a sender using the message interface, the special character corresponding to an electronic commerce software application;
in response to receiving the special character:
identifying, based on geolocation information for the computer system, a vendor proximate to the computer system;
presenting, by the computer system via the messaging application, an application prompt at the first location in response to the identification of the special character;
receiving, by the computer system via the messaging interface, a selection of the application prompt by the sender; and
invoking, by the computer system in response to the selection of the application prompt, the electronic commerce application to display a menu for ordering a product from the vendor proximate to the computer system and to transmit the geolocation information for the computer system to the vendor for delivery of the product to the sender.

US Pat. No. 10,656,660

MOTION AND IMAGE-BASED CONTROL SYSTEM

Snap Inc., Santa Monica,...

1. A method, comprising:identifying a sensor input within a drone, the sensor input indicating movement of the drone within a three dimensional space, the drone comprising one or more sensors and one or more drone control components;
upon receiving the sensor input indicating that the drone moved within the three dimensional space, determining that one or more movement attributes from the sensor input are associated with the drone having been physically displaced by a user, the determining comprising determining that a combination of movement component values, representing movement of the drone within the three-dimensional space, received within the sensor input, matches a set of movement attributes associated with the drone having been physically displaced by the user;
in response to the determining that the one or more movement attributes are associated with the drone having been physically displaced by the user, selecting one or more maneuvers corresponding to at least one movement attribute of the one or more movement attributes; and
executing the one or more maneuvers by controlling the one or more drone control components to move the drone within the three dimensional space.

US Pat. No. 10,567,898

HEAD-WEARABLE APPARATUS TO GENERATE BINAURAL AUDIO

Snap Inc., Santa Monica,...

1. A head-wearable apparatus comprising:a frame;
a first stem coupled to a first side of the frame and to a first microphone housing that encases a first front microphone and a first rear microphone that generate acoustic signals, respectively,
the first microphone housing includes a first front port that faces downward and a first rear port that faces backwards,
a second stem coupled to a second side of the frame and to a second microphone housing that encases a second front microphone and a second rear microphone that generate acoustic signals, respectively,
the second microphone housing includes a second front port that faces downward and a second rear port that faces backwards; and
a binaural audio processor that includes
a beamformer
to receive the acoustic signals from the first front microphone, the first rear microphone, the second front microphone and the second rear microphone, and
to generate
a first beamformer signal based on the acoustic signals from the first front microphone and the first rear microphone, and
a second beamformer signal based on the acoustic signals from the second front microphone and the second rear microphone, and
a storage device to store the first beamformer signal and the second beamformer signal as a two-channel file.

US Pat. No. 10,559,107

CODED VISION SYSTEM

Snap Inc., Santa Monica,...

1. A method comprising:generating, on a first client device of a first user, an electronic message for transmission to a second client device of a second user, the first user having a first user account on a network platform and the second user having a second user account on the network platform;
determining whether the second user account on the network platform has avatar data of the second user;
in response to determining that the second user account has avatar data of the second user, receiving, from a server of the network platform, a response comprising the avatar data of the second user;
generating a combined avatar that displays the avatar data of the second user with avatar data of the first user, the combined avatar generated from a combined avatar template that arranges the avatar data of the first user and the avatar data of the second user into a specified configuration;
displaying the combined avatar on a display device of the first client device; and
transmitting, to the second client device, the electronic message including the generated combined avatar.

US Pat. No. 10,547,797

DYNAMIC ACTIVITY-BASED IMAGE GENERATION FOR ONLINE SOCIAL NETWORKS

Snap Inc., Santa Monica,...

1. A system comprising:a processor;
a user interface coupled to the processor and including a display;
an activity sensor coupled to the processor;
a communication module coupled to the processor;
a digital camera coupled to the processor; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to:
cause an image captured via the digital camera to be displayed on the display;
retrieve activity data associated with a user of the system from the activity sensor;
generate an overlay based on the activity data;
generate a modified image using the image and the overlay;
cause the modified image to be displayed on the display; and
transmit the modified image, using the communication module to a server, wherein the modified image is temporarily displayed for a predetermined period of time on display devices of client devices coupled to the server.

US Pat. No. 10,509,466

HEADWEAR WITH COMPUTER AND OPTICAL ELEMENT FOR USE THEREWITH AND SYSTEMS UTILIZING SAME

Snap Inc., Santa Monica,...

1. An apparatus comprising:a support structure for mounting on the head of a user;
a microcomputer carried by the support structure;
an inwardly-facing camera mounted on the support structure, the inwardly-facing camera producing eye tracking video of an eye that is processed by the microcomputer, wherein the microcomputer processes the eye tracking video to track pupil position;
an outwardly-facing camera mounted on the support structure, the outwardly-facing camera capturing images similar to images capturable by the left and right eyes of the user;
a display mounted on the support structure, wherein the microcomputer generates an image stream from the captured images of the outwardly-facing camera and causes the image stream to be displayed on the display as displayed data, wherein the microcomputer further alters the displayed data to cause a rendered object in the displayed data to move according to an eye movement of the user, based on the tracked pupil position; and
a transceiver coupled with the microcomputer, wherein the microcomputer executes a first part of a procedure to extract data from images captured by the outwardly-facing camera, and sends a second part of the procedure to a mobile computer via the transceiver for execution of the second part of the procedure on the mobile computer, the result of the second part of the procedure made available to the microcomputer.