Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PROVIDING VISUAL GUIDANCE FOR PRESENTING VISUAL CONTENT IN A VENUE
Document Type and Number:
WIPO Patent Application WO/2021/091963
Kind Code:
A1
Abstract:
Disclosed herein are system, method, and computer program product embodiments for providing visual guidance on presenting content on a media surface of a venue. An embodiment operates by mapping visual content onto a media surface of the venue and a key feature unique to the visual content and/or the media surface being extracted. Thereafter, an experiment metric corresponding to the visual content and/or the media surface is retrieved, a viewer location metric and/or a media surface metric based on the experiment metric and the key feature is determined. The viewer location metric and the media surface metric correspond to the attribute, which is utilized to provide a hint of the attribute to a user.

Inventors:
RODRIGUEZ DAVID E (US)
RAMASZEWICZ MICHAEL (US)
SCHECTMAN EVAN (US)
GRAAE MICHAEL (US)
BUDIN CLAY (US)
MARCINOWSKI MATEUSZ (US)
Application Number:
PCT/US2020/058811
Publication Date:
May 14, 2021
Filing Date:
November 04, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MSG ENTERTAINMENT GROUP LLC (US)
International Classes:
G06V10/40
Foreign References:
US20160219338A12016-07-28
US20190099681A12019-04-04
US20190146313A12019-05-16
US20160225187A12016-08-04
Attorney, Agent or Firm:
SOKOHL, Robert E. et al. (US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A computer-implemented method for deriving a metric for determining an attribute of one or both of a venue and a representative visual content mapped onto a media surface of the venue, comprising: mapping, by a server, a representative visual content onto a media surface of a venue; extracting, by the server, a key feature of one or more of the representative visual content and the media surface; determining, by the server, media surface geometry viewable from a viewer location in the venue based on a position and an orientation of the viewer location in the venue; determining, by the server, a view from the viewer location in the venue based on the key feature and the media surface geometry; and deriving, by the server, an experiment metric based on the view from the viewer location, wherein the experiment metric is utilized to determine an attribute of the representative visual content different from the representative visual content, and wherein the attribute of the representative visual content is utilized to provide a hint for the presenting the attribute to a user.

2. The computer-implemented method of claim 1, wherein the viewer location comprises a plurality of viewer locations.

3. The computer-implemented method of claim 1, wherein the key feature is extracted from the media surface by a machine learning model unique to the media surface of venue.

4. The computer-implemented method of claim 1, wherein the key feature of the media surface relates to geometry of the media surface, and wherein key feature of the representative visual content relates to a rendering of the representative visual content on the media surface.

5. The computer-implemented method of claim 4, wherein the key feature is an object in the representative visual content.

6. The computer-implemented method of claim 1, wherein the view from the viewer location is deriving by ray casting, rasterization, path tracing, or raytracing.

7. The computer-implemented method of claim 1, wherein the media surface is two- dimensional.

8. The computer-implemented method of claim 1, further comprising: receiving, by the server, a selection of the representative visual content; receiving, by the server, a selection of the venue; and receiving, by the server, a selection of the viewer location in the venue.

9. A computer-implemented method determining an attribute of one or both of a venue and a visual content mapped onto a media surface of the venue, comprising: mapping, by a server, visual content onto the media surface of the venue; extracting, by the server, a key feature unique to one or more of the visual content and the media surface; retrieving, by the server, an experiment metric corresponding to the one or more of the visual content and the media surface; and determining, by the server, one or more of a viewer location metric and a media surface metric based on the experiment metric and the key feature, wherein the viewer location metric and the media surface metric correspond to the attribute, and wherein the attribute of the visual content is utilized to provide a hint of the attribute to a user.

10. The computer-implemented method of claim9, further comprising: receiving, by the server, a selection of an attribute to be analyzed; receiving, by the server, a selection of the venue; and receiving, by the server, a selection of the visual content.

11. The computer-implemented method of claim 9, wherein the key feature is extracted from the media surface by a machine learning model unique to the media surface of venue.

12. The computer-implemented method of claim 9, further comprising: retrieving, by the server, additional key feature previously extracted from the at least one of the visual content and the media surface, wherein the one or more of the viewer location metric and the media surface metric is further based on the additional key feature.

13. The computer-implemented method of claim 9, wherein: the viewer location metric and the media surface metric are determined and correspond to a first and second attribute, respectively, and wherein the first and second attributes are utilized to provide a first and second hint to the user, respectively.

14. The computer-implemented method of claim 9, wherein the visual content is two- dimensional or three-dimensional.

15. The computer-implemented method of claim 9, wherein the media surface is two- dimensional or three-dimensional.

16. The computer-implemented method of claim 15, wherein the media surface at least partially surrounds a plurality of viewer locations.

17. The computer-implemented method of claim 9, wherein the hint comprises a heat map of the attribute.

18. The computer-implemented method of claim 17, wherein the heat map incorporates a plurality of viewer locations.

19. The computer-implemented method of claim 17, wherein the heat map incorporates the media surface.

20. A computer-implemented method for providing visual guidance on presenting new visual content on a media surface of a venue, comprising: mapping, by a server, representative visual content onto the media surface of a venue; extracting, by the server, a key feature of one or more of the representative visual content and the media surface; determining, by the server, media surface geometry viewable from a viewer location in the venue based on a position and an orientation of the viewer location in the venue; determining, by the server, a view from the viewer location in the venue based on the key feature and the media surface geometry; and deriving, by the server, an experiment metric based on the view from the viewer location; mapping, by the server, the new visual content onto the media surface of the venue; extracting, by the server, a new key feature unique to one or more of the new visual content and the media surface; retrieving, by the server, the experiment metric corresponding to the one or more of the new visual content and the media surface; and determining, by the server, one or more of a viewer location metric and a media surface metric based on the experiment metric and the new key feature, wherein the viewer location metric and the media surface metric correspond to an attribute informative of presenting the new content on the media surface, and wherein the attribute of the visual content is utilized to provide a hint of the attribute to a user.

Description:
PROVIDING VISUAL GUIDANCE FOR PRESENTING VISUAL CONTENT IN A VENUE

BACKGROUND

[0001] Concerts are traditionally performed in a wide variety of venues throughout the country. The concerts typically entail providing various customized visual renderings on the venue’s media surfaces. However, the media surfaces have different configurations depending on the venue, and the visual rendering may also vary depending on the concert. Thus, the venue’s media surfaces may not provide a particular concert’s visual rendering in its intended fashion. For example, the visual content may not be accurately mapped based on the unique geometry of the venue’s media surface, thereby providing viewers with an unintended or non-ideal viewing experience. As such, prior systems are unable to forecast how customized visual renderings may be presented on a particular venue’s media surfaces.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] The accompanying drawings are incorporated herein and form a part of the specification.

