Visual effects design with multiple preview windows

By creating multiple independent preview windows in the design application, the problem of time-consuming design of complex AR effects is solved, testing efficiency and design efficiency are improved, and the comparison and adjustment of multi-version effects are simplified.

JP2025504339AActive Publication Date: 2025-02-12LEMON CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024539753
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-12-30
Filing Date
2022-12-23
Publication Date
2025-02-12
Estimated Expiration
2042-12-23

AI Technical Summary

Technical Problem

Designing complex AR effects is time-consuming and inefficient in Internet tools, especially front-end engineers need to repeatedly operate when testing multiple inputs, and lack effective A/B testing tools.

Method used

By creating multiple preview windows in the design application, designers can simultaneously compare and test different versions of AR effects. Each preview window can be adjusted independently, and the modifications will only take effect locally and do not affect project data on the server.

Benefits of technology

Improves the efficiency of designing and testing complex AR effects, simplifies the process of comparing different visual assets, reduces duplicate operations, and enables fast edge cases and input testing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025504339000001_ABST
    Figure 2025504339000001_ABST
Patent Text Reader

Abstract

This disclosure describes techniques for designing effects. A first window may be created that includes a first copy of a first scene. The first scene includes a first visual effect. A second window may be created that includes a second copy of the first scene. The first and second windows are configured to allow for near-simultaneous testing and comparison of different versions of the first visual effect in the first scene. The first copy of the first scene in the first window may be modified based on a first change to at least one attribute of the first visual effect in the first copy of the first scene. The second copy of the first scene in the second window may be modified based on a second change to at least one attribute of the first visual effect in the second copy of the first scene.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This application claims priority to U.S. patent application Ser. No. 17 / 566,342 (title: Visual Effect Design Using Multiple Preview Windows), filed on December 30, 2021, the disclosure of which is incorporated herein by reference in its entirety. [Background technology]

[0002] Increasingly, communication is conducted using Internet-based tools. Internet-based tools can be any software or platform. Such Internet-based tools can design new programs or features, such as visual effects, for users of the Internet-based tools. However, the process of designing such new features can be complicated or inefficient. Improved techniques for feature design are needed. [Brief description of the drawings]

[0003] The following detailed description can be better understood when read in conjunction with the accompanying drawings, in which: For purposes of illustration, there are shown in the accompanying drawings exemplary embodiments of various aspects of the disclosure; however, the invention is not limited to the specific methods and instrumentalities disclosed.

[0004] [Figure 1] FIG. 1 illustrates an exemplary system for designing new features that can be used in accordance with the present disclosure.

[0005] [Diagram 2] FIG. 2 illustrates an exemplary process for designing a new feature that can be performed by a client device in accordance with the present disclosure.

[0006] [Diagram 3] FIG. 13 illustrates another exemplary process for designing a new feature that may be performed by a client device in accordance with the present disclosure.

[0007] [Figure 4] FIG. 13 illustrates another exemplary process for designing a new feature that may be performed by a client device in accordance with the present disclosure.

[0008] [Diagram 5] FIG. 13 illustrates another exemplary process for designing a new feature that may be performed by a client device in accordance with the present disclosure.

[0009] [Figure 6] FIG. 2 illustrates multiple preview windows in accordance with the present disclosure.

[0010] [Figure 7] FIG. 2 illustrates an exemplary user interface of a design application according to the present disclosure.

[0011] [Figure 8] 1 is an exemplary flow chart according to the present disclosure.

[0012] [Figure 9] 4 is another exemplary flowchart according to the present disclosure.

[0013] [Figure 10] FIG. 1 illustrates an example computing device that can be used to perform any of the methods disclosed herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] Communication can be achieved using Internet-based tools that allow users to create content and distribute such content to other users for consumption. Such Internet-based tools may provide users with a variety of effects to use when creating content. These effects may include, for example, augmented reality (AR) effects. AR effects are computer-generated effects that are superimposed on a real image displayed on a user's camera. For example, if a user wants to create content using AR effects, the user may open the camera of the device and project the physical world on the screen in real time. AR effects superimpose or overlay two-dimensional (2D) or three-dimensional (3D) virtual objects onto the camera feed, creating the illusion that the objects are actually present.

[0015] However, designing such AR effects can be complex and time-consuming. When front-end engineers such as UI / UX designers (hereinafter referred to as "designers") work on complex effects, a lot of time is spent repeatedly testing multiple inputs, such as different facial expressions and text. Creating complex effects using a single preview panel can be tedious, especially when designers want to compare multiple versions of an effect with fine-tuned parameters. For example, a game effect may have win, lose, and draw states. Testing each of these states requires the designer to play the game at least three times after each script or visual change. To further complicate things, designers usually have multiple variations of visual assets, such as user interface (UI) elements, that they want to compare. This can be time-consuming for designers, as they may not be equipped with tools to perform A / B testing on these visual differences.

[0016] Described herein are techniques for improving the design and testing of complex effects, such as AR effects. Using the techniques described herein, a designer can spawn multiple preview windows associated with a single effect design project. Each preview window may allow the designer to view a different version of the effect while simultaneously viewing versions of the effect displayed in other preview windows. For example, a designer may spawn multiple preview windows on a 3D scene in a game engine. Each preview window displays the current state of the effect and any additional objects the designer has added to the scene. The content displayed in each preview window may be adjusted separately from the content displayed in other preview windows. For example, each preview window may hold its own changes. The techniques described herein allow for faster testing of edge cases and inputs in parallel, providing designers with an easier way to compare different visual asset choices side-by-side.

[0017] 1 illustrates an example system 100 for designing new features, e.g., effects, that can be used to create content for distribution. The system 100 may include a cloud network 102, a first plurality of client devices 104a-n, and a second plurality of client devices 110a-n. The cloud network 102, the first plurality of client devices 104a-n, and / or the second plurality of client devices 110a-n may communicate with each other via one or more networks 132.

[0018] The cloud network 102 may be located in a data center, such as a single building, or may be distributed across different geographic locations (e.g., several buildings). The cloud network 102 may provide services through one or more networks 132. The networks 132 may include various network devices, such as routers, switches, multiplexers, hubs, modems, bridges, repeaters, firewalls, proxy devices, and / or similar devices. The networks 132 may include physical links, such as coaxial cable links, twisted pair cable links, fiber optic links, combinations thereof, etc. The networks 132 may include wireless links, such as cellular links, satellite links, Wi-Fi links, etc.

[0019] The cloud network 102 may include multiple computing nodes 120 hosting various services. In one embodiment, the nodes 120 host a video service 116. The video service 116 may include a content streaming service, such as an Internet Protocol Video Streaming Service. The video service 116 may be configured to deliver content 124 via various transmission technologies. The video service 116 is configured to provide content 124, such as video, audio, text data, combinations thereof, etc. The content 124 may include content streams (e.g., video streams, audio streams, information streams), content files (e.g., video files, audio files, text files), and / or other data. The content 124 may be stored in a database 122. For example, the video service 116 may include a video sharing service, a video hosting platform, a content distribution platform, a collaborative gaming platform, etc.

[0020] In one embodiment, the content 124 delivered or provided by the video service 116 includes short videos. A short video may have a duration up to a predetermined time limit, such as one minute, five minutes, or other predetermined minutes. By way of example and not limitation, a short video may include at least one and no more than four 15-second segments linked together. Short video durations can provide viewers with entertainment in rapid succession, allowing users to watch a large amount of video within a short time frame. Such rapid succession entertainment can be popular on social media platforms.

