MULTI-PLATFORM VIRTUAL RETAIL STORE ENGINE

The present specification provides a multiplatform virtual retail store engine. The specification can have particular application to client devices with augmented or virtual reality hardware that interact with different platforms with metaverse capabilities. Rich experiences are provided on client hardware while making efficient use of available processing, memory and communication resources. Embodiments discuss the provision of a single retail store model which is dynamically adapted for generation across the plurality of different platforms according to the different metaverse capabilities.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of European Patent Application No. 22315320.6, filed Dec. 8, 2022, entitled “MULTI-PLATFORM VIRTUAL RETAIL STORE ENGINE”; the entire contents of which are incorporated herein by reference.

BACKGROUND

Internet browsing began with the original hypertext markup language (HTML). HTML has iterated to its fifth version and continues to evolve. Elegant web browsing experiences are now commonplace, even on wireless mobile phones with small screens. With the correct equipment, augmented reality and virtual reality environments (commonly referred to as the metaverse), are on the cusp of providing even richer experiences than offered by traditional browsing. Standard Internet speeds now offer commonplace real time communication amongst large groups of people. At the same time, Internet content is increasing in volume and changing rapidly. Enormous unresolved challenges are present in permitting small and medium sized businesses, especially those in particular sectors, the opportunity to efficiently supplement or transition their business into virtual reality and augmented reality environments.

SUMMARY

An aspect of the present specification provides an adaptation engine comprising:a network interface configured to communicate with a platform server configured to provide a metaverse space; anda processor configured to:access a memory storing a metaverse model to be provided in the metaverse space;access criteria for providing metaverse objects in the metaverse space;determine incompatibilities between objects of the model and the criteria;for a given object of the model associated with an incompatibility:implement one or more substitutions to replace the given object with a corresponding object adapted according to the criteria;update, at the memory, the model to replace the given object with the corresponding object; andprovide the updated to the metaverse server to cause the metaverse server to generate the metaverse model in the metaverse space according to the updated model such that the metaverse server is configured to control output at a metaverse human-machine interface (HMI) to according to the corresponding object.

The processor can be further configured to access the criteria for providing the metaverse locations in the metaverse space by:retrieving the criteria from the metaverse server.

The processor can be further configured to determine incompatibilities between objects of the model and the criteria by:determining that one or more of a characteristic, a size, a color, a skin, a noise, and an action of the given object is not allowed by the criteria.

The processor can be further configured to implement the one or more substitution algorithms to replace the given object with the corresponding object generated according to the criteria by one or more of:changing an object to an image or video of the object in the corresponding object;changing a color of the given object to a respective color allowed by the criteria;changing the color of the given object to the respective color allowed by the criteria, the respective color allowed by the criteria selected to reduce a difference between the color and the respective color;changing a three-dimensional object to a two-dimensional object;changing a two-dimensional object to a three-dimensional object;changing the resolution of an object;changing the style of an object;implementing a curve as a plurality of squares on an angle;changing at least one of shape and configuration of the object; andchanging dynamic content of the given object to static content of the corresponding object.

The criteria can further comprise a fallback criteria for replacing the given object with the corresponding object.

The processor can be further configured to define certain elements in the model as being incapable of substitution when the model is being initially stored.

The processor can be further configured to provide a plurality of substitutions of the model to mimic dynamic content one a platform server having criteria limited to static content.

The processor can be further configured to provide immersive content representing travel services from a plurality of travel service provider content engines.

The processor can be further configured to connect to a second adaptation for providing immersive content to the metaverse human-machine interface.

Another aspect of the specification provides a method to communicate with a platform server configured to provide a metaverse space comprising:accessing a memory storing a metaverse model to be provided in the metaverse space;accessing criteria for providing metaverse objects in the metaverse space;determining incompatibilities between objects of the model and the criteria;for a given object of the model associated with an incompatibility:implement one or more substitutions to replace the given object with a corresponding object adapted according to the criteria;update, at the memory, the model to replace the given object with the corresponding object; andproviding the updated to the metaverse server to cause the metaverse server to generate the metaverse model in the metaverse space according to the updated model such that the metaverse server is configured to control output at a metaverse human-machine interface (HMI) to according to the corresponding object.

The method can further comprise accessing the criteria for providing the metaverse locations in the metaverse space by:retrieving the criteria from the metaverse server.

The method can further comprisedetermining incompatibilities between objects of the model and the criteria by:determining that one or more of a characteristic, a size, a color, a skin, a noise, and an action of the given object is not allowed by the criteria.

The method can further comprise implementing the one or more substitution algorithms to replace the given object with the corresponding object generated according to the criteria by one or more of:changing an object to an image or video of the object in the corresponding object;changing a color of the given object to a respective color allowed by the criteria;changing the color of the given object to the respective color allowed by the criteria, the respective color allowed by the criteria selected to reduce a difference between the color and the respective color;changing a three-dimensional object to a two-dimensional object;changing a two-dimensional object to a three-dimensional object;changing the resolution of an object;changing the style of an object;implementing a curve to as a plurality of squares on an angle;changing at least one of shape and configuration of the object; andchanging dynamic content of the given object to static content of the corresponding object.

The method can further comprise a fallback criteria for replacing the given object with the corresponding object.

The method can further comprise defining certain elements in the model as being incapable of substitution when the model is being initially stored.

The method can further comprise providing a plurality of substitutions of the model to mimic dynamic content one a platform server having criteria limited to static content.

The method can further comprise providing immersive content representing travel services from a plurality of travel service provider content engines.

The method can further comprise accessing connecting to a second adaptation for providing immersive content to the metaverse human-machine interface.

Another aspect of the present specification provides an adaptation engine comprising a network interface configured to communicate with a platform server. The platform server is configured to provide a session with a client device. The adaptation engine includes a processor having access to a memory for storing content for rendering over the session. The processor is configured to: receive a request for content to be delivered to the client device from the platform server; determine a platform server computing resource capability; determine a client device computing resource capability; define a session computing resource capability for the session based on the platform server computing resource capability and the client device computing resource capability; access, from the memory, essential content respective to the request; access, from the memory, additional content augmenting the essential content, based on the session computing resource capability; and, generate a response to the request based on the essential content and the additional content.