[0003] FIG. 1 illustrates a block diagram of an example system for providing visual guidance on presenting content on a media surface of a venue, according to some embodiments.

[0004] FIG. 2 illustrates an example venue of FIG. 1, according to some embodiments.

[0005] FIG. 3 and 13 illustrate flowcharts of example processes for providing visual guidance on presenting content on a media surface of a venue, according to some embodiments.

[0006] FIGs. 4 and 14 illustrate flowcharts of example experiment processes of FIG. 3, according to some embodiments.

[0007] FIGs. 5A and 5B illustrate example user interfaces provided during the experiment processes of FIGs. 4 and 14, according to some embodiments.

[0008] FIGs. 6 and 15 illustrate flowcharts of example analysis processes of FIG. 3, according to some embodiments. [0009] FIGs. 7-9, 10A-C, and 11 illustrate example user interfaces for providing the visual guidance of FIG. 2, according to some embodiments.

[0010] FIG. 12 illustrates an example central server of FIG. 1, according to some embodiments.

[0011] FIG. 16 illustrates an example computer system useful for implementing various embodiments.

[0012] In the drawings, like reference numbers generally indicate identical or similar elements. Additionally, generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.

DETAILED DESCRIPTION

[0013] Provided herein are system, apparatus, device, method and/or computer program product embodiments, and/or combinations and sub-combinations thereof, for providing users with a greater visual understanding of the visibility of media surfaces in a venue.

[0014] Venues have different configurations of media surfaces for presenting media content (e.g., visual content) and viewer locations (e.g., seats and standing locations) relative to the media surfaces. For example, one venue may have a two-dimensional, straight media surface that is in front of the viewer locations, and another venue may have a three-dimensional, curved media surface that at least partially surrounds all viewer locations. As such, viewers may have different perceptions of media content presented on the media surface depending on a wide variety of factors, such as the location of the media surface in the venue, the degree of curvature of the media surface, the viewer locations in the venue relative to the media surface, the location of objects (e.g., other people, venue architecture, stage and non-stage props, chairs, banners) occluding the field of view of the viewer relative to the media surfaces, the location of objects (e.g., people, buildings, aircraft, vehicles, animals, landscapes, creatures, clouds, and abstract shapes) of the media content on the media surface, and the movement of the visual objects of the media content on the media surface (e.g., left to right, top to bottom, and various angles). Moreover, some or all of these factors may have different and/or unknown effects on the presentation of media content on the media surface of the venue. For example, viewers (e.g., located directly in front of the media surface) may receive an appropriate and intended perspective of the media content, whereas other viewers (e.g., located to the left, right, above, or below) may have different and unintended perspectives of the media content.

[0015] Accordingly, the present disclosure is directed to an application that permits users to acquire a visual understanding of the visibility of media content rendered on the media surface of venue for all possible vantage points in the venue. The application performs an experiment with representative media content and the venue’s media surfaces to derive the necessary data points for determining an attribute of future media content (e.g., content to be utilized in a concert). The application then performs an analysis of the future media content and/or the venue’s media surface based on the derived data points to determine an attribute of the future media content with respect to the venue’s media surface. The experiments and analyses may be rerun to determine different attributes.

The application thereafter provides visual guidance to the user. In some embodiments, the visual guidance may be a heat map of the attribute.

[0016] FIG. 1 illustrates a block diagram of an example system for providing visual guidance on presenting content on a media surface of a venue, according to some embodiments. The system 100 includes a central server 102, one or more local servers 104A-B, and one or more user devices 106A-B. Central server 102 is in communication with local servers 104A-B and user devices 106A-B. In some embodiments, central server 102 may host application 108, which permits users at user devices 106A-B to perform experiments and analyses to derive visual guidance for presenting media content on media surfaces of venue. The experiments and analyses may be performed on or with respect to, venue geometry 112A-B and media surface 114A-B of venues. Accordingly, central server 102 may perform the associated processing and relay the necessary date to the venue servers 104A-B and/or user devices. In some embodiments, although not illustrated and as discussed below, venue server 104A-B and/or user devices 106A-B may host application 108 and perform the associated processing locally.

[0017] Local servers 104A-B manage the presentation of media content on media surfaces 114A-B of venues 110A-B. As such, venues 110A-B may have a unique configuration of venue geometry 112A-B and media surfaces 114A-B. Venue geometry 112A-B includes structure and/or viewer locations (e.g., seats and locations) within the venue that define the viewer’s perspective within the venue 110A-B and in the venue. For example, venue geometry 112A-B may include floors, ceilings, walls, stages, trussing, and any stage elements or other objects that may impede or block the view of the media. Venue geometry 112A-B may thus be two- or three- dimensional points (UV or XYZ) in the venue. For example, venue geometry 112-B may contain three-dimensional polygons or three-dimensional surfaces.

[0018] Moreover, media surfaces 114A-B represents one or more surfaces that can be provided with media content. For example, media surfaces 114A-B represent one or more display surfaces in the venue where content can be shown to viewers. As such, media surfaces 114A-B may be a monitor, a television, and/or a screen. Moreover, media surfaces 114A-B may be in front of the viewers. Along these lines, media surfaces 114A- B may be curved and at least partially surround the viewer locations. Accordingly, media surfaces 114A-B may be two- or three dimensional.

[0019] FIG. 2 illustrates an example of venue 200. Venue 200 may be a dome and thus may be enclosed by a curved interior defined by the dome. As illustrated, in some embodiments, the venue 200 may have a media surface 202 that is three-dimensional and curves to partially or completely surround viewers horizontally and/or vertically. Moreover, venue 200 may have a stage 204 and a plurality of viewer locations 206A-D. As illustrated, the viewer locations 206A-D may have different vantage points of the media surface 202.

[0020] Referring back to FIG. 1, as stated above, central server 102’s application 108 permits users to derive visual guidance for presenting content on media surfaces of a venue. As stated above, the visual guidance is based on derived attributes. As such, the application permits users to perform experiments and analyses. The experiments derive key features and metrics to be utilized in the analysis to determine the corresponding attributes. Accordingly, the analyses utilize the experiments derived key features and metrics to determine attributes. The application 108 then provides visual guidance based on the attributes. The visual guidance relates to the viewer locations and the media surface, as will be explained in more detail below.

[0021] In some embodiments, the attribute may be a degree of a field of view from viewer locations, a distance to a portion of the media surface (e.g., a center of reticle 704 of FIG. 7) from viewer locations, an amount of a field of view occluded by venue structure (e.g., pole, stage objects, suspended or hanging objects) or viewer location geometry (e.g., where a seat is located) from viewer locations, an amount of content rendered on the media surface viewable from viewer locations, an amount of a media surface viewable from the viewer locations, and a degree of distortion of content from viewer locations, just to name a few examples. Along these lines, in some embodiments, the visual guidance may be provided as a heat map of the attribute with respect to the viewer location and/or media surface.