[0021] The short videos may include pre-recorded audio overlays, such as music or sounds from a television show or movie. When the short videos include pre-recorded audio overlays, the short videos may feature one or more people lip-syncing, dancing, or otherwise moving their bodies along with the pre-recorded audio. For example, the short videos may feature a "dance challenge" that an individual completes to a hit song, or the short videos may feature two people participating in a lip-sync or two-person dance. As another example, the short videos may feature individuals completing a challenge that requires them to move their bodies to correspond to the pre-recorded audio overlay, e.g., to the beat or rhythm of a pre-recorded song that is characterized by the pre-recorded audio overlay. Other short videos may not include pre-recorded audio overrides. For example, these short videos may feature individuals playing sports, playing pranks, or giving advice such as beauty and fashion advice, cooking tips, home decor tips, etc.

[0022] In one embodiment, the content 124 may be output to different client devices 104a-n over the network 132. The content 124 may be streamed to the client devices 104a-n. The content stream may be a stream of short videos received from the video service 116. The first plurality of client devices 104a-n may be configured to access the content 124 from the video service 116. In one embodiment, the client devices 104a-n may include a content application 106. The content application 106 outputs (e.g., displays, renders, presents) the content 124 to a user associated with the client devices 104a-n. The content may include video, audio, comments, text data, etc.

[0023] The first plurality of client devices 104a-n may include any type of computing device, such as a mobile device, a tablet device, a laptop computer, a desktop computer, a smart television or other smart device (e.g., a smart watch, a smart speaker, smart glasses, a smart helmet), a gaming device, a set-top box, a digital streaming device, a robot, etc. The first plurality of client devices 104a-n may be associated with one or more users. A single user may access the cloud network 102 using one or more of the first plurality of client devices 104a-n. The first plurality of client devices 104a-n may travel to different locations and access the cloud network 102 using different networks.

[0024] The video service 116 may be configured to receive input from a user. The user may be registered as a user of the video service 116 or may be a user of a content application 106 running on a client device 104a-n. The user input may include a short video created by the user, a user comment associated with the short video, or a "like" associated with the short video. The user input may include a connection request and user input data, such as text data, digital image data, or user content. The connection request may include a request from a client device 104a-n to connect to the video service 116. The user input data may include information, such as a video and / or user comments, that a user connected to the short video service 116 desires to share with other connected users of the video service 116.

[0025] The video service 116 may be able to receive different types of input from users using different types of client devices 104a-n. For example, a user using the content application 106 on a first user device, such as a mobile phone or tablet, may be able to use the content application 106 to create and upload short videos. A user using the content application 106 on a different mobile phone or tablet may be able to view, comment on, and "like" the short videos or comments written by other users. In another example, a user using the content application 106 on a smart TV, laptop, desktop, or gaming device may not be able to use the content application 106 to create and upload short videos or comment on the short videos. Instead, a user using the content application 106 on a smart TV, laptop, desktop, or gaming device may only be able to use the content application 106 to view short videos, view comments left by other users, and "like" the short videos.

[0026] In one embodiment, a user may use a content application 106 on a client device 104a-n to create a short video and upload it to the cloud network 102. The client device 104a-n may access an interface 108a-n of the content application 106. The interface 108a-n may include input elements. For example, the input elements may be configured to allow a user to create a short video. To create the short video, a user may give the content application 106 permission to access an image capture device, such as a camera or a microphone, of the client device 104a-n. Using the content application 106, a user may select the duration of the short video or set the speed of the short video, for example, "slow motion" or "speed up."

[0027] A user may edit a short video using the content application 106. A user may add one or more text, filters, sounds, or effects, such as AR effects, to the short video. To add a pre-recorded audio overlay to the short video, a user may select a song or sound clip from a sound library of the content application 106. The sound library may include different songs, sound effects, or audio clips from movies, albums, and television shows. In addition to or instead of adding a pre-recorded audio overlay to the short video, a user may add a narration to the short video using the content application 106. The narration may be a sound recorded by the user using a microphone of the client device 104a-n. A user may add a text overlay to the short video. A user may also use the content application 106 to specify when they want the text overlay to appear in the short video. A user may assign a caption, a location tag, and one or more hashtags to the short video to indicate the subject of the short video. The content application 106 may prompt the user to select a frame of the short video to use as a "cover image" for the short video.

[0028] After a user creates a short video, the user may use the content application 106 to upload the short video to the cloud network 102 and / or store the short video locally on the user device 104a-n. When a user uploads a short video to the cloud network 102, the user may select whether the short video is viewable by all other users of the content application 106 or by only a subset of users of the content application 106. The video service 116 may store the uploaded short video and any metadata associated with the short video as content 124 in one or more databases 122.

[0029] In one embodiment, a user may provide input on a short video using a content application 106 on a client device 104a-n. The client device 104a-n may access an interface 108a-n of the content application 106 that allows the user to provide input associated with the short video. The interface 108a-n may include an input element. For example, the input element may be configured to receive input from a user, such as a comment or a "like" associated with a particular short video. If the input is a comment, the content application 106 may allow the user to set an emoji to be associated with their input. The content application 106 may determine time information about the input, such as when the user wrote the comment. The content application 106 may transmit the input and associated metadata to the cloud network 102. For example, the content application 106 may transmit the comment, an identifier of the user who wrote the comment, and time information about the comment to the cloud network 102. The video service 116 may store the input and associated metadata in a database 122.

[0030] The video service 116 may be configured to output the uploaded short videos and user inputs to other users. A user may be registered as a user of the video service 116 and view short videos created by other users. The user may be a user of a content application 106 running on the client device 104a-n. The content application 106 may output (display, render, present) the short videos and user comments to a user associated with the client device 104a-n. The client device 104a-n may access an interface 108a-n of the content application 106. The interface 108a-n may include an output element. The output element may be configured to display information about different short videos so that a user can select and view the short videos. For example, the output element may be configured to display multiple cover images, subtitles, or hashtags associated with the short videos. The output element may also be configured to arrange the short videos according to a category associated with each short video.

[0031] In one embodiment, user comments associated with a short video may be output to other users viewing the same short video. For example, all users accessing the short video may see the comments associated with the short video. The video service 116 may output the short video and the comments associated with the short video simultaneously. The comments may be output by the video service 116 in real-time or near real-time. The content application 106 may display the short video and the comments on the client devices 104a-n in various ways. For example, the comments may be displayed in an overlay on top of the content or next to the content. As another example, a user who wants to see other users' comments associated with the short video may need to select a button to view the comments. The comments may be animated when displayed. For example, the comments may be scrolled across the short video or across an overlay.

[0032] The computing nodes 120 may process tasks associated with the short video service 116. The computing nodes 120 may be implemented as one or more computing devices, one or more processors, one or more virtual computing instances, a combination thereof, and the like. The computing nodes 120 may be implemented by one or more computing devices. The computing devices may include virtualized computing instances. The virtualized computing instances may include virtual machines, such as emulations of computer systems, operating systems, servers, and the like. The virtual machines may be loaded by the computing devices based on a virtual image and / or other data that defines the particular software (e.g., operating system, dedicated application, server) for the emulation. As the demand for different types of processing services changes, different virtual machines may be loaded and / or terminated on one or more computing devices. A hypervisor may be implemented to manage the use of different virtual machines on the same computing device.

[0033] In one embodiment, the video service 116 may provide a number of visual effects 126 to a user of the video service 116, allowing the user to create a video, such as a short video, using one or more of these effects. The effects 126 may include, for example, one or more AR effects. AR effects are computer-generated effects that are superimposed on a real image displayed on a user's camera. However, for the reasons discussed above, designing such effects 126 can be complex and time-consuming.

[0034] In one embodiment, the node 120 hosts a design service 118. The design service 118 may be configured to facilitate design of the effect 126 by a designer associated with a client device of the second plurality of client devices 110a-n. The second plurality of client devices 110a-n may be different from the first plurality of client devices 104a-n. For example, the second plurality of client devices 110a-n may each be associated with one or more designers who wish to design the effect 126 such that a user associated with the first plurality of client devices 104a-n may create a video using the designed effect 126 via the content application 106. The second plurality of client devices 110a-n may include a design application 112. The design application 112 may be used by the designer to design the effect 126. For example, the designer may access an interface 114a-n of the design application 112 to design the effect 126.