The platform computing resource capability can include one or more of an augmented reality environment, a virtual reality environment or a metaverse.

The request can be automatically generated by the platform within based on contextual demographic information of an account associated with the client device accessing other content hosted by the platform.

The client device capability can include augmented reality hardware or virtual reality hardware.

The processor can be further configured to select the essential content and any additional content by from aggregated content the combines a plurality of different content. The different content can be stored on different content engines accessible to the adaptation engine via a content aggregation engine.

The platform computing resource capability can be a website and the computing resource capability can be one of a laptop computer, a desktop computer or a mobile phone.

The request can include an electronic request for content relating to travel services directly from the client device. The travel services request can include any aspect of a travel experience, such as a seat selection on a transportation vehicle.

The request can include an electronic request for content relating retail product purchases, medical services, real estate services, and online retail purchases.

Another aspect of the specification provides a device comprising: a communication interface configured to communicate with a metaverse server configured to provide a given metaverse space; and a processor having access to a memory storing metaverse items for rendering in one or more metaverse spaces, the controller configured to:determine metaverse capability data for the given metaverse space;determine human-machine interface (HMI) data defining capability of a metaverse HMI for a given user and limits placed on the metaverse HMI to account for accessibility of the given user;determine that the given metaverse space is being accessed by the given user using the metaverse HMI;one or more of filter and adapt one or more of the metaverse items based on the metaverse capability data and the HMI data; andprovide the metaverse items, as filtered or adapted, to the metaverse server to cause the metaverse server to provide the metaverse items in the given metaverse space to cause physical feedback to the metaverse HMI to indicate the metaverse items, as filtered or adapted.

The processor can be further configured to determine metaverse capability data for the given metaverse space by communicating with the metaverse server.

The processor can be further configured to one or more of filter and adapt at one or more of the metaverse items based on the metaverse capability data and the HMI data by: one or more of filtering and adapting one or more of the metaverse items to account for one or more of a disability, blindness, color blindness, or deafness of the given user as defined by the HMI data.

The processor can be further configured to one or more of filter and adapt at one or more of the metaverse items based on the metaverse capability data and the HMI data by: one or more of filtering and adapting one or more of the metaverse items to account for an age of the given user as defined by the HMI data.

The processor can be further configured to one or more of filter and adapt at one or more of the metaverse items based on the metaverse capability data and the HMI data by: one or more of filtering and adapting one or more of the metaverse items to account for a defined size of a metaverse location at which the metaverse items are to be located within the given metaverse space as defined by the metaverse capability data.

The processor can be further configured to one or more of filter and adapt at one or more of the metaverse items based on the metaverse capability data and the HMI data by: replacing first metaverse item with a second metaverse item.

The processor can be further configured to one or more of filter and adapt at one or more of the metaverse items based on the metaverse capability data and the HMI data by: ignoring a metaverse item such that the metaverse item is not provided in the given metaverse space.

The processor can be further configured to one or more of filter and adapt at one or more of the metaverse items based on the metaverse capability data and the HMI data by: converting a three-dimensional metaverse item to a two-dimensional metaverse item.

Methods, systems and devices and apparatus according to any combination or variant of the foregoing are contemplated. In summary, in particular, apparatus comprising means to implement each of the steps set out in the methods described above or in the accompanying claims are contemplated. Moreover, also contemplated is a computer program, computer program product or computer readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the steps of any of the methods set out above or in any of the accompanying method claims.

DETAILED DESCRIPTION

FIG.1shows a system for multi-platform content normalization indicated generally at100. System100comprises a plurality of interaction platforms104104-1,104-2. . .104-n. (Collectively, platforms104-1,104-2. . .104-nare referred to as platforms104, and generically, as platform104. This nomenclature is used elsewhere herein.) Platforms104can be based on any present or future interactive communication platforms such as a simple messaging service (SMS) interactive service, a browser-based e-commerce travel booking environment such as Travelocity™, Expedia™ or any of the individual airline or hotel booking engines. Interactive communication platforms also include social media environments like Facebook™, Tiktok™, or even communication channel such as Whatsapp™, or a massively multi-player environment such as Second Life™, MineCraft™, Fortnite™, or a virtual reality 3D metaverse environment such as Roblox™ or Horizon Worlds™. Certain non-limiting examples for each platform104are labelled inFIG.1for purpose of discussion. Namely, platform104-1is labelled with the example “Metaverse1” (such as Roblox™ or Horizon Worlds™); platform104-2is labelled with the example “Metaverse2”; platform104-3is labelled with the example “Multimedia Platform1” (such as Second Life™); platform104-4is labelled with the “Multimedia Platform2” (such as Expedia™); platform104-nis labelled with the “Travel Website”. These examples are nonlimiting and purely illustrative. Other platforms and combinations thereof are contemplated.

In system100, platforms104connect to a network106. Any network topology is contemplated, such as, by way of non-limiting example, the Internet, one or more intranets, or combinations thereof. Network106interconnects platforms104, with: a) at least one content engine108; b) at least one content aggregation engine112that is coupled with a platform adaptation engine116; and, c) a plurality of client devices120. (In a variant, a single content engine108would obviate the need for content aggregation engine112).

As will be explained in greater detail below, each content engine108can be based upon its own computing architecture and will periodically send content to aggregation engine112for access by one or more client devices120via one or more platforms104. Content engines108can be based on any type of known or future Internet content. In a present illustrative, but non-limiting embodiment, content engines108are operated by travel actors within the travel industry, including, but not limited to, airlines, railway systems, car rental agencies, cruise line operators, hotels, restaurants, resorts, and spas.

