Method and system for presenting augmented reality presentation and readable storage medium

By capturing encoded images using mobile device cameras, parsing Uniform Resource Indicators, selecting and presenting augmented reality data, the problem of desktop devices being unable to directly implement augmented reality is solved, achieving a seamless experience and consistent session transitions, while reducing loading time and codebase maintenance costs.

CN120848731APending Publication Date: 2025-10-28SNAP INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510965010.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2020-09-09
Filing Date
2020-09-10
Publication Date
2025-10-28

AI Technical Summary

Technical Problem

In existing technologies, desktop computing devices cannot directly implement augmented reality experiences. They need to transfer objects, user information, etc. from desktop devices to mobile devices to achieve augmented reality experiences, and it is difficult to keep the session information consistent between different devices.

Method used

Capture coded images using mobile device cameras, parse Uniform Resource Identifiers, select and render augmented reality data, and maintain a consistent web codebase using computing servers to achieve a seamless augmented reality experience from desktop to mobile devices while maintaining session information consistency.

Benefits of technology

It enables a seamless augmented reality experience from desktop computing devices to mobile devices, reduces loading time, provides a consistent user experience and efficient session transitions, and reduces the maintenance costs of the web codebase.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120848731A_ABST
    Figure CN120848731A_ABST
Patent Text Reader

Abstract

Methods, systems, and computer-readable storage media for presenting augmented reality presentations are disclosed. The system comprises: at least one processor; at least one memory component storing instructions that, when executed by the at least one processor, cause the at least one processor to perform the following: for presenting an augmented reality experience using an application executing on the device, access augmented reality data for a plurality of augmented reality presentations of the three-dimensional model, the augmented reality data is identified by a uniform resource identifier included in a content request sent to the content system; accessing presentation parameters for the three-dimensional model; determining one or more attributes of a device on which an application that will present an augmented reality experience is executed; selecting, from a plurality of augmented reality presentations, an augmented reality presentation configured for attributes of the device and associated with presentation parameters for the three-dimensional model; and causing presentation of the selected augmented reality presentation by the application.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of Chinese patent application filed on September 10, 2020, with international application number PCT / US2020 / 050191, entitled "Augmented Reality Presentation", and application number 202080094370.X after entering the Chinese national phase. Technical Field

[0002] This disclosure relates to systems and methods for presenting augmented reality. Background Technology

[0003] The system can use three-dimensional (“3D”) models to represent objects. For example, augmented reality (“AR”) systems, virtual reality (“VR”) systems, or web browsers can use 3D models to represent objects in their respective environments. The model can be outside the field of view and affect the rendering of objects within the field of view (such as a ball bouncing on a chair). Summary of the Invention

[0004] This specification describes techniques, methods, systems, and other approaches for presenting augmented reality experiences. Augmented reality experiences can involve displaying virtual objects within a view of a real-world scene and can be performed using a mobile computing device equipped with a camera and capable of providing such an experience. However, some online sessions that present images of objects on web resources take place on augmented reality-incompatible computing devices such as desktop computers, information station computers, and other devices. For example, a webpage presented by a web browser running on a desktop computing device can present images of objects that a user wants to participate in an augmented reality experience. In this example, a user can transfer objects, users, session information, or a combination thereof from an augmented reality-incompatible device to another augmented reality-incompatible computing device, such as a smartphone. To transfer information, for example, the user can select controls on a webpage presented by a web browser running on the desktop computing device, and in response, the webpage can generate an image encoding the objects, users, session information, or two or more combinations thereof. The smartphone can then, for example, use a camera to capture the encoded image based on user input, decode the encoded information, and use the information to initiate an augmented reality experience including the objects and associate the online session on the smartphone with the online session on the desktop computing device. As another example, a virtual reality experience that includes objects can be launched, and the virtual reality experience facilitated by a virtual reality-enabled device can be associated with an online session on a desktop computing device.

[0005] Typically, an innovative aspect of the subject matter described in this specification can be embodied in a method comprising the following actions: receiving data of a webpage by a mobile web browser, the data of the webpage being associated with a Uniform Resource Identifier (URLI) and including augmented reality data for multiple augmented reality renderings; selecting an augmented reality rendering from the multiple augmented reality renderings of the webpage by the mobile web browser through the following steps: (i) parsing the URLI, (ii) detecting one or more augmented reality rendering parameters in the parsed URLI, and (iii) selecting specific augmented reality data for augmented reality rendering identified by one or more augmented reality rendering parameters from the augmented reality data for the multiple augmented reality renderings; automatically rendering the augmented reality rendering of the webpage by the mobile web browser using the specific augmented reality data for the multiple augmented reality renderings and data from a camera device included in a mobile device running the mobile web browser; after automatically rendering the augmented reality rendering, receiving data indicating that the augmented reality rendering should end; and after receiving the data indicating that the augmented reality rendering should end, rendering the webpage using the data of the webpage.

[0006] Other embodiments of this aspect include corresponding computer systems, apparatuses, computer program products, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the method. A system of one or more computers may be configured to perform specific operations or actions by means of software, firmware, hardware, or a combination thereof installed on the system, which, in operation, causes the system to perform the actions. A system of one or more computer programs may be configured to perform specific operations or actions by means of instructions that, when executed by a data processing device, cause the device to perform the actions.

[0007] The foregoing and other implementations may each optionally include one or more of the following features, individually or in combination. Receiving webpage data may include receiving data independent of the underlying operating system of the mobile device. Augmented reality data may be specific to the mobile device, a user account of the mobile device, or both. Augmented reality data may include a three-dimensional model of an object. One or more augmented reality rendering parameters may include a rendering angle parameter specifying an initial rendering angle for the three-dimensional model of the object. One or more augmented reality rendering parameters may include a color parameter specifying an initial rendering color for the three-dimensional model of the object. One or more augmented reality rendering parameters may include a size parameter specifying an initial rendering size for the three-dimensional model of the object. Image data encoded with a Uniform Resource Identifier (URLI) may be received from a camera device of the mobile device. The mobile device may determine the URLI based on the image data and provide the URLI to the mobile device's web browser. Image data may be determined based on an image visually rendered by a computing device other than the mobile device and captured by a camera device of the mobile device. The URLI encoded in the image data visually rendered by the computing device may include a session identifier, and the mobile device's web browser may associate a first user session of the computing device with a second user session on the mobile device. Augmented reality (AR) rendering can be automatically performed in response to determining that a mobile device is enabled to generate AR rendering. After receiving data indicating that AR rendering should end, the webpage can be rendered without the mobile device requesting additional content from the server system. For each of two or more webpage components, the component can be generated by the mobile device's web browser. For the first webpage component of the two or more webpage components, the identifier of the webpage component in the Uniform Resource Identifier (URLID) can be detected. The detected identifier of the webpage component in the URLID can be used to select AR rendering for the first webpage component. For the second webpage component, in response to the determination of the first webpage component, the analysis of the URLID can be skipped.

[0008] The subject matter described in this specification can be implemented in various ways and can produce one or more of the following advantages. In some implementations, the features described in this document improve the system, for example, by providing the client device with complete web page content (e.g., along with supplementary content), and then the client device is able to dynamically adjust the content rendered based on the URL while still having the option to render the “basic” web page. For example, the URL can instruct the client to load the basic web page and launch the AR experience, and after loading and launching, the client device can render the basic web page without requesting additional content from the server. In some implementations, client devices that load the web page in the background while rendering the AR experience based on a single URL improve loading time. In some implementations, by using the same web page content to render web pages on different computing devices and / or associating augmented reality rendering with controls (e.g., buttons) for launching object-specific augmented reality experiences on different web pages, a consistent web page codebase can be maintained, for example, on a server, while providing a consistent, flexible user experience across different devices, efficient application of user choice, or both. For example, this can reduce the size of the web page codebase that needs to be maintained. In some implementations, by using, for example, encoded images to connect user sessions across different computing devices, the system can apply analytics techniques for attributing website transitions, identifying user interactions across multiple different devices, or both. In some implementations, a one-click transition from a desktop web browsing experience to an AR experience can be provided. For example, a one-click transition could include not only opening a link from an encoded image captured by a camera device, but also directly launching an AR experience.