[0035] The second plurality of client devices 110a-n may include any type of computing device, such as a mobile device, a tablet device, a laptop computer, a desktop computer, a smart television or other smart device (e.g., a smart watch, a smart speaker, smart glasses, a smart helmet), a gaming device, a set-top box, a digital streaming device, a robot, etc. A single designer may access the cloud network 102 using one or more of the second plurality of client devices 110a-n. The second plurality of client devices 110a-n may travel to different locations and access the cloud network 102 using different networks.

[0036] The design service 118 may be configured to maintain project data 130 in the database 128. The stored project data 130 may be received, for example, from a designer associated with the client device 110a-n. The project data 130 may include data associated with various design projects. Each design project may be associated with the design of a particular effect 126. For example, the project data 130 may include data associated with a first project. The first project may be associated with the design of the first effect 126. The first project may also be associated with one or more scenes that include the first effect 126. The project data 130 associated with the first project may represent a current state of the design of the first effect 126. For example, the project data 130 associated with the first project may represent all work that has been saved and / or uploaded to the cloud network 102. However, the project data 130 may not represent changes or modifications to the first effect 126 that the designer tried or tested during the design process but decided not to implement.

[0037] In one embodiment, the design service 118 is configured to transmit project data 130 to the client devices 110a-n. For example, the design service 118 may transmit project data 130 associated with a first project to the client devices 110a-n in response to receiving a request from the client device. The request may include an indication of a selection of the first project. For example, if a designer wants to design a first effect, the designer may select the first project. The designer may want to work on this project from scratch or may want to continue previous work that the designer (or another designer) did on the first project. In response to receiving such a request, the design service 118 may transmit project data 130 to the client devices 110a-n that indicates a current state of the first project.

[0038] In some embodiments, the client devices 110a-n are configured to receive project data 130 from the design service 118. For example, the client devices 110a-n may receive the project data 130 associated with the first project in response to sending a request for the project data 130 associated with the first project to the design service 118. When a designer selects the first project within the design application 112 via an interface 114a-n of the design application 112, the client devices 110a-n may send a request for the project data 130 associated with the first project to the design service 118. When a designer wants to start or continue work on the design of a first effect, the designer may select the first project within the design application.

[0039] In some embodiments, when the client devices 110a-n receive the project data 130 from the design service 118, a main preview window of at least one scene including a first effect may be displayed on the interface 114a-n. As described above, the project data 130 associated with a particular project may indicate a current design state of the effect associated with that project. Thus, the main preview window provides the user 104a-n with a view or preview of how the effect will currently look when applied to an image or video feed, based on the current design state of the effect. For example, the main preview window may render the AR effect into a 2D texture. A designer can look at the main preview window to see what the original scene would look like (e.g., how the effect would look if no further changes or modifications were made to the design of the effect).

[0040] In some embodiments, a designer may utilize the design application 112 to test various changes to a scene including an effect. For example, after a main preview window of a scene including a first effect is displayed on the interfaces 114a-n, the designer may want to see the impact of various modifications or changes to the design of the effect. To this end, the designer may utilize the design application 112 to spawn multiple secondary preview windows associated with the project. Each secondary preview window may resemble the main preview window. For example, each secondary preview window may render the AR effect into a 2D texture. To spawn a secondary preview window associated with the project, the designer may select a button (e.g., a (+) button) on the design application's interfaces 114a-n. Each time the designer selects the button, an additional secondary preview window may be spawned and displayed on the interfaces 114a-n. The designer may spawn as many secondary preview windows as he or she likes.

[0041] Each secondary preview window displays the current state of the effect (e.g., as shown by the main preview window) and any additional objects that the designer has added to the scene for testing. The content displayed in each secondary preview window may be adjusted separately from the content displayed in the other secondary preview windows. Because one purpose of these multiple secondary preview windows is to test what edits to the original scene properties will look like (and not necessarily make final adjustments to the project data 130), such adjustments may only be applied locally (e.g., only on the client devices 110a-n) and not appear on the design service 118 side.

[0042] In some embodiments, data associated with multiple secondary preview windows may be stored in individual settings files 115a-n. For example, if a designer spawns three secondary preview windows associated with a first effects design project, three settings files (one for each secondary preview window) may be stored locally on the client devices 110a-n, but may not be stored on the server side (e.g., may not be stored as project data 130). The settings files 115a-n may be modified to indicate adjustments made to the content displayed in the corresponding secondary preview window. For example, if a designer makes a change to at least one attribute of an effect in a particular secondary preview window that corresponds to a particular settings file, that particular settings file may be modified to reflect this attribute change. If additional design changes are made, the modified settings file may be further modified. In some embodiments, the project data 120 may include a "main" settings file in the root directory of the project folder. The main settings file may be used to keep track of the number of secondary preview windows included in the project. This may allow the project to have the preview process automatically generated.

[0043] In some embodiments, a designer may want to resume a design project from where he or she last left off. For example, the designer may have already made changes to at least one attribute of an effect in a particular secondary preview window that corresponds to a particular settings file. That particular settings file may already have been modified to reflect this attribute change. The designer may decide to take a break or exit the design application 112. The designer (or a different designer) may later load the locally saved, modified settings file and continue the design project. If the designer (or a different designer) later loads the locally saved, modified settings file, the secondary preview window may be displayed based on the modified settings file. The designer may make additional settings changes in the secondary preview window. In this case, the modified settings file may be further modified and saved locally.

[0044] In one embodiment, the designer may want to make actual changes (not just changes that are saved locally) to the design of the effect 126. For example, after looking at a previous window, the designer may decide that he likes the look of a particular design change or modification. The designer may decide that this particular design change or modification should be implemented in the final design of the effect 126. Thus, the designer may indicate, for example, via the interfaces 114a-n of the design application 112, that such design change or modification should be made on the server side. When the designer does so, an instruction may be sent to the design service 118. This instruction may indicate to the design service 118 to update the project data 130 associated with the corresponding effect's project based on this design change or modification.

[0045] In one embodiment, the design service 118 is configured to receive data from the client devices 110a-n indicative of updates (e.g., changes or modifications) to the project data 130. For example, the design service 118 may receive instructions indicating to the design service 118 to update the project data 130 associated with a project corresponding to an effect having a modified or changed design. The design service 118 may update the project data 130 in response to receiving such instructions.

[0046] When the design service 118 makes a change to the project data 130 associated with an effect, the design service 118 may send a message (e.g., a socket message) to the client devices 110a-n to indicate to the client devices 110a-n to update the main preview window displaying the scene containing the effect. Thus, a designer who makes a change or modification to the effect may see a change in the main preview window such that the main preview window now reflects the recent change or modification. Additionally, other designers who work on this particular effect at a later time will see this updated main preview window (rather than the preview window that was displayed before those design changes were implemented). When the main preview window displaying the scene containing this effect is updated, any spawned secondary preview windows currently open (or later opened) may additionally be updated to reflect the recent design change or modification.

[0047] In one embodiment, after a designer creates an effect using the design service 118, the effect may be stored in the database 122 as a visual effect 126. The stored effect 126 may be used by a user associated with the first plurality of client devices 104a-n to create a video via the content application 106. As described above, the plurality of effects 126 may include one or more AR effects. When a user selects an AR effect to create a video, the AR effect may be overlaid or baked onto at least one 2D or 3D virtual object on at least a subset of the frames of the video. For example, when a user wants to create a video using an AR effect, the user may open the camera of the client device 104a-n to project the physical world on the screen in real time. The AR effect overlays or bakes onto the camera feed a 2D or 3D virtual object, creating the illusion that the object is actually present. After a video is created using the effect, the video may be uploaded to the cloud network 102. And / or the user may store the video locally on the client device 104a-n. The video service 116 may be configured, via the content application 106, to output uploaded videos created with this effect to other users who are registered as users of the video service 116. Other users may consume videos created using this effect.