Thusly, content aggregation engine112periodically receives data files including content that has been sent by content engines108via network106. In the present example embodiment, content aggregation engine112can be operated by, or accessed by, for example, a travel booking engine. To elaborate, a travel booking engine that could operate content aggregation engine112could include well-known travel booking engines such as Expedia™, Travelocity™ or Hotels.com™. There are many other travel booking engines. Content engine112can thus be operated directly by such a travel booking engine, or can be hosted by a travel data aggregator, often referred to as a Global Distribution System (“GDS”), such as Amadeus™, Sabre™, Travelport™, Apollo™, Galileo™, Travelfusion™, or Duffel™ Aggregation engine112thus collects content from content engines108for generation on one or more platforms104, such that content from engines108can be accessed by devices120.

System100also includes adaptation engine116which normalizes content from engines108across platforms104and devices120. Adaptation engine116will be discussed in greater detail below.

Client devices120can be any type of human machine interface (HMI) for interacting with platforms104. For example, client devices120can include virtual reality gear, augmented reality gear or mixed reality gear, such as headsets, tracking headsets, holographic devices, hand controllers, full body sensors, haptic feedback, temperature feedback, smell feedback, treadmill or other foot tracking and feedback technology, and/or combinations of any of the foregoing. In addition, client devices120can include smart televisions, traditional laptop computers, desktop computers, mobile phones, tablet computers and any other device that can be used by consumers to receive content via one or more of the platforms104that complement the input and output hardware devices associated with a given client device120. Such traditional client devices120can also have connected lights, lightstrips, speakers to provide a multi-media experience on such traditional client devices.

According to the specific example inFIG.1, device120-1is a virtual reality headset; device120-2is a first virtual reality station comprising a headset with head, hand and feet tracking technology; device120-3is a virtual reality headset with haptic feedback hand controllers; device120-4is a second virtual reality station comprising a headset with hand, feet, and torso tracking and haptic feedback technology; device120-5is a traditional laptop computer and device120-pis a traditional mobile telephone. Again, these are non-limiting examples, but their diversity of input and output devices is illustrative of the diverse human-machine interface aspects of the present specification.

FIG.2shows a schematic diagram of a non-limiting example of internal components of a computing device200. The infrastructure of computing device200, or a variant thereon, can be used to implement any of the computing nodes, including data source engine108, data aggregation engine112, adaption engine116or client devices120. Other than client devices120which are based on their own unique input and output hardware form factors as human-machine interfaces, where desired and/or the context permits, one or more of the remaining nodes in system100can be implemented virtually inside a single computing device200.

In this example, computing device200includes at least one input device204. Input from device204is received at a processor208which in turn controls an output device212. In the context of all the nodes of system100, input device204can be a traditional keyboard and/or mouse may be connected to provide physical input. Likewise output device212can be a display or audio speakers. In variants, additional and/or other input devices204or output devices212are contemplated or may be omitted altogether as the context requires.

In the specific context of client devices120, input devices may include physical or virtual keyboards, accelerometers, input buttons, pointing devices, treadmills, temperature sensors, cameras, microphones, global positioning systems (GPS), gyroscopes, olfactometers, velocity sensors, accelerometers, medical sensors (such as pulse rate, blood pressure, stress level, skin moisture level) or any other known or future contemplated input device associated with human-machine interfaces. In the context of client devices120, output devices may include traditional displays, head-set stereoscope virtual reality displays, augmented or mixed reality displays, haptic feedback, heating or cooling apparatuses, smell generators, sound devices, surround sound systems, smart light bulbs, smart light strips, or any other known or future contemplated output devices associated with human-machine interfaces. Client devices120are configured to interact with one or more platforms104via network106according to the hardware capabilities of a given client device and the corresponding interactive communication capabilities of a given platform104. (Such hardware, software and interactive communication capabilities may be generically referred to herein as computing resource capabilities.)

Processor208may be implemented as a plurality of processors or one or more multi-core processors. The processor208may be configured to execute different programing instructions responsive to the input received via the one or more input devices204and to control one or more output devices212to generate output on those devices.

To fulfill its programming functions, the processor208is configured to communicate with one or more memory units, including non-volatile memory216and volatile memory220. Non-volatile memory216can be based on any persistent memory technology, such as an Erasable Electronic Programmable Read Only Memory (“EEPROM”), flash memory, solid-state hard disk (SSD), other type of hard-disk, or combinations of them. Non-volatile memory216may also be described as a non-transitory computer readable media. Also, more than one type of non-volatile memory216may be provided.

Volatile memory220is based on any random access memory (RAM) technology. For example, volatile memory220can be based on a Double Data Rate (DDR) Synchronous Dynamic Random-Access Memory (SDRAM). Other types of volatile memory220are contemplated.

Processor208also connects to network106via a network interface232which includes a buffer, a modulator/demodulator or MODEM, over the various links and/or internet that connects the server equipment to other server equipment. Depending on the node in system100, network interface232can also be used to connect a given node to another computing device that has an input and output device, thereby obviating the need for input device204and/or output device212altogether.

Programming instructions in the form of applications224are typically maintained, persistently, in non-volatile memory216and used by the processor208which reads from and writes to volatile memory220during the execution of applications224. One or more tables or databases228can also be maintained in non-volatile memory216for use by applications224.

FIG.3shows adaptation engine116in greater detail, identifying its sub-elements according to the structure of computing device200fromFIG.2. The nomenclature to identify sub-elements of engine116inFIG.3borrows from the analogue elements inFIG.2. Specifically, elements inFIG.3are of the format “116-2 ##” whereby the “116” prefix identifying adaptation engine116while the “2 ##” suffix refers to the corresponding two-hundred series element fromFIG.2. Thus, specific discussion of sub-elements on engine116will use this nomenclature hereafter. (This nomenclature may also be used to reference other sub-elements of nodes in system100without necessarily specifically showing a corresponding Figure.)

