Visual effects design with multiple preview windows

The system improves AR effect design efficiency by enabling multiple preview windows for simultaneous testing and adjustment of design variations, addressing the inefficiencies in current design processes.

JP7775486B2Active Publication Date: 2025-11-25LEMON CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Designing complex augmented reality (AR) effects is time-consuming and inefficient due to the need for extensive iteration and testing across multiple inputs and visual asset variations, lacking effective tools for A/B testing.

Method used

The system allows designers to spawn multiple preview windows for a single effect design project, enabling simultaneous display and independent adjustment of different versions, facilitating faster testing of edge cases and visual asset comparisons.

Benefits of technology

This approach enhances design efficiency by allowing parallel testing and easier comparison of design variations, reducing the time required for creating and refining AR effects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007775486000001
    Figure 0007775486000001
  • Figure 0007775486000002
    Figure 0007775486000002
  • Figure 0007775486000003
    Figure 0007775486000003
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 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 complex or inefficient. Improved techniques for feature design are needed. [Brief explanation 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] [Figure 2] FIG. 1 illustrates an exemplary process for designing a new feature that can be performed by a client device according to the present disclosure.

[0006] [Figure 3] FIG. 10 illustrates another exemplary process for designing a new feature that may be performed by a client device consistent with the present disclosure.

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

[0008] [Figure 5] FIG. 10 illustrates another exemplary process for designing a new feature that may be performed by a client device consistent with the present disclosure.

[0009] [Figure 6] FIG. 1 illustrates multiple preview windows according to the present disclosure.

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

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

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

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

[0014] Communication can occur 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 real images displayed in a user's camera. For example, if a user wants to create content using AR effects, they may open their device's camera and project the physical world onto a 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, they often spend a lot of time iterating and testing multiple inputs, such as different facial expressions or 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, loss, and draw states. Testing each of these states requires designers to play the game at least three times, each time making a script or visual change. To further complicate things, designers typically 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 have the 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 different versions of the effect simultaneously with versions 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 can maintain its own unique changes. The techniques described herein enable faster testing of edge cases and inputs in parallel and provide designers with an easier way to compare different visual asset selections side by side.

[0017] 1 illustrates an exemplary 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, optical fiber links, or combinations thereof. The networks 132 may also 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 node 120 hosts 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, or a combination thereof. 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 distributed or provided by the video service 116 includes short videos. The short videos may have a duration of up to a predetermined time limit, such as one minute, five minutes, or another predetermined number of minutes. By way of example and not limitation, a short video may include at least one and no more than four 15-second segments joined 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 of entertainment may be popular on social media platforms.

[0021] A short video may include a pre-recorded audio overlay, such as music or sounds from a television program or movie. When a short video includes a pre-recorded audio overlay, the short video may feature one or more people lip-syncing, dancing, or otherwise moving their bodies along with the pre-recorded audio. For example, a short video may feature a "dance challenge" that an individual completes to a hit song, or the short video may feature two people participating in a lip-sync or two-person dance. As another example, a short video may feature an individual completing a challenge that requires them to move their body to correspond with 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 a pre-recorded audio overlay. For example, these short videos may feature individuals playing sports, playing pranks, or giving beauty and fashion advice, cooking tips, home decorating 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. A 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 device 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 users. The users may be registered users of the video service 116 or may be users of a content application 106 running on a client device 104a-n. User input may include short videos created by the users, user comments associated with the short videos, or "likes" associated with the short videos. User input may include connection requests and user input data, such as text data, digital image data, or user content. A connection request may include a request from a client device 104a-n to connect to the video service 116. User input data may include information, such as videos 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 a content application 106 on a first user device, such as a mobile phone or tablet, may be able to create and upload short videos using the content application 106. 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 watch short videos, view comments left by other users, and "like" short videos.