[0048] 2 illustrates an example process 200 performed by a client device (e.g., client devices 110a-n) of a second plurality of client devices. Client devices 110a-n may perform process 200 to design an effect, such as an AR effect. Although illustrated in FIG. 2 as a series of operations, one skilled in the art will appreciate that in various embodiments, the described operations may be added, removed, reordered, or modified.

[0049] As described above, the designer may utilize the design application 112 on the client devices 110a-n to spawn secondary multiple preview windows associated with a first effects design project. One purpose of these multiple secondary preview windows is to test how edits to properties of the original scene will look. At 202, a first window may be created that includes a first copy of the first scene in response to a first user input being received. The first user input may be received when the designer (e.g., a user) selects a button (e.g., a (+) button) on the design application's interface 114a-n. Each time the designer selects a button, an additional secondary preview window may be spawned and displayed on the interface 114a-n. The designer may spawn as many secondary preview windows as desired. The first scene is associated with a first project. The first scene also includes a first visual effect. The first visual effect may include rendering an augmented reality (AR) effect on one or more images.

[0050] At 204, a second secondary preview window including a second copy of the first scene may be created in response to receiving a second user input. For example, the second user input may be received when a designer (e.g., a user) selects a button (e.g., a (+) button) on the design application interface 114a-n for a second time. The first secondary window and the second secondary window are configured to allow for near-simultaneous A / B testing and comparison of different versions of the first visual effect within the first scene.

[0051] As described above, each secondary preview window displays the current state of the first effect and any additional objects that the designer has added to the scene. The content displayed in each secondary preview window may be adjusted separately from the content displayed in the other secondary preview windows. At 206, the first copy of the first scene in the first secondary window may be modified based on a first change to at least one attribute of the first visual effect in the first copy of the first scene. Because one purpose of these multiple secondary preview windows is to see what edits to the properties of the original scene look like (and not necessarily make final adjustments to the project data 130), such modifications are only applied locally (e.g., only on the client devices 110a-n) and do not appear on the design service 118 side. For example, such modifications may not affect the main preview window associated with the project.

[0052] At 208, a second copy of the first scene in a second secondary preview window may be modified based on a second change to at least one attribute of the first visual effect in the second copy of the first scene, where the first change is different from the second change. Because one purpose of these multiple secondary preview windows is to see what the edits to the properties of the original scene would look like (and not necessarily make final adjustments to the project data 130), such modifications may only be applied locally (e.g., only on the client devices 110a-n) and not appear on the design service 118 side. For example, such modifications may not affect the main preview window associated with the project.

[0053] 3 illustrates an example process 300 performed by a client device (e.g., client devices 110a-n) of a second plurality of client devices. Client devices 110a-n may perform process 300 to design an effect, such as an AR effect. Although illustrated in FIG. 3 as a series of operations, one skilled in the art will appreciate that in various embodiments, the described operations may be added, removed, reordered, or modified.

[0054] As described above with respect to FIG. 1, a first copy of the first scene in a first secondary window may be modified based on a first change to at least one attribute of a first visual effect in the first copy of the first scene. Also, a second copy of the first scene in a second secondary window may be modified based on a second change to at least one attribute of a first visual effect in the second copy of the first scene. The first change differs from the second change. Such modified copies may be stored locally in a configuration file. At 302, the modified first copy of the first scene may be stored in a first configuration file in at least one memory. The first configuration file is associated with the first secondary window. The first configuration file may be stored locally in at least one memory of the client devices 110a-n.

[0055] At 304, a second modified copy of the first scene may be stored in a second settings file in the at least one memory. The second settings file is associated with a second secondary window. Because the purpose of these multiple secondary preview windows is to test what edits to the original scene properties would look like (and not necessarily make final adjustments to the project data 130), the first and second settings files may be stored only locally (e.g., only on the client devices 110a-n) and not on the database 128 at the design service 118.

[0056] The user or a different user may decide to return to the design project, for example, at a later time. For example, the designer (or a different designer) may later load the locally saved, modified settings file to continue the design project. If the designer (or another designer) later loads the locally saved, modified settings file via the design application 112, the secondary preview window may be displayed based on the modified settings file. In response to receiving user input indicating accessing the first project at 306, the first window may be displayed based on the loaded modified first copy of the first scene from the first settings file. The second window may also be displayed based on the loaded modified second copy of the first scene from the second settings file.

[0057] The designer may make additional setting changes in the secondary preview window, in which case the modified setting file may be further modified and stored locally. At 308, the modified first copy of the first scene may be adjusted based on another change to the at least one attribute or a different attribute of the first visual effect in the modified first copy of the first scene. At 310, the modified second copy of the first scene may be adjusted based on another change to the at least one attribute or a different attribute of the first visual effect in the modified second copy of the first scene. The further modified setting file may remain stored locally or may be accessed later for further modification.

[0058] 4 illustrates an example process 400 performed by a client device (e.g., client devices 104a-n) of a second plurality of client devices. Client devices 110a-n may perform process 400 to design an effect, such as an AR effect. Although illustrated in FIG. 4 as a series of operations, one skilled in the art will appreciate that in various embodiments, the illustrated operations may be added, removed, reordered, or modified.

[0059] As described above, the client devices 110a-n are configured to receive project data 130 from the design service 118. For example, the client devices 110a-n may receive the project data 130 associated with the first project in response to sending a request to the design service 118 for the project data 130 associated with the first project. When a designer selects the first project within the design application 112 via the design application 112's interface 114a-n, the client devices 110a-n may send a request to the design service 118 for the project data 130 associated with the first project. When the designer wants to start or continue work on the design of a first effect, the designer may select the first project within the design application. At 402, data indicative of a first scene may be received from a server computing device.

[0060] A main preview window of at least one scene including the first effect may be displayed. As described above, the data received from the server indicative of the first scene may indicate a current design state of the effect associated with the project. The main preview window provides the user 104a-n with a view or preview of what the effect currently looks like based on the current design state of the effect. By looking at the main preview window, the designer can see what the effect will look like if no further changes or modifications are made to the design of the effect.

[0061] In some embodiments, a designer may utilize the design application 112 to test various changes to a scene that includes an effect. For example, after a main preview window of a scene that includes a first effect is displayed on the interface 114a-n, the designer may want to see the impact of various modifications or changes to the design of the effect. To this end, the designer may utilize the design application 112 to spawn multiple secondary preview windows that are associated with the project. One purpose of these multiple secondary preview windows is to test what edits to the properties of the original scene will look like.

[0062] At 404, in response to receiving a first user input, a first window may be created that includes a first copy of a first scene. The first user input may be received when a designer (e.g., a user) selects a button (e.g., a (+) button) on the design application's interface 114a-n. Each time the designer selects a button, an additional secondary preview window may be spawned for display on the interface 114a-n. The designer may spawn as many secondary preview windows as desired. The first scene is associated with a first project, and the first scene includes a first visual effect. The first visual effect may include rendering an augmented reality (AR) effect on one or more images.

[0063] At 406, a second secondary preview window including a second copy of the first scene may be created in response to receiving a second user input. For example, the second user input may be received when a designer (e.g., a user) selects a button (e.g., a (+) button) on the design application interface 114a-n for a second time. The first secondary window and the second secondary window are configured to allow for near-simultaneous A / B testing and comparison of different versions of the first visual effect within the first scene.