FIG.4shows a flowchart depicting a method for multi-platform content normalization indicated generally at400. Method400can be implemented on system100. Persons skilled in the art may choose to implement method400on system100or variants thereon, or with certain blocks omitted, performed in parallel or in a different order than shown. Method400can thus also be varied. However, for purposes of explanation, method400as per the flow chart ofFIG.4and will be described in relation to its performance on system100with a specific focus on adaptation engine116and its interactions with the other nodes in system100.

Block404comprises receiving a content request. The content request can originate from a given client device120during a session within a session between that client device120and a given platform104. (Alternatively, or in addition, the content request can originate from a given platform104based on an inference made by platform104of an experience that is to be tailored to a given client device120.) The establishment of the session is governed by the architecture of the platform104, according to the credential management and authentication protocols employed by the platform104, and according to the account associated with a user of the relevant client device120. As will be discussed in greater detail below, the specific nature of the content request at block404thus depends on the context of the session, but in general terms includes sending the request to content aggregation engine112from the platform104.

FIG.5shows system100illustrating an example session504between virtual reality station client device120-4and metaverse platform104-2expressed as a dotted line between these two nodes.FIG.5also shows an example request508(representing performance of block404) from metaverse platform104-2to content aggregation engine112expressed as a dotted line between these two nodes.

The nature of the content request is not particularly limited, but with a few illustrative examples a person of skill in the art will come to appreciate the scope of the present embodiment. As noted earlier, system100can have broad application to the travel industry, and thus session504can include the opportunity, within a virtual reality environment, to browse, interact with, select and, if desired, provide the technology infrastructure to purchase various travel services.FIG.6shows an example illustration of a point in time of session504-1within a virtual reality session within metaverse platform104-2. (The -1suffix in session504-1representing the rendering by platform104-2point in time of the session, and this nomenclature is repeated). A person skilled in the art will recognize that the view inFIG.6is from a third person perspective, and not from the first-person perspective that could be experienced by the user of client device120-4during session504. ThusFIG.6shows a client avatar606associated with the user account of client device120-4.FIG.6also shows a travel agent avatar608that may be automated or controlled by a human via another client device120. The entire scene within session504-1represents a rendering of a travel agency environment, with client avatar606engaging a travel agent avatar608to browse travel services. Travel agent avatar608is thus shown inFIG.6as demonstrating various objects associated with vacation travel including an aircraft612, palm trees616, a beach chair620and associated umbrella624and a pair of airline seats628.

According toFIG.6, at this point in session504-1client avatar606is shown in the seat selection stage of purchasing an airline ticket respective to a given flight on aircraft612, and thus travel agent avatar608is represented as showing airline seats628to avatar606. Thus, according to this example, the request508inFIG.5can represent a portion of seat selection sub-routine, within an overall flight seat purchasing routine, where that sub-routine includes a request for the seat map associated with aircraft612so that a seat within the aircraft612for the selected flight can be chosen as part of the purchase of the airline ticket.

At this point the overall context of system100should be re-emphasized. In a travel industry context, content aggregation engine112can access content from a number of travel industry actors who each host content engines108. Thus the information regarding the specific flight number that utilizes aircraft612and the associated seat map from that flight can be sent from the content engine108that manages the flight schedules for that specific flight and aircraft612. In this manner the travel agent avatar608within the metaverse platform104-2has access, via content aggregation, to a plurality of travel assets hosted by different content engines108as aggregated by content engine112. Thus the specific seat selection exercise represented within session504-1is merely one of many different types of hospitality or travel selection exercises that can be effected within session504, such as, by way of non-limiting examples, airline ticket purchases, hotel room selection, car rental selection, taxi bookings, excursion bookings, concerts, indoor or outdoor events and festivals, dining receptions, exhibitions, and/or any other travel experience that can occur from the beginning of travel to its conclusion. The client avatar606can thus be presented with a complete simulation of the complete travel experience, with browsing and selection options offered throughout the entire simulation. The seat selection request508and the seat selection exercise in session504-1is thus but one non-limiting illustrative example of the travel purchase interactions contemplated by the present specification. Where system100is applied to other industries beyond travel, even more possible types of interactions are possible.

Continuing now with the example of the seat selection, once request508(from block404) is received at content aggregation engine112, then method400advances to block408.

Block408comprises determining the platform capability. In system100, block408is performed by adaption engine116working in concert with aggregation engine112. Adaption engine116is thus configured to maintain dataset116-228-1which includes all of the capabilities of the various platforms104. Alternatively, such capabilities may be sent dynamically along with request508, or a hybrid approach may be employed where some capabilities are stored locally in dataset116-228-1while others are sent along with the request508. Overall, block408can be based on an application programming interface (API) or similar functionality provided by the operator of each platform104. Thus, before a response to the request508is made, adaptation engine116is configured to assess what forms a response may take that will complement the functionality of the platform104that issued the request508at block404.

Continuing with the present example, at block408, based on the fact that request508came from metaverse platform104-2, the capability determination will note that platform104-2is a metaverse environment with a given set of parameters for generating virtual objects and having interactions with those objects according to the specific technological architecture of metaverse platform104-2. As can be noted from scene504-1, the metaverse environment is rich and contemplates a virtual reality environment.

Block412comprises determining the client device capability. More specifically, block412comprises determining the capability of the client device that generated the request508at block404. In system100, block408is performed by adaption engine116working in concert with aggregation engine112. Adaption engine116can thus be configured to maintain a second dataset116-228-2which includes all of the capabilities of the various client devices120. Alternatively, such capabilities may be dynamically sent along with request508, or a hybrid approach is possible where some capabilities are sent with the request508and others are maintained within dataset116-228-2. Indeed, like block408, block412can also be effected as part of any API associated with the relevant platform104. Such client device capabilities are determined based on the specific input and output device hardware configurations of the human-machine interface associated with the requesting client device120. In the example ofFIG.5, virtual reality station client device120-4is noted to be a full body virtual reality rig, complete with haptic feedback and sensing for the eyes, hands, torso, and feet.