[0009] This specification describes a system comprising: at least one processor; at least one memory unit storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations including: accessing augmented reality data for a plurality of augmented reality renderings of a 3D model, the augmented reality data being identified by a Uniform Resource Identifier included in a content request sent to a content system, in order to render an augmented reality experience using an application executed on a device; accessing rendering parameters for the 3D model; determining one or more attributes of the device on which the application that will render the augmented reality experience is executed; selecting from the plurality of augmented reality renderings an augmented reality rendering that is (i) configured for one or more attributes of the device and (ii) associated with one or more rendering parameters for the 3D model; and causing the rendering of an augmented reality rendering that is (i) configured for one or more attributes of the device and (ii) associated with one or more rendering parameters for the 3D model by the application.

[0010] This specification also describes a method comprising: in order to render an augmented reality experience using an application running on a device, accessing augmented reality data for a plurality of augmented reality renderings of a 3D model, the augmented reality data being identified by a Uniform Resource Identifier included in a content request sent to a content system; accessing rendering parameters for the 3D model; determining one or more attributes of the device on which the application that will render the augmented reality experience is executed; selecting from the plurality of augmented reality renderings an augmented reality rendering that is (i) configured for one or more attributes of the device and (ii) associated with one or more rendering parameters for the 3D model; and causing the application to render an augmented reality rendering that is (i) configured for one or more attributes of the device and (ii) associated with one or more rendering parameters for the 3D model.

[0011] This specification also describes a non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause at least one processor to perform operations including: accessing augmented reality data for a plurality of augmented reality renderings of a 3D model, the augmented reality data being identified by a Uniform Resource Identifier included in a content request sent to a content system, in order to render an augmented reality experience using an application executed on the device; accessing rendering parameters for the 3D model; determining one or more attributes of the device on which the application that will render the augmented reality experience is executed; selecting from the plurality of augmented reality renderings an augmented reality rendering that is (i) configured for one or more attributes of the device and (ii) associated with one or more rendering parameters for the 3D model; and causing the application to render an augmented reality rendering that is (i) configured for one or more attributes of the device and (ii) associated with one or more rendering parameters for the 3D model.

[0012] Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the following description. Further features, aspects, and advantages of this subject matter will become apparent from the description, drawings, and claims. Attached Figure Description

[0013] Figure 1 It is an example environment used to present augmented reality experiences.

[0014] Figure 2 This is a flowchart of an example process used to present an augmented reality experience.

[0015] Figures 3A to 3B This is a sample interface for selecting augmented reality experiences.

[0016] Figures 4A to 4B This is a sample interface used to present augmented reality experiences.

[0017] Figure 5 It is a block diagram of a computing system that can be used in conjunction with the computer-implemented methods described in this document.

[0018] The same reference numerals and names in the various figures indicate the same elements. Detailed Implementation

[0019] Augmented reality experiences can involve displaying virtual objects within a view of a real-world scene and can be performed using mobile computing devices equipped with cameras and capable of providing such experiences. However, some online sessions that present images of objects on web resources take place on computing devices such as desktop computers, information station computers, and other devices that are not augmented reality-enabled. The techniques described in this document can provide a method for seamlessly transferring objects, users, session information, or combinations thereof for online sessions from devices that are not enabled for augmented reality experiences to augmented reality-enabled devices.

[0020] Figure 1 This is an example environment 100 for presenting augmented reality experiences. In other examples, environment 100 may be configured to present virtual reality experiences. In the depicted example, environment 100 includes one or more computer servers 102 that communicate with one or more online computing devices 104 and one or more mobile computing devices 106. Communication between computing servers 102, online computing devices 104, and mobile computing devices 106 may be performed, for example, through one or more communication networks (not shown) including LAN (Local Area Network), WAN (Wide Area Network), and / or the Internet.

[0021] In some examples, computing server 102 can represent various forms of servers, including but not limited to web servers, application servers, cloud computing servers, or other suitable computing servers. Computing server 102 can, for example, access data from various sources (e.g., databases, file systems, and / or cached data sources), execute software to process the accessed data, and provide information based on the accessed / processed data to online computing device 104 and / or mobile computing device 106. For example, computing server 102 can access data from website data source 110, which includes data for providing one or more websites, such as web page data, user history data; data for providing augmented reality experiences; and other suitable data.

[0022] In some examples, online computing device 104 can represent various forms of fixed or mobile processing devices, including but not limited to desktop computers, information station computers, laptop computers, tablet computers, personal digital assistants (PDAs), smartphones, or other processing devices. In some examples, mobile computing device 106 can represent various forms of mobile processing devices, including but not limited to tablet computers, personal digital assistants (PDAs), smartphones, head-mounted computers, or other processing devices. Online computing device 104 and mobile computing device 106 can, for example, run a web browser, which can execute scripts provided with resource data.

[0023] Figure 1 Example processing flows for presenting augmented reality and / or virtual reality experiences, as shown in stages (A) through (E), are also illustrated. Stages (A) through (E) may occur in the order shown, or they may occur in a different order than shown, and / or two or more stages (A) through (E) may be simultaneous or partially simultaneous.

[0024] Now refer to Figure 2 The example shown is a process 200 for rendering an augmented reality experience. In other examples, process 200 may render a virtual reality experience. For example, process 200 may be executed by a component of environment 100 and will be referenced... Figure 1 This is used to describe the process. However, other systems can be used to perform the same or similar processes.

[0025] At (210), computing device 204 (e.g., similar to...) Figure 1 The online computing device 104 shown can send data to a web server 202 (e.g., similar to...). Figure 1 The computing server 102 shown requests a web page. For example, a user of the computing device 204 can provide input identifying the web page (e.g., using a physical or virtual keyboard to enter a Uniform Resource Locator (“URL”), using a microphone to specify the address or keywords of an online resource, using a pointing device or touchscreen to select a resource link, or using another input device), and the computing device 204 can provide that input to the web browser requesting the web page from the web server 202. In this example, the requested web page could be a page from an e-commerce website; however, in other examples, other types of web resources could be requested.

[0026] At (212), web server 202 can receive a request and, in response, can send web page data (214) to computing device 204. See again... Figure 1For example, during phase (A), computing server 102 can access website data storage device 110, retrieve web page content 112 of the requested web page, and provide web page content 112 to online computing device 104 in response to the request.

[0027] At (216), computing device 204 can render the requested webpage. See again... Figure 1 For example, online computing device 104 can use the received web page content 112 to render web page 120 for display on the device's screen.

[0028] Now refer to Figure 3A The example interface 300 for selecting an augmented reality experience is shown (e.g., similar to webpage 120). In this example, interface 300 includes various controls 310 to facilitate an online shopping session for a user (e.g., user A), such as one or more controls for logging into or out of the website, accessing the online shopping cart, adding items to the cart, saving items, etc.

[0029] The interface 300 in this example also includes image selection controls 312a and 312b. For example, by interacting with the image selection controls 312a and 312b, a user can switch between various images 314 of an object (e.g., a chair) presented on the interface 300, where the currently selected image of the object is presented in more detail at the image presentation area 320. As another example, a user can directly select (e.g., click) one of the images 314 of the object, and the selected image of the object can be presented in more detail at the image presentation area 320. In this example, the various selectable images 314 of the object include different presentation angles (e.g., front, side, back, etc.); however, in other examples, the various selectable images 314 may include different colors of the object, different sizes of the object, and / or other different object attribute values. In some implementations, multiple images of different objects may be selectable on the interface 300. For example, the various selectable images 314 may include images of different objects, such as images of a chair, a table, a lamp, etc.