[0064] In one embodiment, the design service 118 is configured to receive data from the client devices 110a-n indicative of updates (e.g., changes or modifications) to the project data 130. For example, the design service 118 may receive instructions indicating to the design service 118 to update the project data 130 associated with a project corresponding to an effect having a modified or changed design. The design service 118 may update the project data 130 in response to receiving such instructions.

[0065] If the design service 118 makes a change to the project data 130 associated with the effect, the design service 118 may send a message (e.g., a socket message) to the client devices 110a-n to indicate to the client devices 110a-n to update a main preview window displaying the scene including the effect. At 408, information may be received from the server computing device indicating an update to the first scene. Thus, a designer who made a change or modification to the effect may see a change in the main preview window such that the main preview window now reflects the recent change or modification. Additionally, other designers who later work on this particular effect will see this updated main preview window (rather than the preview window that was displayed before those design changes were implemented). When the main preview window displaying the scene including the effect is updated, any spawned secondary preview windows currently open (or later opened) may additionally be updated to reflect the recent design change or modification. At 410, a first copy of the first scene in the first window and a second copy of the first scene in the second window may be updated based on the received information.

[0066] 5 illustrates an example process 500 performed by a client device (e.g., client devices 110a-n) of a second plurality of client devices. Client devices 110a-n may perform process 500 to design an effect, such as an AR effect. Although illustrated in FIG. 5 as a series of operations, one skilled in the art will appreciate that in various embodiments, the illustrated operations may be added, removed, reordered, or modified.

[0067] As described above, the designer may utilize the design application 112 on the client devices 110a-n to spawn secondary multiple preview windows associated with a first effects design project. One purpose of these multiple secondary preview windows is to test how edits to properties of the original scene will look. At 502, a first window may be created that includes a first copy of a first scene in response to a first user input being received. The first user input may be received when the designer (e.g., a user) selects a button (e.g., a (+) button) on the design application's interface 114a-n. Each time the designer selects a button, an additional secondary preview window may be spawned and displayed on the interface 114a-n. The designer may spawn as many secondary preview windows as desired. The first scene is associated with a first project, and the first scene includes a first visual effect. The first visual effect may include rendering an augmented reality (AR) effect on one or more images.

[0068] At 504, a second secondary preview window including a second copy of the first scene may be created in response to receiving a second user input. For example, the second user input may be received when a designer (e.g., a user) selects a button (e.g., a (+) button) on the design application interface 114a-n for a second time. The first secondary window and the second secondary window are configured to allow for near-simultaneous A / B testing and comparison of different versions of the first visual effect within the first scene.

[0069] As described above, each secondary preview window displays the current state of the first effect and any additional objects that the designer has added to the scene. The content displayed in each secondary preview window may be adjusted separately from the content displayed in the other secondary preview windows. At 506, the first copy of the first scene in the first secondary window may be modified based on a first change to at least one attribute of the first visual effect in the first copy of the first scene. Because one purpose of these multiple secondary preview windows is to see what edits to the properties of the original scene look like (and not necessarily make final adjustments to the project data 130), such modifications are only applied locally (e.g., only on the client devices 110a-n) and do not appear on the design service 118 side. For example, such modifications do not affect the main preview window associated with the project.

[0070] At 508, a second copy of the first scene in a second secondary preview window may be modified based on a second change to at least one attribute of the first visual effect in the second copy of the first scene, where the first change is different from the second change. Because one purpose of these multiple secondary preview windows is to see what the edits to the properties of the original scene would look like (and not necessarily make final adjustments to the project data 130), such modifications are only applied locally (e.g., only on the client devices 110a-n) and do not appear on the design service 118 side. For example, such modifications do not affect the main preview window associated with the project.

[0071] The designer may decide to work on a different project. For example, the designer may decide to work on a second, different visual effect rather than the first visual effect. The client devices 110a-n may receive the project data 130 associated with the second project in response to sending a request to the design service 118 for the project data 130 associated with the second project. At 510, data may be received from the server computing device indicating a second scene. The second scene is associated with the second project. The second scene also includes a second visual effect. If the designer selects the second project within the design application 112 via the design application 112 interface 114a-n, the client devices 110a-n may send a request to the design service 118 for the project data 130 associated with the second project. If the designer wants to start or continue work on the design of the second effect, the designer may select the second project within the design application.

[0072] In some embodiments, when the client device 110a-n receives the project data 130 from the design service 118, a main preview window representation of the second scene including the second effect may be displayed on the interface 114a-n. As described above, the project data 130 associated with a particular project may indicate the current design state of the effects associated with that project. Thus, the main preview window provides the user 104a-n with a representation or preview of what the second effect currently looks like, based on the current design state of the second effect. By looking at the main preview window, the designer can see what the second effect will look like if no further changes or modifications are made to the design of the second effect.

[0073] In some embodiments, the designer may utilize the design application 112 to test various changes to the second scene including the second effect. For example, after a main preview window of the second scene including the second effect is displayed on the interfaces 114a-n, the designer may want to see the impact of various modifications or changes to the design of the second effect. To this end, the designer may utilize the design application 112 to spawn multiple secondary preview windows associated with the second project. To spawn a secondary preview window associated with the second project, the designer may select a button (e.g., a (+) button) on the design application's interfaces 114a-n. Each time the designer selects the button, an additional secondary preview window may be spawned and displayed on the interfaces 114a-n. The designer may spawn as many secondary preview windows as he or she likes.

[0074] At 512, in response to receiving a third user input, a third secondary preview window may be created that includes a first copy of the second scene. For example, the third user input may be received when a designer (e.g., a user) selects a button (e.g., a (+) button) on the design application's interface 114a-n for a third time. At 514, in response to receiving a fourth user input, a fourth window may be created that includes a second copy of the second scene. For example, the third user input may be received when a designer (e.g., a user) selects a button (e.g., a (+) button) on the design application's interface 114a-n for a fourth time. The third secondary window and the fourth secondary window are configured to enable substantially simultaneous A / B testing and comparison of different versions of the second visual effect within the second scene.

[0075] FIG. 6 illustrates a main preview window 602 and multiple secondary preview windows 604a-b of an exemplary user interface of a design application (e.g., design application 112) consistent with the present disclosure. As discussed above, a designer may decide to work on a design project. For example, a designer may decide to work on designing a visual effect. In response to sending a request for project data associated with the project to a design service (e.g., design service 118), a client device 110a-n may receive project data (e.g., project data 130) associated with the desired project. When the designer selects the project within the design application via the design application's interface, the client device 110a-n may send a request for project data associated with the project to the design service. When the designer wants to begin or continue work on the design of an effect associated with the project, the designer may select the project.

[0076] When the client devices 110a-n receive project data from the design service, a main preview window 602 of the scene containing the effect may be displayed on the interface. As described above, the project data associated with a project may indicate the current design state of the effect associated with that project. Thus, the main preview window 602 provides the user 104a-n with a view or preview of what the effect currently looks like, based on the current design state of the effect. By looking at the main preview window 602, the designer can see what the effect will look like if no further changes or modifications are made to the design of the effect.

[0077] In some embodiments, a designer may test various changes to a scene that includes an effect. For example, after a main preview window 602 of a scene that includes an effect is displayed, the designer may want to see the impact of various modifications or changes to the design of the effect. To do this, the designer may spawn multiple secondary preview windows 604a-b associated with the project. To spawn each secondary preview window 604a-b associated with the project, the designer may select a button (e.g., a (+) button) on the design application's interface 114a-n. Each time the designer selects a button, an additional secondary preview window may be spawned for display. The designer may spawn as many secondary preview windows as desired. The secondary windows 604a-b are configured to allow for near-simultaneous A / B testing and comparison of different versions of a visual effect in a scene.