[0026] In one embodiment, a user may use a content application 106 on a client device 104a-n to create and upload a short video 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, the user may grant the content application 106 permission to access an image capture device, such as a camera or microphone, of the client device 104a-n. Using the content application 106, the 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 can 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 the 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 can add narration to the short video using the content application 106. The narration may be sound recorded by the user using the microphone of the client device 104a-n. A user can add text overlays to the short video. The content application 106 may also be used to specify when the user wants the text overlay to appear in the short video. A user can 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 the 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 uploaded short videos and user inputs to other users. A user may register as a user of the video service 116 and view short videos created by other users. A user may be a user of a content application 106 running on a 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 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 in an overlay 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 scroll across the short video or across an overlay.

[0032] The multiple computing nodes 120 may process tasks associated with the short video service 116. The multiple computing nodes 120 may be implemented as one or more computing devices, one or more processors, one or more virtual computing instances, combinations thereof, etc. The multiple computing nodes 120 may be implemented by one or more computing devices. The one or more computing devices may include virtualized computing instances. The virtualized computing instances may include virtual machines, such as emulations of computer systems, operating systems, servers, etc. A virtual machine may be loaded by a computing device based on a virtual image and / or other data defining the specific software for the emulation (e.g., operating system, dedicated application, server). As 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 users of the video service 116, allowing the users to create videos, such as short videos, 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 real images displayed on the user's camera. However, for the reasons discussed above, designing such effects 126 can be complex and time-consuming.