[0022] Accordingly, user devices 106A-B permit users (e.g., authorized users) to process experiments and/or analyses. Thus, user devices 106A-B may provide visual guidance to the user and permit the user to visualize how the customized media content will/may be presented at the venue based on the venue geometry. User devices 106A-B may be any type of computing device, such as a computer, tablet, cellular phone, laptop, desktop, and artificial reality device (e.g., a headset), just to provide a few examples.

[0023] FIG. 3 illustrates an example process 300 for deriving visual guidance on presenting content on a media surface of a particular venue, according to some embodiments. At 302, an experiment array including a plurality of experiments is provided, and one or more experiments are selected. In some embodiments, the user at user device 106 (of FIG. 1) may select a particular experiment. Alternatively, the user at user device 106 may select multiple experiments. The experiments may run sequentially or in parallel. Further, the experiments may be processed offline by central server 102 (of FIG. 1) and may thus be derived for a period of time (e.g., hours or days) or immediately prior to the process analyses.

[0024] The experiments may be utilized to determine metrics that are utilized for different analyses that correspond to different attributes. For instance, one experiment may be utilized to determine metrics that are utilized for an analysis that determines a particular attribute (e.g., a degree of a field of view from viewer locations). Similarly, another experiment may be utilized to determine different metrics that are utilized for another analysis that determines a corresponding attribute (e.g., an amount of content rendered on the media surface viewable from viewer locations).

[0025] At 304, the experiments are processed based on viewer location transformations

(e.g., position and orientation of seat and/or standing location) 306, venue geometry (e.g., objects, overhangs) 308, and venue media surfaces 310. At 312, based on the experiments, metrics are derived, and, at 314, the metrics are cached. [0026] Thereafter, at 316, a user selects an analysis to perform, and, at 318, a user chooses media content 320. The analysis may be a different one of the analyses that correspond to the different attributes. For example, one analysis may determine a particular attribute (e.g., a degree of a field of view from viewer locations), and another analysis may determine a different attribute (e.g., an amount of content rendered on the media surface viewable from viewer locations).

[0027] As such, at 322, the analysis is performed for the media content 320 based on the metrics derived at 312. As stated above, the analysis of 322 then derives attributes at 324, which are cached, at 326, and utilized to render visual guidance, at 328. The visual guidance 328 may relate to the media surfaces 310 or the media content 320 mapped onto the media surface 310. As such, the visual guidance 328 may be associated with the representative media content 320. In some embodiments, the visual guidance 328 may be provided as a heat map of the media surface and/or the viewer locations (e.g., seats or standing locations), as will be discussed in more detail below.

[0028] FIG. 4 illustrates an example experiment process 304 of FIG. 3, according to some embodiments. At 402, an array of experiments is provided, and, at 404, one or more experiments are selected. After the selection of the experiments, the experiment process 304 begins.

[0029] In the experiment process 304, media surface 410 may be analyzed alone or together with representative media content. If the media surface 410 is analyzed alone, then, at 414, key features are extracted from the media surface 410 itself. However, if the media surface 410 is to be examined with the representative media content, then, at 412, the representative media content is mapped onto the media surface 410, and, at 414, key features are extracted from the mapped representative media content of 412. The representative media content may be provided so that it is mapped using various texturing methods (e.g., projection or UV mapping) onto a selected location, which may be selected by a user at user devices 106A-B (of FIG. 1) or selected by the application 108 (of FIG.

1). In some embodiments, the selected location on the media surface 410 may be a location that provides an ideal view of the representative media content to a specific viewer location (e.g., center middle). The ideal view of the representative media content is saved for comparison, as will be later discussed. Moreover, different experiments may be processed with the representative media content mapped with different texturing methods onto different locations of the media surface 410. This may allow for different texturing methods and locations to be analyzed in the analysis process and for different attributes to be derived so that the user may be provided with different visual guidance.

[0030] The key features may be sample points provided on the media surface or aspects

(e.g., objects) of the representative media content mapped onto the media surface. For example, if the metrics relate to the media surface, the key features may be sample points provided on the media surface. Likewise, if the metrics relate to the representative media content mapped onto the media surface, the key features may be the aspects (e.g., objects) of the representative media content.

[0031] As stated above, the key features may be sample points provided on the media surface. The sample points may be utilized to identify a location on the media surface for aspects of the representative media content or to derive metrics later in the experiment process 304. As such, in some embodiments, the sample points may span the entire media surface. In some embodiments, the sample points may span the area of the media surface receiving the representative media content.

[0032] Further, the number of sample points may be based on the shape and/or size of the media surfaces as well as the aspects (e.g., objects) of the representative media content. For example, the greater the size of the media surface, the more sample points are provided. Further, if a portion of the media surface has greater than a specific degree of curvature than an adjacent portion of the media surface (e.g., 16 degrees), additional sample points may be provided.

[0033] Along these lines, after representative content is mapped onto media surfaces, sample points may be created. In some embodiments, the sample points may be created based on the UV coordinates from representative content as world space coordinates on the media surface. For example, if the representative content is an image of a triangle or a line, sample points may be created based on pixels of the image on the media surface. As such, irregular configurations of sample points may be based on pixels of the representative content.

[0034] FIGs. 5A and 5B illustrate example user interfaces 500A/500B presenting sample points provided on media surfaces, according to some embodiments. User interface 500A illustrates sample points on media surface 502A from a first viewer location. User interface 500B illustrates sample points on media surface 502B from a second, different viewer location. User interfaces 500A/500B provide a crosshair 502A/504A correlating to a sample point generated procedurally or from the representative content on the media surface.

[0035] Referring back to FIG. 4, as stated above, the key features may be objects of representative media content mapped onto the media surface. As such, the key features may include qualitative tags of the media surfaces and/or the representative media content mapped on the media surface. The qualitative tags may describe the media surface and/or the mapped representative media content. As such, the qualitative tags may describe sections of the media surface (e.g., geometric portions or sample points) or the entire media surface in more human-readable terms. For example, qualitative tags may be provided on sections that are vertical, horizontal, curved, straight, distorted, and/or less visible. The qualitative tags may be assigned procedurally as part of the experiments or manually by the user. Moreover, the qualitative tags may be utilized as a metric and used for later analysis.

[0036] Further, the qualitative tags may specify the salient, selected, and/or procedural data from the media surface and/or mapped representative media content. As such, the qualitative tags may be attached to or specify sets of sample points, line segments, polygons, or binary large object (BLOB) that track salient or desirable pixels or objects in the representative media content presented in the media surface. For example, the qualitative tags may bound and track the geometry of objects in the representative media content. The quantitative tags may also provide an indication of the vector motion (e.g., right to left or vice versa) and speed of motion (e.g., too fast or slow) of objects in the representative media content that can then be used to obtain the rate of change of this motion across various sample points on the media surface. This may allow more complex measurements (e.g., distance, angle, distortion, and curvature, and angles) to be obtained from the viewer locations in a more human-readable form for use in the analysis. Moreover, extracted key features may include UV or XYZ coordinates (for two- and three- dimensional media surfaces, respectively), colors, and other texture data that can be programmed into a shader to aid in the rendering step of the experiment and allow the extraction of texture data from the viewer’s point of view.