[0078] FIG. 7 illustrates a main preview window 702 and multiple secondary preview windows 704a-c of an example user interface 700 of a design application (e.g., design application 112) consistent with the present disclosure. As discussed above, a designer may decide to work on a design project. For example, a designer may decide to work on designing a visual effect. In response to sending a request for project data associated with the project to a design service (e.g., design service 118), a client device 110a-n may receive project data (e.g., project data 130) associated with the desired project. When the designer selects the project within the design application via the design application's interface, the client device 110a-n may send a request for project data associated with the project to the design service. When the designer wants to begin or continue work on the design of an effect associated with the project, the designer may select the project.

[0079] When the client devices 110a-n receive project data from the design service, a main preview window 702 of the scene containing the effect may be displayed on the interface. As described above, the project data associated with a project may indicate the current design state of the effect associated with that project. Thus, the main preview window 702 provides the user 104a-n with a view or preview of what the effect currently looks like, based on the current design state of the effect. By looking at the main preview window 702, the designer can see what the effect will look like if no further changes or modifications are made to the design of the effect.

[0080] In some embodiments, a designer may test various changes to a scene that includes an effect. For example, after a main preview window 702 of a scene that includes an effect is displayed, the designer may want to see the impact of various modifications or changes to the design of the effect. To do this, the designer may spawn multiple secondary preview windows 704a-c associated with the project. To spawn each secondary preview window 704a-c associated with the project, the designer may select a button 706 (e.g., a (+) button) on the design application's interface 114a-n. Each time the designer selects the button 706, an additional secondary preview window may be spawned for display. The designer may spawn as many secondary preview windows as desired. The secondary windows 704a-c are configured to allow for near-simultaneous A / B testing and comparison of different versions of a visual effect in a scene.

[0081] FIG. 8 illustrates a flowchart 800 corresponding to spawning multiple secondary preview windows. A designer can utilize the multiple secondary window preview / AB test panel feature using the following steps: An editor server process 802 may respond to a request for data associated with a project from a client computing device (e.g., client device 110). At 804, a request may be sent from the client computing device when a design associated with the client computing device presses a (+) button on the interface of a design application (e.g., design application 112). In response to the request, the server process 802 may load a main configuration file associated with the project at 806 and start a multiple secondary window preview service at 808. For example, the editor server process 802 may determine that the operations at 804 and 806 have been performed. If so, a preview service 808 may be started on the client device. The preview service 808 may spawn multiple secondary preview windows or panels 812a-c, each running on a new process. Each of the multiple secondary preview windows or panels 812a-c is associated with a locally stored A / B test configuration file 814a-c. The dual instance server 810 may facilitate the simultaneous display of multiple secondary preview windows or panels 812a-c. Each instance on the dual instance server 810 has its own instance directory, database (for storing configuration files) and log directory.

[0082] FIG. 9 shows a flow chart 900 corresponding to spawning multiple secondary preview windows. An inspector component may be started on the client devices 110a-n. By clicking the "+" (plus) button, the designer can spawn new secondary preview windows that run on new processes. Each process contains a copy of the main scene and any specific property changes sent from the edit window through the inspector panel. A main configuration file (e.g., app.config file) that resides in the root directory of the project folder is used to keep track of the number of previews contained in the project. This allows the project to automatically spawn / generate preview processes. When new secondary windows are created, the main configuration file may be updated to reflect the exact number of preview windows.

[0083] A main preview window may be displayed that renders the AR effect into a 2D texture. The designer may spawn multiple of these new secondary preview windows, for example by clicking a button (e.g., a "Plus" (+) button). The user may also reopen their main project, and all their previews will automatically appear with the changed properties. All preview windows may be open simultaneously. This is facilitated by a dual instance connection wrapper. The maximum number of preview windows may be user configurable.

[0084] The UI for multiple preview windows may be designed in Typescript or bindings with C++ code may be used to create new Amazer instances and render the scene on the preview panel. When the main editor (server process) makes changes to the scene, a socket message is sent to the preview plugin (client process) to update the scene in the preview plugin. Since the purpose of the preview plugin is to see what edits to the properties of the original scene look like, certain changes to the scene can be made in the preview plugin (client process) but these changes will not appear on the main editor (server process). Modifications may be made to the effects software development kit (SDK) to keep track of clients. For example, a client map may be used and a callback may be invoked to let the main editor know when a client connects.

[0085] Figure 10 illustrates a computing device that may be used in various aspects, such as the services, networks, modules, and / or devices illustrated in Figure 1. With respect to the example architecture of Figure 1, the cloud network (and any of its components), client devices, and / or networks may each be implemented by one or more instances of computing device 1000 of Figure 10. The computer architecture illustrated in Figure 10 illustrates a conventional server computer, workstation, desktop computer, laptop computer, tablet, network appliance, PDA, electronic reader, digital mobile phone, or other computing node that may be used to perform any aspect of the computer described herein, such as implementing the methods described herein.

[0086] Computing device 1000 may include a board or "motherboard," which is a printed circuit board that can be connected to multiple components or devices via a system bus or other electrical communication paths. One or more central processing units (CPUs) 1004 may operate in conjunction with a chipset 1006. CPU 1004 may be a standard programmable processor that performs arithmetic and logical operations necessary for the operation of computing device 1000.

[0087] The CPU 1004 may transition from one discrete physical state to the next and perform the necessary operations by manipulating switching elements that distinguish between these states. Switching elements may typically include electronic circuits, such as flip-flops, that maintain one of two binary states, and electronic circuits, such as logic gates, that provide an output state based on a logical combination of the states of one or more other switching elements. These basic switching elements may be combined to create more complex logic circuits, including registers, adders / subtractors, arithmetic logic units, floating point units, etc.

[0088] CPU 1004 may be augmented or replaced by other processing units, such as GPUs, which may include processing units specialized, but not necessarily limited to, highly parallel computations such as graphics and other visualization-related processing.

[0089] The chipset 1006 may provide an interface between the CPU 1004 and the remaining components and devices on the board. The chipset 1006 may provide an interface to a random access memory (RAM) 1008 used as the main memory in the computing device 1000. The chipset 1006 may also provide an interface to a computer-readable storage medium, such as a read-only memory (ROM) 1020 or a non-volatile RAM (NVRAM) (not shown), for storing basic routines that may facilitate starting the computing device 1000 and transmitting information between various components and devices. According to aspects described herein, the ROM 1020 or the NVRAM may store other software components necessary for the operation of the computing device 1000.

[0090] Computing device 1000 may operate in a networked environment using logical connections to remote computing nodes and computer systems via a local area network (LAN). Chipset 1006 may include functionality for providing network connectivity via a network interface controller (NIC) 1022, such as a Gigabit Ethernet adapter. NIC 1022 may be capable of connecting computing device 1000 to other computing nodes via network 1016. It should be understood that multiple NICs 1022 may be present within computing device 1000 to connect the computing device to other types of networks and remote computer systems.

[0091] The computing device 1000 may be connected to a mass storage device 1028 that provides non-volatile storage for the computer. The mass storage device 1028 may store system programs, application programs, other program modules, and data, as described in more detail herein. The mass storage device 1028 may be connected to the computing device 1000 through a storage controller 1024 that is connected to the chipset 1006. The mass storage device 1028 may be comprised of one or more physical storage units. The mass storage device 1028 may include a management component 1010. The storage controller 1024 may interface with the physical storage units through a Serial Attached SCSI (SAS) interface, a Serial Advanced Technology Attachment (SATA) interface, a Fibre Channel (FC) interface, or any other type of interface for physically connecting and transmitting data between the computer and the physical storage units.

[0092] Computing device 1000 may store data on mass storage device 1028 by transforming the physical state of the physical storage units to reflect the stored information. The particular transformation of the physical state may depend on a variety of factors and different implementations of the present specification. Examples of such factors include, but are not limited to, the technology for implementing the physical storage devices and whether mass storage device 1028 is characterized as a primary storage device, a secondary storage device, etc.