[0030] In this example, interface 300 includes controls 330 for facilitating an augmented reality experience of presenting objects (e.g., items such as chairs) on interface 300. In some implementations, interface 300 may include multiple controls 330, for example, for different objects, different colors of objects, different sizes of objects, or combinations of two or more of these. Typically, augmented reality experiences may involve displaying one or more virtual objects in real-time within a view of a real-world scene. For example, a 3D model of the object may be rendered by a computing device, and the virtual image of the object may be integrated with the real-world scene (e.g., the user's environment) so that the virtual image of the object appears to the user as part of the real-world scene.

[0031] Hardware components used to enable augmented reality experiences may include processors, displays, and input devices (such as camera devices), as well as other hardware components. For example, mobile computing devices such as tablets, personal digital assistants, smartphones, head-mounted computers, or other mobile computing devices may include: a camera device that captures real-time images of a real-world scene; a processor that renders 3D models of objects to generate virtual images and registers the virtual images within the real-world scene; and a display that presents a composite image including the virtual images of the real-world scene and the objects. Mobile computing devices may preferably be fixed computing devices to facilitate augmented reality experiences. For example, as the mobile computing device moves, the real-world scene may change, and the virtual images of objects may be continuously modified by the processor to maintain the orientation of the objects relative to the scene. Furthermore, some fixed computing devices (e.g., desktop computers) may not be equipped with camera devices or may not be additionally configured to facilitate augmented reality experiences. However, such fixed computing devices are frequently used to initiate online shopping sessions. For example, by interacting with control 330, a user can initiate a streamlined process for initiating an augmented reality experience, including transferring object and / or session information from a computing device that is not configured to facilitate the experience (e.g., a fixed computing device) to a computing device that is configured to facilitate the experience (e.g., a mobile computing device).

[0032] Refer again Figure 2 At (218), computing device 204 (e.g., a fixed computing device not configured to facilitate augmented reality experiences) may receive an augmented reality control selection (e.g., a user selection of control 330 as shown in FIG3). In response to receiving an augmented reality control selection, computing device 204 may, for example, render an encoded image (220).

[0033] Now refer to Figure 3BFor example, an example interface 350 for facilitating augmented reality experiences is shown (e.g., similar to webpage 120 or a portion of webpage 120). In this example, interface 350 includes an encoded image 360 ​​(e.g., a QR code, smart image, or another suitable encoded image) that encodes the address of a resource (e.g., a webpage), which can be accessed by the user through interface 300 (…). Figure 3A As shown, one or more objects (e.g., a chair) are selected to provide an augmented reality experience. As another example, for each of the one or more objects, the provided resource (e.g., a promotional email) may include a corresponding encoded image for initiating an augmented reality experience for that object. The objects included in the provided resource may, for example, be selected by a recommendation engine (not shown). As another example, a printed page may include one or more encoded images for initiating an augmented reality experience for an object.

[0034] In some implementations, the encoded image can encode one or more augmented reality rendering parameters, one or more user parameters, and / or one or more session parameters. For example, the augmented reality rendering parameters in the encoded image 360 ​​can specify objects and / or various rendering attributes of objects, such as rendering angle, rendering color, rendering size, and / or other suitable rendering attributes. Rendering parameters can, for example, correspond to attributes of objects selected by the user before initiating the process for launching the augmented reality experience. In this example, the user has selected from various optional images 314 (… Figure 3A The image shown is of a chair positioned at a frontal angle. User parameters and / or session parameters may include, for example, a user identifier and / or session identifier for an online session conducted by the user on computing device 204. For instance, a user may use computing device 204 to log in to an online shopping website, and web server 202 may generate a unique session identifier for the user's current session. As another example, rendering parameters, user parameters, and / or session parameters may be included in other types of resources (e.g., in coded images provided in promotional emails, printed pages, etc.) to make it possible to identify resources from which augmented reality rendering has been initiated.

[0035] At (222), it can be made by mobile device 206 (e.g., similar to...). Figure 1 The mobile computing device 206 shown captures encoded images. For example, a user of mobile device 206 (e.g., possibly the same user or a different user of computing device 204) can use the capturing device of mobile device 206 to capture encoded images. See again... Figure 1 For example, during phase (B), mobile computing device 106 can capture webpage 120 (e.g., similar to) using camera device 130 or another suitable image capture or scanning device. Figure 3BThe encoded image 160 on the interface 350 shown (e.g., similar to the one also shown) Figure 3B The encoded image 360 ​​shown is used to receive image data 122.

[0036] At (224), the mobile device 206 can decode the captured encoded image and parse the decoded data to determine a Uniform Resource Identifier (“URI”) based on the data. See again... Figure 1 For example, mobile computing device 106 can decode image data 122 received from camera device 130, determine the URI, and provide the URI to the device's web browser 132. For example, web browser 132 can be a fully local web application executed by mobile computing device 106, a web container loaded by another application executed by device 106, or another suitable type of web browser instance.

[0037] At (226), mobile device 206 can request a web page from web server 202. See again... Figure 1 For example, during phase (C), a web browser 132 running on mobile computing device 106 may make a content request 134 to one or more computing servers 102 based on a URI decoded from image data 122. For example, web browser 132 may request a resource (e.g., a web page) indicated by a URI, which may optionally include one or more augmented reality rendering parameters, one or more user parameters, and / or one or more session parameters.

[0038] At (228), web server 202 can receive a request and, in response, can send web page data (230) to be received by mobile device 206 (232). See again... Figure 1 For example, during phase (D), computing server 102 may access the webpage content 136 of the requested webpage in website data source 110 and may provide the webpage content 136 to mobile computing device 106 in response to the request. Webpage content 136 may, for example, include data of webpage 140 associated with a URI decoded according to image data 122. For example, the data of webpage 140 may include augmented reality data for multiple augmented reality renderings. In this example, the webpage content 136 used to render webpage 140 may be the same webpage content 112 used to render webpage 120 (e.g., an online shopping interface 300 depicting a chair). In some examples, the webpage content 136 used to render webpage 140 may be different from the webpage content 112 used to render webpage 120.

[0039] In some implementations, receiving webpage data may include receiving data independent of the underlying operating system of the mobile device. For example, webpage content 136 may include data for rendering webpage 140 on various computing devices and / or for providing augmented reality experience 142 (e.g., within webpage 140 or another application), and similarly, the same webpage content 136 may be provided in response to similar content requests. For example, when processing webpage content 136 to render webpage 140 and / or provide augmented reality experience 142, mobile computing device 106 may use a specific operating system and / or web browser to process the received data. For example, this may enable computing server 102 to provide the same webpage content 136 to different mobile computing devices 106, regardless of the underlying hardware, operating system, web browser, or a combination of two or more of these of the receiving mobile computing device 106.

[0040] In some implementations, augmented reality data can be selected based on the mobile device, the mobile device user's account, or both. For example, content request 134 may include information indicating one or more specifications of mobile computing device 106 (e.g., model, operating system, web browser, etc.), and one or more computing servers 102 may provide web page content 136 including augmented reality data configured for use on a particular device. As another example, content request 134 may include a user account identifier (e.g., from the encoded image 160 received in image data 122 and / or from mobile computing device 106), and one or more computing servers 102 may provide web page content 136 including augmented reality data based on the user account. For example, one or more computing servers 102 may access website data 110 and may identify augmented reality rendering parameters (e.g., angle, color, and / or size) of objects previously selected by the user and previously used by the user in an augmented reality experience, and may provide such parameters (and / or provide models of objects with such parameters) to mobile computing device 106 for generating augmented reality experience 142. For example, a user may have previously participated in augmented reality experiences with other objects (e.g., other chairs) and previously specified augmented reality rendering parameters for those other objects, such as rendering angle (e.g., frontal), rendering color (e.g., brown), and rendering size (e.g., large). When rendering a virtual image of an object, for example, when such parameters are not explicitly specified via encoded image 160, the previously specified rendering parameters can be applied so that the augmented reality experience for the user account can be consistent across several different objects.

[0041] In some implementations, augmented reality data may include a three-dimensional model of an object. For example, web page content 136 including augmented reality data may include content displayed by the user on interface 300. Figure 3A A 3D model of the object (e.g., a chair) selected on the augmented reality data. In this example, a basic model of the object can be provided in the augmented reality data, and when a virtual image of the model is presented in the augmented reality experience 142, the basic model of the object can be rendered by the mobile computing device 106 according to various rendering parameters (e.g., angle, color, size, etc.). As another example, multiple different models of the object (e.g., chairs) can be provided in the augmented reality data. Figure 3A The various optional images 314 shown are each different models, and the appropriate model among the models can be selected and rendered according to rendering parameters. In some examples, the computing server 102 can select one of a number of different models and include the data of the selected model in the augmented reality data. The selected model can be used in the interface 300 of the coded image 160 rendered by the computing device 104 based on the controls 330.

[0042] In some implementations, a user session on online computing device 104 can be associated with a user session on mobile computing device 106. For example, the URI decoded from image data 122 may include: a user account identifier and / or session identifier for the session on online computing device 104 when the encoded image 160 is rendered on webpage 120. Mobile computing device 106 may provide the user account / session identifier in content request 134, for example, and computing server 102 may provide webpage content 136 that facilitates connection and / or continuation of the user session on mobile computing device 106. For example, if computing device 104 renders data for a specific website when logging into a user account, webpage content 136 may facilitate the process of logging into the same website, or may automatically log the user account into the website when using mobile computing device 106. For example, a session identifier generated for the user's session on online computing device 104 may be provided by computing server 102 for use during the user's session on mobile computing device 106. For example, by connecting user sessions on online computing device 104 and mobile computing device 106, the system described in this document can improve conversion tracking accuracy, which might be lost if user sessions are considered in isolation.

[0043] At (234), the mobile device 206 can determine whether it is enabled for augmented reality experiences. (Refer to again...) Figure 1For example, mobile computing device 106 (e.g., web browser 132) can check the device's specifications (e.g., model, operating system, web browser, etc.) to determine whether the device, browser, or both are augmented reality enabled. As another example, if mobile computing device 106 cannot determine locally whether the device / browser is augmented reality enabled, device 106 communicates with a web service (not shown) that can make that determination.

[0044] For example, if mobile device 206 is not augmented reality enabled, mobile device 206 can render a webpage (240). See again... Figure 1 For example, the web browser 132 of mobile computing device 106 can use webpage data included in webpage content 136 to render webpage 140 without augmented reality experience 142. In some implementations, a notification that the mobile device is not enabling augmented reality can be provided. For example, mobile computing device 106 can present a message on webpage 140 that the device is not enabling augmented reality experiences.

[0045] For example, if mobile device 206 is augmented reality enabled, then mobile device 206 can render an augmented reality experience (236). In some examples, rendering an augmented reality experience may include a web browser selecting a specific augmented reality rendering from multiple augmented reality renderings of a web page. See again Figure 1 For example, during phase (E), mobile computing device 106 can use web browser 132 to select from multiple different augmented reality presentations that may appear on webpage 140, and can select the appropriate augmented reality presentation for the augmented reality experience 142. For example, to select an augmented reality presentation, web browser 132 can execute code to parse the URI of webpage 140 and detect one or more augmented reality presentation parameters in the parsed URI. For example, based on one or more augmented reality presentation parameters, web browser 132 can select specific augmented reality data identified by the parameters for augmented reality presentation from webpage content 136 received from one or more computing servers 102. For example, selecting specific augmented reality data may include selecting from multiple different models of an object according to the parameters and / or modifying the base model according to the parameters.

[0046] In some implementations, one or more augmented reality rendering parameters may include rendering angle parameters for specifying an initial rendering angle for the 3D model of an object. For example, when rendering a virtual image of an object to be rendered in augmented reality experience 142, the 3D model of the object may be rotated along the X, Y, and / or Z axes according to the rendering angle parameters. For example, this may be achieved by interacting with webpage 120 (e.g., Figure 3AThe rendering angle parameter is specified by the user by selecting one of the optional images 314. As another example, the rendering angle parameter can be specified by one or more computing servers 102 based on the rendering angle parameter used to render another object to the user during a previous augmented reality experience. For example, when participating in an augmented reality experience using a furniture website, the user may have previously oriented a virtual image of an object (e.g., furniture) so that the object is facing forward or depicted from another specific side (e.g., left, right, or back). Such user preference data can be maintained by computing server 102 in website data storage device 110 and referenced when providing web page content 136, which includes augmented reality data, to mobile computing device 106 to indicate that subsequent virtual objects will initially be rendered in an orientation similar to that of previous virtual objects.

[0047] In some implementations, one or more augmented reality rendering parameters may include color parameters for specifying the initial rendering color of a 3D model of an object. For example, when rendering a virtual image of an object to be rendered in augmented reality experience 142, the 3D model of the object may be rendered in various different colors according to the rendering color parameters. For example, the rendering color may include various color attributes (e.g., hue, saturation, brightness, and other suitable color attributes), and / or may include various color patterns (e.g., roughness, bumpiness, gloss, and other suitable color patterns) that simulate materials such as leather, cloth, iron, chrome, etc. For example, this may be achieved by interacting with webpage 120 (e.g., ...). Figure 3A The user, as shown, specifies the rendering color parameters by selecting one of the optional images 314. As another example, the rendering color parameters can be specified by one or more computing servers 102 based on the rendering color parameters used to present a virtual image of another object to the user during a previous augmented reality experience. For example, when participating in an augmented reality experience using a furniture website, the user may have previously specified that the virtual image of an object (e.g., furniture) should be rendered in brown. Such user preference data can be maintained by computing server 102 in website data storage 110 and referenced when providing web page content 136, including augmented reality data, to mobile computing device 106 to indicate that subsequent virtual objects will initially be rendered in a similar color to previous virtual objects.

[0048] In some implementations, one or more augmented reality rendering parameters may include size parameters for specifying the initial rendering size of the object's 3D model. For example, when rendering a virtual image of an object to be rendered in augmented reality experience 142, the 3D model of the object may be rendered at various different sizes depending on the rendering size parameters. For example, it may be rendered by interacting with webpage 120 (e.g., ...). Figure 3AThe rendering size parameter is specified by the user by selecting one of the optional images 314. As another example, the rendering size parameter can be specified by one or more computing servers 102 based on the rendering size parameter used to render a virtual image of another object to the user during a previous augmented reality experience. For example, when participating in an augmented reality experience using a furniture website, the user may have previously specified that a virtual image of an object (e.g., furniture or other types of objects) be rendered in a large size. Such user preference data can be maintained by the computing server in the website data storage device 110 and referenced when providing web page content 136, which includes augmented reality data, to the mobile computing device 106 to indicate that subsequent virtual objects will initially be rendered at a similar size to the previous virtual objects.

[0049] In some implementations, separate web page components can be used to perform selection and render augmented reality. For example, web page 140 ( Figure 1 The content shown may include various web page components (e.g., controls such as button 330), each implemented through a portion of code (e.g., scripts) provided in the web page content 136. For example, some components may include images for selecting objects on the web page (e.g., ...). Figure 3A The selectable image 314 shown is a webpage button. For example, when rendering webpage 140, web browser 132 can generate each of the page components. For example, for one of the webpage components (e.g., Figure 1 As shown in the figure, for the corresponding web page component that has been selected on the corresponding web page 120, the web browser 132 can detect the identifier of the web page component in the URI, and can select the augmented reality rendering of the web page component based on the detection of the identifier.

[0050] After selecting augmented reality rendering, for example, web browser 132 can determine to skip the analysis of URIs for other web page components. For example, by using the same web page content 112, 136 to render web pages on the corresponding devices 104, 106, and associating augmented reality rendering with controls (e.g., buttons) for launching object-specific augmented reality experiences on the corresponding web pages 120, 140, a consistent web page codebase can be maintained, while providing a consistent and flexible user experience across different devices and efficient application of user choices. This also reduces the memory storage requirements of computing servers 102, as they serve the same web page content 112, 136 to any device.

[0051] In some implementations, rendering an augmented reality experience may include analysis by discrete components of webpage 140 to determine whether to render augmented reality experience 142. In these implementations, webpage content 112, 136 may include data used only for a single augmented reality experience. Components of webpage 140 may analyze the URI to determine which component should initiate the augmented reality experience. For example, the component initiating augmented reality experience 142 may influence the rendering of augmented reality experience 142, the content rendered after augmented reality experience 142 ends, or both. For example, a component for a right-facing stereoscopic object may initiate an augmented reality experience if the rendered object is facing right, while a component for a left-facing stereoscopic object will initiate an augmented reality experience if the rendered object is facing left. For example, when the augmented reality experience for a right-facing object ends, webpage 140 may render components associated with that right-facing stereoscopic, such as a stereoscopic image of the object facing right. Conversely, when the augmented reality experience for a left-facing object ends, webpage 140 may render components associated with that left-facing stereoscopic, such as a stereoscopic image of the object facing left.

[0052] After selecting augmented reality rendering, for example, the web browser 132 of mobile computing device 106 can automatically render the augmented reality rendering of webpage 140, and can (e.g., within webpage 140 or another application) provide an augmented reality experience 142. In some implementations, the augmented reality rendering can be automatically rendered in response to determining that the mobile device is enabled to generate an augmented reality rendering. For example, after mobile computing device 106 captures image data 122 using camera device 130, mobile computing device 106 can provide a content request 134 to computing server 102 without user input, receive webpage content 136 from computing server, and render webpage 140 with an augmented reality experience 142.

[0053] Now refer to Figure 4A This shows an example interface 400 for presenting augmented reality experiences (e.g., similar to...). Figure 1 The webpage 140 shown is an example. For instance, interface 400 incorporates a virtual image 410 of an object (e.g., a chair), which is initially rendered based on one or more augmented reality rendering parameters (e.g., frontal angle, brown, large size) from a resolved Uniform Resource Indicator. Augmented reality rendering in this example also includes data from mobile computing device 106 (in...). Figure 1 The camera device 130 (shown in the image) is used to capture real-world scene 420. Figure 1The data is shown in the figure. As shown in this example, the virtual image 410 of the object is integrated into the real-world scene 420, and the composite image of image 410 and scene 420 is presented on interface 400. For example, the virtual image 410 can be registered within the real-world scene 420 such that changes in the scene 420 caused by changes in the position of camera device 130 can cause appropriate changes in the virtual image 410 of the object to reflect different perspectives from the viewpoint of the camera device.

[0054] Refer again Figure 2 At (238), the mobile device 206 can receive data indicating that the augmented reality presentation should end, and in response, can present a webpage (240). Figure 4A As shown, for example, interface 400 may include control 430, which the user can use to terminate augmented reality presentation. In response to the user's selection of control 430, for example, web browser 132 of mobile computing device 106 can terminate augmented reality presentation and can display webpage 450. Figure 4B (As shown).

[0055] In some implementations, after receiving data instructing the augmented reality rendering to end, the webpage can be rendered on the mobile device without requesting additional content from the server system. For example, web browser 132 can render webpage 450 using webpage data included in webpage content 136 previously received by mobile computing device 106 without requesting additional data from computing server 102. The user can continue to interact with webpage 450, for example, by selecting another optional image 454 of an object and starting another augmented reality experience, which includes a virtual image of a model corresponding to the selected image of the object. This is similar to what can be used to generate encoded image 360 ​​(…). Figure 3B The control 330 (shown) is used to initiate an augmented reality experience for an object on another device. Figure 3A Compared to (as shown), for example, the user's interaction with control 460 ( Figure 4B The selection shown in the diagram allows the user to input augmented reality experiences of objects on the same device. For example, the functionality of the augmented reality launch control (e.g., 330, 460) can be determined by the web browser that renders the control and can be changed based on device / browser capabilities. The user selection for the augmented reality experience can be made by the mobile computing device 106 ( Figure 1 (As shown in the image) is provided to computing server 102 (also in...) Figure 1 (as shown in the image), for example, with website data 110 (also shown in the image). Figure 1The user account information (shown in the image) is maintained together. For example, such user selection can be used to select and / or modify the model of an object when a virtual image of an object is initially presented during a subsequent augmented reality experience.

[0056] The order of operations described above for process 200 is illustrative only and can be performed in different orders. For example, mobile computing device 206 may present a webpage (240) before presenting an augmented reality experience (236). As another example, mobile device 206 may determine whether the device is augmented reality enabled (234) before requesting a webpage (226).

[0057] In some implementations, process 200 may include additional operations, fewer operations, or some of the operations may be divided into multiple sub-operations. For example, computing device 204 may render an encoded image (220) without receiving an augmented reality control selection (218). As another example, computing device 204 may capture an encoded image (222) without rendering the image (e.g., the encoded image may be on a printed page).

[0058] For the systems discussed here that collect or may use personal information about users, users can be given the opportunity to control whether a program or feature collects personal information (e.g., information about the user's web activity or preferences), or to control whether and / or how content that may be more relevant to the user is received from the content server. Additionally, some data can be anonymized in one or more ways before being stored or used, thereby removing personally identifiable information. For example, a user's identity can be anonymized so that personally identifiable information about the user cannot be determined, or the user's geographic location can be generalized to the location information obtained (e.g., city, zip code, or state), making it impossible to determine the user's specific location. Therefore, users can control how information about them is collected and how that information is used by the content server.

[0059] The embodiments of the subject matter and functional operation described in this specification can be implemented in digital electronic circuits, in tangibly embodied computer software or firmware, in computer hardware including the structures disclosed in this specification and their equivalents, or a combination thereof. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible, non-transitory program carrier, for execution by a data processing device or to control the operation of a data processing device. Alternatively or additionally, the program instructions can be encoded on artificially generated propagation signals, such as machine-generated electrical, optical, or electromagnetic signals, which are generated to encode information for transmission to a suitable receiver device for execution by the data processing device. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access storage device, or a combination thereof.

[0060] The term "data processing apparatus" refers to data processing hardware and includes various means, devices, and machines for processing data, such as programmable processors, computers, or multiple processors or computers. The apparatus may also be or may include special-purpose logic circuitry, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). In addition to hardware, the apparatus may optionally include code that creates an execution environment for computer programs, such as code constituting processor firmware, protocol stacks, database management systems, operating systems, or combinations thereof.

[0061] Computer programs (also referred to or described as programs, software, software applications, modules, software modules, scripts, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and can be deployed in any form, including as standalone programs or as modules, components, subroutines, or other units suitable for use in a computing environment. Computer programs may, but do not need to, correspond to files in a file system. A program may be stored as part of a file containing other programs or data (e.g., one or more scripts stored in a markup language document), may be stored in a single file dedicated to the program in question, or may be stored in multiple collaborative files (e.g., a file storing one or more modules, subroutines, or portions of code). Computer programs can be deployed to execute on a single computer or on multiple computers located at a single site or distributed across multiple sites and interconnected by a communication network.

[0062] The processes and logic flows described herein can be performed by one or more programmable computers that execute one or more computer programs to perform functions, by manipulating input data and generating output. Processes and logic flows can also be performed by special-purpose logic circuits such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits), and the device can also be implemented as a special-purpose logic circuit such as an FPGA or ASIC.

[0063] For example, a computer suitable for executing computer programs includes a general-purpose microprocessor or a special-purpose microprocessor or both, or any other type of central processing unit. Typically, the central processing unit receives instructions and data from read-only memory or random access memory or both. The basic components of a computer are the central processing unit for executing or running instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include or be operatively coupled to one or more mass storage devices such as disks, magneto-optical disks, or optical disks for storing data, to receive data from or transfer data to them, or both. However, a computer does not need to have such devices. Furthermore, a computer can be embedded in another device, such as a mobile phone, smartphone, personal digital assistant (PDA), mobile audio or video player, game console, GPS receiver, or portable storage device such as a universal serial bus (USB) flash drive, to name a few.

[0064] Computer-readable media suitable for storing computer program instructions and data include: all forms of non-volatile memory, media, and storage devices, such as semiconductor storage devices including EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Processors and memory may be supplemented by or incorporated into dedicated logic circuitry.

[0065] To provide user interaction, embodiments of the subject matter described in this specification can be implemented on a computer having: a display device for displaying information to the user, such as an LCD (liquid crystal display), OLED (organic light-emitting diode), or other monitor; and a keyboard and pointing device, such as a mouse or trackball, through which the user can provide input to the computer. Other types of devices can also be used to provide user interaction: for example, feedback provided to the user can be any form of sensory feedback, such as visual, auditory, or tactile feedback; and input from the user can be received in any form, including auditory, voice, or tactile input. Additionally, the computer can interact with the user by sending and receiving documents from the device used by the user, for example, by sending a webpage to a web browser on the user's client device in response to a request received from a web browser.

[0066] The embodiments of the subject matter described in this specification can be implemented in computing systems that include backend components, such as data servers; or middleware components, such as application servers; or frontend components, such as client computers with graphical user interfaces or web browsers through which users can interact with the implementations of the subject matter described in this specification; or any combination of one or more such backend components, middleware components, or frontend components. The components of the system can be interconnected via any form or medium of digital data communication, such as a communication network. Examples of communication networks include local area networks (LANs) and wide area networks (WANs), such as the Internet.

[0067] A computing system may include clients and servers. Clients and servers are typically geographically separated and usually interact via a communication network. The client-server relationship is established by computer programs running on their respective computers and having a client-server relationship with each other. In some implementations, the server sends data, such as Hypertext Markup Language (HTML) pages, to a user device, for example, to display data to a user interacting with the user device acting as a client, and to receive user input from the user interacting with the user device. Data generated at the user device, such as the results of user interactions, may be received at the server from the user device.

[0068] Figure 5This is a block diagram of computing devices 500 and 550, which can be used to implement the systems and methods described in this document, acting as clients or servers or multiple servers. Computing device 500 is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. Computing device 550 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, smartwatches, head-mounted devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are intended to be exemplary only and are not intended to limit the implementations described and / or claimed in this document.

[0069] Computing device 500 includes: processor 502, memory 504, storage device 506, high-speed interface 508 connecting to memory 504 and high-speed expansion port 510, and low-speed interface 512 connecting to low-speed bus 514 and storage device 506. Each of components 502, 504, 506, 508, 510, and 512 is interconnected using various buses and may be suitably mounted on a common motherboard or otherwise mounted. Processor 502 can process instructions for execution within computing device 500, including instructions stored in memory 504 or storage device 506, to display graphical information of a GUI on an external input / output device such as a display 516 coupled to high-speed interface 508. In other implementations, multiple processors and / or multiple buses may be suitably used with multiple memories and various types of memory. Additionally, multiple computing devices 500 may be connected to each device (e.g., a server group, a set of blade servers, or a multiprocessor system) that provides a portion of the necessary operation.

[0070] Memory 504 stores information within computing device 500. In one implementation, memory 504 is a computer-readable medium. In another implementation, memory 504 is one or more volatile memory cells. In yet another implementation, memory 504 is one or more non-volatile memory cells.

[0071] Storage device 506 provides large-capacity storage for computing device 500. In one implementation, storage device 506 is a computer-readable medium. In various implementations, storage device 506 may be a floppy disk device, hard disk device, optical disk device, magnetic tape device, flash memory or other similar solid-state storage device, or a device array including devices in a storage area network or other configuration. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods such as those described above. The information carrier is a computer-readable or machine-readable medium, such as memory 504, storage device 506, or memory on processor 502.

[0072] High-speed controller 508 manages bandwidth-intensive operations of computing device 500, while low-speed controller 512 manages less bandwidth-intensive operations. This allocation of responsibilities is merely exemplary. In one implementation, high-speed controller 508 is coupled to memory 504, display 516 (e.g., via a graphics processor or accelerator), and high-speed expansion port 510, which can accommodate various expansion cards (not shown). In another implementation, low-speed controller 512 is coupled to storage device 506 and low-speed expansion port 514. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, Wireless Ethernet), can be coupled to one or more input / output devices, such as keyboards, pointing devices, scanners, or networking devices such as switches or routers, for example, via a network adapter.

[0073] As shown in the accompanying drawings, computing device 500 can be implemented in a variety of different forms. For example, computing device 500 can be implemented as a standard server 520, or implemented multiple times in a group of such servers. Computing device 500 can also be implemented as part of a rack-mount server system 524. Alternatively, computing device 500 can be implemented in a personal computer such as a laptop computer 522. Alternatively, components from computing device 500 can be combined with other components in a mobile device (not shown), such as device 550. Each of such devices can contain one or more computing devices 500, 550, and the entire system can consist of multiple computing devices 500, 550 communicating with each other.

[0074] Computing device 550 includes processor 552, memory 564, input / output devices such as display 554, communication interface 566 and transceiver 568, and other components. Device 550 may also be provided with storage devices such as microdrives or other devices to provide additional storage. Each of components 550, 552, 564, 554, 566, and 568 is interconnected using various buses, and some components may be suitably mounted on a common motherboard or otherwise mounted.

[0075] Processor 552 can process instructions for execution within computing device 550, including instructions stored in memory 564. The processor may also include separate analog and digital processors. The processor can, for example, provide cooperation with other components of device 550, such as control of user interfaces, applications running through device 550, and wireless communication through device 550.

[0076] Processor 552 can communicate with the user via control interface 558 and display interface 556 coupled to display 554. Display 554 can be, for example, a TFT LCD display or an OLED display, or other suitable display technology. Display interface 556 may include appropriate circuitry for driving display 554 to present graphics and other information to the user. Control interface 558 can receive commands from the user and translate them for submission to processor 552. Additionally, an external interface 562 may be provided to communicate with processor 552, enabling device 550 to communicate with other devices in the vicinity. External interface 562 may provide, for example, wired communication (e.g., via a docking process) or wireless communication (e.g., via Bluetooth or other such technologies).

[0077] Memory 564 stores information within computing device 550. In one implementation, memory 564 is a computer-readable medium. In another implementation, memory 564 is one or more volatile memory cells. In yet another implementation, memory 564 is one or more non-volatile memory cells. Extended memory 574 may also be provided and connected to device 550 via an extended interface 572, which may include, for example, a SIMM card interface. Such extended memory 574 can provide additional storage space for device 550, or it may store applications or other information for device 550. Specifically, extended memory 574 may include instructions for performing or supplementing the above processes, and may also include security information. Thus, for example, extended memory 574 may be provided as a security module of device 550 and can be programmed with instructions that allow secure use of device 550. Additionally, secure applications and additional information, such as placing identification information on the SIMM card in a manner resistant to hacking, may be provided via a SIMM card.

[0078] The memory may include, for example, flash memory and / or MRAM memory, as described below. In one implementation, the computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods such as those described above. The information carrier is a computer-readable or machine-readable medium, such as memory 564, extended memory 574, or memory on processor 552.

[0079] Device 550 can communicate wirelessly via communication interface 566, which may include digital signal processing circuitry if necessary. Communication interface 566 can provide communication under various modes or protocols (e.g., GSM voice calls, SMS, EMS or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA 2000, or GPRS, etc.). Such communication can occur, for example, via radio frequency transceiver 568. Additionally, short-range communication can occur using transceivers such as Bluetooth, WiFi, or others (not shown). Furthermore, GPS receiver module 570 can provide additional wireless data to device 550, which can be appropriately used by applications running on device 550.

[0080] Device 550 can also communicate audibly using audio codec 560, which can receive voice information from a user and convert it into usable digital information. Audio codec 560 can also generate audible sound for the user, for example, through a speaker in the mobile phone of device 550. Such sound can include sound from voice phone calls, recorded sound (e.g., voice messages, music files, etc.), and sound generated by applications operating on device 550.

[0081] As shown in the accompanying drawings, the computing device 550 can be implemented in a variety of different forms. For example, the computing device 550 can be implemented as a cellular phone 580. The computing device 550 can also be implemented as part of a smartphone 582, a personal digital assistant, or other similar mobile device.

[0082] Various implementations of the systems and techniques described herein can be implemented in digital electronic circuits, integrated circuits, specially designed ASICs (Application-Specific Integrated Circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementations in one or more computer programs capable of executing and / or interpreting on a programmable system including at least one programmable processor, which may be dedicated or general-purpose, and is coupled to receive data and instructions from a storage system, at least one input device, and at least one output device, and to send data and instructions to the storage system, at least one input device, and at least one output device.

[0083] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and can be implemented in high-level procedural and / or object-oriented programming languages ​​and / or in assembly language / machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus, and / or device (e.g., disk, optical disk, memory, programmable logic device (PLD)) used to provide machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.

[0084] This disclosure also includes the following plans:

[0085] 1. A computer-implemented method, comprising:

[0086] Data from a web page is received by a mobile web browser. The data of the web page is associated with a Uniform Resource Indicator and includes augmented reality data for multiple augmented reality renderings.

[0087] The mobile device web browser selects an augmented reality (AR) presentation from the plurality of AR presentations on the webpage through the following steps:

[0088] Parse the Uniform Resource Indicator;

[0089] Detect one or more augmented reality rendering parameters in the resolved Uniform Resource Indicator; and

[0090] Select from the augmented reality data used for the augmented reality rendering, the specific augmented reality data identified by one or more augmented reality rendering parameters;

[0091] The mobile web browser automatically renders the augmented reality presentation of the webpage using specific augmented reality data for the augmented reality presentation in the plurality of augmented reality presentations and data from a camera device included in the mobile device running the mobile web browser;

[0092] After the augmented reality presentation is automatically rendered, the mobile device's web browser receives data indicating that the augmented reality presentation should end; and

[0093] After receiving data indicating that the augmented reality rendering should end, the mobile device's web browser uses the webpage's data to render the webpage.

[0094] 2. The computer-implemented method according to Scheme 1, wherein receiving webpage data includes receiving data from the underlying operating system independent of the mobile device.

[0095] 3. The computer-implemented method according to claim 1, wherein the augmented reality data is specific to the mobile device, the user's account of the mobile device, or both.

[0096] 4. The computer-implemented method according to Scheme 1, wherein the augmented reality data includes a three-dimensional model of the object.

[0097] 5. The computer-implemented method according to Scheme 4, wherein the one or more augmented reality rendering parameters include a rendering angle parameter, the rendering angle parameter being used to specify the initial rendering angle of the three-dimensional model of the object.

[0098] 6. The computer-implemented method according to Scheme 4, wherein the one or more augmented reality rendering parameters include color parameters, the color parameters being used to specify the initial rendering color of the three-dimensional model of the object.

[0099] 7. The computer-implemented method according to Scheme 4, wherein the one or more augmented reality rendering parameters include size parameters, the size parameters being used to specify the initial rendering size of the three-dimensional model of the object.

[0100] 8. The computer-implemented method according to Scheme 1 further includes:

[0101] Receive image data encoded with the Uniform Resource Indicator from the camera device of the mobile device;

[0102] The mobile device determines the Uniform Resource Indicator (URL) based on the image data; and

[0103] The Uniform Resource Indicator is provided to the web browser of the mobile device.

[0104] 9. The computer-implemented method according to claim 8, wherein the image data is determined based on an image visually presented by a computing device different from the mobile device and captured by a camera device of the mobile device.

[0105] 10. The computer-implemented method according to claim 8, wherein the Uniform Resource Indicator encoded in the image data visually presented by the computing device includes a session identifier, and the mobile device web browser associates a first user session of the computing device with a second user session on the mobile device.

[0106] 11. The computer-implemented method according to claim 1, wherein the augmented reality presentation is automatically presented in response to determining that the mobile device is enabled to generate the augmented reality presentation.

[0107] 12. The computer-implemented method according to Scheme 1, wherein, after receiving data indicating that the augmented reality presentation should end, the webpage is presented by the mobile device web browser without the mobile device requesting additional content from the server system.

[0108] 13. The computer-implemented method according to Scheme 1 further includes:

[0109] For each of two or more web page components, the component is generated by the web browser of the mobile device;

[0110] For the first web page component among the two or more web page components, detect the identifier of the web page component in the Uniform Resource Indicator;

[0111] The augmented reality rendering of the first webpage component is selected using the identifier of the detected webpage component in the Uniform Resource Indicator; and

[0112] For the second web page component, in response to the determination of the first web page component, it is determined to skip the analysis of the Uniform Resource Indicator.

[0113] 14. A system comprising: one or more computers and one or more storage devices, wherein instructions are stored on the one or more storage devices, the instructions being operable when executed by the one or more computers to cause the one or more computers to perform an operation comprising the following steps:

[0114] Data from a web page is received by a mobile web browser. The data of the web page is associated with a Uniform Resource Indicator and includes augmented reality data for multiple augmented reality renderings.

[0115] The mobile device web browser selects an augmented reality (AR) presentation from the plurality of AR presentations on the webpage through the following steps:

[0116] Parse the Uniform Resource Indicator;

[0117] Detect one or more augmented reality rendering parameters in the resolved Uniform Resource Indicator; and

[0118] Select from the augmented reality data used for augmented reality rendering the specific augmented reality data identified by one or more augmented reality rendering parameters;

[0119] The mobile web browser automatically renders the augmented reality presentation of the webpage using specific augmented reality data for the augmented reality presentation in the plurality of augmented reality presentations and data from a camera device included in the mobile device running the mobile web browser;

[0120] After the augmented reality presentation is automatically rendered, the mobile device's web browser receives data indicating that the augmented reality presentation should end; and

[0121] After receiving data indicating that the augmented reality rendering should end, the mobile device's web browser uses the webpage's data to render the webpage.

[0122] 15. The system according to Scheme 14, the operation further includes:

[0123] Receive image data encoded with the Uniform Resource Indicator from the camera device of the mobile device;

[0124] The mobile device determines the Uniform Resource Indicator (URL) based on the image data; and

[0125] Provide the Uniform Resource Indicator to the web browser of the mobile device.

[0126] 16. The system according to claim 14, wherein the augmented reality presentation is automatically presented in response to determining that the mobile device is enabled to generate the augmented reality presentation.

[0127] 17. The system according to claim 14, wherein, after receiving data indicating that the augmented reality presentation should end, the webpage is presented by the mobile device web browser without the mobile device requesting additional content from the server system.

[0128] 18. A non-transitory computer storage medium, the non-transitory computer storage medium being encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations including the following steps:

[0129] Data from a web page is received by a mobile web browser. The data of the web page is associated with a Uniform Resource Indicator and includes augmented reality data for multiple augmented reality renderings.

[0130] The mobile device web browser selects an augmented reality (AR) presentation from the plurality of AR presentations on the webpage through the following steps:

[0131] Parse the Uniform Resource Indicator;

[0132] Detect one or more augmented reality rendering parameters in the resolved Uniform Resource Indicator; and

[0133] Select from the augmented reality data used for augmented reality rendering the specific augmented reality data identified by one or more augmented reality rendering parameters;

[0134] The mobile web browser automatically renders the augmented reality presentation of the webpage using specific augmented reality data for the augmented reality presentation in the plurality of augmented reality presentations and data from a camera device included in the mobile device running the mobile web browser;

[0135] After the augmented reality presentation is automatically rendered, the mobile device's web browser receives data indicating that the augmented reality presentation should end; and

[0136] After receiving data indicating that the augmented reality rendering should end, the mobile device's web browser uses the webpage's data to render the webpage.

[0137] 19. The computer storage medium according to claim 18, further comprising:

[0138] Receive image data encoded with the Uniform Resource Indicator from the camera device of the mobile device;

[0139] The mobile device determines the Uniform Resource Indicator (URL) based on the image data; and

[0140] The Uniform Resource Indicator is provided to the web browser of the mobile device.

[0141] 20. The computer storage medium according to claim 18, wherein the augmented reality presentation is automatically presented in response to determining that the mobile device is enabled to generate the augmented reality presentation.

[0142] 21. The computer storage medium according to claim 18, wherein, after receiving data indicating that the augmented reality presentation should end, the webpage is presented by the mobile device web browser without the mobile device requesting additional content from the server system.

[0143] While this specification contains numerous specific implementation details, these details should not be construed as limiting the scope of the claims, but rather as descriptions of features specific to particular embodiments. Certain features described in the context of individual embodiments may also be implemented in combination within a single embodiment. Conversely, individual features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination across multiple embodiments. Furthermore, while features may be described above as functioning in certain combinations and even initially claimed in this manner, one or more features from a claimed combination may, in some cases, be removed from that combination, and the claimed combination may involve sub-combinations or variations thereof.

[0144] Similarly, although the operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring such operations to be performed in the specific order shown or in a sequential order, or to perform all the shown operations to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. Furthermore, the separation of the various system modules and components in the above implementations should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

[0145] Specific embodiments of this subject matter have been described. Other embodiments are within the scope of the appended claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired result. As an example, the processes depicted in the figures do not necessarily require the specific or sequential order shown to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous.

Claims

1. A system comprising: at least one processor; At least one memory component storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations, the operations including: In order to use an application running on the device to render an augmented reality experience, access augmented reality data for multiple augmented reality renderings of a 3D model is made available, and the augmented reality data is identified by a Uniform Resource Identifier included in a content request sent to the content system; Access the rendering parameters used for the 3D model; Determine one or more attributes of the device on which the application that will render the augmented reality experience will be executed; From the plurality of augmented reality renderings, select an augmented reality rendering that: (i) is configured for one or more attributes of the device, and (ii) is associated with one or more rendering parameters for the 3D model; and The application enables the following augmented reality presentation: (i) it is configured for one or more attributes of the device, and (ii) it is associated with one or more presentation parameters for the 3D model.

2. The system according to claim 1, wherein, Determining one or more attributes of the device includes: determining the operating system of the device, and The process of selecting an augmented reality (AR) presentation from the plurality of AR presentations includes: selecting an AR presentation configured for the device's operating system from the plurality of AR presentations using the device's operating system; and determining to skip a second AR presentation from the plurality of AR presentations that is not configured for the device's operating system.

3. The system according to claim 1, wherein, Determining one or more attributes of the device includes: determining the model of the device, and The process of selecting an augmented reality (AR) presentation from the plurality of AR presentations includes: selecting an AR presentation configured for the device model from the plurality of AR presentations using the device model; and determining to skip a second AR presentation not configured for the device model from the plurality of AR presentations.

4. The system according to claim 1, wherein, Determining one or more attributes of the device includes: determining the type of application running on the device, and The process of selecting an augmented reality (AR) presentation from the plurality of AR presentations includes: selecting an AR presentation configured for the type of application running on the device from the plurality of AR presentations; and determining to skip a second AR presentation from the plurality of AR presentations that is not configured for the type of application running on the device.

5. The system according to claim 4, wherein, Determining the type of application running on the device includes: determining the type of web browser running on the device, and The process of selecting an augmented reality (AR) presentation from the plurality of AR presentations includes: selecting an AR presentation configured for the type of web browser running on the device from the plurality of AR presentations using the type of web browser running on the device; and determining to skip a second AR presentation from the plurality of AR presentations that is not configured for the type of web browser running on the device.

6. The system according to claim 1, wherein, Accessing the augmented reality data includes: The content system receives a content request, including the Uniform Resource Identifier, from the device. The content system retrieves augmented reality data identified by the Uniform Resource Identifier from the memory. Determining one or more attributes of the device includes: determining, through the content system, one or more attributes of the device on which an application will render the augmented reality experience is executed. The selection of an augmented reality (AR) renderer includes: selecting from a plurality of AR renderers, through the content system and using one or more attributes of the device, an AR renderer that: (i) is configured for one or more attributes of the device, and (ii) is associated with one or more rendering parameters for the 3D model. The process of rendering the augmented reality rendering includes providing data for the augmented reality rendering to an application running on the device, such that the application renders the augmented reality rendering on the display of the device in a manner that: (i) is configured for one or more attributes of the device, and (ii) is associated with one or more rendering parameters for the 3D model.

7. The system according to claim 1, wherein, Accessing the augmented reality data includes: The device provides the content system with a content request including the Uniform Resource Identifier, and The device receives augmented reality data identified by the Uniform Resource Identifier from the content system. Determining one or more attributes of the device includes: determining one or more attributes of the device by means of an application executed on the device and which will render the augmented reality experience. The selection of the augmented reality (AR) renderer includes: selecting from the plurality of AR renderers, through the application and using one or more attributes of the device, an AR renderer that is configured for one or more attributes of the device, and (ii) is associated with one or more rendering parameters for the 3D model. The process of rendering the augmented reality rendering includes: rendering data for the augmented reality rendering by an application executed on the device, which is configured for one or more attributes of the device and (ii) associated with one or more rendering parameters for the 3D model.

8. The system according to claim 7, wherein the operation further comprises: Through the application, a graphical user interface component is generated for each of two or more graphical user interface components related to the content depicted in the application, so as to present the relevant content. The selection of the augmented reality presentation includes: The augmented reality (AR) renderer is selected from the plurality of AR renderers by a first graphical user interface (GUI) component of the two or more GUI components, wherein the AR renderer is configured for one or more attributes of the device, and (ii) the AR renderer is associated with one or more rendering parameters for the 3D model. The application determines to skip the analysis of the multiple augmented reality presentations through a second graphical user interface component among the two or more graphical user interface components.

9. The system according to claim 1, wherein, Accessing the augmented reality data includes accessing augmented reality data that is independent of the underlying operating system of the device.

10. The system according to claim 1, wherein, Accessing the rendering parameters used for the 3D model includes: Parse the Uniform Resource Identifier; and Detect one or more augmented reality rendering parameters from the resolved Uniform Resource Identifier.

11. The system according to claim 1, wherein, Accessing the augmented reality data includes accessing augmented reality information comprising multiple augmented reality renderings, each depicting the same object. Selecting an augmented reality presentation includes: using one or more attributes of the device to select an augmented reality presentation from multiple augmented reality presentations, each of which depicts the same object.

12. The system according to claim 1, wherein, The three-dimensional model includes a three-dimensional model of the object.

13. The system according to claim 12, wherein, The rendering parameters include rendering angle parameters, which are used to specify the initial rendering angle of the three-dimensional model of the object.

14. The system according to claim 12, wherein, The rendering parameters include color parameters, which specify the initial rendering color of the object's 3D model.

15. The system according to claim 12, wherein, The rendering parameters include size parameters, which specify the initial rendering size of the three-dimensional model of the object.

16. The system according to claim 1, wherein, The content request includes data that identifies the user account, and Accessing the rendering parameters for the 3D model includes determining one or more augmented reality rendering parameters previously selected by a user associated with the user account.

17. A method comprising: In order to use an application running on the device to render an augmented reality experience, access augmented reality data for multiple augmented reality renderings of a 3D model, the augmented reality data being identified by a Uniform Resource Identifier included in a content request sent to the content system; Access the rendering parameters used for the 3D model; Determine one or more attributes of the device on which the application that will render the augmented reality experience will be executed; From the plurality of augmented reality renderings, select an augmented reality rendering that is configured for one or more attributes of the device and (ii) is associated with one or more rendering parameters for the 3D model; as well as The application enables the following augmented reality presentation: (i) it is configured for one or more attributes of the device, and (ii) it is associated with one or more presentation parameters for the 3D model.

18. The method according to claim 17, wherein, Determining one or more attributes of the device includes: determining the operating system of the device, and The process of selecting an augmented reality (AR) presentation from the plurality of AR presentations includes: selecting an AR presentation configured for the device's operating system from the plurality of AR presentations using the device's operating system; and determining to skip a second AR presentation from the plurality of AR presentations that is not configured for the device's operating system.

19. The method according to claim 17, wherein, Determining one or more attributes of the device includes: determining the model of the device, and The process of selecting an augmented reality (AR) presentation from the plurality of AR presentations includes: selecting an AR presentation configured for the device model from the plurality of AR presentations using the device model; and determining to skip a second AR presentation not configured for the device model from the plurality of AR presentations.

20. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform an operation, the operation comprising: In order to use an application running on the device to render an augmented reality experience, access augmented reality data for multiple augmented reality renderings of a 3D model, the augmented reality data being identified by a Uniform Resource Identifier included in a content request sent to the content system; Access the rendering parameters used for the 3D model; Determine one or more attributes of the device on which the application that will render the augmented reality experience will be executed; From the plurality of augmented reality renderings, select an augmented reality rendering that is configured for one or more attributes of the device and (ii) is associated with one or more rendering parameters for the 3D model; as well as The application enables the following augmented reality presentation: (i) it is configured for one or more attributes of the device, and (ii) it is associated with one or more presentation parameters for the 3D model.