Block416comprises accessing the requested content. In the specific example being discussed in relation to a seat map for aircraft612, it is contemplated thus that content aggregation engine112will access content with a respective content engine108, such as a content engine108operated by the airline that owns aircraft612and is offering the flight of interest to avatar606.

Block420comprises selecting essential content that is responsive to the request from block404. (Selecting can be effected in different ways, such as through an inclusion process by choosing from a plurality of stored content, or by an exclusion process by filtering out certain content from the plurality of stored content.) Such essential content is the minimum set of content required to fulfill the transaction (or other interaction) occurring in session504-1; namely, in the present non limiting example, the selection of a seat on aircraft612. Thus, the minimum information would include what seats remain available on the aircraft in association the pricing of those seats.

Block424comprises determining if there is capability for providing enriched content beyond what was filtered at block420. In the context of the present example, indeed the rich 3D virtual environment of metaverse platform104-2combined with the extensive set of virtual reality input and output devices on client machine120-4would lead to a “yes” determination at block424.

Block428comprises selecting additional content. (As noted above, selecting can be effected in different ways, such as through an inclusion process by choosing from a plurality of stored content, or by an exclusion process by filtering out certain content from the plurality of stored content.) The additional selected content is responsive to the request from block404and matches any enhanced hardware and software capabilities of the platform104and the corresponding client device104that is carrying the respective session504. To clarify, such enhanced hardware and software capabilities refer to any capabilities that go beyond the ability to generate the essential content from block420. Continuing with the present example, block428would take the full set of rich content from block416to generate a very rich seat map of all available seats on aircraft612. As will be explained further below, the degree of “richness” corresponds directly to the hardware of client machine120and the platform104that generated the request.

Block432comprises generating a response to the request from block404according to the selections applied at block420and block428. Where different platforms104can accommodate the same content, but have different capabilities for presenting that content, then the generation of the response can include adaptations to the selected content respective to the specific capabilities of the target platform104. To help elaborate, and referring again to our specific example, in association with a fully capable metaverse platform104-2and client device120-4, the full seat map could include a nearly complete rendering of the entirety of the interior cabin of aircraft612, having very rich textures and visual appearance of seat628, such as the view of seat628inFIG.7. Processor116-208in adaptation engine116can thus be configured to interact with target platform104-2so that all features of the seat can be viewed at client device120-4over session504. Furthermore, by shifting to a third person perspective avatar606can be shown sitting in the seat and accessing its various virtual features, all of which would mimic the actual performance of the seat on the aircraft612. Using method400, additional seat choices can be loaded and rendered within session504in similar fashion, until an actual selection of seat was made thus advancing the entire workflow of selecting various travel services. Note that the same content may be possible to generate on platform104-3, but with different limitations, such as number of pixels or colors, or other variables, then block432can include an adaptation that is effected to accommodate the different limitations of platforms104that are otherwise capable of generating substantially the same content.

A person of skill in the art can now appreciate just where the virtual reality experience can extend to what additional filters may be applied at block428, as such that in a fully capable client device120-4such as client device120-4, the user of client device120-4could virtually “walk” through the cabin via feedback and input from the treadmill input/output device on client device120-4, providing visual feedback of the entire walk through the aircraft. Occupied seats would show avatars inside them, while available seats would be empty for the avatar606to simulate virtually sitting various empty seats. With the full set of haptic feedback provided to hands, torso and feet, and a mapping of the physical size of the user, the user of client device120-4could control virtual reclining and test out the widths and foot room of the various seats with appropriate feedback and control signals being sent to the input and output device hardware associated with that client device120-4. The inventors fully appreciate that the limits of this example correspond to the physical limits of the virtual reality input and output devices associated with client device120-4, but also note that the rapid development of such rigs suggests a continuum of greater offerings and such offerings are likely to extend over the coming years.

A person of skill in the art can now appreciate that system100also remains compatible with other client devices120and platforms104. Notably, where a platform104or a client device120does not have full metaverse capability then system100and adaption engine116remains flexible to accommodate different technologies. For example, where a seat map request was generated by a mere virtual reality headset120-1, the seat map response at block432would be limited to a virtual view of the inside of the aircraft, but the capability to “walk” through the aircraft would be limited to the mouse or keyboard attached to the computer that connects to the headset120-1. There would also be curtailed or no opportunity to virtually “sit” in the seat and test the reclining and foot room. As a second example, where the seat map request was generated by laptop computer client machine120-5, and the platform was travel website platform104-n, then the filters applied at block428would be limited to generating a seat map that is consistent with currently known browser-based seat mapping and seat selection technology, in the form of a two dimensional array of boxes roughly laid out in grid, such as the example seat map800inFIG.8. System100can also accommodate traditional travel service acquisitions through voice telephony and text such as short message service (SMS).

Referring now toFIG.9, in accordance with another embodiment, another system for multi-platform content normalization is indicated generally at100a. System100ais a variant on system100, and thus like elements bear like references, except followed by the suffix “a”. Network106a, devices120aand platforms104aare substantially the same as their counterparts in system100, although may be varied somewhat as the context requires from the following discussion. However, it is to be noted that content aggregation engine112is omitted from system100a. It is also to be noted that, content engines108are significantly varied and are therefore omitted and replaced instead with content engines109a. Furthermore, adaptation engine116is significantly varies and therefore omitted and replaced instead with adaptation engine117a. Content engines109aand adaptation engine117aand their interactions with the other nodes in system100awill be explained in greater detail below.

According to system100a, content engines117aare hosted by different retail entities that are establishing virtual (or augmented) reality retail stores within platforms104a. In general, such virtual or augmented reality stores provide a consistent shopping experience across a plurality of platforms104athrough the entire sales process. (Such a sales process is sometimes referred to by the person of skill in the art as a sales funnel or sales touch points, going from, for example, marketing, lead generation, proposals, sales, conversions, payment processing, closed-won, closed-lost, retention etc. The sales process can be defined differently according to the context of what product or services is being sold and whether the process is business-to-business or business-to-consumer.) The shopping experience is thus typically adapted to the overall narrative of the platform104a.