[0093] For example, computing device 1000 may store information in mass storage device 1028 by issuing instructions via storage controller 1024 to change the magnetic properties of a particular location in a magnetic disk drive unit, the reflective or refractive properties of a particular location in an optical storage unit, or the electrical properties of a particular capacitor, transistor, or other discrete component in a solid-state storage unit. Other transformations of physical media are possible without departing from the scope and spirit of this specification, and the foregoing examples are provided merely for ease of explanation thereof. Computing device 1000 may also read information from mass storage device 1028 by detecting a physical state or characteristic of one or more particular locations in a physical storage unit.

[0094] In addition to the mass storage device 1028 mentioned above, computing device 1000 may access other computer-readable storage media to store and retrieve information such as program modules, data structures, or other data. Those skilled in the art will appreciate that computer-readable storage media can be any available media that provides non-transitory storage of data and that can be accessed by computing device 1000.

[0095] By way of example and not limitation, computer readable storage media may include volatile and non-volatile, transient and non-transient computer readable storage media, as well as removable and non-removable media implemented in any manner or technology, including, but not limited to, RAM, ROM, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory or other solid state memory technology, compact disc ROM (CD ROM), digital versatile disc (DVD), high definition DVD ("HD DVD"), BLU-RAY or other optical storage, magnetic cassettes, magnetic tapes, magnetic disk storage, other magnetic storage devices, or any other medium that can be used to store the desired information in a non-transitory manner.

[0096] A mass storage device, such as mass storage device 1028 shown in FIG. 10, may store an operating system for controlling the operation of computing device 1000. The operating system may include a version of the LINUX operating system. The operating system may include a version of Microsoft's WINDOWS® SERVER operating system. According to another embodiment, the operating system may include a version of the UNIX® operating system. Also, various mobile phone operating systems, such as IOS and ANDROID®, may be utilized. It should be understood that other operating systems may also be utilized. Mass storage device 1028 may store other system or applications and data used by computing device 1000.

[0097] The mass storage device 1028 or other computer-readable storage medium may also be encoded with computer-executable instructions that, when loaded into computing device 1000, transform the computing device from a general-purpose computing system into a special-purpose computer capable of implementing aspects described herein. As described above, these computer-executable instructions transform computing device 1000 by defining how CPU 1004 transitions between states. Computing device 1000 may access a computer-readable storage medium that stores computer-executable instructions that, when executed by computing device 1000, can perform the methods described herein.

[0098] A computing device, such as computing device 1000 shown in Figure 10, may further include an input / output controller 1032 for receiving and processing input from multiple input devices, such as a keyboard, a mouse, a touchpad, a touch screen, an electronic stylus pen, or other type of input device. Similarly, the input / output controller 1032 may provide output to a display, such as a computer monitor, a flat panel display, a digital projector, a printer, a plotter, or other type of output device. It should be understood that computing device 1000 may not include all of the components shown in Figure 10, may include other components not explicitly shown in Figure 10, or may utilize an entirely different architecture than the architecture shown in Figure 10.

[0099] As described herein, a computing device may be a physical computing device, such as computing device 1000 of Figure 10. A computing node may also include a virtual machine host process and one or more virtual machine instances. Computer-executable instructions may be executed indirectly by the physical hardware of the computing device by interpreting and / or executing instructions that are stored and executed within the context of a virtual machine.

[0100] It should be understood that the methods and systems are not limited to particular methods, components, or implementations, and it should also be understood that the terminology used herein is used for the purpose of describing particular embodiments only, and is not intended to be limiting.

[0101] As used in the specification and the appended claims, the singular forms "a," "one," and "the" include plural referents unless the context clearly dictates otherwise. Ranges may be expressed herein as from "about" one particular value, and / or to "about" another particular value. When such a range is expressed, another embodiment includes the range from the one particular value and / or to the other particular value. Similarly, when values ​​are expressed as approximations, by use of the antecedent "about," it is to be understood that the particular value forms another embodiment. It is further to be understood that the endpoints of each of the ranges are significant both relative to the other endpoint, and independently of the other endpoint.

[0102] "Optional" or "optionally" means that the subsequently described event or circumstance may or may not occur, and the specification includes cases where said event or circumstance occurs and cases where said event or circumstance does not occur.

[0103] Throughout the description and claims of this specification, the word "comprise" and variations of that word, such as "including" and "including," mean "including, but not limited to." For example, it is not intended to exclude other elements, integers, or steps. "Exemplary" denotes "an example of" and is not intended to convey an indication of a preferred or desirable embodiment. "Such as" is used for interpretation purposes rather than a limiting sense.

[0104] Components are described that can be used to perform the described methods and systems. In describing combinations, subsets, interactions, groups, etc. of these components, specific references to each of the various individual and collective combinations and permutations of these components may not be explicitly described, and each of which is specifically contemplated and described herein for all methods and systems. This applies to all aspects of this application, including but not limited to the operations in the described methods. Thus, if there are various additional operations that can be performed, it should be understood that each of these additional operations can be performed in any particular embodiment or combination of embodiments of the described methods.

[0105] The present method and system may be more readily understood by reference to the following detailed description of the preferred embodiments and examples contained therein, and the accompanying drawings and their descriptions.

[0106] As will be appreciated by those skilled in the art, the method and system may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the method and system may take the form of a computer program product on a computer-readable storage medium having computer-readable program instructions (e.g., computer software) embodied in the storage medium. More specifically, the method and system may take the form of web-implemented computer software. Any suitable computer-readable storage medium may be utilized, including hard disks, CD-ROMs, optical storage devices, or magnetic storage devices.

[0107] Embodiments of the methods and systems are described below with reference to block diagrams and flowcharts of methods, systems, devices, and computer program products. It should be understood that each block of the block diagrams and flowcharts, and combinations of blocks in the block diagrams and flowcharts, respectively, may be realized by computer program instructions. These computer program instructions may be loaded into a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute on the computer or other programmable data processing apparatus, generate means for implementing the functions specified in one or more blocks of the flowcharts.

[0108] These computer program instructions may be stored in a computer readable memory that can direct a computer or other programmable data processing apparatus to operate in a particular manner such that the instructions stored in the computer readable memory produce an article of manufacture including computer readable instructions for implementing the functions defined in one or more blocks of the flowcharts. The computer program instructions may be loaded into a computer or other programmable data processing apparatus to cause the computer or other programmable data processing apparatus to perform a series of operational steps to produce a computer implemented process such that the instructions, which execute on the computer or other programmable data processing apparatus, provide steps for implementing the functions defined in one or more blocks of the flowcharts.

[0109] The various features and processes described above may be used independently of each other or may be combined in various ways. All possible combinations and subcombinations are intended to fall within the scope of the present disclosure. Furthermore, in some implementations, some method or process blocks may be omitted. The methods and processes described herein are not limited to any particular order, and the blocks or states associated therewith may be performed in other orders as appropriate. For example, the described blocks or states may be performed in an order other than the order specifically described, or multiple blocks or states may be combined within a single block or state. The example blocks or states may be performed sequentially, in parallel, or in some other manner. Blocks or states may be added to or deleted from the described example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added, deleted, or rearranged as compared to the described example embodiments.

[0110] Also, various items are shown as being stored in memory or on a storage device during use. It should also be understood that these items, or portions thereof, may be transferred between memory and other storage devices for purposes of memory management and data integrity. Alternatively, in other embodiments, some or all of the software modules and / or systems may run in memory on another device and communicate with the illustrated computing system via computer-to-computer communications. Furthermore, in some embodiments, some or all of the systems and / or modules may be implemented or provided in other ways, such as at least partially in firmware and / or hardware. Hardware includes, but is not limited to, one or more application specific integrated circuits (ASICs), standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and / or embedded controllers), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and the like. Some or all of the modules, systems, and data structures may be stored (e.g., as software instructions or structured data) on a computer-readable medium, such as a hard disk, memory, network, or portable media product, for reading by an appropriate device or via an appropriate connection. The systems, modules, and data structures may be transmitted as a generated data signal (e.g., as part of a carrier wave or other analog or digital propagated signal) or may be contained on a computer-readable transmission medium and take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as a number of discrete digital packets or frames) over a variety of computer-readable transmission media, including wireless-based media and wire / cable-based media. In other embodiments, such computer program products may take other forms. Thus, the invention may be practiced with other computer system configurations.

