System and method for optimizing virtual world computations through an n-tier architecture
Systems and methods for optimizing virtual world computations through an n-tier architecture including at least three tiers are provided. In a sample three-tier architecture, a first tier comprises a client software engine configured to receive input data, send the data to the second tier, and perform end-user processing. A second tier connects to the first tier and to a third tier through a network and comprises a client-dedicated module that is dynamically instantiated and which is configured to either prepare the received data for subsequent processing from the client software engine or send the received data to the third tier. The third tier comprises a virtual world processing module configured to receive and process data from the second tier, generating world state updates, and to dynamically instantiate the client-dedicated module to spawn client-dedicated instances. The world state updates are sent to corresponding client-dedicated module instances for further processing.
1 . A computer system implementing an n-tier 3D engine architecture comprising:
a first tier comprising a client software engine configured to:
receive input data,
send the input data to a second tier, and
perform end-user processing of the input data;
the second tier connected to the first tier and to a third tier through a network, the second tier comprising:
a client-dedicated set of instructions stored in memory configured to act on the input data based on an input data type; and
the third tier comprising:
a virtual world processing set of instructions stored in memory configured to receive and process the input data from the second tier in order to generate world state updates,
wherein the world state updates are sent to the client-dedicated set of instructions for further processing, and
wherein the client software engine enables adjustments to an amount of processing performed by each tier.
2 . The computer system of claim 1 ,
wherein the client software engine is stored in memory of at least one client device and is executed by at least one processor of the at least one client device, and
wherein the client-dedicated set of instructions and the virtual world processing set of instructions are stored in the memory of one or more cloud server computers and are executed by at least one processor of the one or more cloud server computers.
3 . The computer system of claim 1 , wherein the n-tier 3D engine architecture is implemented in a cloud-to-edge infrastructure employing computing devices and systems comprising:
public or private clouds,
fog servers,
cloudlets,
edge devices,
combinations thereof, or
in a distributed ledger.
4 . The computer system of claim 1 , wherein based on the input data type, the second tier is further configured to prepare the input data for subsequent processing from the client software engine of the first tier or send the input data to the third tier.
5 . The computer system of claim 1 , wherein the client software engine is further configured to identify one or more portions of the input data for processing by the client-dedicated set of instructions or the virtual world processing set of instructions.
6 . The computer system of claim 1 , wherein the at least one processor is assigned on demand to one or more client devices during per client instantiation via the virtual world processing set of instructions.
7 . The computer system of claim 1 , wherein the input data received by the client software engine comprises one or more of:
color data,
geometry data,
depth data,
audio data,
pose data,
sensor data, and
user input commands.
8 . The computer system of claim 1 , wherein the adjustments to the amount of processing are performed by defining types of data processed by the client-dedicated set of instructions and the virtual world processing set of instructions.
9 . The computer system of claim 1 , wherein the third tier comprises a virtual world system,
wherein the virtual world system comprises a plurality of sub-universes, each sub-universe comprising a plurality of virtual objects,
wherein at least some of the plurality of virtual objects are virtual replicas of corresponding real world objects located in corresponding areas of a real world, and
wherein processing by the virtual world processing set of instructions is performed on the plurality of virtual objects within areas of interest.
10 . The computer system of claim 9 , wherein the virtual world processing set of instructions is further configured to provision one or more application services,
wherein said provisioning is based at least in part on a spatial context associated with one or more content contexts through the virtual world system, wherein said spatial context is classified into a micro-context or macro-context.
11 . A method comprising:
receiving, by a client-dedicated set of instructions of a second tier of an n-tier architecture, input data from a client software engine configured in a first tier of the n-tier architecture connected to the second tier through a network;
sending, by the client-dedicated set of instructions stored in memory, a first portion of the input data to a virtual world processing set of instructions stored in memory of a third tier of the n-tier architecture connected to the client-dedicated set of instructions through the network, the virtual world processing set of instructions being configured to process the first portion of the input data in order to generate world state updates, wherein the world state updates are sent to the client-dedicated set of instructions;
processing, by the client-dedicated set of instructions, the world state updates, wherein said processing is performed on a per-client basis; and
sending the processed world state updates to the client software engine for performing end-user processing of requests, wherein adjustments to an amount of processing performed by each tier are enabled by the client software engine.
12 . The method of claim 11 , wherein the client software engine is stored in a memory of at least one client device and is executed by at least one processor of the at least one client device, and
wherein the client-dedicated set of instructions and the virtual world processing set of instructions are stored in memory of one or more cloud server computers and are executed by at least one processor of the one or more cloud server computers.
13 . The method of claim 11 , further comprising:
identifying, by the client software engine, a second portion of the input data for processing by the client dedicated set of instructions;
preparing, by the client-dedicated set of instructions, the second portion of the input data received from the client software engine; and
sending the prepared second portion of the input data to the client software engine for performing end-user processing of requests.
14 . The method of claim 11 , further comprising:
assigning, during instantiation of the client-dedicated set of instructions by the virtual world processing set of instructions, at least one processor to one or more client devices.
15 . The method of claim 11 , wherein the input data received by the client software engine comprises one or more of:
color data,
geometry data,
depth data,
audio data,
pose data,
sensor data, and
user input commands.
16 . The method of claim 11 , wherein the adjustments to the amount of processing are performed by defining types of data processed by the client-dedicated set of instructions and the virtual world processing set of instructions.
17 . The method of claim 11 , wherein the third tier comprises a virtual world system,
wherein the virtual world system includes a plurality of sub-universes, each sub-universe comprising a plurality of virtual objects,
wherein at least some of the plurality of virtual objects are virtual replicas of corresponding real world objects located in corresponding areas of a real world, and
wherein processing by the virtual world processing set of instructions is performed on the plurality of virtual objects within areas of interest.
18 . The method of claim 17 , further comprising:
provisioning, by the virtual world processing set of instructions, one or more application services,
wherein and the provisioning is based at least in part on a spatial context associated with one or more content contexts through the virtual world system, and
wherein the one or more application services are allocated and sent to the corresponding client software engine on request through the corresponding client-dedicated set of instructions.
19 . The method of claim 18 , wherein said spatial context is classified into a micro-context or macro-context.
20 . A non-transitory computer-readable medium having stored thereon instructions configured to cause one or more computers to perform steps comprising:
receiving, by a client-dedicated set of instructions of a second tier of an n-tier architecture, input data from a client software engine configured in a first tier of the n-tier architecture connected to the second tier through a network;
sending, by the client-dedicated set of instructions stored in memory, a first portion of the input data to a virtual world processing set of instructions stored in memory of a third tier of the n-tier architecture connected to the client-dedicated set of instructions through the network, the virtual world processing set of instructions being configured to process the first portion of the input data in order to generate world state updates, wherein the world state updates are sent to the client-dedicated set of instructions;
processing, by the client-dedicated set of instructions, the world state updates, wherein said processing is performed on a per-client basis; and
sending the processed world state updates to the client software engine for performing end-user processing of requests, wherein enabling adjustments, by the client software engine, to an amount of processing performed by each tier.
21 . The computer system of claim 1 , wherein the client-dedicated set of instructions is dynamically instantiated per client device by the third tier, and the virtual world processing set of instructions is configured to dynamically instantiate the client-dedicated set of instructions to spawn client-dedicated instances.
22 . The method of claim 11 , wherein the dynamically instantiating the client-dedicated set of instructions, by the virtual world processing set of instructions, to spawn client-dedicated instances.
23 . The non-transitory computer-readable medium of claim 20 , wherein the dynamically instantiating the client-dedicated set of instructions, by the virtual world processing set of instructions, to spawn client-dedicated instances.
24 . The computer system of claim 8 , wherein the types of data comprise low interaction frequency data and highly interaction frequency data.
25 . The computer system of claim 24 , wherein the high interaction frequency data is processed by the client-dedicated module of the second tier and the low interaction frequency data is processed by the virtual world processing module of the third tier.