For example, the sales process can be reproduced in a medieval fantasy metaverse platform, replete with metaverse objects such as unicorns, satyrs, elves and magicians. In such medieval fantasy metaverse, the shopping experience is tailored to the medieval fantasy narrative, and thus while the shopping experience remains the same as a real-world retail store, the appearance of objects that fulfill the shopping experience would be consistent with the medieval fantasy. As another example, the sales process can be reproduced in a space opera replete with metaverse objects such as starships, laser cannons, multiple planets, strange aliens and intergalactic battles. Thus in a space opera metaverse, the shopping experience can be tailored the space operate narrative, and so the appearance of objects that fulfill the shopping experience would be consistent with the space opera.

In other examples, such virtual stores are configured to mimic real-world retail stores that are configured electronically according to flexible architectural designs that allow a metaverse environment to represent a real-world retail environment. Without limiting the generality of the foregoing, certain specific examples of real-world mimicry of retail stores will now be discussed in relation to platforms104a. The virtual stores can be generated within platforms104aaccording to any real or imagined environment where retail-stores may exist, such as a cluster of retail stores or a row of retail stores along a virtual commercial avenue or street, in an virtual outlet mall, or in virtual airport, train station, cruise-ship or shopping mall. One particular example application of such retail entities that will be discussed herein relate to travel agencies that, in the real-world, attract foot traffic and offer the opportunity for travelers and travel agents to interact, review travel itinerary options, and to complete the purchase of travel assets.

Notably, content engines109ain system100aare hosted by retail entities. Each content engine109amaintains a model of a virtual retail store that is to be rendered across one or more platforms104a. Note that a single content engine109ais contemplated, but a presently preferred embodiment contemplates a plurality of content engines109a, with each content engine109arepresenting a single travel agency intending to provide substantially the same virtual retail presence across a plurality of platforms104a. Thus, adaptation engine117ais configured to receive models from each content engine109a, determine criteria for rendering on each platform104a, and to dynamically adjust the models to provide, as much as a possible, a substantially normalized virtual retail environment across all platforms104a. In other words, as a given client device120aaccesses different platforms104a, substantially the same virtual retail environment and experience will be perceived, for each content engine109a, thereby increasing potential for retail transaction exposures to the hosts of content engines109a.

Again, as a specific example, travel agencies, as a type of retail entity, will be discussed herein for illustrative purposes, but it is to be understood that the teachings herein can be applied to other types of retail entities.

FIG.10shows a flowchart depicting another method for multi-platform content normalization indicated generally at1000. Method1000can be implemented on system100a. Persons skilled in the art may choose to implement method1000on system100aor variants thereon, (such as in combination with system100), or with certain blocks omitted, performed in parallel or in a different order than shown. Method1000can thus also be varied. However, for purposes of explanation, method1000as per the flow chart ofFIG.10and will be described in relation to its performance on system100awith a specific focus on adaptation engine117aand its interactions with the other nodes in system100a.

Block1004comprises receiving model parameters. In the example of system100a, the model parameters are received at adaptation engine117afrom one of the content engines109a. The initial parameters can be initially established via an administrator at the content engine109acontrolling input devices such as a mouse and keyboard and viewing a monitor and accessing other input/output devices in order to create a set of model parameters for delivery to adaptation engine117a. According to the present example, the model parameters represent a virtual reality travel agency for rendering in a metaverse on one or more of platforms104a.

FIG.11,FIG.12,FIG.13andFIG.14show graphic example of a set of model templates1100of a virtual travel agency that can be offered as part of system100ato an administrator at a content engine109a. The set of model templates1100can be hosted by adaptation engine117aor elsewhere as desired. The set of model templates1100can be customized to create a set of model parameters in fulfillment of block1004. It is contemplated that a plurality of model templates representing different architectures can be offered, providing choice to each content engine109ain the same manner a real-world architect would permit customization of a physical retail store. Thus the model templates1000represent only a single one of the options for model templates that are offered.

FIG.11shows various objects that may be customized.FIG.11shows an exterior template1100-1. Shop model object1104-1represents the overall virtual architectural model for the virtual retail store, both interior and exterior.FIG.11focuses on the exterior.FIG.12,FIG.13, andFIG.14show interior views of the shop model object1104-1. Model object1104-1thus shows a two-story building with upper floor windows and lighting, while wood cladding is shown on the side with the entrance door. Landscape features are shown on the ground out front. A single shop model object1104-1could be offered to all content engines109a. However, a plurality of shop model objects1104-1may be offered in system1100a, andFIG.11shows only but one. Furthermore, if desired, the overall shop model object1104-1could be made available for only one of the content engines109aand therefore provide potential exclusivity for and potential for virtual brand recognition for a given content engine109a, such that no other content engine109awould be able to create a confusingly similar model.

Logo model object1104-2can be configured to display the trademark or service mark of the entity that operates content engine109a. The trademark can be the same as any real-world trademark registrations, thereby creating cross brand recognition across the virtual world of platforms104aand the real-world.

Note some objects of the model parameters received at block1104may be flagged (such as through a “tick box”) as “substitutable” across platforms104aor “not substitutable” across platforms104a. It is contemplated that, for example, logo model object1104-2may be designated as “not substitutable” due to the desire to maintain the appearance of trademark branding consistency across platforms104a, each of having its own criteria engine consistent the individual capability of each platform104a. (These are the same sorts of capabilities previously discussed in relation to block408of method400). Accordingly, as will be discussed in greater detail below, logo model object1104-2would be constrained to a format or characteristics of input from content engine109athat complies with the rendering criteria of platforms104a.

Thus, formatting or other characteristics such as size, color, skin, noises, sounds, sizes, styles, fonts, resolutions, animations, lighting, shading, refresh rates and associated audio clips may all be constrained to a set of parameters that are known to comply with capabilities across all platforms104a. In the context of styles and resolutions, it can be noted that certain platforms, such as Minecraft, have the criteria that objects a very low resolution and are “blocky” by design, whereas other platforms have very high resolutions and may be curved. Thus the model parameters, when inputted, adapted or substituted, consider these criteria.