[0037] The sample points and/or qualitative tags may be provided manually, for example, by a subject matter expert via user devices 106A-B (of FIG. 1). Alternatively, the sample points and/or qualitative tags may be automatically provided by central server 102’s application 108 (of FIG. 1). For example, application 108 may automatically identify objects in the representative media content and provide qualitative tags. Along these lines, application 108 may utilize a machine learning model to provide qualitative tags automatically. The machine learning model may be initially trained based on predetermined representative media content.

[0038] After extracting the key features, they are cached into storage 416 and made available for use in future experiment and analysis processes. Thereafter, at 418, viewer locations (e.g., seats or standing positions) are grouped. The viewer locations may be grouped manually, spatially, or statistically in an automated or pre-determined way. By grouping the viewer locations, data relating to the extracted key features may be deduced from each viewer location and then aggregated together to provide cumulative data representative of the entire group of viewer locations. Moreover, it also provides a way of accelerating computation through sampling methods and providing more accurate visual guidance.

[0039] After grouping the viewing locations, at step 420, an initial group of viewer locations is selected and, at 422, the group of viewer locations is either processed iteratively or if data has already been cached for that group of viewer locations in a previous experiment, then we continue to 434. If each viewer location of the group is to be iteratively processed, then, at 424, a viewer location in the group is selected.

Thereafter, at 426, the point of view of the media surface from the viewer location is rendered based on venue geometry 426. The rendering may be created through various mapping methods (e.g., ray casting, rasterization, and raytracing) that take into account the key features in the representative media content (e.g., for algorithms or models that can be trained on this data) or media surfaces as necessary and also takes into account any venue geometry which may be visible by this viewer location’s point of view of the media surface (e.g., to take into account occlusions). The rendering may provide an image of the point of view of the media surface from the view location.

[0040] Also, at 426, metrics from the point of view are determined based on the viewer location. As stated above, the rendering may be three-dimensional. Similarly, the metrics may be based on the media surface and/or aspects (e.g., objects) of the representative media content mapped on the media surface. Accordingly, the metrics may be multi- dimensional (e.g., three-dimensional) scalar or vector fields (e.g., points) relating to the media surface or aspects of the representative media content mapped thereon. Metrics may include a distance to a portion of various sample points on the media surface, curvature at a sample point on the media surfaces (e.g. due to perspective effects) with respect to viewer location, an amount of a field of view occluded by venue structure (e.g., pole) or viewer location geometry (e.g., where a seat is located), and an amount of content rendered on the media surface viewable, just to provide a few examples.

[0041] Thereafter, optionally, at 430, the rendering/ metrics of 426 may be reduced into a smaller set of metrics and/or transformed into a different set of metrics. For example, the distance to the various locations sample points may be averaged to provide a representative distance to the media surface. Moreover, the angle of a view of sight to a center sample point or set of tagged sample points may be determined. Further, the rendering of the point of view from the viewer location may be compared to the previously-saved ideal mapping or projection of the representative media content to determine a degree (e.g., a percentage) of accuracy or deviation from an ideal mapping or projection. For example, these renderings from the ideal mapping position may be used in the analysis to show a user how the media surfaces and viewer locations affect the content they designed and how much it deviates from the desired original user produced content.

[0042] Subsequently, at 432, if there is another viewer location in the group, the process returns to 424, performs steps 426 and 430 as described above for the next viewer location, and caches their derived viewer location metrics into storage 416. Accordingly, after all of the viewer locations in the group are processed, at 434, the individual per viewer locations metrics of 426 and/or 430 are processed into a metric (e.g., single metric) representing all of the individual metrics for the aggregate group derived at 430. Similarly, at 434, the individual renderings of the points of the view of the media surface from the respective viewer locations may be combined to provide a representative rendering (e.g., image) of the point of view of the media surface for the group. This may be done via an image operation (e.g., average, subtraction, multiplication, addition, mean, standard deviation) on all of the viewer locations in the group. The group metric and/or rendering is also cached into storage 416. [0043] At 436, the process determines if there are any more groups to be processed. If so, the process returns to 420. Otherwise, the process proceeds to 438 to determine if there are any more experiments to be run. If there are additional experiments to be run, the process returns to 404. If not, the process continues to 440, where the analysis processed is run. As will be discussed in more detail below, the analysis is based on the cached key features, individual metrics, and group metrics.

[0044] Along these lines, additional experiments may be run for the same group to derive different metrics corresponding to different attributes for the same key feature. The metrics may then collectively be utilized in the analysis process 322 (of FIG. 2). Along these lines, the key features and/or metrics derived for a particular experiment may be utilized in different experiments corresponding to the same or different metrics.

[0045] FIG. 6 illustrates an example analysis process 322 of FIG. 3, according to some embodiments. As stated above, at 602, a user selects one of a plurality of analyses and indicates parameters for the analysis (e.g., colors, filter parameters, output format, viewer locations or groups of viewer locations), and, at 604, the user selects new media content (e.g., different from the representative media content of the experiment process 304 of FIG. 3). As stated above, the analyses correspond to different attributes. After the selection of the analysis and media content, the analysis process begins.

[0046] In the analysis process 322, like in experiment process 304, media surface 806 may be examined alone or together with media content. If the media surface 806 is examined alone, then, at 610, key features are extracted from the media surface 806 itself. However, if the media surface 606 is to be examined with the media content, then, at 808, the media content is mapped onto the media surface 606, and, at 610, key features are extracted from the mapping of 608. The mapping of the media content may be provided on a location of the media surface 606 that provides an ideal view of the content, as described above in the experiment process 304 (of FIGs. 3 and 4). The ideal view of the media content is saved for comparison, as will be later discussed. Moreover, different experiments may be processed with the media content mapped onto different locations of the media surface 606.

[0047] Further, at 610, additional key features relating to the media surface may be received from the cached experiment metrics/key features at storage 612. The additional key features may be those that are unaffected from the different media content (e.g., sample points on the media surface) and thus do not have to be determined again. This may save processing time and power.

[0048] Thereafter, the analysis process 304 may then proceed to 614 and/or 622 for deriving viewer location metrics and media surface metrics, respectively, which can be processed sequentially or in parallel. In 614, the viewer location metrics and/or groups of viewer location metrics created in the experiment process are retrieved from storage 612 based on the user-provided parameters (e.g., viewer locations or groups of viewer locations). Thereafter, at 614, the viewer location metrics and groups of viewer locations are combined with those of the new key features. This can be done in real-time or near real-time to provide a new set of viewer location metrics.

