Extensible simulation system and graphical programming method
First Claim
1. A computerized extensible simulation system providing an easy to use and interactive environment for creating and executing a computer simulation, said system comprising:
- an output device for displaying data and graphical images, the output device having an input;
an input device for sending data and commands into the system, the input device having an output;
a memory having inputs and outputs for storing data and commands, the memory having an object source comprised of program instructions for generating a plurality of graphic objects, an abstractor comprised of program instructions for generating a graphical rewrite rule in response to a graphical manipulation of a graphic object upon the output device via the input device wherein the graphical rewrite rule comprises program instructions defining a manner in which the graphic object is to be selectively manipulated upon the output device, a simulation viewer comprised of program instructions for controlling the display of the graphic objects and their actions on the output device, a graphical rewrite rule editor comprised of program instructions for allowing the graphical definition of properties and graphical rewrite rules for the graphic objects, a simulation controller comprised of program instructions for executing the graphical rewrite rule to produce the graphic object'"'"'s actions; and
a processing unit having an input and output for processing data and generating images on the output device under the control of the memory, the output of the processing unit coupled to the input of the output device, the input of the processing unit coupled to the output of the input device, and the input and output of the processing unit coupled to the memory.
1 Assignment
0 Petitions
Accused Products
Abstract
An extensible simulation system and graphical programming method enable a simulation user to program the behaviors of objects in a simulation while requiring no knowledge of computer programming concepts or languages. The simulation user defines each object'"'"'s behaviors by creating Graphical Rewrite Rules through programming by demonstration. The user can selectively abstract a given Graphical Rewrite Rule (GRR) such that it applies to states within the simulation according to hierarchical object types and object property conditions. The extensible simulation system comprises a Central Processing Unit (CPU), an input device, an output device, an external storage device, predetermined amounts of Random Access Memory (RAM) and Read-Only Memory (ROM), and an extensible simulator. The extensible simulator comprises an object source, a simulation viewer, a GRR editor, an action recorder, an abstractor, a drawing editor, an object property editor, an object rule viewer, a subroutine editor, and a simulation execution controller. Each element of the system has an input and an output coupled to a common system bus. Preferably, each element of the extensible simulator is a computer program step sequence stored in RAM. The graphical programming method comprises the steps of: selecting an object for which a GRR is to be defined; establishing a simulation context corresponding to the GRR; defining for the GRR a set of actions to be performed by or upon one or more objects within the simulation context, each action defined through programming by demonstration; automatically recording a computer program step sequence for each action defined; and allowing the GRR to be abstracted.
110 Citations
44 Claims
-
1. A computerized extensible simulation system providing an easy to use and interactive environment for creating and executing a computer simulation, said system comprising:
-
an output device for displaying data and graphical images, the output device having an input; an input device for sending data and commands into the system, the input device having an output; a memory having inputs and outputs for storing data and commands, the memory having an object source comprised of program instructions for generating a plurality of graphic objects, an abstractor comprised of program instructions for generating a graphical rewrite rule in response to a graphical manipulation of a graphic object upon the output device via the input device wherein the graphical rewrite rule comprises program instructions defining a manner in which the graphic object is to be selectively manipulated upon the output device, a simulation viewer comprised of program instructions for controlling the display of the graphic objects and their actions on the output device, a graphical rewrite rule editor comprised of program instructions for allowing the graphical definition of properties and graphical rewrite rules for the graphic objects, a simulation controller comprised of program instructions for executing the graphical rewrite rule to produce the graphic object'"'"'s actions; and a processing unit having an input and output for processing data and generating images on the output device under the control of the memory, the output of the processing unit coupled to the input of the output device, the input of the processing unit coupled to the output of the input device, and the input and output of the processing unit coupled to the memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer implemented method for executing a simulation having a plurality of graphic objects in an extensible simulation system, the method comprising the steps of:
-
determining a current simulation context comprising a graphical portion of a display generated upon a display device; selecting a graphic object within the current simulation context; determining whether there is a graphical rewrite rule having a before portion and an after portion associated with the selected graphic object, wherein the graphical rewrite rule defines a manner in which a first simulation context, matching the before portion, is to be graphically replaced with a second simulation context, matching the after portion; selecting a graphical rewrite rule if there is a graphical rewrite rule associated with the selected object; determining whether the before portion of the selected graphical rewrite rule matches the current simulation context for the selected graphic object; and executing a program corresponding to the selected graphical rewrite rule if the before portion of the selected graphical rewrite rule matches the current simulation context. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer implemented method for executing a simulation having a plurality of graphic objects in an extensible simulation system, the method comprising the steps of:
-
determining a current simulation context comprising a graphical portion of a display generated upon a display device; selecting a graphic object within the current simulation context; determining whether there is a graphical rewrite rule having a before portion and an after portion associated with the selected graphic object, wherein the graphical rewrite rule defines a manner in which a first simulation context, matching the before portion, is to be graphically replaced with a second simulation context, matching the after portion; selecting a graphical rewrite rule if there is a graphical rewrite rule associated with the selected graphic object; determining whether the before portion of the selected graphical rewrite rule matches the current simulation context for the selected graphic object; and executing a program corresponding to the selected graphical rewrite rule if the before portion of the selected graphical rewrite rule matches the current simulation context, wherein the step of determining whether the before portion of the selected graphical rewrite rule matches the current simulation context for the selected graphic object further comprises the steps of; comparing the relative positions of graphic objects in the before portion with the relative positions of graphic objects in the current simulation context; comparing the number, relative position and graphic object occupancy of simulation grid elements in the before portion to the number, relative position and graphic object occupancy of simulation grid elements in the current simulation context wherein a simulation grid element comprises a displayable portion of the simulation; comparing graphic object types according to a set of hierarchical classifications of the before portion to graphic object types of the current simulation context; and determining whether the property conditions defined for the graphic objects in the before portion are satisfied.
-
-
17. A computer implemented method for creating a graphical rewrite rule for a graphic object in an extensible simulation system, the method for creating a graphical rewrite rule comprising the steps of:
-
selecting the graphic object for which an action is to be defined in response to a selection from an input device; determining a simulation context for the selected graphic object, wherein the simulation context is a subset of simulation grid elements containing the selected graphic object and wherein a simulation grid element comprises a displayable portion of the simulation; displaying the simulation context in a graphical rewrite rule editor window; and generating the graphical rewrite rule in response to a graphical manipulation of the graphic object via the input device, wherein the graphical rewrite rule defines a manner in which a first simulation context, matching a before portion, is to be graphically replaced with a second simulation context, matching an after portion. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A computer implemented method for creating a graphical rewrite rule for a graphic object in an extensible simulation system, the method for creating a graphical rewrite rule comprising the steps of:
-
selecting the graphic object for which an action is to be defined; determining a simulation context for the selected graphic object, wherein the simulation context is a subset of simulation grid elements containing the selected graphic object and wherein a simulation grid element comprises a displayable portion of the simulation; displaying the simulation context in a graphical rewrite rule editor window; generating the graphical rewrite rule in response to a graphical manipulation of the graphic object via an input device, wherein the graphical rewrite rule defines a manner in which a first simulation context, matching a before portion, is to be graphically replaced with a second simulation context, matching an after portion; determining whether the graphical rewrite rule is to be abstracted, wherein abstraction comprises the steps of analyzing the action, generalizing the action, and creating a corresponding generalized computer program step sequence; and performing abstraction on the graphical rewrite rule if it is determined that the graphical rewrite rule is to be abstracted, wherein the step of performing abstraction further comprises the steps of; determining whether picture or property abstraction is to be performed; if picture abstraction is to be performed, then determining the graphic object the user has selected; determining a hierarchical classification of graphic object types for the selected graphic object; displaying a hierarchical classification of graphic object types for the selected graphic object in a hierarchy menu; and determining the classification for the graphic object type selected and storing the selected classification as part of the graphical rewrite rule; and if property abstraction is to be performed, then displaying a property abstraction window; identifying a graphic object that was selected; displaying the properties for the selected graphic object; determining a property, a condition and an expression input; and storing a property abstraction definition including the property, condition and expression input as part of the graphical rewrite rule.
-
-
23. A computer implemented method for editing a graphical rewrite rule for a graphic object having a type and a property in an extensible simulation system, the method for editing a graphical rewrite rule comprising the steps of:
-
determining whether a graphical rewrite rule has been selected for editing, wherein the graphical rewrite rule, having a before portion and an after portion, defines a manner for graphically replacing, on an output device, first simulation context, matching the before portion, with a second simulation context, matching the after portion, wherein the simulation context is a subset of simulation grid elements containing a selected graphic object, and wherein a simulation grid element comprises a displayable portion of the simulation; identifying the graphical rewrite rule that has been selected for editing; displaying the graphical rewrite rule showing the before portion and the after portion of the graphical rewrite rule in a graphical rewrite rule editor window; determining whether the graphical rewrite rule is to be abstracted, wherein abstraction comprises the steps of analyzing the graphical rewrite rule, generalizing the graphical rewrite rule, and creating a corresponding generalized computer program step sequence; and performing abstraction on the graphical rewrite rule if it is determined the graphical rewrite rule is to be abstracted.
-
-
24. A computer implemented method for editing a graphical rewrite rule for a graphic object having a type and a property in an extensible simulation system, the method for editing a graphical rewrite rule comprising the steps of:
-
determining whether a graphical rewrite rule has been selected for editing, wherein the graphical rewrite rule, having a before portion and an after portion, defines a manner for graphically replacing, on an output device, a first simulation context, matching the before portion, with a second simulation context, matching the after portion, wherein the simulation context is a subset of simulation grid elements containing a selected graphic object, and wherein a simulation grid element comprises a displayable portion of the simulation; identifying the graphical rewrite rule that has been selected for editing; displaying the graphical rewrite rule showing the before portion and the after portion of the graphical rewrite rule in a graphical rewrite rule editor window; determining whether the graphical rewrite rule is to be abstracted, wherein abstraction comprises the steps of analyzing the graphical rewrite rule, generalizing the graphical rewrite rule, and creating a corresponding generalized computer program step sequence; and performing abstraction on the graphical rewrite rule if it is determined the graphical rewrite rule is to be abstracted, wherein the step of performing abstraction further comprises the steps of; determining the kind of abstraction to be performed; if picture abstraction has been selected, then determining the graphic object a user has selected; determining a hierarchical classification of graphic object types for the selected graphic object; displaying a hierarchical classification of graphic object types for the selected graphic object in a hierarchy menu; and determining the classification for the graphic object type selected and storing the classification as part of the graphical rewrite rule; and if property abstraction has been selected, then displaying a property abstraction window; identifying a graphic object that was selected; displaying the properties for the selected graphic object; determining a property, a condition and an expression input; and storing a property abstraction definition including the property, condition and expression input as part of the graphical rewrite rule.
-
-
25. A computerized extensible simulation system providing an easy to use and interactive environment for creating and executing a computer simulation, said system comprising:
-
a graphic object source means for storing a plurality of simulation graphic objects, each simulation graphic object having an associated graphical representation, a type, a unique name, a set of properties and a set of graphical rewrite rules, the graphic object source means controlling the display of a graphic object source menu for creating graphic objects and including the graphic objects in the simulation; a simulation viewing means for viewing the simulation, the simulation viewing means controlling a display of a simulation viewer window having simulation grid elements and graphic objects displayed within the simulation viewer window; a graphical rewrite rule editing means for creating and modifying a graphical rewrite rule and properties for graphic objects in response to a graphical manipulation of a graphic object upon the simulation viewer window via an input device wherein the graphical rewrite rule comprises program instructions defining a manner in which the graphic object is to be selectively manipulated upon the simulation viewer window; wherein the graphical rewrite rule editing means controls the display of a graphical rewrite rule editor window having a before portion window and an after portion window, and the graphical rewrite rule editing means modifying the after portion window for actions input by a user; an action recording means for generating a computer program step sequence for each action the user demonstrates for a graphical rewrite rule using the graphical rewrite rule editing means; and a simulation execution means for maintaining and modifying the simulation context by testing the graphical rewrite rules of each graphic object in the simulation for a match with the simulation context and performing the computer program step sequence associated with a graphical rewrite rule if the simulation context matches the before portion of the graphical rewrite rule. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A computer useable medium having computer readable program code embodied therein, the program code causing a computer to execute a simulation having a plurality of graphic objects in an extensible simulation system by performing steps comprising:
-
determining a current simulation context comprising a graphical portion of a display generated upon a display device; selecting a graphic object within the current simulation context; determining whether there is a graphical rewrite rule having a before portion and an after portion associated with the selected graphic object, wherein the graphical rewrite rule defines a manner in which a first simulation context, matching the before portion, is to be graphically replaced with a second simulation context, matching the after portion; selecting a graphical rewrite rule if there is a graphical rewrite rule associated with the selected graphic object; determining whether the before portion of the selected graphical rewrite rule matches the current simulation context for the selected graphic object; and executing a program corresponding to the selected graphical rewrite rule if the before portion of the selected graphical rewrite rule matches the current simulation context. - View Dependent Claims (38, 39)
-
-
40. A computer useable medium having computer readable program code embodied therein;
- the program code causing a computer to create a graphical rewrite rule for a graphic object in an extensible simulation system by performing steps comprising;
selecting the graphic object for which an action is to be defined in response to a selection from an input device; determining a simulation context for the selected graphic object, wherein the simulation context is a subset of simulation grid elements containing the selected graphic object and wherein a simulation grid element comprises a displayable portion of the simulation; displaying the simulation context in a graphical rewrite rule editor window; and generating the graphical rewrite rule in response to a graphical manipulation of the graphic object via the input device, wherein the graphical rewrite rule defines a manner in which a first simulation context, matching a before portion, is to be graphically replaced with a second simulation context, matching an after portion. - View Dependent Claims (41, 42, 43, 44)
- the program code causing a computer to create a graphical rewrite rule for a graphic object in an extensible simulation system by performing steps comprising;
Specification