Referring again toFIG.11, dynamic storefront object1104-3can represent a virtual display showing advertisements, offers or features or any other content. Dynamic storefront object1104-3thus may have static information or be configured to receive dynamic information from a source such content engine109a, or even from one or more additional sources as content engines108of system100. Dynamic storefront object1104-3, is, in general, designed to virtually mimic the storefront of a real-world retail store.

Static storefront object1104-4can represent a physical sign such as “store hours” or “address” that, in general, mimics the equivalent of such information of a real-world retail store.

Music object1104-5includes a source of a feed of music, either looped or streams, or other audio information such as recorded voice messages, that can be played at the exterior of the model template1100-1in order to attract avatars of virtual passers-by, such avatars being controlled via devices120aas previously discussed in relation to system100.

Door animation object1104-6allows the configuration of the whether the doors are sliding doors or swing doors, and whether there is a physical actuator or whether a presence detection is sufficient to open the door. Audible sounds can accompany the opening or closing of the doors. A virtual doorbell may also be provided. Other door animations will now occur to those skilled in the art.

FIG.12shows additional objects that may be customized. Firstly, foyer model template1100-2shows the immediate interior area of shop model object1104-1. The interior includes a reception desk with shelving and walls. While not labelled, these objects may be customized with colors, logos, signs, artwork, etc. and as desired. A virtual concierge bell object1104-7is provided and as mailbox object1104-8is also provided. Object1104-7and object1104-8can be configured as ways to contact a real world individual who represents the retailer, such as by way of a text message, email, or phone call or an individual operating a client device120awho represents the retailer that is respective to the content engine109athat crated the model template1100.

FIG.13shows an additional interior model template1100-3of shop model object1104-1. Again several objects of the template1100-3can be customized including colors, logos, signs, artwork, etc. Specific example objects include a “self serve” area1104-7where a customer avatar controlled via a client device120acan interact with content, or an in person service area a customer avatar controlled via a client device120acan interact with a customer-service representative avatar controlled via another client device120a.

FIG.14shows an additional interior model template1100-4, but with further objects having been implemented including artwork, music and a display.FIG.14shows a customer avatar controlled via a client device120ainteracting with a customer-service representative avatar controlled via another client device120a.

A person of skill in the art will now begin to appreciate how system100and system100acan be combined, as the interaction inFIG.6,FIGS.7and/or8can be performed within a variation of the interior model template1100-4. In the combination of system100and system100a, different virtual travel agencies according to system100acan offer the same content from different content engines108within their own uniquely virtually branded environment. The combined synergies of system100and system100alead to even further efficiencies in such a combined system, as virtual travel agency retailers can render a single version of their retail store via adaptation engine117aacross several platforms104a, while adaptation engine116provides immersive traveller purchasing experience and choice of content form several content providers108. Individuals using devices120(and/or the analogue devices120a) thus benefit from both a boutique experience in the form of model templates1100while having access to a broad range of travel experiences from content engines108.

Referring again toFIG.10, having received model parameters at block1004, at block1008various platform criteria are received. The way platform criteria are defined is not particularly limited and generally consistent with whatever application programming interfaces (APIs) are offered by respective platforms104a.FIG.15shows a highly simplified example of platform criteria defined in a matrix1500with capabilities defined in rows and corresponding “Yes” or “No” flags under columns representing each platform. Thus, in the example ofFIG.15, the criteria can be considered a set of rules implemented as predetermined correspondences defined in the matrix or table, with a series of “fallback” or substitutions defined in the matrix1500.

Returning toFIG.10, block1012comprises determining if there are incompatibilities between the criteria received at block1008and the parameters received at block1004. Note the two example capability criteria given inFIG.15. But any type of capabilities and associated criteria are contemplated. To give a simple illustration, the door animation object1104-6may be provided with parameters at block1004that the doors are to be sliding and have an accompanying whistle sound. While platform104a-1, and platform104a-2may be able to render door animation object1104-6according to these parameters, platform104a-3may be incapable and only able to render a swinging door.

Thus, if there are no incompatibilities at block1012, a “no” determination is made and method1000advances to block1020. However, if there are incompatibilities at block1012, then a “yes” determination is made and method1000advances to block1016. According to the previous example, a “no” determination may be made for object1104-6at block1012for platform104-1and platform104a-2, and so for platform104a-1and platform104a-2, method1000advances to block1020where whatever API criteria for the respective platform104aare applied. Again, according to the previous example, a “yes” determination may be made for object1104-6for platform104-3at block1012and method1000advances to block1016where a substitution parameter is applied. For example, assume the platform104a-3can only accommodate swinging doors with no accompanying audio, then at block1016the swinging door parameter for object1104-6is substituted with a swinging door. Method1000then advances to block1020and swinging door parameter criteria is applied to the model is applied, based on the API of platform104a-3.

Again this is but one example and a plurality of criteria based on the APIs for each platform104awill be canvassed based on the capabilities of the respective platforms104aand dealt with accordingly at block1012and, if necessary, at block1016. Note from our previous discussion, however, that at block1004a given model parameter may be indicated as not being capable of substitution, in which case for that parameter a “No” determination will always be made at block1012, with the tradeoff that the parameters provided at block1004may be constrained to ensure compliance with the capabilities and APIs of all platforms104a.

Block1024comprises generating the model platform. In system100ablock1024is performed by adaptation engine117awhich renders the model parameters and uses the API of the respective platform104a.

Block1028comprises sending the platform models, as generated at block1024to each platform104afor rendering.

Block1032considers whether all target platforms have been addressed. If not, method1000returns to block1008until all such platforms104ahave been addressed.