[0049] Similarly, in 622, media surface renderings provided in the experiment process are retrieved from storage 612. Thereafter, in 622, the media surface renders are correlated to the user-provided parameters to extract simpler views of media surface metrics that can be pushed to the presentational attributes mapping step. Newly extracted key features from the chosen user media content can also be used and combined with previous experiment data to allow for faster analysis of new content using previously calculated values and models. In this analysis process, for example, an algorithm or model (e.g., machine learning or traditional algorithm) can be used to infer new metrics by taking the key features from the media content (e.g., such as moving objects) and correlating them with previously collected metric data of the media surfaces (e.g. such as the portions of the media surfaces optimally viewed by the greatest groups of seats) to provide a new combined set of new metrics on the media surfaces to show how the media content can affect a group of users (i.e., if only some users can see the moving content). This data can be further refined and aggregated to provide a final set of metrics for the media surfaces.

[0050] Thereafter, in 616 and 624, the viewer location metrics and media surface metrics are converted into presentational attributes that are ready for rendering to show the user, respectively. For example, the determined angles and distances with respect to a user- supplied parameter region on the media surfaces with respect to the viewer locations are converted into presentational attributes for each viewer location. Another example, the collective viewing areas of a group of viewer locations are converted into presentational attributes on the media surfaces. The presentational attributes may be percentages, values within ranges, and UV or XYZ coordinates, as well as colors associated with any of aforementioned, just to provide a few examples. The presentational attributes derived in 616 and 624 are then cached in storage 618. Accordingly, after caching the presentational attributes, the analysis process 622 ends. As described above, the central server 102 (of FIG. 1) may retrieve the attributes from the storage 618 and provide visual guidance to users.

[0051] FIG. 7 illustrates an example user interface 700 for performing the analysis process of FIG. 4, according to example embodiments. User interface 700 is the main interface for triggering the analysis process. As such, user interface 700 presents command buttons 702A-D, reticle 704, horizon line 706, and viewer location simulator 708. Command button 702A permits access to various content to be projected on the media surface. The user may then select the desired content to be projected on the media surfaces. Command button 702B permits the mapping and projection of the selected content to be adjusted. For example, the media content may have different projection modes (e.g., fisheye, perspective, orthographic, ultra-wide angle, omnimax, panoramic, cylindrical, spherical). As such, based on the projection mode, the unique properties of the projection mode may be modified. For example, if the projection mode is fisheye, the “Center U,” “Center V.” and “Radius U” may be modified. Further, the texture of the media content may be modified (e.g., pan, tilt, and roll).

[0052] Command button 702C permits modification of reticle 704 and horizon line 706.

Reticle 704 provides the main viewing perspective to be analyzed in the analysis process 322 (of FIG. 3). As such, media content (e.g., objects) within reticle 707 may be analyzed in the analysis process 322. Horizon line 706 runs through, and intersects with reticle 704, and assist the user in modifying the projection of the media content onto the media surface (e.g., tilting). Accordingly, command button 702C permits a selection of a shape of reticle 704 (e.g., square, rectangle, circle) and a size of reticle 704 (e.g., smaller or smaller with respect to venue), as well as an adjusting (e.g., tilting of the image) via the horizontal line 706.

[0053] FIGs. 8A and 8B illustrate example user interfaces 800A/800B presenting supported reticle and 802A/802B projections. Reticle 802A and horizontal line 804A are a translational rectilinear projection. As such, reticle 802A and horizontal line 804A is two-dimensional and moves from one point to another point on a straight line. Reticle 802B and horizontal line 804B are an orbit rectilinear projection and moves within three- dimensions. As such, reticle 802A may be utilized for two-dimensional media content, and reticle 802B may be utilized for three-dimensional media content.

[0054] Referring back to FIG. 7, command button 702D provides video controls (e.g., play, rewind, and forward) of media content projected on the media surfaces. Viewer Location Simulator 708 provides hints of the visual guidance to be provided for the attribute being derived. In some embodiments, as will be described below, the visual guidance may be provided in the form of a heat map. The visual guidance may be rendered back into the three-dimensional space and the venue geometry in the application so that the user can see the hints directly on the media surface and the viewer location of the venue. The visual guidance may be rendered back into the three-dimensional replication of the venue in the application so that the user can see the hints directly on the media surface and the viewer location of the venue.

[0055] FIGs. 9-11 illustrate example user interfaces providing visual guidance on presenting content on a media surface of a venue, according to some embodiments. As stated above, the visual guidance is provided based on the attributes, which are based on viewer locations and/or the media surface. The attributes may be based on the viewer location metrics and media surface metrics derived into the analysis process, as described above. As such, the attribute may relate to the media surface itself or the mapping of the media content onto the media surface. For example, the attributes may include a degree of a field of view from viewer locations, a distance to a portion of the media surface (e.g., a center of reticle 704 of FIG. 7) from viewer locations, an amount of a field of view occluded by venue structure (e.g., pole) or viewer location geometry (e.g., where a seat is located) from viewer locations, an amount of content rendered on the media surface viewable from viewer locations, an amount of a media surface viewable from the viewer locations, and a degree of distortion of content from viewer locations, just to name a few examples.

[0056] In some embodiments, the visual guidance may be hints. For example, the hints may be heat maps of the viewer locations and/or media surface. The heat maps may provide a graphical representation of the attributes. The graphical representation may include colors and may have a particular color scheme. The colors may be based on viewer location metrics and/or media surface metrics derived for the attribute. Accordingly, each attribute may have different ranges of viewer location metrics and/or media surface metrics corresponding to different colors. For example, a heat map may present green, yellow, and red for different ranges of viewer location metrics for an attribute (e.g., a field of view from viewer locations). Another heat map may present different shades of green for different ranges of media surface metrics for a different attribute (e.g., a distance from viewer locations to a particular point of the media surface).

[0057] Along these lines, the viewer locations may each have a viewer location metric and/or a media surface metric, as well as a color associated therewith. Alternatively, the viewer locations may be grouped, either by a user of user device 106A-B or automatically by central server 102. For example, the viewer locations may be grouped based on the venue provided section number (e.g., sections 101, 102, 201, 201, 301, and 302). The viewer locations may also be grouped based on venue provided section level (e.g., levels 100, 200, and 300). The viewer locations may further be grouped based on the viewer location and/or media surface values derived by the analysis process 600 (of FIG. 6). Accordingly, the groups of viewer locations may have a representative viewer location metric and/or a representative media surface metric, as well as a representative color associated therewith. The representative viewer location metric and media surface metric may be an average of individual viewer location metrics and media surface metrics, respectively, in the group.