[0111] While the methods and systems have been described in connection with preferred embodiments and specific examples, it is not intended that the scope be limited to the specific embodiments, as the embodiments herein are intended in all respects to be illustrative and not restrictive.

[0112] Unless otherwise expressly stated, the methods described herein do not require that their operations be performed in a particular order. Thus, unless a method claim actually recites the order in which its operations are to be followed, or unless the claims or specification specifically recite that the operations are limited to a particular order, no order is intended to be inferred in any manner. This applies to any possible non-expressive basis for interpretation, including logical issues regarding the placement of steps or operational flow, the simple meaning derived from grammatical constructions and punctuation, or the number or type of embodiments described in the specification.

[0113] As will be apparent to those skilled in the art, various modifications and variations can be made without departing from the scope or spirit of the present disclosure. Other embodiments will be apparent to those skilled in the art from consideration of the specification and practice described herein. It is intended that the specification and illustrative drawings be considered as exemplary only, with its true scope and spirit being indicated by the following claims.

Claims

1. 1. A computing device comprising: At least one processor; When executed by the at least one processor, the computing device In response to receiving a first user input, creating a first window including a first copy of a first scene associated with the first project, the first scene including a first visual effect; creating a second window containing a second copy of the first scene in response to a second user input being received, the first window and the second window being configured to allow substantially simultaneous testing and comparison of different versions of the first visual effect within the first scene; modifying the first copy of the first scene in the first window based on a first change to at least one attribute of the first visual effect in the first copy of the first scene; modifying the second copy of the first scene in the second window based on a second change to at least one attribute of the first visual effect in the second copy of the first scene, the second change being different from the first change; At least one memory containing computer readable instructions for performing operations including: A computing device comprising:

2. The operation comprises: storing the first modified copy of the first scene in a first configuration file in the at least one memory that is associated with the first window; storing the second modified copy of the first scene in a second configuration file in the at least one memory, the second configuration file being associated with the second window; The computing device of claim 1 further comprising:

3. The operation comprises: in response to receiving user input indicating access to the first project, displaying the first window based on the first modified copy of the first scene being loaded from the first configuration file, and displaying the second window based on the second modified copy of the first scene being loaded from the second configuration file; The computing device of claim 2 further comprising:

4. The operation comprises: adjusting the modified first copy of the first scene based on another change to the at least one attribute of the first visual effect in the modified first copy of the first scene; adjusting the modified second copy of the first scene based on another change to the at least one attribute of the first visual effect in the modified second copy of the first scene; The computing device of claim 3 further comprising:

5. Prior to creating the first window and the second window, the operation receiving data indicative of the first scene from a server computing device; The computing device of claim 1 further comprising:

6. The operation comprises: receiving information from the server computing device indicative of an update to the first scene; updating the first copy of the first scene in the first window and updating the second copy of the first scene in the second window based on the received information; The computing device of claim 5 further comprising:

7. The operation comprises: receiving data from a server computing device indicative of a second scene associated with a second project, the second scene including a second visual effect; creating a third window containing a first copy of the second scene in response to a third user input being received; responsive to a fourth user input being received, creating a fourth window including a second copy of the second scene; Further comprising: different modifications are made to the first copy of the second scene and the second copy of the second scene and stored in a third configuration file and a fourth configuration file, respectively, the third configuration file and the fourth configuration file being stored in the at least one memory of the computing device. The computing device of claim 1 .

8. the first visual effect includes rendering an augmented reality (AR) effect on one or more images. The computing device of claim 1 .

9. In response to receiving a first user input, creating a first window including a first copy of a first scene associated with the first project, the first scene including a first visual effect; creating a second window containing a second copy of the first scene in response to a second user input being received, the first window and the second window being configured to allow substantially simultaneous testing and comparison of different versions of the first visual effect within the first scene; modifying the first copy of the first scene in the first window based on a first change to at least one attribute of the first visual effect in the first copy of the first scene; modifying the second copy of the first scene in the second window based on a second change to at least one attribute of the first visual effect in the second copy of the first scene, the second change being different from the first change; A method comprising:

10. storing the first modified copy of the first scene in a first configuration file in the at least one memory, the first configuration file being associated with the first window; storing the second modified copy of the first scene in a second configuration file in the at least one memory, the second configuration file being associated with the second window; The method of claim 9 further comprising:

11. in response to receiving user input indicating access to the first project, displaying the first window based on the first modified copy of the first scene being loaded from the first configuration file, and displaying the second window based on the second modified copy of the first scene being loaded from the second configuration file; The method of claim 10 further comprising:

12. adjusting the modified first copy of the first scene based on another change to the at least one attribute of the first visual effect in the modified first copy of the first scene; adjusting the modified second copy of the first scene based on another change to the at least one attribute of the first visual effect in the modified second copy of the first scene; The method of claim 11 further comprising:

13. Before creating the first window and the second window, receiving data indicative of the first scene from a server computing device; The method of claim 9 further comprising:

14. receiving information from the server computing device indicative of an update to the first scene; updating the first copy of the first scene in the first window and updating the second copy of the first scene in the second window based on the received information; The method of claim 13 further comprising:

15. A non-transitory computer-readable storage medium having computer-readable instructions stored thereon, the computer-readable instructions, when executed by a processor, causing the processor to: In response to receiving a first user input, creating a first window including a first copy of a first scene associated with the first project, the first scene including a first visual effect; creating a second window containing a second copy of the first scene in response to a second user input being received, the first window and the second window being configured to allow substantially simultaneous testing and comparison of different versions of the first visual effect within the first scene; modifying the first copy of the first scene in the first window based on a first change to at least one attribute of the first visual effect in the first copy of the first scene; modifying the second copy of the first scene in the second window based on a second change to at least one attribute of the first visual effect in the second copy of the first scene, the second change being different from the first change; A non-transitory computer-readable storage medium that performs operations including:

16. The operation comprises: storing the first modified copy of the first scene in a first configuration file in the at least one memory that is associated with the first window; storing the second modified copy of the first scene in a second configuration file in the at least one memory, the second configuration file being associated with the second window; 20. The non-transitory computer-readable storage medium of claim 15, further comprising:

17. The operation comprises: in response to receiving user input indicating access to the first project, displaying the first window based on the first modified copy of the first scene being loaded from the first configuration file, and displaying the second window based on the second modified copy of the first scene being loaded from the second configuration file; 20. The non-transitory computer-readable storage medium of claim 16, further comprising:

18. The operation comprises: adjusting the modified first copy of the first scene based on another change to the at least one attribute of the first visual effect in the modified first copy of the first scene; adjusting the modified second copy of the first scene based on another change to the at least one attribute of the first visual effect in the modified second copy of the first scene; 20. The non-transitory computer-readable storage medium of claim 17, further comprising:

19. Before creating the first window and the second window, the operations include: receiving data indicative of the first scene from a server computing device; 20. The non-transitory computer-readable storage medium of claim 15, further comprising:

20. The operation comprises: receiving information from the server computing device indicative of an update to the first scene; updating the first copy of the first scene in the first window and updating the second copy of the first scene in the second window based on the received information; 20. The non-transitory computer-readable storage medium of claim 19, further comprising:

Citation Information

Patent Citations

  • Method and apparatus for anti-aliasing in graphics system

    JP2002063597A