[0034] In one embodiment, node 120 hosts a design service 118. The design service 118 may be configured to facilitate design of an 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 an effect 126 so that users associated with the first plurality of client devices 104a-n can create videos 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 the 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 indicate the current state of the design of the first effect 126. For example, the project data 130 associated with the first project may indicate all work saved and / or uploaded to the cloud network 102. However, the project data 130 may not indicate 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 a client device 110a-n in response to receiving a request from the client device. The request may include an indication of selection of the first project. For example, a designer may select the first project if they want to design a first effect. The designer may want to work on the 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 device 110a-n that indicates the 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 the design application's 112 interface 114a-n, 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 the designer wants to begin 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 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 the current design state of the effect associated with that project. Thus, the main preview window provides the user 104a-n with a display or preview of how the effect will currently look when applied to an image or video feed, based on the effect's current design state. For example, the main preview window may render the AR effect into a 2D texture. A designer can view the main preview window to see what the original scene will look like (e.g., what the effect will look like if no further changes or modifications are made to the effect's design).

[0040] In some embodiments, a designer may use 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 effect's design. To do this, the designer may use 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 desired.

[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 how edits to the original scene properties will look (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 may not appear on the design service 118.

[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., not 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 corresponding 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, 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 enable the project to automatically generate preview processes.

[0043] In some embodiments, a designer may want to resume a design project from where they last left off. For example, the designer may have already made 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 have already 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 another 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 also make additional setting 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 locally saved changes) to the design of the effect 126. For example, after viewing a previous window, the designer may decide that they like the look of a particular design change or modification. The designer may then 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 server-side. When the designer does so, an instruction may be sent to the design service 118. This instruction may instruct 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, design service 118 is configured to receive data from client devices 110a-n indicating updates (e.g., changes or modifications) to project data 130. For example, design service 118 may receive instructions indicating design service 118 to update project data 130 associated with a project corresponding to an effect having a modified or changed design. In response to receiving such instructions, design service 118 may update project data 130.

[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 110 a-n to indicate to the client devices 110 a-n to update the main preview window displaying the scene including the effect. Thus, a designer who makes a change or modification to the effect may see a change in the main preview window so that the main preview window now reflects the recent change or modification. Additionally, other designers who work on this particular effect later 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 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 a 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 superimposed on at least one 2D or 3D virtual object on at least a subset of the frames of the video. For example, if a user wants to create a video using an AR effect, the user may open the camera of the client device 104a-n and project a real-time image of the physical world onto the screen. The AR effect superimposes or superimposes 2D or 3D virtual objects onto the camera feed, creating the illusion that the objects are 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 save 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 exemplary 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. While illustrated in FIG. 2 as a series of operations, one skilled in the art will recognize that various embodiments may add, remove, reorder, or modify the described operations.

[0049] As described above, a designer may use the design application 112 on the client devices 110a-n to spawn multiple secondary 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 containing a first copy of a first scene may be created in response to receiving a first user input. 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 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 the 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 enable substantially 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 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, a 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 view what edits to the properties of the original scene will look like (and not necessarily make final adjustments to the project data 130), such modifications are applied only locally (e.g., only on the client devices 110a-n) and do not appear on the design service 118. 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 are only applied locally (e.g., only on the client devices 110a-n) and do not appear on the design service 118. 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. While illustrated in FIG. 3 as a series of operations, one skilled in the art will recognize that various embodiments may add, remove, reorder, or modify the described operations.

[0054] As described above with respect to FIG. 1, a first copy of a 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. A second copy of the first scene in a second secondary window may also 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, the first change being different 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 client device 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 how edits to the original scene's properties will look (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 a locally saved, modified settings file to continue the design project. If the designer (or another designer) later loads a locally saved, modified settings file via the design application 112, a secondary preview window may be displayed based on the modified settings file. In response to receiving user input indicating access to the first project at 306, a first window may be displayed based on loading a modified first copy of the first scene from the first settings file. A second window may also be displayed based on loading a modified second copy of the first scene from a 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 saved locally. At 308, the modified first copy of the first scene may be adjusted based on further changes to the at least one attribute or different attributes 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 further changes to the at least one attribute or different attributes of the first visual effect in the modified second copy of the first scene. The further modified setting file may remain stored locally and 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. While illustrated in FIG. 4 as a series of operations, one skilled in the art will recognize that various embodiments may add, remove, reorder, or modify the described operations.

[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 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 the design application's 112 interface 114a-n, 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 the designer wants to begin or continue work on the design of a first effect, the designer may select the first project within the design application. At 402, data representing a first scene may be received from the 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 representing the first scene received from the server may indicate the current design state of the effect associated with the project. The main preview window provides the user 104a-n with a display or preview of what the effect currently looks like based on the effect's current design state. 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 effect's design.

[0061] In some embodiments, a designer may use the design application 112 to test various changes to a scene that includes an effect. For example, after a main preview window for 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 use the design application 112 to spawn multiple secondary preview windows associated with the project. One purpose of these multiple secondary preview windows is to test how edits to the properties of the original scene will look.

[0062] At 404, a first window including a first copy of a first scene may be created in response to receiving a first user input. 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 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 enable near-simultaneous A / B testing and comparison of different versions of the first visual effect within the first scene.

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

[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 the main preview window displaying the scene including the effect. At 408, information indicating the update to the first scene may be received from the server computing device. Thus, a designer who made a change or modification to the effect may see changes in the main preview window so 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 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. 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. While illustrated in FIG. 5 as a series of operations, one skilled in the art will recognize that various embodiments may add, remove, reorder, or modify the described operations.

[0067] As described above, a designer may use the design application 112 on the client devices 110a-n to spawn multiple secondary 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 containing a first copy of a first scene may be created in response to receiving a first user input. 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 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 the 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 a second time. The first secondary window and the second secondary window are configured to enable 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 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, a 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 applied only locally (e.g., only on the client devices 110a-n) and do not appear on the design service 118. 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 applied only locally (e.g., only on the client devices 110a-n) and do not appear on the design service 118. 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 project data 130 associated with the second project in response to sending a request for project data 130 associated with the second project to the design service 118. At 510, data representing a second scene may be received from the server computing device. 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 for project data 130 associated with the second project to the design service 118. If the designer wants to begin 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 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, a designer may use the design application 112 to test various changes to a second scene including a second effect. For example, after a main preview window of a second scene including a 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 do this, the designer may use 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 desired.

[0074] At 512, in response to receiving a third user input, a third secondary preview window including a first copy of the second scene may be created. For example, the third user input may be received when a designer (e.g., a user) selects a button (e.g., the (+) 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 including a second copy of the second scene may be created. For example, the third user input may be received when a designer (e.g., a user) selects a button (e.g., the (+) 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 described above, a designer may decide to work on a design project. For example, a designer may decide to work on the design of 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), client devices 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, client devices 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 device 110a-n receives 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 display or preview of what the effect currently looks like, based on the effect's current design state. If no further changes or modifications are made to the effect's design, the designer can look at the main preview window 602 to see what the effect will look like.

[0077] In some embodiments, a designer may test various changes to a scene containing an effect. For example, after the main preview window 602 of a scene containing an effect is displayed, the designer may want to see the impact of various modifications or changes to the effect's design. 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 interface 114a-n. Each time the designer selects a button, an additional secondary preview window may be spawned and displayed. The designer may spawn as many secondary preview windows as desired. The secondary windows 604a-b may be 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 exemplary user interface 700 of a design application (e.g., design application 112) consistent with the present disclosure. As described above, a designer may decide to work on a design project. For example, a designer may decide to work on the design of 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 device 110a-n receives 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 display or preview of what the effect currently looks like, based on the effect's current design state. If no further changes or modifications are made to the effect's design, the designer can look at the main preview window 702 to see what the effect will look like.

[0080] In some embodiments, a designer may test various changes to a scene containing an effect. For example, after a main preview window 702 for a scene containing an effect is displayed, the designer may want to see the impact of various modifications or changes to the effect's design. 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 button 706, an additional secondary preview window may be spawned and displayed. The designer may spawn as many secondary preview windows as desired. The secondary windows 704a-c may be configured to allow for near-simultaneous A / B testing and comparison of different versions of a visual effect in a scene.

[0081] FIG. 8 shows 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 procedure. 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 the (+) button on the interface of a design application (e.g., design application 112). In response to this 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 in 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 flowchart 900 for spawning multiple secondary preview windows. The Inspector component may be started on the client devices 110a-n. By clicking the "+" (plus) button, the designer can spawn new secondary preview windows running in new processes. Each process contains a copy of the main scene and any specific property changes sent from the Edit window via the Inspector panel. A main configuration file (e.g., app.config file) located 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 correct 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 of their previews will automatically appear with the changed properties. All preview windows may be open simultaneously, which is facilitated by a dual-instance connection wrapper. The user may be able to configure the maximum number of preview windows.

[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), which updates the scene in the preview plugin. Because the purpose of the preview plugin is to see what edits to the original scene properties look like, certain changes to the scene can be made within the preview plugin (client process), but these changes will not appear in 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 network 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, e-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 substrate 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 pathway. 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 computing such as graphics and other visualization-related processing.

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

[0090] Computing device 1000 may operate in a networked environment using logical connections to remote computing nodes and computer systems through a local area network (LAN). Chipset 1006 may include functionality for providing network connectivity through a network interface controller (NIC) 1022, such as a Gigabit Ethernet adapter. NIC 1022 may be able to connect computing device 1000 to other computing nodes over 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 various factors and different implementations of the present specification. Examples of such factors include, but are not limited to, the technology used to implement 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. Computing device 1000 may also read information from mass storage device 1028 by detecting the physical state or characteristics of one or more particular locations in the physical storage unit.

[0094] In addition to the mass storage device 1028 discussed 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 provide non-transitory data storage 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-transitory 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 cassette, magnetic tape, magnetic disk storage, other magnetic storage devices, or any other medium that can be used to store 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. In 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 also store other system or application 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 touchscreen, an electronic stylus, or other types of input devices. Similarly, 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 that 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 stored and executed within the context of a virtual machine.

[0100] It is to be understood that the methods and systems are not limited to particular methods, components, or implementations, and 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 will be understood that the particular value forms another embodiment. It will also be understood that the endpoints of each range 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 "comprises" and "includes," mean "including, but not limited to." For example, it is not intended to exclude other components, integers, or steps. "Exemplary" denotes "an example of" and is not intended to convey indication of a preferred or desirable embodiment. "Such as" is used for purposes of interpretation, not limitation.

[0104] Components are described that can be used to implement the described methods and systems. When describing combinations, subsets, interactions, groups, etc. of these components, specific reference to each of the various individual and collective combinations and permutations of these components may not be explicitly described, and it should be understood that each is specifically contemplated and described herein for all methods and systems. This applies to all aspects of the present application, including, but not limited to, the operations in the described methods. Thus, to the extent that there are various additional operations that can be performed, it should be understood that each of these additional operations can be performed in any specific 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 embodiment and examples contained therein, and the accompanying drawings and their descriptions.

[0106] As will be appreciated by those skilled in the art, the methods and systems may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the methods and systems 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 particularly, the methods and systems may take the form of web-implemented computer software. Any suitable computer-readable storage medium may be utilized, including a hard disk, a CD-ROM, an optical storage device, or a magnetic storage device.

[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 implemented by computer program instructions. These computer program instructions may be loaded into a general-purpose computer, a 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, creating a computer-implemented process, such that the instructions, executing 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 one another 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 associated blocks or states 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 from that described. For example, elements may be added, deleted, or rearranged 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 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 execute 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), etc. 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 contained on a computer-readable transmission medium, including wireless-based and wire / cable-based media, and may take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as a plurality of discrete digital packets or frames). In other embodiments, such computer program products may take other forms. Accordingly, the present 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, the scope is not intended to be limited to the particular embodiments, as the embodiments herein are intended in all respects to be illustrative and not restrictive.

[0112] Unless otherwise expressly stated, methods described herein do not require that their operations be performed in a particular order. Thus, where a method claim does not actually recite the order its operations should follow, or where the claims or the specification do not specifically state that the operations are limited to a particular order, no order inference is intended to be drawn in any way. This applies to any possible non-expressive basis for interpretation, including logical issues regarding the arrangement of steps or operational flow, the simple meaning derived from grammatical construction and punctuation, or the number or type of embodiments described in the specification.

[0113] It will be apparent to those skilled in the art that 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 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 a 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 receiving a second user input, 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 with 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 with 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:

1. A computing device comprising:

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

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

4. The operation further modifying the modified first copy of the first scene with another change to the at least one attribute of the first visual effect in the modified first copy of the first scene; further modifying the modified second copy of the first scene with 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. Before 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 receiving information from the server computing device indicating 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 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; In response to a third user input being received, creating a third window containing a first copy of the second scene; In response to a fourth user input being received, creating a fourth window containing 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, and the third configuration file and the fourth configuration file are 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 a 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 receiving a second user input, 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 with 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 with 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 modified first copy of the first scene in a first settings file associated with the first window in at least one memory; storing the modified second copy of the first scene in a second settings file associated with the second window in the at least one memory; 10. 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 loading the modified first copy of the first scene from the first configuration file, and displaying the second window based on loading the modified second copy of the first scene from the second configuration file; The method of claim 10 further comprising:

12. further modifying the modified first copy of the first scene with another change to the at least one attribute of the first visual effect in the modified first copy of the first scene; further modifying the modified second copy of the first scene with 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; 10. The method of claim 9, further comprising:

14. receiving information from the server computing device indicating 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; 14. The method of claim 13, further comprising:

15. A non-transitory computer-readable storage medium having stored thereon computer-readable instructions, the computer-readable instructions, when executed by a processor, causing the processor to implement a method according to any one of claims 9 to 14. A non-transitory computer-readable storage medium.

16. When executed by a processor, causes the processor to implement a method according to any one of claims 9 to 14. Computer program.

Citation Information

Patent Citations

  • Method and apparatus for anti-aliasing in graphics system

    JP2002063597A