[0058] As such, in an embodiment, the attribute may be a distance of the viewer locations from a particular point on the media surface, and the heat map’s colors may represent different ranges of distances (e.g., 0 ft. to 6 ft., 6 ft. to 9 ft., 9 ft. to 12 ft., etc.) from a particular point on the media surface for different sections of viewer locations. In another embodiment, the attribute may be an amount (e.g., percentage) of a field of view occluded by venue structure (e.g., a pole or an overhang) or viewer location geometry (e.g., where a seat is located) from viewer locations, and the heat map’s colors may represent different ranges of amounts (e.g., 0.00% to 0.016%, 0.016% to 0.32%, 0.32% to 0.48%, etc.) of fields of view obstructed by venue geometry or viewer geometry for different sections of viewer locations. In yet another embodiment, the attribute may be an amount (e.g., a percentage) of media content viewable from the viewer locations, and the heat map’s color may represent different ranges of amounts of screen amount (e.g., 0% to 10%, 10% to 20%, 20% to 30%, etc.) of screen content viewable for different sections of viewer locations. [0059] FIG. 9 illustrates an example of viewer location heat map 900 of venue 200 (of

FIG. 2), according to some embodiments. As illustrated, viewer location heat map 900 may present groups of viewer locations 902A-H having different colors. The different colors represent different ranges of viewer location metrics associated with an attribute of the media surface or the media content mapped on the media surface.

[0060] Further, viewer location heat map 900A may be interactive. As such, viewer location heat map 900 may permit a user to select a particular group of viewer locations 902A-H and view a media surface heat map corresponding to the particular group of viewer locations such that the user can place themselves in any viewer location within the heat map. As described above, the groups of viewer locations 902A-H may have representative viewer location metrics which are based on each viewer location metrics in the group. Moreover, viewer location heat map 900 may permit a user to select a particular viewer location and view a media surface heat map corresponding to the viewer location. In some embodiments, although not illustrated, individual and/or group metrics in a table or list format may be provided for user review, such as to investigate a specific individual and/or group viewer location.

[0061] FIGs. 10A-C illustrates selected groupings of viewer location heat map lOOOA-C and their corresponding media surface heat maps 1002A-C, according to some embodiments. As described above, the viewer locations may be grouped in the experiment process 304 (of FIG. 3), and their corresponding attributes may be determined in the process analysis 322 (of FIG. 3). As such, the user may select one of the predetermined groupings and view the corresponding media surface heat map. Alternatively, as also described above, attributes may be derived for each viewer location in the process analysis 322. Accordingly, the user may selectively group the viewer locations and view the corresponding media surface heat maps. Moreover, although not illustrated, the user may select a particular viewer location, either before or after selecting the group, and view the corresponding media surface heat map. The view of the particular viewer location may be from a first- or third- person view.

[0062] FIG. 11 illustrates an example field of view 1100 of media content mapped onto a media surface from a selected viewer location or viewer location group, according to some embodiments. The field of view 1100 may include a center of the field of view 1102 and a middle 1104 of the center of the field of view 1002. This may indicate a location on mapped media content that is naturally within the perspective of the viewer location grouping. The field of view 110 may also be utilized as a user-supplied parameter to the analysis to reduce the metrics from this area on the media surface and get a better idea of localized metrics. Moreover, although not illustrated, the user may select a particular viewer location, either before or after selecting the group, to acquire the corresponding field of view of the media content mapped onto the surface.

[0063] FIG. 12 illustrate an example central server 102 of the system 100 of FIG. 1, according to some embodiments. Central server 102 includes content library 1202, venue library 1204, venue switcher 1206, playback module 1208, lighting simulation module 1210, control module 1212, navigation module 1214, augmented or mixed reality (AR) module 1216, asset system 1218, audio system 1220, application programming interface (API) 1222, and animation system 1224. As discussed above, venue servers 104A-B and/or user devices 106A-B (of FIG. 1) may perform the processing of central server 102. Accordingly, the venue servers 104A-B and/or user devices 106A-B may also include these components.

[0064] Content library 1202 stores media content that may be presented on media surfaces of various venues. This includes curated content that allows for someone to understand and get a feel for the venue as well as custom content to allow for designing and reviewing the new content. Moreover, content library 1202 permits importing, loading, and streaming content from a variety of local and external sources (e.g., in memory media, local storage, networked storage, and cloud services).

[0065] Venue library 1204 stores curated and custom venue files in a three- or two- dimensional asset format that can be easily placed and transformed (e.g., translated, rotated, scaled) anywhere inside the venue. Venue library further permits loading, importing, streaming externally curated, and custom venue files.

[0066] Venue switcher 1206 permits the selection of a particular venue to be simulated.

This permits an understanding of how content, seating, and stage arrangements translate from venue to venue. Each venue has custom data associated with it, including a format that describes all seating and viewer location positions and groups. As such, the venue switcher 1206 also allows testing theoretical architectural models and media surfaces.

[0067] Playback Module 1208 is a virtual projection studio suited for implementing any kind of content projection or transformation on media surfaces of a venue. As such, the playback module plays back any media (e.g., images, video, procedural content, and real time content) to simulate the media content experience inside of the venue. The playback module 1208 may use real-time GPU accelerated shaders to transform various spherical and rectilinear content to be displayed with any geometric transformation. The playback module 1208 also may project content onto multiple focal points of the media planes to optimize content for multiple sections of seating. In doing so, playback module 1208 supports any arbitrary output shapes on the media surface (e.g., rectangular, circular, split-screen, other shape templates) and emulates different lens/projection types (e.g., fisheye, wide-angle, cubemap, equirectangular, etc.). Playback module 1208 also permits granular control of the projections, including playback, scale, rotation, translation, brightness, and color of media.

[0068] Lighting simulation module 1210 simulates the actual lighting of the media surfaces (e.g., display screens) based on the venue’s panel type, layout, and size. As such, lighting simulation module 1210 can visualize different lighting (e.g., LED) pitches, for example, by using custom GPU accelerated shaders to treat close and far distances differently by providing various levels of detail. For example, a close distance would simulate individual pixels, and a far distance would simulate the light-converging.

[0069] Along these lines, lighting simulation module 1210 can simulate various lighting modes inside of the venue including based on the LED media surface, lighting, media plane total brightness, effects of lighting on architecture, and effects of lighting on the user’s point of view, and the effects of various material properties on perceived lighting.

[0070] Control module 1212 allows for the control of the simulation by a single user or multiple users to allow most or all options of the system to be manipulated through a local or external user interface to assist and control the simulation of the venue. Additionally, control module 1212 permits multiple users in the same or different instances of the simulation to interact and review media content together.

