Distributed Physics Based Training System and Methods
First Claim
1. A simulation station for use in a simulation system for a plurality of users each associated with a respective simulation station, said simulation station comprising:
- a link to a communication network to which the simulation stations are linked;
computer accessible data storage storing scene data, the scene data including object data defining a plurality of virtual objects in a virtual environment, said object data including, for each of said virtual objects, location data defining a location of the virtual object in the virtual environment;
an image generator periodically rendering from said scene data a frame of video imagery corresponding to a view of the virtual environment from a position associated with the user of the simulation station so that the user is provided with a real time view of the virtual environment; and
a display receiving the video imagery and displaying said imagery so as to be viewable by the associated user;
a physics engine managing physics data for the virtual objects in the scene data by determining physics data for a subset of the virtual objects in the scene based on physical attribute data defining virtual physical parameters of each of said virtual objects and physical rules of motion of the physics engine, and receiving, via the link, physics data regarding other of the virtual objects in the scene data;
said physics engine being connected with the data storage and influencing said scene data so that the location data of the virtual objects as defined in the scene data comply with the physical rules governing, based at least in part on the physical attribute data thereof, the movement thereof in the virtual environment.
3 Assignments
0 Petitions
Accused Products
Abstract
A distributed simulation system is composed of simulator stations linked over a network that each renders real-time video imagery for its user from scene data stored in its data storage. The simulation stations are each connected with a physics farm that manages the virtual objects in the shared virtual environment based on their physical attribute data using physics engines, including an engine at each simulation station. The physics engines of the physics farm are assigned virtual objects so as to reduce the effects of latency, to ensure fair fight requirements of the system, and, where the simulation is of a vehicle, to accurately model the ownship of the user at the station. A synchronizer system is also provided that allows for action of simulated entities relying on localized closed loop controls to cause the entities to meet specific goal points at specified system time points.
68 Citations
77 Claims
-
1. A simulation station for use in a simulation system for a plurality of users each associated with a respective simulation station, said simulation station comprising:
-
a link to a communication network to which the simulation stations are linked; computer accessible data storage storing scene data, the scene data including object data defining a plurality of virtual objects in a virtual environment, said object data including, for each of said virtual objects, location data defining a location of the virtual object in the virtual environment; an image generator periodically rendering from said scene data a frame of video imagery corresponding to a view of the virtual environment from a position associated with the user of the simulation station so that the user is provided with a real time view of the virtual environment; and a display receiving the video imagery and displaying said imagery so as to be viewable by the associated user; a physics engine managing physics data for the virtual objects in the scene data by determining physics data for a subset of the virtual objects in the scene based on physical attribute data defining virtual physical parameters of each of said virtual objects and physical rules of motion of the physics engine, and receiving, via the link, physics data regarding other of the virtual objects in the scene data; said physics engine being connected with the data storage and influencing said scene data so that the location data of the virtual objects as defined in the scene data comply with the physical rules governing, based at least in part on the physical attribute data thereof, the movement thereof in the virtual environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A system for providing a shared simulated environment to a plurality of users each having a respective user location in said simulated environment, said system comprising:
-
a plurality of simulator stations each associated with a respective user and linked over a network so as to communicate with each other; said simulator stations each including a data storage system storing scene data thereon and a computerized image generator generating real-time video as a stream of images each rendered based on the scene data corresponding to a respective point in time, said video being displayed using a display at said simulator station that communicates with said image generator; said scene data including object data defining positions and physical attributes of virtual objects in the shared simulated environment; a physics farm associated with the simulator stations, said physics farm interfacing with the scene data of each of the simulator stations and controlling position data of virtual objects in said scene data based on the defined physical attributes of the virtual objects and on physical rules that cause the virtual objects to emulate real movement of objects having corresponding real physical attributes; said physics farm comprising a plurality of physics engines operatively connected with the network so as to communicate with each other, each of the simulator stations having at least a respective one of the physics engines at its location; and the physics farm assigning each of the virtual objects in the shared simulated environment to one of the physics engines; each of the physics engines determining if the virtual objects assigned thereto are in a physical conflict with any other objects in the simulated environment, and, responsive to such a determination, resolving the conflict locally, or if resolution of the conflict locally is not possible, transmitting a packet of data identifying the virtual object involved and including conflict data corresponding to the conflict over the network. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A method for providing an interactive simulation of an environment to a plurality of users, said method comprising:
-
providing to each of said users a respective simulator station having a display displaying to the associated user video rendered by a computerized image generator thereof from scene data stored in a computer accessible data storage system; receiving from one of said users at the respective simulator station an input signal indicative of an interactive command from the user for influencing the simulated environment; deriving data from said input signal defining said interactive command as a force applied to one or more virtual objects in the simulated environment; performing physics processing of the force on the object or objects using a distributed physics farm comprising a plurality of physics engines, at least one of said physics engines being operatively associated with the respective simulator station, said processing publishing physics notification data reporting said force on said object and a system time thereof to all of the physics engines in said physics farm; receiving the physics notification data at a second of the physics engines operatively associated with another of the simulation stations; performing physics processing of the force applied to said object at the second of the physics engines, said second physics engine computing a position of the object based on said physics notification data and a difference between the system time thereof and a current system time, said second physics engine accessing locally data defining the positions of other objects in the simulated environment and including in said determination of the computed position a conflict check that incorporates into said computed position any conflict with other objects in the simulated environment; modifying the scene data at the associated simulation station such that the scene data reflects an updated position of said object conforming to the computed position; rendering the scene data to produce imagery showing the object at the computed position; and displaying said imagery to the user of the second simulation station. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A simulation system comprising:
-
a physics farm communications layer comprising a communications backbone; a physics farm layer having a plurality of distributed physics engines each being communicatively linked to the physics farm communications layer so as to transmit data to the other physics engines and to receive data therefrom, each physics engine storing physical attribute and location data for all of objects in a virtual environment; a physics farm management system selecting the physics engine that performs physics processing for each object in the virtual environment; and a physics based simulation API communicating with physics farm management system to allow access thereto by applications; and a physics based simulation application layer comprising at least two distributed simulation stations providing interactive simulation to respective users including displaying to the respective user imagery rendered from scene data stored at said simulation system, said scene data being modified by said physics farm layer to reflect interaction of the users with the objects in the virtual environment.
-
- 44. The system of clam 43, and further comprising a physics based simulation training layer communicating with the physics based applications layer and comprising a training communications infrastructure and an administrator station receiving command inputs for controlling the system.
-
46. A method of providing distributed simulation of a plurality of vehicles, said method comprising:
-
providing a plurality of simulation stations each having simulated controls for a respective vehicle being simulated, a display, a storage medium storing scene data defining positions of virtual objects in a virtual environment, and a physics engine storing physics data for objects in the virtual environment, said objects including an ownship set of objects configured to correspond to the vehicles being simulated; performing, using the physics engine of each simulation station, physics processing of the ownship set of objects for that simulation station and transmitting the resulting physics data to the other simulation station or stations; receiving the physics data at the other simulation station or stations and modifying the scene data thereof based on said physics data so that said other user or users can see the other station'"'"'s ownship if appropriate to said user'"'"'s point of view; and using the physics data for each ownship to control the simulated behavior of the ownship of said simulation station.
-
-
47. A simulation system comprising:
-
a plurality of computerized simulation stations connected with each other via a network, each having a respective computer-accessible data storage storing a respective version of scene data corresponding to a virtual environment, a respective computerized image generator generating serial frames each of which is a rendered view for a respective point of view in said virtual environment, and a display device displaying said frames; a simulation computer system determining behavior of a virtual client entity in the virtual environment and transmitting client movement data via the network to the simulation stations, said client movement data corresponding to said behavior and defining at least one location in the virtual environment to which the client entity is to move, and time-constraint data indicative of a point in time by which the entity is to move to the location; and each simulation station having a synchronizer receiving the client movement data and based thereon causing the scene data to be modified so as to reflect movement of the client entity to said location by said point in time. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62)
-
-
63. A method for providing an interactive simulation of a virtual environment to a user at a simulator station, said method comprising:
-
storing physics data on a computer accessible memory coupled with a physics engine, said physics data defining physics parameters of a plurality of virtual objects in a virtual scene, and including position data reflecting respective positions of the virtual objects in the virtual scene; passing to the physics engine data identifying at least one of the virtual objects and defining a value of force or torque, said physics engine modifying the physics data in the memory so that the position data of the virtual object in the memory reflects a modified position that corresponds to a result in the virtual environment of the force or torque acting on the virtual object pursuant to physics rules of said physics engine; obtaining and storing said modified position data so as to be accessible to a computerized viewer; and rendering an image corresponding to a view of the virtual scene using said computerized viewer, said view including a view of at least a portion of said virtual object in said modified position. - View Dependent Claims (64, 65, 66, 67, 68, 69, 70)
-
-
71. A system for providing distributed simulations to one or more users, said system comprising:
-
a first computer system linked for communication over a network and having a data storage device storing data and a display; said data storage device storing data defining a virtual scene having a number of virtual objects therein each having a respective visual appearance, position and orientation defined by said data; said computer system including a viewer generating real time imagery from said data and displaying said imagery on said display, the imagery corresponding to a rendered view at the time the image was rendered of the virtual scene as defined by said data; a second computer system having a data storage device, said data storage device storing data defining the same virtual scene with the same virtual objects as defined by said data on the first computer system; said second computer system running a program determining movement of a controlled virtual object in the virtual scene; said second computer system further having a master synchronizer transmitting over the network route data for said controlled virtual object indicative of a point in the virtual scene and a future point in time by which the controlled virtual object is directed to reach said point; said first computer system having a slave synchronizer receiving said route data, and responsive thereto, causing the data stored therein to be modified so that in the data stored at the first computer system, the controlled virtual object moves to the point in the virtual scene by the point in time. - View Dependent Claims (72, 73, 74, 75, 76, 77)
-
Specification