FIG.16shows an illustrative example of how the final blocks of method1000may be effected, as one single model template provided at content engine109ais received by adaptation engine117aand then rendered on different platforms. More specifically, platform104a-1and platform104a-2are shown rendering automatic sliding doors indicated as object1104-6; however platform104a-3is shown as rendering automatic swinging doors indicate as object1104-6-S, where the suffix “S” denotes ‘substitution’.

The types of substitutions at block1016are not particularly limited. Different types of substitution algorithms are contemplated. For example, certain platforms104amay accommodate dynamic content for dynamic storefront object1104-3ofFIG.11, while other platforms104amay only support static content. Accordingly, adaptation engine117acan be configured to mimic dynamic content by periodically pushing a sequence of “static” updates of storefront object1104-3, thereby creating the appearance of dynamic content for dynamic storefront object1104-3, even though the platform104aitself may not support such dynamic updates. In this fashion, adaptation sever117acooperates with the anomalous platform104aso that all platforms104aprovide substantially the same experience to a given client device120a.

The types of substitutions at block1016can, in addition or in lieu of the foregoing, comprise one or more of: changing an object to an image or video of the object in the corresponding object; changing a color of the given object to a respective color allowed by the criteria; changing the color of the given object to the respective color allowed by the criteria, the respective color allowed by the criteria selected to reduce a difference between the color and the respective color; changing three-dimensional content of the given object to two-dimensional content of the corresponding object; changing at least one of shape and configuration of the object; changing dynamic content of the given object to static content of the corresponding object; changing a rounded or curved object for a blocked object (such as in Minecraft which is built in blocks); changing a customized “skin” (such as an uploaded floor or wall pattern provided at block1004) for a predefined “skin” (such as one of predefined floor or wall patterns that are constrained to a given metaverse platform104a).

The substitution algorithms at block1016may also be developed using machine learning, neural network or artificial intelligence algorithms. Continuing with the example of sliding door object1104-6, a machine learning algorithm can monitor a human making such substitutions to satisfy the criteria of the API of platform104a-3. After a sufficient number of substitutions, the machine learning algorithm in adaptation server117acan make substitutions of the slide door object1104-6-S for platform104a-3while learning to retain the sliding door object1104-6for platform104a-1and platform104a-2. As another example, a customized “skin” that is uploaded at block1004may be substituted with a predefined “skin” at block1016, and thus a machine learning algorithm can monitor a number of manual substitutions of customized “skins” at block1016that lead the machine learning algorithm to automatically, in the future, choose certain predefined “skins” as substitutes for a given uploaded customized “skin”. A person of skill in the art will now appreciate how this use of machine learning can be massively scaled for developing other substitutions for other objects, as needed, at block1016. Thus, in addition to, or in lieu of, a table such as matrix1500, such machine learning algorithms can be implanted. Furthermore, matrix1500, itself, can be built entirely or in part using machine learning.

A person of skill in the art will now appreciate that the components of model template1100-1are illustrative examples only and that variations to the foregoing are contemplated.

FIG.17shows a further illustrative example of how the final blocks of method1000, as another single model template provided at content engine109ais received by adaptation engine117aand then rendered on different platforms104a-2. InFIG.17, none of the platforms104aare able to render according to the model template according toFIG.11. Instead, the building object is abstracted out to a two story building, with front entrance, but rendered on each platform104awith an appearance that is consistent with the narrative of the platform104a. Platform104a-1is shown rendering a medieval store front at high resolution; platform104a-2is shown rendering a space opera store front in medium resolution; and platform104a-3is shown rendering a main-street building store front in low resolution. The substitutions that result in the transformations inFIG.11all occur at adaptation engine117abased on the single received model parameters from block1004. Notably, however, the logo signage object1104-2, reads “ABC Travel Agency” and has not been substituted. The interior renderings ofFIG.12,FIG.13andFIG.14can likewise be modified to correspond with the narrative and functionality of the respective platform104aupon which it is rendered.

A person skilled in the art will now appreciate that the teachings herein can improve the technological efficiency and computational and communication resource utilization across system100. As the range of available hardware input and output devices for client devices expand, as metaverse and multimedia platform environments create additional contexts for the delivery of travel agency services. The richness of experience combined with the convenience for users creates the opportunity for greater expectation management as to what travel services are being acquired. At the same time the sheer diversity of client devices and platforms creates a pull in the opposite direction, as there is a need to ensure that travel asset inventories (such as which airline seats, hotel rooms, restaurant booking times, have been sold and which remain open) are constantly updated in real time so that accurate inventory choices are being generated at the time a session for selection of such inventory is occurring between any given client machine and any given platform. The filtering of unneeded content for less capable client machines also reduces network resource stress on network106, by only delivering the content that can be utilized by the given client device120. Furthermore, individual retailers such as travel agencies can develop a consistent presence across several platforms using a single interface via a single adaptation engine, thereby reducing the multiplicity of efforts required for a single retail travel agency to build and update separate presences across several different platforms. The result is efficient use of computing resources, including processing, memory and communication resources, across system100and its variants, while providing as rich an experience as possible according to the resource capabilities of the client devices120and the platforms104.

In summary, the present specification provides a multiplatform virtual retail store engine. The specification can have particular application to client devices with augmented or virtual reality hardware that interact with different platforms with metaverse capabilities. Rich experiences are provided on client hardware while making efficient use of available processing, memory and communication resources. Embodiments discuss the provision of a single retail store model which is dynamically adapted for generation across the plurality of different platforms according to the different metaverse capabilities.

In view of the above it will now be apparent that variants are contemplated. For example, the foregoing has been discussed in relation to the travel industry, it will now be understood that the above-described embodiments can be modified to other industries. For example, an online e-commerce environment such as Amazon™ that becomes enhanced through virtual reality metaverse offerings can be enhanced using the teachings herein. Example additional industries include vehicle purchases from dealerships, medical services from medical clinics, and real estate services from real estate agencies.

It should be recognized that features and aspects of the various examples provided above can be combined into further examples that also fall within the scope of the present disclosure. In addition, the figures are not to scale and may have size and shape exaggerated for illustrative purposes.