[0071] Navigation module 1214 allows users to move to different viewer locations in the venue to receive a hint of how the presentation may be presented. Navigation module 1214 may provide preselected points of view, point and shoot teleporting, point and snap to seat teleporting, directional incremental seat movement, free roam teleporting abilities, and interactive mini-maps. [0072] AR module 1216 generates a field of vision that would be provided by specific

AR user devices for various viewer locations in the venue. For example, the Microsoft Hololens AR device may provide a unique field of vision for a specific viewer location in the venue. As such, the AR module 1216 generates the unique field of vision that would be provided by the Microsoft Hololens AR device for the specific view location in the venue.

[0073] AR module 1216 may also provide the various capability of different AR user devices. For example, AR user devices provide different types of spatial and content tracking systems, degrees of freedom (e.g., three degrees of freedom versus six degrees of freedom), and latency. As such, AR module 1216 replicates the feel and look of different AR user devices, for example, by mirroring their spatial and content tracking, degrees of freedom, and latency. Further, AR module 1216 may simulate future AR devices to concept and review content for such devices.

[0074] Asset system 1218 allows users to import and load static or animated three- or two- dimensional assets from either a curated library or custom files in a format that can be easily placed and/or transformed (e.g., translation, rotation, scale) anywhere inside the venue. Further, the assets may permit animation and custom programming. This provides users with an understanding of the effect that the venue architecture and spherical media planes have on the media content, as well as on the layout of the media content on the media surfaces and the occlusion of the media content from different viewpoints in the venue. This also allows users to compare representative media content for possible show types.

[0075] Audio system 1220 simulates various mono, stereo, ambisonic, and/or programmable point sources of audio to evaluate and/or review mixes inside of a simulation of the venue. Audio system 1220 may also simulate how audio interacts with various materials and architecture inside of the venue. Audio system 1220 generated audio may be programmed and/or animated, as well as exported for use in other audio systems.

[0076] API 1222 allows for an external or internal program or subroutine to control all aspects of the simulation for coordination or control of the experience.

[0077] Animation System 1224 allows users to control, record, and/or playback audio, media content, and/or two- or three- dimensional assets through the use of a timeline and/or an event system. Thus, animation system 1224 allows users to create an experience inside of the venue simulation, such as the ability to orchestrate external APIs and systems that work in unison with the simulation to show you the possibilities of a show. This data can further be exported to other external programs for further editing and playback.

[0078] FIG. 13 is a flowchart for a method 1300 for providing visual guidance on presenting content on a media surface of a venue, according to some embodiments. FIG. 14 is a flowchart for a method 1400 for deriving a metric for determining an attribute of a venue and/or a media content mapped onto a media surface of the venue, according to some embodiments. FIG. 15 is a flowchart for a method 1500 for determining an attribute of one or both of a venue and a media content mapped onto a media surface of the venue, according to some embodiments. Methods 1300/1400/1500 can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps may be needed to perform the disclosure provided herein. Further, some of the steps may be performed simultaneously or in a different order than shown in FIG. 3, as will be understood by a person of ordinary skill in the art.

[0079] Referring now to FIG. 13, method 1300 shall be described with reference to FIGs.

1-3. However, method 1300 is not limited to those example embodiments.

[0080] In 1302, the central server 102 maps experiment media content onto the media surface 202 of the venue 200. As in 302, prior to the mapping, an experiment may be selected by a user for deriving various features of the venue (e.g., distortion, view quality, distance, and media surface visibility) and their corresponding metrics.

[0081] In 1304, the central server 102 extract experiment key features from the mapping of the experiment media content onto the media surface 202 of the venue 200.

[0082] In 1306, the central server 102 determines a view for viewer locations 206 A-D in the venue 200 based on the experiment key features and media surface geometry. In some embodiments, as in 418 to 424, the central server may determine if there are a plurality of groups of viewer locations 206A-D. And, then, for each group, sequentially determine for the view for the viewer locations 206A-D. [0083] In 1308, the central server 102 derives experiment metrics based on the view from the plurality of viewer locations 206A-D. As in 430 to 434, the experiment metrics may be derived for each viewer location 206A-D, and each group viewer locations 206A-D.

[0084] In 1310, the central server 102 maps actual visual content onto the media surface

202 of the venue 200. The actual visual content is different from the experiment visual content.

[0085] In 1312, the central server 102 extracts actual key features from the mapping of the actual visual content onto the media surface 202 of the venue 200. The actual key features are different from the experiment key features.

[0086] In 1314, the central server 102 derives actual viewer location metrics based on the actual key features and the experiment metrics.

[0087] In 1316, the central server 102 determines attributes of the actual visual content based on the actual metrics and the experiment key metrics.

[0088] In 1318, the central server 102 determines hints for presenting the actual visual content to the viewer locations and on the media surfaces based on the attributes.

[0089] In 1320, the central server 102 provides the hints to a user.

[0090] Referring now to FIG. 14, method 1400 shall be described with reference to FIGs.

1, 2, and 4. However, method 1400 is not limited to these example embodiments.

[0091] In 1402, the central server 102 receives a selection of visual content.

[0092] In 1404, the central server 102 receives a selection of the venue 200. The venue

200 having a media surface 202, a stage 204, and a plurality of viewer locations 206A-E (e.g., seats and standing locations).

[0093] In 1406, the central server 102 maps the visual content onto the media surface 202 of the venue 200.

[0094] In 1408, the central server 102 extracts key features unique from the media surface 202 and/or the visual content mapped onto the media surface 202.

[0095] In 1410, the central server 102 receives a selection of a viewer location in the venue 200, which includes at least a position and orientation of the viewer location relative to the media surface 202 of the venue 200. In some embodiments, as in 418, the central server 102 receives a selection of a group of viewer locations 206A-D (e.g., a section or level) in the venue 200. [0096] In 1412, the central server 102 determines media surface geometry viewable from the viewer location in the venue 200 based on the position and orientation of the viewer location in the venue 200. Accordingly, if a group of viewer locations is selected as in 420, one of the viewer locations in the group is selected as in 422.

[0097] In 1414, the central server 102 determines a view from the viewer location in the venue based on the extracted key features and the media surface geometry.

[0098] In 1416, the central server 102 determines viewer location metrics unique to the view from the viewer location.

[0099] As described above, as in 418, the central server 102 may receive a selection of a group of viewer locations. Accordingly, once a first viewer location is processed in 420- 434, the next viewer locations may be processed in 420-434, and their respective viewer location metrics may be derived. Moreover, group viewer location metrics representing the entire group of viewer locations may be derived based on the individual viewer location metrics.

[0100] Referring now to FIG. 15, method 1500 shall be described with reference to FIGs.

1, 6, 7, and 9-11. However, method 1500 is not limited to those example embodiments.

[0101] In 1502, the central server 102 receiving a selection of analysis corresponding to an attribute from user device 106A-B.

[0102] In 1504, the central server 102 receives a selection of visual content and of media surface to be analyzed from user device 106A-B.

