Asynchronous shared virtual experiences
The location-based application addresses inefficiencies in existing systems by allowing users to attach media content and communicate, providing a dynamic and interactive experience that enhances the accuracy and relevance of location-based information.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-06
- Publication Date
- 2026-03-06
AI Technical Summary
Existing review and recommendation systems for geographic locations lack a dynamic and interactive experience, with users questioning the accuracy of posted information and lacking a way to seek clarification, leading to inefficiencies in providing a true picture of a place.
A location-based application allows users to attach media content to geographic locations, enabling other users to experience this content when in proximity, and facilitates communication between users through various message types, including default messages, video messages, and animated reactions.
This solution provides a dynamic and interactive experience by connecting users through media content and communication, enhancing the accuracy and relevance of information shared about geographic locations.
Smart Images

Figure 2026507929000001_ABST
Abstract
Description
[Technical Field]
[0001] 1.Technical Field
[0002] The described subject matter relates generally to location-based applications, and more particularly to applications that asynchronously provide shared virtual experiences at geographic locations. [Background technology]
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 63 / 450,369, filed March 6, 2023, which is incorporated herein by reference.
[0003] 2. Challenges
[0003] Existing review and recommendation systems allow users to post information about places they have visited. However, the posted information may feel disconnected from the actual experience at the place, and other users may question its accuracy and value, especially if the posted information is unclear in terms of when it was posted or was posted long before other users saw it. Furthermore, users may lack a way to ask questions to seek clarification or additional information about existing information. Overall, such systems are inefficient in providing users with a true picture of a place and fail to provide a dynamic, interactive experience. Summary of the Invention
[0004] This disclosure describes a location-based application that allows users to attach media content to a geographic location. Other users can later experience the media content when they are in the vicinity of the geographic content. When a user experiences the media content attached to a geographic location, they may initiate a communication (called a "wave") with the creator of the media content. This communication is provided within the location-based application and connects users who would not otherwise have the means to contact each other. This communication can take a variety of forms, including default messages selected from an available message set, video messages, free text messages, animated reactions, etc.
[0005] In one embodiment, a first user of a location-based application acquires (e.g., captures or records) media content at a geographic location and sends it to a server for attachment to the geographic location. The server receives the media content along with an identifier of the first user (e.g., a user ID or device ID) and an indication of the geographic location (e.g., GPS coordinates). The server stores the media content along with the identifier of the first user and the indication of the geographic location. A second user is then present in proximity (e.g., within a threshold distance) of the geographic location and is notified of the media content via a client device. The second user can experience the media content and "wave" back to the first user. When communication is initiated in this manner, the first user is notified and may be given an opportunity to acknowledge or ignore the wave. If the first user acknowledges, the first and second users are then able to send messages to each other using a communication channel within the application. This communication channel remains open indefinitely (e.g., until one user terminates the communication), until a predetermined time threshold has elapsed since the time of transmission of the wave and / or the last communication between the users, or until some other condition is met (e.g., the second user leaves the vicinity of the geographic location).
[0006] In some embodiments, creators or viewers of geographically located videos or photos can select objects depicted in the video or photo to create 2D or 3D virtual objects representing the depicted objects. This virtual object can be held by the user (e.g., in a virtual bag) or dropped at the same or a different geographic location, and can be viewed and manipulated by other users within the augmented reality environment. For example, a user at a ramen restaurant can film a video of ramen and select the ramen in the video to create a virtual ramen that can be left for other players to discover at the ramen restaurant, kept for themselves as a keepsake to view later, or given as a gift to another user. [Brief explanation of the drawings]
[0007] [Figure 1]
[0007] FIG. 1 illustrates a representation of a virtual world that corresponds geographically to the real world, according to one embodiment. [Figure 2]
[0008] FIG. 1 illustrates an exemplary game interface for a parallel reality game, according to one embodiment. [Figure 3]
[0009] FIG. 1 is a block diagram of a networked computing environment suitable for providing asynchronous experiences for location-based applications, according to one embodiment. [Figure 4]
[0010] FIG. 4 is a block diagram of the asynchronous experience module shown in FIG. 3 according to one embodiment. [Figure 5]
[0011] 1 is a flowchart of a process for providing an asynchronous shared virtual experience, according to one embodiment. [Figure 6]
[0012] 1 is a flowchart of a process for creating a three-dimensional augmented reality object from a real-world object, according to one embodiment. [Figure 7A]
[0013] 1 illustrates an exemplary interface showing items of media content being shared asynchronously among users of a location-based application, according to one embodiment. [Figure 7B]
[0014] FIG. 1 illustrates an exemplary interface showing a map view with a display of media content captured by a user of a location-based application, according to one embodiment. [Figure 7C]
[0015] FIG. 1 illustrates multiple virtual representations of real-world objects depicted on an item of media content, according to one embodiment. [Figure 8]
[0016] FIG. 4 illustrates an exemplary computer system suitable for use in the networked computing environment of FIG. 3, according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0008]
[0017] The drawings and the following description merely illustrate particular embodiments by way of example. Those skilled in the art will recognize from the following description that alternative embodiments of structure and methods may be employed without departing from the principles described. Wherever possible, like reference numerals are used in the figures to indicate similar or equivalent functionality. When elements are labeled with a common numeral but with different letters appended, these indicate similar or identical elements. Unless the context dictates otherwise, reference to a numeral alone generally refers to any one of such elements or any combination thereof.
[0009]
[0018] Various embodiments are described in the context of a parallel reality game that includes augmented reality content in a virtual world geography that parallels at least a portion of the real world geography, where player movement and actions in the real world affect actions in the virtual world. The subject matter described herein is also applicable to other situations where it is desirable to provide a location-based asynchronous experience. Additionally, the inherent flexibility of computer-based systems allows for a wide variety of possible configurations, combinations, and divisions of tasks and functionality between and within the system's components.
[0010] Location-based parallel reality game example
[0019] FIG. 1 illustrates a conceptual diagram of a virtual world 110 that parallels a real world 100. The virtual world 110 may serve as a venue for users to share experiences and make recommendations, a game board for location-based games, or other functionality in which virtual content is attached to real-world geographic locations. As illustrated, the virtual world 110 includes a geography that parallels the geography of the real world 100. In particular, coordinate ranges that define geographic areas or spaces in the real world 100 are mapped to corresponding coordinate ranges that define virtual spaces in the virtual world 110. The coordinate ranges in the real world 100 may be associated with towns, neighborhoods, cities, campuses, regions, countries, continents, the entire globe, or other geographic areas. Each geographic coordinate within a geographic coordinate range is mapped to a corresponding coordinate in the virtual space within the virtual world 110.
[0011]
[0020] A user's location in virtual world 110 corresponds to a user's location in real world 100. For example, player A, who is located at location 112 in real world 100, has a corresponding location 122 in virtual world 110. Similarly, player B, who is located at location 114 in real world 100, has a corresponding location 124 in virtual world 110. As a user moves within a geographic coordinate range in real world 100, the user also moves within a coordinate range that defines a virtual space in virtual world 110. In particular, a positioning system (e.g., a GPS system, a localization system, or both) associated with a mobile computing device carried by the user can be used to track the user's location as the user moves within the geographic coordinate range of real world 100. Data associated with the user's location in real world 100 is used to update the user's location within the corresponding coordinate range that defines a virtual space in virtual world 110. In this way, a user can move along a continuous trajectory within a range of coordinates defining a virtual space in virtual world 110, simply by moving within a range of corresponding geographic coordinates in real world 100, without having to check in or periodically update location information at specific discrete locations in real world 100.
[0012]
[0021] Location-based applications may include goals that require the user to move to and interact with various virtual elements or objects scattered throughout various virtual locations within the virtual world 110. The user can navigate to these virtual locations by moving to locations in the real world 100 that correspond to the virtual elements or objects. For example, a positioning system may track the user's location so that as the user moves through the real world 100, the player also moves through the parallel virtual world 110. The user can then interact with the various virtual elements or objects in specific locations to accomplish or perform one or more goals.
[0013]
[0022] For example, in a parallel reality game, game objectives may require players to interact with virtual elements 130 located at various virtual locations within the virtual world 110. These virtual elements 130 may be linked to landmarks, geographic locations, or objects 140 in the real world 100. The real-world landmarks or objects 140 may function as works of art, monuments, buildings, businesses, libraries, museums, or other suitable real-world landmarks or objects. Interactions may include acquiring, claiming ownership of, and using virtual items, using virtual currency, etc. Similarly, in a location-based social application, users may attach media content to virtual elements 130 that represent real-world locations such as restaurants, museums, clubs, stores, sports facilities, and theaters. The media content may describe the attached user's experience at the location, such as a video of the location taken by the user while physically present at the location.
[0014]
[0023] Game objectives may require the player to use one or more virtual items collected within the location-based game. For example, a player may travel through the virtual world 110 searching for virtual items 132 (e.g., weapons, creatures, power-ups, or other items) that may be useful in achieving game objectives. These virtual items 132 may be discovered or collected by traveling to different locations within the real world 100 or by completing various actions in either the virtual world 110 or the real world 100 (e.g., interacting with virtual elements 130, combating non-player characters or other players, completing quests, etc.). In the example shown in FIG. 1 , a player uses virtual items 132 to capture one or more virtual elements 130. In particular, a player may place virtual items 132 at locations within the virtual world 110 near or within the virtual elements 130. In this manner, placing one or more virtual items 132 may allow the player or the player's team / faction to acquire the virtual elements 130.
[0015]
[0024] In certain embodiments, a player may be required to collect virtual energy as part of a parallel reality game. Virtual energy 150 may be scattered at different locations within the virtual world 110. A player may collect virtual energy 150 by traveling to (or coming within a predetermined distance of) a location in the real world 100 that corresponds to the location of the virtual energy in the virtual world 110. The virtual energy 150 may be used within the game to power virtual items or to achieve various game objectives. A player who loses all of their virtual energy 150 may be disconnected from the game, unable to play for a certain period of time, or unable to play until they collect additional virtual energy 150.
[0016]
[0025] According to aspects of the present disclosure, a parallel reality game may be a massively multiplayer location-based game in which game participants share the same virtual world. Players may be divided into separate teams or factions and work together to achieve one or more game goals, such as acquiring or claiming ownership of virtual elements. In this way, a parallel reality game may inherently be a social game that encourages cooperation among in-game players. Players on opposing teams may oppose each other (or sometimes cooperate to achieve a common goal) during the parallel reality game. Players may use virtual items to attack or impede the progress of players on opposing teams. In some cases, players may be encouraged to converge at real-world locations to participate in cooperative or interactive events within the parallel reality game. In these cases, the application server requires assurance that players are actually physically present and are not disguising their locations.
[0017]
[0026] FIG. 2 illustrates one embodiment of a game interface 200 that may be presented (e.g., on a player's smartphone) as part of an interface between a player and virtual world 110. The game interface 200 includes a display window 210 that may be used to display the virtual world 110 and various other aspects of the game, such as the location of the player position 122, virtual elements 130, virtual items 132, and virtual energy 150 within the virtual world 110. The user interface 200 may also display other information, such as game data information, game communications, player information, client location verification instructions, and other information associated with the game. For example, the user interface may display player information 215, such as the player's name, experience level, and other information. The user interface 200 may include a menu 220 for accessing various game settings and other information associated with the game. The user interface 200 may also include a communication interface 230 that enables communication between the game system and the player and between one or more players of a parallel reality game.
[0018]
[0027] According to aspects of the present disclosure, a player can interact with a parallel reality game by carrying a client device 110 in the real world. For example, a player can access an application associated with the parallel reality game on a smartphone and play the game by carrying the smartphone and moving through the real world. In this regard, a player does not need to continuously view a visual representation of the virtual world on a display screen to play a location-based game. As a result, the user interface 200 can include non-visual elements that allow a user to interact with the game. For example, the game interface can provide audio notifications to the player when the player approaches a virtual element or object in the game or when an important event occurs in the parallel reality. In some embodiments, the player can control these audio notifications using audio controls 240. Different types of audio notifications can be provided to the user depending on the type of virtual element or event. Audio notifications can increase or decrease in frequency or volume as the player approaches a virtual element or object. Other non-visual notifications and signals can also be provided to the user, such as vibration notifications or other suitable notifications or signals.
[0019]
[0028] Parallel reality games can include various features to enhance and facilitate gameplay. For example, players can accumulate virtual currency or other virtual rewards (e.g., virtual tokens, virtual points, virtual resources, etc.) that can be used throughout the game (e.g., to purchase in-game items, trade for other items, craft items, etc.). Players can progress through various levels by completing in-game goals and gaining experience points. Players can also gain enhanced "powers" or virtual items that can be used to accomplish goals within the game.
[0020]
[0029] Those skilled in the art will appreciate that numerous game interface configurations and underlying functionality are possible using the subject matter disclosed herein, and unless expressly stated to the contrary, the present disclosure is not limited to any particular configuration.
[0021] Location-based application system example
[0030] FIG. 3 illustrates one embodiment of a networked computing environment 300. The networked computing environment 300 uses a client-server architecture in which an application server 320 communicates with client devices 310 over a network 370 to provide a parallel reality game to players at the client devices 310. The networked computing environment 300 may also include other external systems, such as a sponsorship / advertising system or a business system. Although only one client device 310 is shown in FIG. 3, any number of client devices 310 or other external systems may be connected to the application server 320 over the network 370. Furthermore, the networked computing environment 300 may include different or additional elements, and functionality may be distributed between the client devices 310 and the application server 320 in a manner different from that described below.
[0022]
[0031] The networked computing environment 300 provides for interaction between users in virtual worlds that geographically correspond to the real world. In particular, geographic areas in the real world can be directly linked or mapped to corresponding areas in the virtual world. A user can navigate the virtual world by moving to various geographic locations in the real world. For example, a user's current location in the real world can be tracked and used to update the player's location in the virtual world. Typically, a user's location in the real world is determined by locating the client device 310 with which the user is interacting with the virtual world and assuming the user is in the same (or approximately the same) location. For example, in various embodiments, a user may interact with a virtual element in a virtual world if the user's real-world location is within a threshold distance (e.g., 10 meters, 20 meters, etc.) of a real-world location that corresponds to the virtual element. For convenience, various embodiments are described with reference to the "user's location," but those skilled in the art will understand that such reference may also refer to the location of the user's client device 310.
[0023]
[0032] The client device 310 is any portable computing device that a user can use to interface with the application server 320. For example, the client device 310 is preferably a portable wireless device that can be carried by a user, such as a smartphone, a portable gaming device, an augmented reality (AR) headset, a cellular phone, a tablet, a personal digital assistant (PDA), a navigation system, a portable GPS system, or other similar device. In some use cases, the client device 310 may be a less mobile device, such as a desktop or laptop computer. Additionally, the client device 310 may be a vehicle with a built-in computing device.
[0024]
[0033] Client device 310 communicates with application server 320 to provide sensory data of the physical environment. In one embodiment, client device 310 includes a camera assembly 312, an application module 314, a positioning module 316, and a localization module 318. Client device 310 also includes a network interface (not shown) for providing communication over network 370. In various embodiments, client device 310 may include different or additional components, such as additional sensors, displays, software modules, etc.
[0025]
[0034] The camera assembly 312 includes one or more cameras capable of capturing image data. The cameras capture image data that depict a scene around the client device 110 at a particular pose (the camera's position and orientation within the environment). The camera assembly 312 may use a variety of photosensors with varying color capture ranges and capture rates. Similarly, the camera assembly 312 may include cameras with various lenses, such as wide-angle or telephoto lenses. The camera assembly 312 may be configured to capture a single image or multiple images as frames of video.
[0026]
[0035] Client device 310 may also include additional sensors for collecting data about the client device's surrounding environment, such as a motion sensor, an accelerometer, a gyroscope, a barometer, a thermometer, a light sensor, a microphone, etc. Image data captured by camera assembly 312 may be accompanied by metadata that describes other information about the image data, such as additional sensor data (e.g., temperature, ambient lighting, air pressure, position, orientation, etc.) or capture data (e.g., exposure time, shutter speed, focal length, capture time, etc.).
[0027]
[0036] The application module 314 provides a user with an interface for accessing location-based functionality. The application server 320 transmits application data over the network 370 to the client device 310 to provide a local version of the application to a user remote from the application server for use by the application module 314. In one embodiment, the application module 314 presents a user interface on the display of the client device 310 that depicts a virtual world (e.g., renders an image of the virtual world) and allows the user to interact with the virtual world to perform various activities. In some embodiments, the application module 314 presents images of the real world (e.g., images captured by the camera assembly 312) augmented with virtual elements from location-based applications. For example, the user may see markers (e.g., thumbnails or "media available" icons) indicating media content attached to the geographic location by other users and / or virtual objects left at the geographic location by other users.
[0028]
[0037] In some embodiments, the application module 314 may generate or adjust virtual content based on other information received from other components of the client device 310. For example, the application module 314 may adjust a virtual object displayed on a user interface, such as whether the virtual object is placed on a table, attached to a wall, or partially hidden behind a plant, based on a depth map of a scene captured in the image data. The application module 314 may also control various other outputs to enable a user to interact with a location-based application without having to view a display screen. For example, the application module 314 may control various audio, vibration, or other notifications to notify the user of available media content in their vicinity without looking at a display screen.
[0029]
[0038] The position location module 316 may be any device or circuitry for determining the location of the client device 310. For example, the position location module 316 may determine the actual or relative location by using a satellite navigation positioning system (e.g., a GPS system, a Galileo positioning system, a Global Navigation Satellite System (GLONASS), or a BeiDou satellite positioning system), an inertial navigation system, a dead reckoning system, IP address analysis, triangulation, and / or proximity to cellular base stations or Wi-Fi hotspots, or other suitable techniques.
[0030]
[0039] As the user moves with the client device 310 in the real world, the location positioning module 316 tracks the user's location and provides user location information to the application module 314. The application module 314 updates the user's location in the virtual world based on the user's actual location in the real world. Thus, the user can interact with the virtual world by simply carrying or moving the client device 310 in the real world. In particular, the user's location in the virtual world can correspond to the user's location in the real world. The application module 314 can provide the user location information to the application server 320 over the network 370. In response, the application server 320 can implement various techniques to verify the location of the client device 310 to prevent the user from faking their location information (e.g., to cheat in a game or access location-based media that would not otherwise be available). It should be understood that location information associated with a user is used only with permission after the user is notified that their location information will be accessed and how it will be used in the context of a location-based application (e.g., to update the user's location in the virtual world). Additionally, any location information associated with a user is stored and managed in a manner that protects the user's privacy.
[0031]
[0040] The location determination module 318 receives the location determined for the client device 310 by the position positioning module 316 and refines that location by determining the pose of one or more cameras of the camera assembly 312. In one embodiment, the location determination module 318 uses the location information generated by the position positioning module 316 to select a 3D map of the client device 310's surroundings. The location determination module 318 may retrieve the 3D map from local storage or from the application server 320. The 3D map may be a point cloud, mesh, or other suitable 3D representation of the client device 310's surroundings. Alternatively, the location determination module 318 may determine the position or pose of the client device 310 without reference to a coarse position (such as provided by a GPS system), such as determining the client device 310's relative position with respect to other devices.
[0032]
[0041] In one embodiment, the localization module 318 applies a trained model to determine the pose of the image captured by the camera assembly 312 relative to a 3D map. The localization model can therefore accurately determine the position and orientation of the client device 310 (e.g., to an accuracy of a few centimeters and degrees). The position of the client device 310 can then be tracked over time using dead reckoning based on sensor readings, periodic relocation, or a combination of both. The precise pose information of the client device 310 enables the application module 314 to present virtual content overlaid on an image of the real world (e.g., by displaying virtual elements on a display in conjunction with a real-time feed from the camera assembly 312) or in the real world itself (e.g., by displaying virtual elements on a see-through display in an AR headset), creating the impression that the virtual objects are interacting with the real world. For example, a virtual character may hide behind a real tree, a virtual hat may be placed on a real statue, or a virtual creature may run away and hide when a real person approaches.
[0033]
[0042] Application server 320 includes one or more computing devices that provide location-based functionality to client device 310. Application server 320 may include or be in communication with application database 330. Application database 330 stores application data used in location-based applications served or provided to client device 320 over network 370.
[0034]
[0043] The application data stored in the application database 330 may include: (1) data associated with the virtual world (e.g., image data used to render the virtual world on a display device, geographic coordinates of locations within the virtual world, etc.); (2) data associated with users of the location-based application (e.g., user profiles including user information, user experience level, user currency, current user location in the virtual / real world, user settings, user group information, etc.); (3) data associated with goals (e.g., data associated with current goals, goal status, past goals, future goals, desired goals, etc.); (4) data associated with virtual elements within the virtual world (e.g., location of virtual elements, type of virtual element, goals associated with virtual elements, virtual element attributes, etc.); (5) data associated with locations linked to real-world objects, landmarks, and virtual world elements (e.g., real-world object / landmark locations, descriptions of real-world objects / landmarks, virtual element relationships linked to real-world objects, etc.); (6) application status (e.g., current number of users, current status of goals, leaderboards for games and other gamified experiences, etc.); (7) data associated with user actions / input (e.g., current user location, past user locations, user input, user queries, user communications, etc.); or (8) other data used, relevant, or obtained during implementation of the location-based application. The application data stored in application database 330 may be entered offline or in real time by a system administrator, or by data received from users of system 300, such as from client devices 310 over network 370.
[0035]
[0044] In one embodiment, application server 320 is configured to receive requests for application data from client device 310 (e.g., via remote procedure calls (RPCs)) and respond to those requests over network 370. Application server 320 may encode the application data into one or more data files and provide the data files to client device 310. In addition, application server 320 may be configured to receive application data (e.g., a user's current location, user actions, user input, submitted media content, etc.) from client device 310 over network 370. Client device 310 may be configured to periodically send user input and other updated information to application server 320, which the application server uses to update the application data in application database 330 to reflect any and all changed states of the application.
[0036]
[0045] 3, application server 320 includes universal state module 322, commercial feature module 323, data collection module 324, mapping system 327, 3D map 328, and asynchronous experience module 329. As described above, application server 320 interacts with application database 330, which may be part of the application server or may be accessed remotely (e.g., application database 330 may be a distributed database accessed via network 370). In other embodiments, application server 320 includes different or additional elements. Additionally, functionality may be distributed among the elements in a manner different from that described.
[0037]
[0046] The universal state module 322 hosts an instance of a location-based application for a set of users (e.g., all users of the location-based application) and serves as the authoritative source for the current status of the application for that set of users. As a host, the universal state module 322 generates application content for presentation to users (e.g., via each client device 310). When the universal state module 322 hosts a location-based application, it may access the application database 330 to retrieve or store application data. The universal state module 322 may also receive application data (e.g., depth information, user input, user location, user actions, landmark information, media content, etc.) from the client devices 310 and incorporate the received application data into the overall location-based application for the entire set of users of the application. The universal state module 322 may also manage the distribution of application data to the client devices 310 over the network 370. In some embodiments, the universal state module 322 also manages security aspects of the interaction between the client device 310 and the location-based application, such as by securing connections between the client device and the application server 320, establishing connections between various client devices, or verifying the locations of various client devices 310.
[0038]
[0047] Commercial functionality module 323 can be separate from or part of universal state module 322. Commercial functionality module 323 can manage the inclusion of various features linked to real-world commercial activities within the location-based application. For example, commercial functionality module 323 can receive requests from external systems, such as sponsors / advertisers, businesses, or other entities via network 370, to include features linked to real-world commercial activities. Commercial functionality module 323 can then arrange for these features to be included in the location-based application after verifying that the linked commercial activity has occurred. For example, if a business pays an agreed-upon amount to the provider of the location-based application, a virtual object identifying the business may appear within the application at a virtual location corresponding to the business's (e.g., a store or restaurant's) real-world location.
[0039]
[0048] The data collection module 324 may be separate from or part of the universal state module 322. The data collection module 324 may manage the inclusion of various features within the application linked to data collection activities in the real world. For example, the data collection module 324 may modify the application data stored in the application database 330 to include features linked to data collection activities in the parallel reality game, such as a user submitting media content that is attached to specific points of interest that correspond to real-world locations that may be of interest to a person. The data collection module 324 may also analyze data collected by users according to data collection activities and provide it for access by various platforms.
[0040]
[0049] The mapping system 327 generates a 3D map of the geographic region based on the set of images. The 3D map can be a point cloud, a polygon mesh, or any other format that appropriately represents the 3D shape of the geographic region. The 3D map may include semantic labels that provide additional contextual information, such as object identification (e.g., table, chair, clock, streetlight, tree, etc.), material (e.g., concrete, water, brick, grass, etc.), or other characteristics (e.g., movable by a virtual character, compatible with a particular action, such as pinning media content to a corresponding surface, etc.). In one embodiment, the mapping system 327 stores the 3D map along with any semantic / contextual information in a 3D map store 328. The 3D map may be stored in the 3D map store 328 along with location information (e.g., GPS coordinates of the 3D map center, a boundary fence defining the extent of the 3D map, etc.). Thus, the application server 320 can provide 3D maps to client devices 310 that provide location data indicating that the client device 310 is within or near the geographic area covered by the 3D map.
[0041]
[0050] The asynchronous experience module 329 enables a user to generate and attach media content to a geographic location for other users in the vicinity of the geographic location to experience. For example, in one embodiment, a first user of a location-based application captures or records media content depicting a real-world location on a client device 310 and sends it to the application server 320 along with an indication of the geographic location and an identifier of the first user. The application server 320 stores the received media content along with the identifier of the first user and an indication of the geographic location. A second user in the vicinity of the geographic location then receives notification of the media content via the location-based application on the second user's client device 310 and may initiate an interaction by "wave" or otherwise interacting with the first user.
[0042]
[0051] In some embodiments, the asynchronous experience module 329 allows a first user to select objects depicted in a photo or video to create a 2D or 3D virtual object that represents the real-world object. The virtual object may be stored for later viewing or use by the first user, placed in an augmented reality space where the first user or other users can view and interact with it, or gifted to one or more other users. The functionality of the asynchronous experience module 329 is described in more detail below with reference to Figures 4-7.
[0043]
[0052] Network 370 can be any type of communication network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or a combination thereof. The network can also include a direct connection between client device 310 and application server 320. In general, communication between application server 320 and client device 310 can be performed over a network interface using any type of wired or wireless connection, using various communication protocols (e.g., TCP / IP, HTTP, SMTP, FTP), various encoding methods or formats (e.g., HTML, XML, JSON), or various protection methods (e.g., VPN, Secure HTTP, SSL).
[0044]
[0053] This disclosure refers to servers, databases, software applications, and other computer-based systems, as well as actions taken on and information sent to and from these systems. Those skilled in the art will recognize that the inherent flexibility of computer-based systems allows for various configurations, combinations, and divisions of tasks and functionality among and within components. For example, a process disclosed as being implemented by a server may be implemented using a single server or multiple servers working in cooperation. Databases and applications may be implemented on a single system or distributed across multiple systems. Distributed components may operate serially or in parallel.
[0045]
[0054] When the disclosed systems and methods access and analyze or use a user's personal information, such as location information, the user may be provided with an opportunity to control whether a program or function collects the information and whether or how it receives content from the system or other applications. Such information or data will not be collected or used unless the user is given meaningful notice of what information will be collected and how it will be used. Information will not be collected or used unless the user provides consent, which the user can withdraw or change at any time. Thus, users can control how information about them is collected and used by an application or system. Additionally, certain information or data may be processed in one or more ways to remove any personally identifiable information before being stored or used. For example, the user's identity may be processed so that personally identifiable information cannot be determined.
[0046] Example of an asynchronous experience module
[0055] Figure 4 shows one embodiment of the asynchronous experience module 329 of Figure 3. In the illustrated embodiment, the asynchronous experience module 329 includes a content sharing module 410, a location module 420, a communication module 430, an object creation module 440, and a content database 450. In various embodiments, the asynchronous experience module 329 may include different or additional components, and its functionality may be distributed between the client device 310 and the server 320, and among the components of the asynchronous experience module 329, in ways different from those described below.
[0047]
[0056] The content sharing module 410 receives media content from a first user of a location-based application and stores the received content for later viewing by one or more other users of the application. In one embodiment, the content sharing module 410 receives media content, such as a photo or video showing a real-world geographic location, from the client device 310 along with an indication of the location and an identifier of the first user. The indication of the location may be an identifier of a virtual element (e.g., a particular point of interest where a person may be) in the virtual world to which the user requested the media content be attached, GPS coordinates, or any other indicator of the real-world location depicted by the media content. The user identifier may be a user ID, a device ID, or any other information identifying the user who sent the media content.
[0048]
[0057] The media content may optionally include a caption or message provided by the first user. For example, if the media content is a photo of a plate of tacos captured at a restaurant, the caption may include the restaurant name and the user's review ("A must-visit in Austin. These tacos are serious!"). As another example, if the media content is a video of the first user strolling through a park, the caption may encourage other users to explore a particular trail or suggest a spot to relax in the shade.
[0049]
[0058] A caption or message provided by a first user may be viewable by any other user of the location-based application who subsequently visits the depicted geographic location, or may be directed to one or more specific users. For example, a first user may attach a personal message to a geographic location, including text, one or more images, audio, or video content, specify one or more other users who can access the message (e.g., by providing a user ID or selecting from a friends list), and generate a request to attach the message to the user's current location (or a previously visited location). As a specific example, suppose a first user dined at a restaurant and thought the vegetable jalfrezi was excellent. The user takes a photo of the dish, types out a message describing how excellent the vegetable jalfrezi was, and attaches the message to the restaurant's geographic location, specifying another user who loves curry as the recipient.
[0050]
[0059] Additionally, in some embodiments, the first user may specify one or more content display parameters for the media content, such as restrictions on users who may view the content, an indication that any other users of the location-based application may access the content, an expiration date or other time limit for viewing the content, restrictions on users who may initiate communication with the first user based on the content or the type of communication that can be initiated, etc. For example, the first user may limit the first user to "wave" or communicate with only friends, friends and their friends, or some other subset of users (e.g., anyone the user has not blocked).
[0051]
[0060] The content sharing module 410 stores the media content, an indication of the location, an identifier of the first user, an optional caption or message, and optional content display parameters in a content database 450 .
[0052]
[0061] The location detection module 420 receives the current location of the client device 310 and queries the content database 450 to identify media content associated with a geographic location, such as within a threshold location of the client device, within the same S2 cell at a specified level (e.g., L14-L17) of the current location, or within an enclosed area that also encompasses the current location. The location detection module 420 may provide some or all of the media content proximate the current location of the client device 310 to the client device 310 for presentation to the user. For example, an indication of a video captured by another user and attached to a geographic location may be presented by the client device 310 near the geographic location (e.g., as an icon displayed in an AR headset or overlaid on a video feed captured by the client device's camera).
[0053]
[0062] In some embodiments, the display of media content to a user of a client device 310 is according to applicable content display parameters provided by the first user, as described above. The location detection module 420 queries the content database 450 for content display parameters associated with media content attached to a geographic location and filters media content that does not conform to the content display parameters. For example, in an embodiment in which a first user restricts viewing of media content to friends only, the media content is not displayed on client devices 310 of users who are not friends with the first user on the location-based application.
[0054]
[0063] Conversely, the location detection module 420 affirmatively selects media content for display to one or more viewing users if the content display parameters match. For example, if a first user attaches a personal message at a geographic location and the location detection module 420 determines that a second user is in the geographic location or in the geographic vicinity of the attached message, the location detection module 420 provides the personal message, including any text, image, audio content, or video content, to the client device 310 of the second user. Continuing with the "vegetable jalfrezi" example, if the second user visits the restaurant, the second user can receive notification via the location detection module 420 that the first user left a message and view a recommendation to try the vegetable jalfrezi. Thus, the two users have a shared asynchronous experience.
[0055]
[0064] If a third user visits the geographic location with the second user but the content display parameters specify that only the second user can view the message, the location detection module 420 displays the message only on the client device 310 of the second user, but not on the client device 310 of the third user, even if both the second user and the third user are in the geographic location. That is, the third user does not receive the vegetable jalfrezi recommendation from the first user. However, if the content display parameters alternatively indicate that the media content is available for viewing by any user of the location-based application, the location detection module 420 also notifies the third user of the first user's recommendation upon detecting that the third user is in the geographic location (e.g., a restaurant).
[0056]
[0065] A user viewing media content shared by other users of the location-based application may view the media content itself and any associated captions or messages, as well as the user who created the content (e.g., the posting user's name or avatar), the date or time since the content was created (e.g., "yesterday," "one month ago"), the name or other identifier of the associated geographic location (e.g., restaurant name, park name, locality name), etc. In various embodiments, the viewing user may react to the content item (e.g., indicate approval or disapproval), view or post comments associated with the media content, pin the media content to preserve it for later viewing by the user, or share the media content with one or more other users according to content display parameters provided by the posting user.
[0057]
[0066] In some embodiments, the location detection module 420 provides a map that visually depicts media content attached to a location. Location-based applications may provide search and filtering options to identify and view media content of interest to users. For example, a user in an unfamiliar area may identify videos posted by friends dining at various restaurants in the area and view them to decide where to eat. Viewing videos posted by other users provides a much more direct way to evaluate potential restaurants than existing written reviews.
[0058]
[0067] The client device 310 may display an item of media content in response to the user tapping or selecting to display the media content. In one embodiment, the communications module 430 provides a user interface on the client device 110 that allows a viewing user to “wave” the user who posted the media content. If the viewing user chooses to wave the posting user, the client device 310 sends a wave request to the communications module 430. The communications module 430 identifies a second client device 310 associated with the posting user (e.g., by querying the posting user in the content database 450 or by searching a client device identifier stored with the media content) and sends a wave notification to the second client device 310. The wave notification includes the viewing user's identifier, thereby causing the second device 310 to present a notification to the posting user that the viewing user is waving the posting user. As described above, the viewing user's ability to wave or communicate with the posting user via other communications may be limited or restricted based on content parameters provided by the posting user.
[0059]
[0068] In some embodiments, the posting user may ignore a wave from the viewing user, in which case no further processing occurs, or may “wave back” to establish a communication channel between the viewing user and the posting user's client device 310. In this case, the viewing user and the posting user may exchange messages even if they could not previously (e.g., did not know each other or had identifying information about each other). The messages may be limited to a preselected set of default messages (e.g., a default text message and a set of reaction icons) or may be more flexible and allowed to include one or more of typed text, photos, videos, audio recordings, etc. In some embodiments, the communication channel may initially be limited to predefined messages, but if both users agree, the communication channel may be opened up to allow user-provided text, photos, videos, audio recordings, etc.
[0060]
[0069] The object creation module 440 enables a user to generate a 2D or 3D virtual representation of a real-world object depicted in a photograph or video. In one embodiment, the user views a photograph or video and selects the depicted object. Alternatively, the user activates the camera assembly 312 on the client device 310 and selects a real-world object within a scene of the environment surrounding the client device 110. The object creation module 440 generates a virtual representation of the selected object. In one embodiment, the object creation module 440 uses the photograph or video to generate a 2D or 3D model (e.g., a mesh) of the depicted object. Semantic segmentation may be used to identify characteristics of an object (or part of an object), such as soup in a bowl being liquid but the bowl itself being solid, or a beach ball being bouncy but a beanbag not. In some embodiments, the object creation module 440 may prompt the user to capture additional photographs or videos of the object to build a more accurate virtual model of the object. For example, the object creation module 440 may cause an application on the user's client device 310 to display instructions to record video while moving the camera around the object. The application may instruct the user to move the camera in a particular direction and rotate the camera in a particular orientation to capture particular information (e.g., a side of the object not yet seen in a previous photo / video).
[0061]
[0070] Regardless of the approach used, once the 2D or 3D model is generated, the object creation module 440 may use the model to instantiate a virtual object that represents the selected real-world object. The virtual object may be a realistic virtual depiction of the real-world object, and the object creation module 440 may apply one or more styles to the virtual object, such as generating a cartoon representation of the object, a black and white version of the object, a highly stylized or unstylized version of the object, a version of the object with inverted or altered colors, etc.
[0062]
[0071] In one embodiment, the object creation module 440 provides the client device 310 with a display of multiple versions of a virtual object and allows the user to select a version to save or use. For example, when a user selects a beach ball depicted in a video, the object creation module 440 may generate multiple virtual objects that are different 3D renderings of the beach ball. Depending on the embodiment, the user may one or more of the following: select one or more virtual objects to later view as memories at that geographic location; place and interact with one or more virtual objects in an augmented reality space (e.g., toss a beach ball across the room by selecting it within an application on the client device 310); gift one or more virtual objects to other users; etc. In some examples, a user may first save a virtual object, later place it in an augmented reality space (e.g., another real-world location) and interact with it for a while, and then save it again (e.g., later place it in another augmented reality environment at a different real-world location). Furthermore, when the virtual object is placed in an augmented reality environment, it may be viewed and interacted with by other users at the same geographic location according to content display parameters specified by the creating user. For example, a group of friends might "throw" a virtual beach ball at home, reminiscing about throwing the real beach ball that the virtual object was modeled after at a beach party.
[0063] Method and interface examples
[0072] 5 is a flowchart illustrating an exemplary method 500 for providing an asynchronous shared virtual experience, according to one embodiment. The steps of FIG. 5 are shown from the perspective of the asynchronous experience module 329 that performs the method 500. However, some or all of the steps may be performed by other entities or components. Additionally, in some embodiments, the steps may be performed in parallel, in a different order, or different steps may be performed.
[0064]
[0073] In the illustrated embodiment, method 500 begins with the content sharing module 410 receiving 510 content from a client device 310 of a first user of a location-based application. In one embodiment, the content includes media content (such as a photo or video), an indication of the first user associated with the first client device 310 (such as a user ID or player ID), and an indication of a geographic location (such as the geographic coordinates of the geographic location where the media content was captured). The received content may also optionally include a caption or message provided by the first user, such as a description of the media content, a message intended for one or more other users of the location-based application, and one or more content display parameters that restrict the display of the media content. For example, the content display parameters may provide an expiration date after which the media content will no longer be displayed, restrict the display of the media content to one or more specific users or user groups (such as friends of the user or friends of friends), allow any user of the location-based application to view the media content, or restrict whether and how viewing users can communicate with the first user (e.g., via “waves”).
[0065]
[0074] The content sharing module 410 stores 520 the received media content (e.g., in the content database 450) in association with an indication of the first user and the geographic location. If the first user provided one or more content display parameters, the parameters are also stored with the media content.
[0066]
[0075] The location detection module 420 receives 530 an indication of the current location of a second client device 310 associated with a second user of the location-based application. For example, the indication may be received after the second user is in proximity (e.g., within a threshold distance) of a geographic location associated with the media content.
[0067]
[0076] If the content display parameters allow the second user to experience the media content, the location detection module 420 provides 540 the media content for display to the second client device 310. If the media content is associated with a message or caption directed to the second user, or a user viewing the media content, the message or caption is provided for display along with the media content. For example, if the media content is a photo captured inside a coffee shop, the associated caption may recommend a particular drink to the viewing user. In another example, as shown in interface 705 of FIG. 7A , the second user may be located at a location where another user of a location-based application previously captured and posted content from a park. Here, interface element 710 indicates that user “Sally Smith” previously visited the same park and shared a photo of the walkway with a caption such as “Beautiful morning in the park. A great walk here!” In this way, the second user and user Sally Smith have a shared asynchronous virtual experience.
[0068]
[0077] In another embodiment, the media content is provided for display to the viewing user in the form of a map with representations of the media content at locations within the viewing user's proximity (e.g., a threshold distance). That is, while the above-described embodiment contemplates a display of media content associated with a geographic location when the second user is at or near that geographic location (e.g., outside or inside a coffee shop in the previous example), in another embodiment, the viewing user may use a map view to see representations of media content associated with geographic locations within a broader proximity (e.g., within a second threshold distance from the second client device 310). For example, the map view may represent a city or neighborhood in which the second user is located and may include representations of media content associated with individual geographic locations within that city or neighborhood. The second user may thus view multiple representations of the media content simultaneously and may interact with any of the displayed representations (e.g., by tapping on one) to view either the media content itself or any associated captions or messages.
[0069]
[0078] 7B illustrates an example of a map interface 725 of a location-based application displayed on a viewing user's client device 310. The displayed interface 725 shows a map of the viewing user's surrounding area, such as the city in which the viewing user is located, and includes displays of media content captured by other users of the location-based application at real-world locations within the map's coverage area. For example, interface 725 includes a display 730 of media content captured by user Jane Smith two hours ago. When the viewing user hovers over, selects (e.g., taps), or otherwise interacts with display 730, the captured media content is provided for display on client device 310. For example, interface 725 includes a frame 735 depicting a photo or video of a bridge, a location tag indicating where the image was captured (Masa y Mas, Austin, Texas), and a display indicating the user's reactions to the media content, such as the number of times the media content has been "liked," commented on, or pinned by other users of the location-based application. In various embodiments, the media content may also include captions or messages, such as a review of Masa y Mas tacos or recommendations for seats with the best views.
[0070]
[0079] Interface 725 also includes within the display area an icon 740 that indicates other media content captured at real-world geographic locations. For example, in response to the viewing user zooming in on interface 725 or tapping icon 740, other media content provided by other users of the location-based application is provided for display in interface 725. In this manner, the viewing user can quickly and easily explore the environment around them based on images, videos, recommendations, and reviews from other users of the location-based application without having to travel to each discrete location where the media content was captured.
[0071]
[0080] 5 , whether the media content is provided for display while the second user is located at a geographic location associated with the media content or the second user is viewing the media content via a map interface, the second user may interact with the media content to initiate communication with the first user. When the communications module 430 receives 550 an indication that the second user has interacted with the media content, the communications module 430 provides 560 a communications channel between the first client device 310 and the second client device 310 according to any content display parameters provided by the first user. For example, the communications module 430 provides a user interface element for display on the second client device 310, the selection of which allows the second user to “wave” to the first user. If the second user selects to wave to the first user, the second user's client device 310 sends a wave request to the communication module 430, which identifies the first user's client device 310 using, for example, user display information stored in association with the media content in the content database 450. A wave notification is sent to the first client device 310 notifying the first user that the second user is waving. The first user may ignore the wave from the second user, or if the first user selects to "wave back," the communication module 430 instantiates a communication channel between the first client device 310 and the second client device 310, allowing the first user and second user to exchange messages and communicate with each other.For example, returning to FIG. 7A, interface 705 includes element 715 prompting a second user to "wave to Sally Smith" and element 720 indicating that a third "Baccarat Katana" has waved to the second user (e.g., in response to other content posted by the second user or if the second and third users are friends on the location-based application).
[0072]
[0081] 6 is a flow chart illustrating an example method 600 for creating a three-dimensional augmented reality object from a real-world object, according to one embodiment. The steps in FIG. 6 are shown from the perspective of the asynchronous experience module 329 that performs the method 600. However, some or all of the steps may be performed by other entities or components. Additionally, in some embodiments, the steps may be performed in parallel or in a different order, and different steps may be performed.
[0073]
[0082] In the illustrated embodiment, method 600 begins with object creation module 440 on application server 320 receiving 610 visual media content, such as a photo or video (e.g., captured by camera assembly 312 on client device 310), from a first client device 310 of a first user of a location-based application. The media content may depict one or more real-world objects. For example, if the media content is an image of a user's table at a coffee shop, the real-world objects may include a coffee cup, a plate with pastries, a napkin holder, etc.
[0074]
[0083] After receiving the visual media content, the object creation module 440 further receives 620 user input selecting a real-world object depicted in the visual media content. For example, a user may tap or interact with a portion of the visual media content to indicate selection of a real-world object, such as a coffee cup in an image of the user's table in a coffee shop.
[0075]
[0084] The object creation module 440 generates 630 one or more virtual objects that include a representation of the selected real-world object, for example, by generating a 2D or 3D model (e.g., a mesh) of the object. In some embodiments, the user may be prompted to capture additional photographs or videos of the object to build a more accurate virtual model. For example, the object creation module 440 may instruct the user to record video while moving the camera assembly 312 of the client device 310 around the coffee cup, or to move the camera assembly 312 in a particular direction to capture portions of the coffee cup that are not seen in the original item of visual media content.
[0076]
[0085] Once a 2D or 3D model of the object is generated, the object creation module 440 uses the model to instantiate one or more virtual representations (e.g., virtual objects) of the object. The virtual objects may be realistic virtual depictions of the object or may be stylized in various ways. For example, FIG. 7C shows a photo of a coffee cup 745 (i.e., an item of media content that depicts a real-world object) and multiple virtual objects 750 that represent the depicted object. As shown in FIG. 7C, each virtual object 750 depicts the real-world object in a different way, for example, by changing the coffee cup design, the cup handle, or the contents of the cup.
[0077]
[0086] At 640, the object creation module 440 provides 640 one or more virtual objects to the first client device 310. For example, multiple virtual objects 750 are displayed to the first user via the first client device 310, and the user may select one of the virtual objects 750 to save or use in a location-based application. Alternatively, the object creation module 440 may provide only a single virtual object to the first client device 310.
[0078]
[0087] A user may save the generated virtual object for later viewing or use (e.g., as a memento of time spent in a geographic location or as part of a collection of different types of virtual objects), place and interact with the virtual object in an augmented reality space, allow other users to interact with the virtual object, or gift the visual object to one or more other users of a location-based application.
[0079] Examples of computing systems
[0088] 8 is a block diagram illustrating an example of a computer 800 suitable for use as a client device 310 or an application server 320. The example computer 800 includes at least one processor 802 coupled to a chipset 804. The chipset 804 includes a memory controller hub 820 and an input / output (I / O) controller hub 822. A memory 806 and a graphics adapter 812 are coupled to the memory controller hub 820, and a display 818 is coupled to the graphics adapter 812. A storage device 808, a keyboard 810, a pointing device 814, and a network adapter 816 are coupled to the I / O controller hub 822. Other embodiments of the computer 800 have different architectures.
[0080]
[0089] 8, storage device 808 is a non-transitory computer-readable storage medium such as a hard drive, a compact disc read-only memory (CD-ROM), a DVD, or a solid-state memory device. Memory 806 holds instructions and data used by processor 802. Pointing device 814 may be a mouse, a trackball, a touchscreen, or other type of pointing device and may be used in combination with keyboard 810 (which may be an on-screen keyboard) to input data into computer system 800. Graphics adapter 812 displays images or other information on display 818. Network adapter 816 connects computer system 800 to one or more computer networks, such as network 370.
[0081]
[0090] The type of computer used by each entity in Figure 8 may vary depending on the embodiment and the processing power desired for the entity. For example, application server 320 may include multiple blade servers working together to provide the described functionality. Furthermore, the computer may lack some of the described components, such as keyboard 810, graphics adapter 812, and display 818.
[0082] Additional Considerations
[0091] Some portions of the preceding description describe embodiments in terms of algorithmic processes or operations. These algorithmic descriptions and representations are commonly used by those skilled in the computing arts to effectively convey the substance of their work to others skilled in the art. These operations, while described functionally, computationally, or logically, will be understood to be implemented by computer programs including instructions executed by a processor or equivalent electrical circuitry, microcode, or the like. Further, it has proven convenient at times, without loss of generality, to refer to arrangements of these functional implementations as modules.
[0083]
[0092] The reference to "one embodiment" or "an embodiment" means that a particular element, feature, structure, or characteristic described in connection with that embodiment is included in at least one embodiment. The appearances of "one embodiment" in various places throughout this specification do not necessarily all refer to the same embodiment. Similarly, the use of "a" or "an" before an element or component is for convenience only. This description should be understood to mean that there is one or more elements or components present, unless specifically intended otherwise.
[0084]
[0093] When values are described as "approximately" or "substantially" (or derivatives thereof), unless otherwise clear from the context, such values should be interpreted with an accuracy of ±10%. For example, "approximately 10" should be understood to mean "in the range of 9 to 11."
[0085]
[0094] The terms "comprises," "comprising," "includes," "has," "having," or other variations thereof, are intended to refer to a non-exclusive inclusion. For example, a process, method, article, or apparatus that includes a list of elements is not necessarily limited to only those elements and may include other elements not expressly listed or inherent in such process, method, article, or apparatus. Furthermore, unless expressly stated to the contrary, "or" refers to an inclusive "or," not an exclusive "or." For example, condition A or B can be satisfied by any one of the following: A being true (or present) and B being false (or absent); A being false (or absent) and B being true (or present); or both A and B being true (or present).
[0086]
[0095] After reading this disclosure, those skilled in the art will recognize still other alternative structural and functional designs for systems and processes that provide the described functionality. Thus, while specific embodiments and applications have been illustrated and described, it should be understood that the described subject matter is not limited to the precise structures and components disclosed. The scope of protection should be limited only by the claims ultimately issued.
Claims
1. 1. A computer-implemented method comprising: receiving, from a first client device, an item of visual media content depicting one or more real-world objects; receiving a user input selecting one of the one or more real-world objects; generating one or more virtual representations of the selected objects using the visual media content; and providing at least one virtual representation of the selected object to the first client device for display.
2. providing a plurality of virtual representations of the selected object for display on the first client device; receiving user input including a selection of one of the plurality of virtual representations; The computer-implemented method of claim 1 , further comprising: providing the selected virtual representation to the first client device.
3. receiving user input including a selection of one or more other users of a location-based application; 10. The computer-implemented method of claim 1, further comprising: providing at least one virtual representation of the selected object for display on a client device of each of the selected one or more users.
4. receiving user input including an identification of a location in a virtual world parallel to the real world; The computer-implemented method of claim 1 , further comprising: placing at least one virtual representation of the selected object at the identified location in the virtual world.
5. generating the one or more virtual representations of the selected object, generating a two-dimensional (2D) or three-dimensional (3D) model of the selected object using the visual media content; and creating an instance of the one or more virtual representations of the object using the 2D or 3D model.
6. prompting a user of the first client device to capture one or more additional photographs or videos of the selected object; The computer-implemented method of claim 5 , further comprising: generating the 2D or 3D model using the one or more additional photographs or videos.
7. The computer-implemented method of claim 1 , wherein the one or more virtual representations of the selected object are stored in association with a location where the item of visual media content was captured.
8. 1. A computer-implemented method comprising: receiving, from a first client device, media content, a first user's representation of a location-based application, and a representation of a geographic location depicted in the media content; storing the media content in association with an instruction of the first user and an indication of the geographic location depicted in the media content; receiving an indication of a current location of a second client device associated with a second user of the location-based application; providing the media content to the second client device for presentation to the second user in response to the current location being near the geographic location; and providing a communication channel between the second client device and the first client device in response to a request from the second client device indicating that the second user has interacted with the media content.
9. receiving, from the first client device, one or more content display parameters associated with the media content; 10. The computer-implemented method of claim 8, further comprising: storing the content display parameters in association with the media content, the media content being provided for display on the second client device in accordance with the one or more content display parameters.
10. 10. The computer-implemented method of claim 9, wherein the one or more content display parameters include one or more of: an identification of one or more other users of the location-based application to which the media content may be displayed; an indication that the media content may be displayed to any other users of the location-based application; and an expiration date or other time-based limit on display of the media content.
11. receiving, from the first client device, an identification of the second user as a recipient of the media content and a message from the first user to the second user; 9. The computer-implemented method of claim 8, further comprising: in response to determining that the second client device is in the vicinity of the geographic location depicted in the media content, providing the media content and the message to the second client device for presentation to the second user.
12. providing a map interface for display on the second client device that includes a representation of media content captured at geographic locations within a threshold distance from the second client device; 10. The computer-implemented method of claim 8, further comprising: in response to receiving user input comprising a selection of a projected representation of media content, providing the media content to the second client device for presentation to the second user.
13. 9. The computer-implemented method of claim 8, wherein the second user provides input to initiate communication with the first user, and the communication channel is opened in response to the first user providing input confirming the communication.
14. 9. The computer-implemented method of claim 8, wherein the communication channel remains open until terminated by the first user or the second user, until a threshold time has elapsed since the most recent communication between the first user and the second user, or until the second client device is no longer in the vicinity of the geographic location.
15. 1. A computer-implemented method comprising: receiving, from a first client device of a first user of a location-based application, media content, an indication of a geographic location associated with the media content, and an indication of a second user who is an intended recipient of the media content; storing the media content in association with the first user and the geographic location associated with the media content; receiving an indication of a current location of a second client device associated with the second user; and in response to the current location being near the geographic location, providing the media content to the second client device for presentation to the second user.
16. 16. The computer-implemented method of claim 15, wherein the media content is a message from the first user to the second user.
17. receiving, from the first client device, one or more content display parameters associated with the media content; 20. The computer-implemented method of claim 15, further comprising: storing the content display parameters in association with the media content, the media content being provided for display to the second client device in accordance with the one or more content display parameters.
18. 16. The computer-implemented method of claim 15, further comprising providing a communication channel between the second client device and the first client device in response to a request from the second client device indicating that the second user has interacted with the media content.
19. 20. The computer-implemented method of claim 18, wherein the second user provides input to initiate communication with the first user, and the communication channel is opened in response to the first user providing input confirming the communication.
20. 20. The computer-implemented method of claim 18, wherein the communication channel remains open until terminated by the first user or the second user, until a threshold time has elapsed since the most recent communication between the first user and the second user, or until the second client device is no longer in the vicinity of the geographic location.