[0103] The selection of the analysis, visual content, and/or media surface may be provided on user interface 700.

[0104] In 1506, the central server 102 maps the visual content onto the media surface of the venue.

[0105] In 1508, the central server 102 extracts custom key features from the media content and/or media surface.

[0106] In 1510, the central server 102 receives related, previously determined experiment key features and metrics from storage 612.

[0107] In 1512, the central server 102 receives related, previously determined experiment key features and metrics.

[0108] In 1514, the central server 102 determines custom metrics based on the custom key features, experiment key features, and/or the experiment metrics. As described with respect to 614, 616, 620, and 622, custom metrics may be derived for viewer location groups and/or for media the media surface.

[0109] In 1516, the central server 102 presents the visual indicator of the attribute based on the custom metrics. In some embodiments, the visual guidance may be provided as a heat map. If the custom metrics are derived for the viewer location groups, the heat map may be of the viewer locations as illustrated in FIG. 9. If the custom metrics are derived for the media surface, the heat map may be of the media surface, as illustrated in FIGs. 10A-C. Moreover, in some embodiment, the visual guidance may of a sample view of the media content from the viewer location, as illustrated in FIG. 11.

[0110] Various embodiments may be implemented, for example, using one or more well- known computer systems, such as computer system 1600 shown in FIG. 16. One or more computer systems 1600 may be used, for example, to implement any of the embodiments discussed herein, as well as combinations and sub-combinations thereof.

[0111] Computer system 1600 may include one or more processors (also called central processing units, or CPUs), such as a processor 1604. Processor 1604 may be connected to a communication infrastructure or bus 1606.

[0112] Computer system 1600 may also include user input/output device(s) 1603, such as monitors, keyboards, pointing devices, etc., which may communicate with communication infrastructure or bus 1606 through user input/output interface(s) 1602.

[0113] One or more processors 1604 may be a graphics processing unit (GPU). In an embodiment, a GPU may be a processor that is a specialized electronic circuit designed to process mathematically intensive applications. The GPU may have a parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images, videos, etc.

[0114] Computer system 1600 may also include a main or primary memory 1608, such as random access memory (RAM). Main memory 1608 may include one or more levels of cache. Main memory 1608 may have stored therein control logic (i.e., computer software) and/or data.

[0115] Computer system 1600 may also include one or more secondary storage devices or memory 1610. Secondary memory 1610 may include, for example, a hard disk drive 1612 and/or a removable storage device or drive 1614. Removable storage drive 1614 may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.

[0116] Removable storage drive 1614 may interact with a removable storage unit 1618.

Removable storage unit 1618 may include a computer-usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage unit 1618 may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/ any other computer data storage device. Removable storage drive 1614 may read from and/or write to removable storage unit 1618.

[0117] Secondary memory 1610 may include other means, devices, components, instrumentalities, or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system 1600. Such means, devices, components, instrumentalities, or other approaches may include, for example, a removable storage unit 1622 and an interface 1620. Examples of the removable storage unit 1622 and the interface 1620 may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

[0118] Computer system 1600 may further include a communication or network interface

1624. Communication interface 1624 may enable computer system 1600 to communicate and interact with any combination of external devices, external networks, external entities, etc. (individually and collectively referenced by reference number 1628). For example, communication interface 1624 may allow computer system 1600 to communicate with external or remote devices 1628 over communications path 1626, which may be wired and/or wireless (or a combination thereof), and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system 1600 via communication path 1626.

[0119] Computer system 1600 may also be any of a personal digital assistant (PDA), desktop workstation, laptop or notebook computer, netbook, tablet, smart-phone, a virtual / mixed / augmented reality device, smart-watch or other wearable, appliance, part of the Intemet-of-Things, and/or embedded system, to name a few non-limiting examples, or any combination thereof. [0120] Computer system 1600 may be a client or server, accessing or hosting any applications and/or data through any delivery paradigm, including but not limited to remote or distributed cloud computing solutions; local or on-premises software (“on premise” cloud-based solutions); “as a service” models (e.g., content as a service (CaaS), digital content as a service (DCaaS), software as a service (SaaS), managed software as a service (MSaaS), platform as a service (PaaS), desktop as a service (DaaS), framework as a service (FaaS), backend as a service (BaaS), mobile backend as a service (MBaaS), infrastructure as a service (IaaS), etc.); and/or a hybrid model including any combination of the foregoing examples or other services or delivery paradigms.

[0121] Any applicable data structures, file formats, and schemas in computer system

1600 may be derived from standards including but not limited to JavaScript Object Notation (JSON), Extensible Markup Language (XML), Yet Another Markup Language (YAML), Extensible Hypertext Markup Language (XHTML), Wireless Markup Language (WML), MessagePack, XML User Interface Language (XUL), or any other functionally similar representations alone or in combination. Alternatively, proprietary data structures, formats or schemas may be used, either exclusively or in combination with known or open standards.

[0122] In some embodiments, a tangible, non-transitory apparatus or article of manufacture comprising a tangible, non-transitory computer useable or readable medium having control logic (software) stored thereon may also be referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system 1600, main memory 1608, secondary memory 1610, and removable storage units 1618 and 1622, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system 1600), may cause such data processing devices to operate as described herein.

[0123] Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art(s) how to make and use embodiments of this disclosure using data processing devices, computer systems and/or computer architectures other than that shown in FIG. 16. In particular, embodiments can operate with software, hardware, and/or operating system implementations other than those described herein. [0124] It is to be appreciated that the Detailed Description section, and not any other section, is intended to be used to interpret the claims. Other sections can set forth one or more but not all exemplary embodiments as contemplated by the inventor(s), and thus, are not intended to limit this disclosure or the appended claims in any way.

[0125] While this disclosure describes exemplary embodiments for exemplary fields and applications, it should be understood that the disclosure is not limited thereto. Other embodiments and modifications thereto are possible, and are within the scope and spirit of this disclosure. For example, and without limiting the generality of this paragraph, embodiments are not limited to the software, hardware, firmware, and/or entities illustrated in the figures and/or described herein. Further, embodiments (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.

[0126] Embodiments have been described herein with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof.

The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined as long as the specified functions and relationships (or equivalents thereof) are appropriately performed. Also, alternative embodiments can perform functional blocks, steps, operations, methods, etc. using orderings different than those described herein.

[0127] References herein to “one embodiment,” “an embodiment,” “an example embodiment,” or similar phrases, indicate that the embodiment described can include a particular feature, structure, or characteristic, but every embodiment can not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other embodiments whether or not explicitly mentioned or described herein. Additionally, some embodiments can be described using the expression “coupled” and “connected” along with their derivatives. These terms are not necessarily intended as synonyms for each other. For example, some embodiments can be described using the terms “connected” and/or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. The term “coupled,” however, can also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.

[0128] The breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.