Abstract:
The present invention relates to an integrated professional information server and, in particular, it concerns a inter or intra-net system to coordinate professional learning, organization, information, and communication needs, generate and communicate a syllabus containing a program of missions. Exercises strengthen a professional&#39;s proficiency and knowledge in at least one topic. Preferentially the syllabus automatically presents at least one trainee with appropriate exercises, controls support materials, and tracks progress. An on-line real time graphical simulation algorithm facilitates simulations of real localities.

Description:
FIELD AND BACKGROUND OF THE INVENTION  
         [0001]    The present invention relates to an integrated professional information server and, in particular, it concerns a inter or intra-net system to coordinate professional learning, organization, information, and communication needs, generate and communicate a syllabus containing a program of missions. Exercises strengthen a professional&#39;s proficiency and knowledge in at least one topic. Preferentially the syllabus automatically presents at least one trainee with appropriate exercises, controls support materials, and tracks progress. An on-line real time graphical simulation algorithm facilitates simulations of real localities.  
           [0002]    A significant problem in many technologically based organizations is the coordination of technical resources. These resources include trained staff, equipment and information. Along with traditional logistical responsibilities of scheduling and delivering equipment and operators, today&#39;s administrators are also faced with the task of updating the training and knowledge of personnel and the state of technical equipment. This is a formidable task due to the complexity of technology and the rapid pace of technical change. Often, administrators cannot understand the knowledge and skills needs of technical workers. Furthermore, technical personnel may work in intertwined crews or teams necessitating coordinated organization of training of various crewmembers in complimentary technologies.  
           [0003]    There is therefore a need for a system to coordinate and inform technical workers, experts in particular aspects of technical knowledge and supervisors of large organizations. The system would disseminate and update new technical information, track the knowledge and skills of workers, and track physical resources.  
           [0004]    Effective training often requires expensive resources including skilled instructors, expensive simulation apparatus, and valuable equipment for instructional practice.  
           [0005]    For example, new aviation technologies are constantly being developed. Pilots must reliably master new technologies. A pilot must, therefore, perform flight training. Flight training is expensive because it requires valuable time of a trainee pilot and an instructor as well as expensive simulation equipment or aircraft and fuel. Pilots must also be constantly informed and trained for new equipment, flying conditions and laws and local conditions all over the world. Keeping abreast of the information involved requires the input of legal experts, technical experts, the pilots themselves and legal or geographical advisors all over the world. Furthermore, a pilot must have access to advanced equipment, and an aircrew and a ground crew with correspondingly advanced training.  
           [0006]    During flight training, each trainee has his own personal learning curve. Each personal learning curve is composed of several consequent slopes that represent different topics in the training curriculum. Normally, during a training flight, several resources limit the trainee (e.g. time, number of topics to be covered, portion of topic within a session) and define the framework for feedback attainment. This is also true in simulated training flights that have a predetermined uniform training program. In both cases, training programs are not tailored to the individual trainee, making learning inefficient.  
           [0007]    A typical training syllabus includes several sessions, and each session is used to train several topics. Because of this rigid structure, further training on a topic requires that the trainee take the entire session again, including topics already mastered. This represents a waste of valuable resources.  
           [0008]    Highly skilled instructors often spend a large portion of time planning and training sessions. Paying technical experts to write lesson plans is expensive and inefficient.  
           [0009]    Digital terrain modules are often used to create synthetic environments in simulation programs. These modules are based on geographic data of large areas. The modules contain a ‘height map’ based on information on ground level and variance. The size of height map files, especially for larger geographical areas, can be 100 s of megabytes.  
           [0010]    Real Time 3D rendering engines for displaying terrain in a simulation program, use a representation that is made out of polygons. In order to accomplish this, the height map must be converted into a collection of neighboring polygons, commonly referred to as a polygon mesh. This conversion process is called meshing. When a map is to be viewed at varying levels of detail (LOD), a different mesh needs to be made for each LOD.  
           [0011]    Currently, meshing is part of off line terrain production. During production, a collection of varying LOD meshes is compressed into a file. Each mesh is fixed, and cannot be modified. During a flight simulation a rendering engine accesses and loads the stored meshes. The maximum LOD requirement of rendering determines the minimum LOD of the mesh to be loaded. When an application needs to use a terrain with a higher resolution than available in the file, the meshing process must be repeated to produce a new mesh file.  
           [0012]    A given mesh file may have details not visible to the viewer in the projection required. Rendering such a mesh in such a projection requires black facing non-visible details. The recalling of unnecessary details and then the black facing of those details wastes memory and processor resources thus slowing down the meshing process. Similarly, a viewer perceives high detail in some locations and little detail in other locations. Loading a large high detail mesh for an entire scene because a viewer needs high resolution in a particular location is inefficient.  
           [0013]    Jenkins (U.S. Pat. No. 6,028,608) teaches a method to determine dynamically LOD perceivable to a viewer at various locations in a scene. Jenkins &#39;608 does not reveal a method by which a computer is to change a mesh at various locations in the scene according to the changing perception of the viewer.  
           [0014]    Previous art methods for dynamic meshing are based on hierarchal maps. A hierarchal map contains data at all levels of detail in data trees that are expanded or collapsed on need. Polygons or vertexes pertaining to details that are not visible always remain in memory. Examples of methods for dynamic meshing based on hierarchal vertex trees are Hoppe U.S. (Pat. Nos. 6,137,492 and 6,108,006) and Migdal et al. (U.S. Pat. No. 6,028,608). Hierarchal vertex tree methods require that the mesh always include the entire domain. Detailed data on all possible vertexes at the highest possible resolution remain in storage and are accessed according to a data tree. As such Hierarchal vertex trees are fast for dynamic rendering of computer graphics because hierarchal vertex trees do not require the defining new vertices on line. Full-scale hierarchal vertex trees alone are not efficient for rendering a very small portion of a large map because large invisible portion of the mesh remains constantly in memory. Also, hierarchical trees must be built off line from geometric data. The building of efficient hierarchal vertex trees often require expert personnel.  
           [0015]    Thus, Hierarchal vertex trees alone are not suited for rendering in flight simulation because flight simulators generally render a small portion of a large-scale map for which Hierarchal vertex trees are inefficient. Furthermore, in military flight simulation, trainers may not wish to distribute secret military maps to an off site team of graphics experts for the sake of building a hierarchal vertex tree.  
           [0016]    There is thus a widely recognized need for more efficient training practices. It would be highly advantageous to have a system and method that will facilitate information dissemination and speedy reliable training and retraining of personnel with minimum investment in training equipment and teaching hours. The current invention addresses this need by multi-level association and coordinating of knowledge and scheduling. The current invention also reveals an innovative system and method of adaptive real time triangulation for progressive meshing to increase the efficiency of training simulations. The present invention maximizes equipment access, saves trainee and instructor time, and facilitates realistic simulation to increase the speed and reliability of professional training, coordination and information dissemination.  
         SUMMARY OF THE INVENTION  
         [0017]    The present invention is of a dynamic professional syllabus which can be used to make training programs more efficient. Specifically, the present invention can be used to conserve training resources by tailoring teaching to trainee progress. Preferentially the syllabus automatically presents at least one trainee with appropriate exercises, controls support materials, and tracks progress. An on-line real time graphical simulation algorithm facilitates simulations of real localities.  
           [0018]    According to the teachings of the present invention there is provided, a system for generating a syllabus for a trainee, the system includes a database. The database contains at least one topic and at least one topic attribute. The system also includes a processor in communication with the database. The processor is configured to generate the syllabus based on the topic and topic attribute. The system also contains an input interface capable of communicating with the processor and an output interface capable of communicating with the processor.  
           [0019]    The input interface may include but is not limited to a personal computer, a formatted evaluation, an output channel of a training simulator, a medical database for example records made available by an insurance company, a psychological database, a data collection device of a vehicle, a device measuring the performance of a vehicle, a voice communication device, an automated test reader, a personal digital assistant, a recording device, a scanner, or an e-mail message.  
           [0020]    The output interface may include but is not limited to a video viewer, a training simulator, a training simulator control channel, voice instructions, a communication channel of a training vehicle, a control channel of a training vehicle, a printer, a personal digital assistant, an e-mail message, and a personal computer.  
           [0021]    The topic attribute may include but is not limited to a topic level, an order in which the topics are to be covered, an exercise to train the topic, a prerequisite to performing the exercise, an estimated time needed by a typical trainee to complete the exercise, a resource required for the exercise, a resource availability, a budget information, a requisite for successful completion of the topic, or a requisite for successful completion of the exercise.  
           [0022]    The processor may include, but is not limited to a personal computer.  
           [0023]    According to further features in preferred embodiments of the invention described below the input interface of the current invention further includes a scenario builder, a device builder, a virtual instructor builder, a terrain builder, an import export algorithm or a certification tool.  
           [0024]    According to still further features in the described preferred embodiments the database further stores trainee data and the syllabus is based on the trainee data. The trainee data may include but is not limited to trainee performance data communicated to the processor by training equipment. Upon receiving the trainee performance data, the processor evaluates trainee performance and updates the database. The evaluation of performance including a replay of the exercise may be made available to the trainee or an administrative user. The trainee data may further include but is not limited to psychological data, an exercise previously completed by the trainee, time required by the trainee to complete previously completed exercises, previous experience of the trainee, and schedule information pertinent to the trainee.  
           [0025]    According to still further features in the described preferred embodiments the input interface may serve but is not limited to serving to edit the topic, to edit the topic attribute, to enter information pertaining to a budget, to edit information pertaining to resource availability, or to edit information pertaining to scheduling.  
           [0026]    According to still further features in the described preferred embodiments the output interface serves for presenting a training exercise, presenting a training session program, presenting orders for a required resource, reporting progress, reporting budget information, or for reporting schedule information.  
           [0027]    According to still further features in the described preferred embodiments the syllabus includes a briefing to the trainee. The briefing informs the trainee of particular points in a mission requiring trainee attention.  
           [0028]    According to still further features in the described preferred embodiments the syllabus includes a crew exercise. The crew exercise includes a plurality of trainees. The trainees may conduct the crew exercise remotely using output interfaces communicating via a network.  
           [0029]    According to still further features in the described preferred embodiments the syllabus includes a mission program. The input interfaces, plurality of output interfaces and network serve to coordinate the mission.  
           [0030]    According to still further features in the described preferred embodiments the database may store but is not limited to storing a data library, a tutorial, a tip, a memo or a test. The memo may require reception verification by an intended recipient.  
           [0031]    According to still further features in the described preferred embodiments the database may further includes information pertinent to the trainee.  
           [0032]    According to still further features in the described preferred embodiments the processor may push data to an output interface at an appropriate time.  
           [0033]    According to still further features in the described preferred embodiments the syllabus may include a program for a class including a plurality of trainees.  
           [0034]    According to still further features in the described preferred embodiments the system may further include a communication network in communication with the processor and a communication device in communication with the communication network. The communication device may be used as the input interface or the output interface. The communication network may include but is not limited to the Internet, a cellular communication network, a telephone network, a computer network, a radio transmitter and receiver network or interconnected fax machines.  
           [0035]    According to another embodiment of the current invention there is provided a method for generating a syllabus for a trainee. The method includes the steps of providing a database containing at least one topic and at least one topic attribute, generating the syllabus based on the topic and the topic attribute and outputting the syllabus.  
           [0036]    The topic attribute may include but is not limited to a topic level, an order in which topics are to be covered, an exercise for training the topic, a prerequisite for performing the exercise, an estimated time to complete the exercise, a resource required for the exercise, a resource availability, a requisites for successful completion of the topic, and a requisite for successful completion of the exercise.  
           [0037]    The step of providing the database may include but is not limited to editing the topic, editing the topic attribute, entering information pertaining to a budget, editing information pertaining to resource availability, or editing information pertaining to scheduling.  
           [0038]    The step of providing the database may include but is not limited to entering data into a personal computer, entering data using formatted evaluations, entering data via an output channel of a training simulator, entering data via a medical database, entering data via a psychological database, entering data via a data collection device of a vehicle, entering data via a device measuring the performance of a vehicle, entering data via an automated test reader, entering data via a personal digital assistant, entering data via a recording device, entering data via a scanner, or an e-mail message.  
           [0039]    The output may provided by but is not limited to being provided by one of the following interfaces a video viewer, a training simulator program, a training simulator control channel, voice instructions, a communication channels of a vehicle, control channels of a training vehicle, or a printer.  
           [0040]    The step of outputting the syllabus may include but is not limited to presenting a training exercise, presenting a training session program, presenting orders for a required resource, reporting progress, reporting budget information, presenting a crew exercise, displaying on a video viewer, transmitting a training simulator program to a simulator control channel, giving voice instructions, transmitting to a communication channels of a vehicle, transmitting to a control channels of a training vehicle, or a printing information or reporting schedule information.  
           [0041]    According to further features in the described preferred embodiments the method further includes the steps of inputting trainee data and updating the syllabus based on the trainee data. The trainee data may include but is not limited to trainee progress communicated to the database by training equipment, psychological data, an exercise previously completed by the trainee, time required by the trainee to complete the already completed exercise, previous experience of the trainee, or schedule information pertinent to the trainee.  
           [0042]    According to still further features in the described preferred embodiments the syllabus may include a program for a class. The class includes a plurality of trainees.  
           [0043]    According to still further features in the described preferred embodiments the syllabus may contain a crew exercise. The crew exercise is performed by a plurality of trainees using a plurality of input interfaces. The input interfaces may be remote and interconnected by a network.  
           [0044]    According to still further features in the described preferred embodiments the method includes the step of providing information pertinent to the syllabus. The information is for the use of the trainee.  
           [0045]    According to still further features in the described preferred embodiments the syllabus is generated by a personal computer.  
           [0046]    According to still further features in the described preferred embodiments the syllabus may include a flight training exercise.  
           [0047]    According to still further features in the described preferred embodiments the method further includes the steps of providing a communication network in communication with the processor and providing communication devices in communication with the communication network. The communication devices may serve to input the trainee data, to input topic data, to input attribute data or to output the syllabus. The communication network may include but is not limited to the Internet, a cellular communication network, a telephone network, a computer network, a radio transmitter and receiver network or interconnected fax machines.  
           [0048]    According to yet another embodiment of the current invention there is provided a method of adaptive real time triangulation for progressive meshing of a domain based on a geometrical data set. The method includes the steps of generating an optimal unstructured map based on the geometrical data; storing the optimal unstructured map and constructing a polygon mesh in a section of the domain at a required level of detail. The polygon mesh is based on the optimal unstructured map.  
           [0049]    According to still further features in the described preferred embodiments the method further includes the step of modifying a location in the polygon mesh to meet a required level of detail.  
           [0050]    According to still further features in the described preferred embodiments the steps of generating a optimal unstructured mesh, storing the optimal unstructured mesh and constructing the preliminary polygon mesh are performed off-line and the step of modifying a location in the polygon mesh to meet a required level of detail is performed repeatedly on-line according to need.  
           [0051]    According to still further features in the described preferred embodiments the step of modifying a location in the polygon mesh may include but is not limited to splitting a polygon and reducing a plurality of polygons. When splitting a polygon, assigning a height to a new vertex may include but is not limited to kridging from known heights in the optimum unstructured map, interpolation of heights in the optimum unstructured map, interpolation of heights in the polygon mesh, hierarchical subdivision and conditional random simulation.  
           [0052]    According to still further features in the described preferred embodiments the splitting and the reduction of polygons is by the Rottger-Hiedrich algorithm.  
           [0053]    According to still further features in the described preferred embodiments the geometric data is ground level data.  
           [0054]    According to still further features in the described preferred embodiments the geometric data is digitized from a graphic image.  
           [0055]    According to still further features in the described preferred embodiments the method further includes the step of rendering an image.  
           [0056]    According to still further features in the described preferred embodiments the image is for use by a flight simulator.  
           [0057]    According to still further features in the described preferred embodiments the step of generating an optimal unstructured map includes the sub-step of fitting a set of best-fit curves to the geometrical data.  
           [0058]    According to still further features in the described preferred embodiments the step of generating an optimal unstructured map includes the sub-step of fitting a set of best-fit curves to the geometrical data and the best-fit curves are a set of splines.  
           [0059]    According to still further features in the described preferred embodiments the step of generating an optimal unstructured map includes the sub-step of fitting a set of best-fit curves to the geometrical data. Furthermore, generating the unstructured map includes the sub-step of creating a set of control points from the set of best-fit curves.  
           [0060]    According to still further features in the described preferred embodiments the step of generating an optimal unstructured map includes the sub-step of fitting a set of best-fit Bezier splines. Furthermore the generating an optimum unstructured map includes the step of choosing control points correspond to the Bezier splines.  
           [0061]    According to still further features in the described preferred embodiments the step of generating an optimal unstructured map includes the sub-steps of breaking the domain into zones and generating an optimal unstructured map in at least one of the zones.  
           [0062]    According to still further features in the described preferred embodiments the zones are divided such that each zone has a consistent variance structure.  
           [0063]    According to still further features in the described preferred embodiments the step of generating an optimum unstructured map includes the sub-step of sampling the geometrical data. The unstructured map is generated from the sample of the geometric data.  
           [0064]    According to still further features in the described preferred embodiments the size of the sample of the geometric data is chosen based on scale of variance of the geometrical data. For example, the size of the sample may be 20 points for every unit area equal to the squared integral scale of the variance of the height data.  
           [0065]    According to still further features in the described preferred embodiments the step of generating an optimal unstructured map includes the sub-step of analyzing the scale of variance of the geometrical data.  
           [0066]    According to still further features in the described preferred embodiments the analysis of scale of variance is may include but is not limited to a Fourier analysis and spatial-statistical analysis.  
           [0067]    According to still further features in the described preferred embodiments the description of the variance structure may include but is not limited to one characteristic selected from the list including a spectrum, a variogram, a covariogram, a fractal, or indicator statistics.  
           [0068]    According to still further features in the described preferred embodiments conditional random simulation may be used for but is not limited to simulate data in a location where the geometrical data is inadequate for the generation of the optimal unstructured map, to fill in data in a location where the optimal unstructured map is insufficient for the construction of the polygon mesh and to fill in data when modifying the polygon mesh in a location where the optimal unstructured map and the polygon mesh are insufficient for the required level of detail.  
           [0069]    According to still further features in the described preferred embodiments the constructing a polygon mesh includes the step of triangulation.  
           [0070]    According to still further features in the described preferred embodiments the triangulation is Delaunay triangulation.  
           [0071]    According to still further features in the described preferred embodiments constructing a polygon mesh includes the sub-step of simplifying at least one map selected from the group consisting of the optimal unstructured map and the polygon mesh.  
           [0072]    According to yet another embodiment of the current invention there is provided a method of adaptive real time triangulation for progressive meshing of a domain based on a geometrical data set. The method includes the steps of storing a geometric map of the domain and constructing a polygon mesh in a section of the domain at a required level of detail based on the geometric map. The step of constructing a polygon mesh includes the sub-steps of dividing the domain into a plurality of sub-domains and constructing a plurality of polygon sub-meshes. Each polygon sub-mesh is in one of the sub-domains. Each polygon sub-mesh is based on the geometric map. The step of constructing a polygon mesh further includes the sub-step of joining a first sub-mesh to a second sub-mesh of the plurality of sub-meshes. Joining is performed at a common boundary between the first sub-mesh and the second sub-mesh.  
           [0073]    According to further features in the described preferred embodiments the sub-step of joining is by stitching.  
           [0074]    According to still further features in the described preferred embodiments the geometric map is an optimal unstructured map.  
           [0075]    According to still further features in the described preferred embodiments the sub-step of dividing the domain into sub-domains may be accomplished by employing at least one attribute selected from the group consisting of variance and required level of detail.  
           [0076]    According to yet another embodiment of the current invention there is provided a system to progressively mesh a domain using adaptive real time triangulation. The system includes a processor. The processor is designed and configured for generating an optimal unstructured map of the domain based on geometric data. The processor is also configured and designed for constructing a polygon mesh of a portion of the domain at a required level of detail based on the optimal unstructured map and for modifying the polygon mesh to meet a new required level of detail. The system further includes an input interface capable of communicating with the processor. The input interface is designed and configured for inputting the geometric data. The system further includes a database capable of communicating with the processor. The database is designed and configured for storing the optimal unstructured map and the polygon mesh. The system further includes an output interface capable of communicating with the processor. The output interface is designed and configured for outputting the polygon mesh.  
           [0077]    According to further features in the described preferred embodiments the processor is further designed and configured for breaking the domain into a plurality of sub-domains, generating a sub-mesh in each sub-domain and joining the sub-meshes.  
           [0078]    According to still further features in the described preferred embodiments the processor is further designed and configured to analyze variance of the geometric data.  
           [0079]    According to still further features in the described preferred embodiments the processor is further designed and configured to simplify the optimal unstructured map or the polygon mesh.  
           [0080]    According to still further features in the described preferred embodiments the processor is further designed and configured to select sample of points from the geometric data.  
           [0081]    According to still further features in the described preferred embodiments the processor is further designed and configured to fill in the geometrical data with simulated data at a location in the domain by conditional random simulation.  
           [0082]    According to still further features in the described preferred embodiments the input interface includes a digitizer to manufacture the geometric data from a graphic image.  
           [0083]    According to still further features in the described preferred embodiments the output interface is a flight simulator which uses the polygon mesh to render an image.  
           [0084]    The current invention analyzes trainee performance to determine which topics were easily understood and which topics require further training. Based on the trainee&#39;s performance, a customized personal syllabus is created. Time and attention for any given topic are adjusted to student needs, thereby extending or reducing the time per topic and optimizing the individual&#39;s learning pace. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0085]    The invention is herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of the preferred embodiments of the present invention only, and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the invention. In this regard, no attempt is made to show structural details of the invention in more detail than is necessary for a fundamental understanding of the invention, the description taken with the drawings making apparent to those skilled in the art how the several forms of the invention may be embodied in practice.  
         [0086]    In the drawings:  
         [0087]    [0087]FIG. 1 is a schematic representation of a system for generating a dynamic training syllabus according to the present invention;  
         [0088]    [0088]FIG. 2 is a flow diagram of a method for generating a dynamic training syllabus according to the present invention;  
         [0089]    [0089]FIG. 3 is a schematic representation of the database and initial, revised, and final training syllabi of preferred embodiment 2.  
         [0090]    [0090]FIG. 4 is a schematic representation of a system for generating a syllabus for an aviation group.  
         [0091]    [0091]FIG. 5 is a schematic overview of a method of producing an optimal unstructured map and preliminary triangulated mesh according to the current invention;  
         [0092]    [0092]FIG. 6 is a schematic view of triangulation of sub-domains;  
         [0093]    [0093]FIG. 7 is a flow chart illustration of a method for adaptive triangulation;  
         [0094]    [0094]FIG. 8 is a flow chart illustration of a dynamic method for polygon mesh modification;  
         [0095]    [0095]FIG. 9 a  is an illustration of a polygon mesh;  
         [0096]    [0096]FIG. 9 b  is an illustration of increasing LOD in a polygon mesh by vertex addition and interpolation;  
         [0097]    [0097]FIG. 10 is a flow chart illustration of a method of joining sub-meshes;  
         [0098]    [0098]FIG. 11 a  is a an illustration of triangulation two of rectangular sub-meshes;  
         [0099]    [0099]FIG. 11 b  is an illustration of two improperly joined rectangular sub-meshes;  
         [0100]    [0100]FIG. 11 c  is an illustration of joining two rectangular sub-meshes by vertex omission;  
         [0101]    [0101]FIG. 11 d  is an illustration of joining two rectangular sub-meshes by vertex addition;  
         [0102]    [0102]FIG. 12 a  illustrates a quadtree structure used for Rottger-Hiedrich triangulation;  
         [0103]    [0103]FIG. 12 b  illustrates the triangulation of a Rottger-Hiedrich quadtree structure;  
         [0104]    [0104]FIG. 13 illustrates reduction of LOD in a Rottger-Hiedrich quadtree structure;  
         [0105]    [0105]FIG. 14 illustrates a Rottger-Hiedrich quadtree structure that cannot be joined by vertex elimination;  
         [0106]    [0106]FIG. 15 a  is a three-dimensional wire-frame illustration of a mesh without cracks;  
         [0107]    [0107]FIG. 15 b  is a three-dimensional wire-frame illustration of a mesh with cracks;  
         [0108]    [0108]FIG. 16 illustrates a system for progressive meshing according to the present invention. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0109]    The present invention is of a dynamic professional syllabus which can be used to make training programs more efficient. Specifically, the present invention can be used to conserve training resources by monitoring trainee progress.  
         [0110]    The principles and operation of a system and method for a dynamic professional syllabus according to the present invention may be better understood with reference to the drawings and accompanying descriptions.  
         [0111]    Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.  
         [0112]    For purposes of this specification and the accompanying claims, the phrase indicator statistics refers to numerical data indicating the location of characteristic forms in a domain.  
         [0113]    For purposes of this specification and the accompanying claims, the phrase outputting a syllabus includes the reporting of data from the syllabus or presenting a mission from the syllabus to a trainee or to a user.  
         [0114]    For purposes of this specification and the accompanying claims, the term map refers to a data structure defining a value of a characteristic at a plurality of locations in a domain.  
         [0115]    For purposes of this specification and the accompanying claims, the term mesh refers to a data structure defining a value of a characteristic in continuous space in a geometric domain.  
         [0116]    For purposes of this specification and the accompanying claims, the phrase polygon mesh refers to a data structure defining a value of a characteristic on set of polygons in a geometrical domain.  
         [0117]    For purposes of this specification and the accompanying claims, the term trainee refers to any user of receiver of information.  
         [0118]    For purposes of this specification and the accompanying claims, the terms geo-statistics and spatial-statistics.  
         [0119]    For purposes of this specification and the accompanying claims, the term mission refers to an assignment to a person or a group of people and the assignment may be for the sake of training or have an intrinsic motivation.  
         [0120]    For the purposes of this specification and the accompanying claims, the phrase generate a syllabus may include but is not limited to scheduling a mission, scheduling a class, revising a schedule, updating data in an existing syllabus, sending messages to involved personnel, and reserving equipment.  
         [0121]    Referring now to the drawings, FIG. 1 illustrates a first preferred embodiment which is a system for a dynamic training syllabus, which is referred to hereinunder as system  10 .  
         [0122]    System  10  includes: a database  14   a  for storing training topics and topic attributes. System  10  also includes a processor  15   a  which generates a training syllabus  16   a  based on the training topics and training topic attributes. The database and processor may be, for example, the storage and processing components of a personal computer. System  10  also includes input interfaces, for example  12   a ,  12   b ,  12   c ,  12   d , and  12   e  communicating with processor  15   a  and, output interfaces, for example  17   a ,  17   b ,  17   c ,  17   d , and  17   e  communicating with processor  15   a.    
         [0123]    Training coordinator  11  inputs data including training topics and topic attributes into input interface  12   a , which may be, for example, a personal computer. The data is relayed over a local area network  13   a  to via processor  15   a  to database  14   a . Database  14   a  is in communication with processor  15   a . Processor  15   a  generates a training syllabus  16   a . Syllabus  16   a  is stored in database  14   a . Processor  15   a  outputs a first program from stored syllabus  16   a  for the first training session to a first output interface  17   a . For example, output interface  17   a  is the input channel of a flight simulator  18   a . The first program contains a formatted simulator control program communicated through the simulator control channel of output interface  17   a . The first program also contains instructions for the trainee during the simulated flight. The instructions are presented during the training exercise on the video screen of simulator  18   a.    
         [0124]    It is understood that exercises supplied by training coordinator  11  may include audio visual materials which can be scanned into input interface  12   a  or input through a digital video recorder. Physical materials such as audio and videotapes, charts and drawings may also be made available to trainees. The store room for such materials can be considered part of database  14   a  and the materials can be communicated to database  14   a  by any convenient means, for example fax or mail.  
         [0125]    Database  14   a  further stores trainee progress data. Thus, the output channel of flight simulator  18   a  is also a second example of an input interface  12   b  communicating trainee performance data to processor  15   a . Processor  15   a  evaluates the trainee performance data according to performance requisites stored in database  14   a  and updates database  14   a  by adding a current evaluation of trainee performance. Input interfaces for inputting trainee performance include but are not limited to a formatted evaluation such as a multiple-choice test graded by an automated test reader, a data collection device of a vehicle such as a flight recorder, a device measuring performance of a vehicle such as flight controller radar, a voice communication device such as an aircraft radio, a recording device such as a video camera.  
         [0126]    Processor  15   a  receives data pertaining to the availability of an instructor from input interface  12   c  which is, for example, the instructor&#39;s personal data assistant (PDA). PDA  12   c  can also be used to edit scheduling data, the edited data being uploading to database  14   a  at a convenient time. Processor  15   a  also receives resource availability data from input interface  12   d  which is the workstation of a resource provider. Input interface  12   d  is also used to input information pertaining to equipment cost and a budget. When there are changes in costs, input interface  12   d  is used to edit budget information. Processor  15   a  uses the training topic data, the trainee data, and the scheduling data to update training syllabus  16   a.    
         [0127]    Processor  15   a  subsequently communicates an updated training schedule from database  14   a  to output interface  17   b , which is, for example, instructor PDA  12   c . PDA  12   c  reports scheduling information to the instructor. Processor  15   a  also communicates an updated training schedule from database  14   a  to output interface  17   c  which is, for example, resource provider workstation  12   d . Resource provider workstation  12   d  further presents orders for resources required for the training session to a resource provider. For example, in this preferred embodiment, the resources include training vehicle  34 , an aircraft for use in a training flight. If a piece of equipment for example vehicle  34  is out of service, the resource provider uses input interface  12   d  to edit information pertaining to resource availability to reflect the change in the status of vehicle  34 .  
         [0128]    It is understood that communication with PDA  12   c  and workstation  12   d  is by any convenient communication network. For example, a telephone or automated e-mail system can be used to contact an instructor who manually extracts data from PDA  12   c  and sends a return message to database  14   a  or alternatively PDA  12   c  may be capable of direct cellular communication (for example the Nokia Communicator T  and the like) in which case database  14   a  directly communicates with PDA  12   c  over the cellular network automatically receiving schedule information and reserving dates for training sessions. Communication with workstation  12   d  is, for example, over the Internet. It is also understood that workstation  12   d  can supply resource cost information to database  14   a . The cost information can be used, for example, by an accountant for budgetary calculations.  
         [0129]    Further examples of networks include but are not limited to a cellular communication network, a telephone network, a computer network, a radio transmitter and receiver network and interconnected fax machines.  
         [0130]    During the training flight, processor  15   a  presents an updated second training session training program from database  14   a  via voice instructions over output interface  17   d  which is, for example, the radio receiver of training vehicle  34  to an instructor on board training vehicle  34 . The radio transmitter of training vehicle  34  also acts as a second input interface  12   e  and communicates trainee performance data to database  14   a . Further trainee performance data may be reported to database  14   a  from external measurements of vehicle performance supplied for example by control tower radar. It is understood that in this way, processor  15   a  may adjust second session training program during the session. Such an adjustment saves valuable time and resources when unforeseen circumstances interfere with execution of the original training program.  
         [0131]    [0131]FIG. 2 illustrates a second preferred embodiment hereunder referred to as method  50 , which is a method for a dynamic training syllabus. In the first step there is supplied database  14   a  including initial data  51  and processor  15   a . Initial data  51  includes data on topics to be covered, attributes of the topics and may also include information on trainees.  
         [0132]    For example, initial data  51  for a pilot training course may include the following topics: (A) avoiding dynamic stall (B) ascending in an aircraft. The syllabus also specifies that the order of completing the topics. A trainee must be first learn to avoid stall and then ascending in an aircraft. Each topic includes attributes, for example: I) Exercises (A) pertaining to avoiding dynamic stall (i) class in flight theory—conditions that cause stall (ii) simulation of stall 1 (iii) simulation of stall 2 (iv) flight training avoiding stall—estimated time to complete exercise 2 hours (v) flight training recovering from stall—estimated time to complete exercise 3 hours (B) exercises pertaining to ascending in an aircraft (i) class in aircraft control (ii) simulated ascent (iii) flight training ascent—estimated time to complete exercise 3 hours; (II) Prerequisites: flight training of stall recovery requires flight training of stall avoidance; flight training of ascent requires simulator training of stall (III) Requisites for completion of topics (A) avoidance of stall—successful recovery from stall in real flight (B) ascent in an aircraft—successful ascent in real flight; (IIII) Trainee data (trainee [A]) previous training in aeronautical engineering, previously completed ascent simulator exercise, required time to complete ascent simulator exercise was 2 hours; (trainee [B]) psychological examination revealed that may be panic prone (trainee [C]) physiological data reveal that is left handed.  
         [0133]    Based on initial data  51  an initial training syllabus  16   a  is generated and output to an instructor (syllabus output is represented by the solid arrow). In the pilot training example, syllabus  16   a  includes a program for a first training session  52   a  (FIG. 2), which is, for example, a class in aeronautical theory. At the end of training session  52   a  trainees complete an exam using a computer graded test form output by a printer (not shown). A test reader grades The test form and communicates the results into via processor  15   a  to database  14   a  (trainee data input is represented by the dotted arrow). Processor  15   a  compares test results to the exercise completion requisites in database  14   a  and passes the trainees to a second training session  52   b  (FIG. 2) which is, for example, a flight simulation session to be attended by all trainees. If test results were poor, training syllabus  16  would be updated by processor  15   a  to include further classes containing exercises on topics that were incompletely mastered. A training coordinator  11  may also use an input interface  12   a  to edit topics or topic attributes. For example, if training supervisor feels trainees [A], [B] and [C] are unprepared making stall exercises are too dangerous then training supervisor edits the attributes of the topic (A) avoiding dynamic stall and adds more prerequisites. Trainings supervisor  11  may also use input interface  12   a  to edit a training topic. For example, training supervisor  11  may change the topic from “(A) avoiding dynamic stall” to “(A) theory of dynamic stall” removing the in flight stall exercise.  
         [0134]    Based on psychological data on trainee [B], syllabus  16   a  includes a program  79   c  for a second simulation session for trainee [B]. In this example, trainee [B] excels in flight simulation  52   b  and based on the results of training session  52   b  input into database  14   a , processor  15   a  outputs a revised training syllabus  16   b  which does not include second simulator session program  79   c.    
         [0135]    Trainee performance is input to database  14   a  after flight training in third training session  52   d  (FIG. 2). For example, trainee [A] took longer than scheduled to complete flight training exercise i. Based on the trainee performance data, final training syllabus  16   c  includes extra time for flight training for trainee [A] in fourth and fifth training session programs  79   e , and  79   f  respectively. Programs  79   e  and  79   f  are, for example, further flight training session programs. During training sessions  52   e  (FIG. 2) and  52   f  (FIG. 2), trainee performance is reported to database  14   a . Because in this example, trainee performance is acceptable, final training syllabus  16   c  is the final training syllabus.  
         [0136]    The initial syllabus  16   a , revised syllabus  16   b  and final syllabus  16   c  of the second preferred embodiment are shown in FIG. 3. Each syllabus contains session programs  79   a ,  79   b ,  79   c ,  79   d ,  79   e ,  79   f . Each training program  79   a ,  79   b ,  79   c ,  79   d ,  79   e ,  79   f  is to be attended by at least one trainee represented by a letter in square brackets. Exercises to be completed by each trainee in the flight training programs  79   d ,  79   e ,  79   f  are shown by small Roman numerals below the trainee letter.  
         [0137]    Class program  79   a  may include printed material, for example, a class schedule, exercises and test questions. Program  79   a  may also include audiovisual materials for use of the instructor. Based on data pertaining to previous experience, trainee [A] is not required to attend class  52   a  (FIG. 2) and is not included in program  79   a.    
         [0138]    Program  79   b  is a flight simulator session to be attended by all trainees.  
         [0139]    Based on psychological data, trainee [B] is scheduled to attend an extra simulated flight training session in program  79   b . In this example, trainee [B] performs exceptionally well in second training session  52   b  (FIG. 2). Based on trainee performance data input (shown as a dotted arrow) into database  14   a  (FIG. 2) from training session  52   b  a revised syllabus  16   b  is generated and output. Revised syllabus  16   b  does not contain second simulator session program  79   c . Therefore according to revised syllabus  16   b , flight training program  79   d  comes directly after simulator training program  79   b.    
         [0140]    According to revised syllabus  16   b , trainee [A] is to complete flight training exercises i and ii in flight training session  52   d  (FIG. 2) as is seen in training program  79   c . In the example, trainee [A] completed only flight training exercise i in training session  52   d . Therefore, after input of performance data from session  52   d , final syllabus  16   c  transfers flight time from trainee [C] in training program  79   e  to trainee [A]. Training program  79   f  is lengthened to give more time for trainee [C] making up for the training time lost by [C] is program  79   d.    
         [0141]    [0141]FIG. 4 illustrates a third preferred embodiment, which is a system for a dynamic training syllabus, which is referred to hereinunder as system  80 .  
         [0142]    In system  80  there is a processor  15   b  and a database  14   b . Processor  15   b  is in communication with network  13   b , which is the Internet. Database  14   b  includes a library of aviation data  82  an import export algorithm  84 , resource availability data  86 . tools algorithms  88 , and a syllabus  16   d . In system  80 , syllabus  16   b  is a syllabus for a flight mission. The mission of system  80  is to bring medical equipment to a flooded region in a Spanish speaking country on a outbound leg of the mission and to bring injured people to medical treatment on the return leg of the mission.  
         [0143]    A supervisory user uses, for example, a desktop personal computer (PC) as an output interface  17   e  and a keyboard as an input interface  12   f . Output interface  17   e  is connected to processor  15   b  through a high-speed intranet  96 . The supervisor first generates a new mission syllabus  16   d , which will store data and scheduling for the new mission. Having received a request for the mission the supervisory user must first identify trainees who will be crewmembers. A flight crew must include crewmembers with experience flying large cargo aircraft on short runways, have medical skills, have current inoculations against hepatitis, and be able to communicate in Spanish. To find crewmembers, the supervisory user accesses database  14   b  using input interface  12   f  and requests that processor  15   b  search personnel data  90  for trainees having the proper qualifications. For example personnel data  90  includes a medical database supplied and updated with permission from employee by personal physicians. The medical database includes an inoculation status for each employee. Because database  14   b  does not contain data on medical skills, the supervisor uses processor  15   b  to send a memo to all flight personnel. In order to keep track of potential crewmembers that have yet to be reached, the memo requires an acknowledgement with a digital signature from each recipient. The memo requests that employees having medical training send a list of medical qualifications.  
         [0144]    The supervisory user identifies three people including a first trainee [D] who is a pilot, a second trainee [E] who is a navigator and also knowledgeable in first aid, and a third trainee [F] who is a copilot and Spanish speaker. The supervisory user sends a message to a training supervisor  92  requesting that training supervisor  92  arrange a crew exercise covering short foul weather landing and takeoff using local data from the mission destination. Training supervisor is also to provide information pertinent to the syllabus such as health conditions in the destination country and visa requirements. Training supervisor  92  is to add the pertinent information to database  14   b.    
         [0145]    Trainer  92  adds a crew exercise  100  to a mission syllabus  16   d . Pilot, trainee [D], will train on a flight simulator while crew members [E] and [F] will participate from their homes using, for example, personal computers as communication devices (PCs serve as both input interfaces  12  and output interfaces  17 ) communicating over network  13   b . Crew exercise  100  includes trainees [D], [E], and [F] and is designed to give trainees [D], [E], and [F] experience working together under conditions analogous to the conditions of the planned mission. Therefore crew exercise is synchronous and simulator data includes sound recorded over a microphone (not shown), terrain images (not shown), cockpit instrumentation and readings (not shown) and messages from a virtual instructor (VI)  102 . The simulator data are output to trainee pilot [D] and simultaneously relayed to trainee crew [E] and [F] over network  13   b.    
         [0146]    Training supervisor  92  must build exercise  100 . The first step is to develop topics and topic attributes to be covered. Training supervisor first outlines topics to be covered and attributes of the topics. Training supervisor  92  must also develop a model of local terrain. To develop the terrain model, trainer  92  uses network  13   b  to e-mail an air force official  104  from the host country requesting local terrain data  106  for use in exercise  100 . In reply, air force official  104  sends data  106  as an e-mail attachment to trainer  92 . Data  106  needs to be adapted to an available simulator. Therefore data  106  is first converted using import/export algorithm  84 , which contains programs for processor  15   b  facilitating transfer of data between various simulator formats. A terrain builder tool  108  facilitates, through interactive menus, the development of a locally accurate simulation model. Builder  108  is an algorithm executable by processor  15   b . Builder  108  outputs a simulator instruction code to simulate local conditions based upon interactive menu driven choices. For example, a weather tool (not shown) allows adjust the lighting, sound, and instrument readings in order to simulate rain, lighting and high winds. The weather tool also adjusts appropriate parameters such as the ground hardness in response to specified rates for rainfall. Lightening may be added at specific times in the simulation, as specific points in the simulation (for example when the aircraft reaches a certain altitude in final landing decent) or at random times according to a random distribution function specified by trainer  92 . Terrain builder  108  also menus for adding a structure (for example a building) from terrain data  106 .  
         [0147]    Along with terrain data  106  in the proper format exercise  100  contains a VI  102 . VI building tool  107  is a computer algorithm that facilitates the programming of a virtual instructor. The VI, gives instructions to trainees during a training session in response to trainee actions. Specifically, the destination runway of the mission is a grassy field. The grassy field is softer than temporary runways of dessert stone in the home country of pilot [D]. Therefore, one instruction that trainer  92  programs into VI  102  is that if pilot [D] approaches the runway with a steep decent, VI  102  informs pilot [D] that this runway is of soft wet dirt and must be approached more carefully. VI builder  107  can also be used to build a virtual peer to the trainee. For example, VI builder  107  can build a virtual crewmember for simulations that do not include the entire crew learning synchronously. Thus, a crew exercise can be made non-synchronous by recording the reactions of one crewmember during a simulation and designing a virtual peer to react in a similar fashion. Information from a psychological database (not shown) included in personnel data is also used to program the reactions of virtual crewmembers. The remaining crewmembers then perform simulations with the virtual peer. Similarly, for combat pilots, the virtual peer would be an enemy pilot.  
         [0148]    Builder tools  88  include but are not limited to VI builder  107 , terrain builder  108 , a scenario builder  111 , a device builder  114 , a certification tool  116  and a debugger  112 . Device builder  114  is an algorithm for an interactive tool to facilitate designing and modifying a virtual cockpit of a simulator to resemble real or proposed aircraft. Device builder  114  can also be used to design a virtual weapons having properties of known real weapons such as missiles for combat simulations. Certification tool  116  checks code to test if the code meets programming standards. Programming standards may be rules of programming etiquette for portable code, or programming standards may be requirements of particular target devices and processors. Debugger  112  monitors program progress during a simulation and outputs a log file that informs a user of the state of various virtual device and actor codes. Debugger  112  is useful for tracing coding errors that cause a simulator program to fail. Scenario builder  111 , allows a trainer  92  to specify alternate scenarios for a missions. For example, in embodiment  80 , trainer  92  uses scenario builder  111 , to set up two scenarios. In the first scenario the flight arrives during a thunderstorm and in the second scenario the weather is good but the airstrip is crowded. Scenario builder  111  facilitates interactive building of scenario&#39;s that share some information (for instance terrain, aircraft characteristics) but have significant non-shared data. Writing two simulations as two scenarios saves storage space and run time (because processor  15   b  does not need to load and reload all the data of both scenarios separately into memory).  
         [0149]    The supervisor also uses input interface  12   f , output interface  17   e , intranet  96  and database  14   b  to mark a transport aircraft as reserved in resource availability data  86 . Processor  15   b  automatically pushes a message over intranet  96  informing a resource coordinator  94  of the change to resource availability data  86 . Processor  15   b  also pushes a message to the supervisor reporting the cost of ordered equipment as budget information over output interface  17   e . Resource coordinator  94  then adds to mission syllabus  16   d  a scheduled item  98  that will trigger on the morning of the mission and send a message over intranet  96  to ground personnel reminding them to prepare the aircraft. In this way processor  15   b  and database  14   b  coordinate data and messages. Thus processor  15   d  sends messages on the inter-net or intranet to remind users or trainees of data, missions, classes, changes in laws, changes in policy, upcoming exams, and periodically reminds pilots to review particular subjects. Processor  15   d  also reports progress and activities of trainees over output interface  17   e  to the supervisor. Processor  15   d  also collects information  110  relevant to trainees who are pilots from the Internet, for example changes in laws, changes in policy, upcoming exams, weather forecasts  109 , and airport conditions. After collecting information  110 , processor  15   d  sorts and stores information  110 . When information  110  fits a predetermined criterion, a message or information  110  itself is pushed to the trainee or user in an e-mail message or an internal memo. Information may be pushed to a user in an immediate on line message. For example a reminder is sent to an instructor and trainees immediately before scheduled class. A message may be sent as an e-mail message. For example, when there are changes in air-routes, an e-mail is sent to concerned pilots with an attached map. Information may be collected and sent as a bundle at a predetermined time set aside for review of new information. For example processor may collect industry reports of new aircraft technology and forward the reports as a bundle to pilots every Friday morning.  
         [0150]    Database  14   b  also contains tips  115  and tutorials  113 . For example, a pilot may submit a tip  115  based on experiences at an individual airport. A supervisor may submit a tip or a tip may be automatically generated by a virtual instructor and targeted to the particular trainee when the trainee has consistent trouble with a certain skill. Pilot [D] after being informed of his new mission looks through tips database  115  to find any comments from pilots flying into unfinished airstrips in the region of the mission. Tutorials  113  are used brush up old skills or develop new skills. For example, pilot [D] has not flown the type cargo plane reserved for the current mission for a few years. Pilot [D] finds a tutorial  113  supplied by the plane manufacturer reminding pilots of the structure and placement of instruments, the load and speed limits of the aircraft and the recommended pre and post flight checks.  
         [0151]    Database  14   b  also includes briefing  118  and debriefing  120  data. Briefing  118  informs trainee [D], [E], and [F] of particular points in an exercise or mission requiring trainee attention. Data in a briefing  118  is tailored to a given mission or exercise and also to a given trainee. Thus, for the cargo mission of this embodiment, training supervisor  92  sets up a briefing for crew exercise  100 . The briefing data includes reminders of the difficulties to be expected in exercise  100  and notes on the crewmembers. Specifically, pilot [D] is reminded that on the return leg of the journey navigator [E] may be busy with patients being transported and therefore pilot [D] must remain aware of navigational problems. Similarly copilot [F] is reminded that pilot [D] has most of his experience under dessert conditions and should be reminded of potential problems related to wet conditions.  
         [0152]    An evaluation of performance of a trainee in an exercise or on a mission is reported in a debriefing  120 . Debriefing  120  information includes records from VI  102  as well as records of crew activities during a real or training mission. Thus, the debriefing data reminds pilot [D] of mistakes made during the training mission. Debriefing data  120  is sufficient to allow pilot [D] to replay the simulator flight, stopping or slowing the replay, and viewing the replay at different angles in order to understand the cause of problems and how problems can be avoided. Replay data may be stored on a videotape, then the output interfaces being, for example, a video viewer.  
         [0153]    VI program  102 , briefing  118 , library information  82 , reminders, and debriefing data  120  are made available to pilot [D] before during and after a real mission via an on board computer and on board communication equipment of the mission aircraft.  
         [0154]    [0154]FIG. 5 is a schematic overview of a method for construction of a base polygon mesh  204   a . Construction of a base polygon mesh  204   a  is accomplished offline prior to a flight simulation. Base polygon mesh  204   a  is a simple mesh containing only active vertices without the need for complicated hierarchal structures requiring graphical expertise. The geometrical input to the method is raw geometrical data  200   a . Data  200   a  is a set of point elevation values generated by digitizing a graphical image for example a aerial photograph. Geometrical data  200   a  is not optimized. Therefore, there may be large numbers of unnecessary data points. A data point is unnecessary if the elevation of the point could be found to sufficient precision from by interpolation from nearby points. Geometrical data  200   a  may also be inadequate in some locations. Data is inadequate in a location if the correct height of the location cannot be determined to sufficient precision from the data. Therefore an optimal unstructured map  212   a  (FIG. 6) is generated and used to construct polygon mesh  204   a.    
         [0155]    Before generating optimal unstructured map  212   a , a domain of data  200   a  is variance-mapped  202   a . The first step in variance mapping is breaking the domain into zones  206   a  (FIG. 6). First preliminary zones are divided  218  (FIG. 7) according to natural boundaries by visual inspection (for example separating hilly from flow terrain, separating a river valley from a plain). Variance mapping  202   a  may include but is not limited to Fourier analysis, spatial-statistics or fractal analysis. For example in spatial-statistical analysis, the set of possible lags between any two points is divided into bins. For example, for a square domain of 100 square kilometers, bins are chosen as 1-5 m, 5-10 m, 10-50 m, 50-200 m, 200-1000 m, 1000-5000 m. Variance may also be anisotropic and therefore, distance between two points (x 1 , y 1 , h 1 ) and (x 2 , y 2 , h 2 ) is defined as {square root}{square root over ((x 1 −x 2 ) 2 +([y 1 −y 2 ]/λ) 2 )} where λ represents the ratio of the integral scales in the y and x directions. For a data-pair (x 1 , y 1 , h 1 ) (x 2 , Y 2 , h 2 ) a variogram estimator (h 1 −h 2 ) 2  is computed. In each zone, every pair of points is classified into a bin according to the lag distance between the points in the xy-plane. Various values of the anisotropy ratio λ are tested and the anisotropy ratio λ is optimized in each zone to minimize the variance of the variogram estimator within the bins. In each zone, a variogram is chosen by fitting the average height difference in the bins to a variogram model (for example a Guassian or an exponential variogram model). A covariogram may also be used for variance mapping.  
         [0156]    According to the computed variograms and zone size, zones are further subdivided or joined. Specifically, the preliminary zones are broken into base zones  206   a  wherein each base zone  206   a  has a consistent variance structure. Specifically, a zone has a consistent variance structure if the coefficient of variation of variogram values in all bins is less than one. Preliminary zones having bins in which the variogram values have a coefficient of variation greater than one are subdivided. Within the zone pairs of points are classified as of high or low variogram value in the bin. The zone is divided into two or more zones wherein, the data pairs in each zone at a particular lag contain a consistent set of variogram values. For each new zone, a new analysis of variance is made. Preliminary zones are further subdivided when the size of the zone is greater than ten times the lag scale at which the variogram value is 6. For example a zone of size 1 Km in the x-direction and 1.4 Km in the y-direction has an anisotropy ratio λ=1.5 and a fit Guassian variogram of  
       v   =       10        {     1   -     exp        (         -       (       x   1     -     x   2       )     2       -       [       (       x   1     -     x   2       )     /   λ     ]     2       100     )         }       +   3                           
 
         [0157]    Thus the variogram is 6 at the lag of 60 m. Because of the effect of λ, the lag of 60 m occurs for an x-lag of 60 m or a y-lag of 90 m. Thus, in order that the domain be ten times the lag scale of a variogram value of 6, the 1×1.4 Km zone is further divided  205   a  into four smaller base zones  206   a . Each base zone will be 0.5×0.7 Km (see FIG. 6). On the other hand, where there are two adjacent zones of consistent variance structure and each of the two zones are smaller than the determined base zone size, the two zones are combined into on large sub-domain. For example if two zones have a difference of less 30% in variogram values for all bins and have a difference of less than 30% in anisotropy ratios, then the zones are combined.  
         [0158]    After variance mapping an optimal unstructured map  212   a  (FIG. 6) is generated  210 . In each zone a set of best-fit Bezier Splines  207  (B-splines) are fit  208  to the geometrical data and a minimal set of points to reproduce the height map is defined as the control points  211  (FIG. 6) of B-splines  207 . Optimal unstructured map  212   a  contains the height information of geometrical data  200   a  using a minimum storage. Unstructured optimum map  212   a  is stored and used for further refinements of polygon mesh  204   a.    
         [0159]    If 90% of the data pairs in a particular zone  206   a  are separated by lags of less than one integral scale of the variogram of the particular zone  206   a , then B-splines  207  are fit  208  to a simplified geometric map including a small sample of the geometrical data in particular zone  206   a . Specifically, where there is a cluster of data points having similar height within an area of radius one integral scale of lag, a small sample of the points is selected other data points being removed. Fitting  208  B-splines  207  to the smaller sample decreases the computer resources necessary to build a simulation.  
         [0160]    LOD manager  214  defines a desired LOD for base polygon mesh  204   a . Using the geometrical data from optimal unstructured map  212  and the LOD a triangulator  216   a  constructs base polygon mesh  204   a  by Delaunay triangulation.  
         [0161]    [0161]FIG. 7 is a detailed flow chart illustrating a method for adaptive triangulation. Note that in FIGS. 7 and 8, thin lines represent flow of the process while thick lines represent flow of data. The input to the method is height map  200   b . In the first general step, analysis of variance  202   b , a set of preliminary zones are defined  218 . In each zone the spatial structure of the variance of height is analyzed  220  using a Fourier Transform. The bins of the spectrum of the Fourier Transform (wave-length) represent lag distance and the peaks heights of the spectrum represent the variance in height at the given lag. Based on the spectrum of the Fourier Transform, base geometric zones  206   b  are defined  205   b.    
         [0162]    After analysis of variance  220  and definition  205   b  of base zones  206   b , an optimal unstructured map  212   b  is generated  210 . In optimal unstructured map  212   b , conditional simulation is used to fill in  222  areas with inadequate data. Specifically, at an area where there is inadequate data, an expected mean height and variance are calculated by kridging. Then a random number is generated from a distribution having the expected variance and mean zero. The height assigned to the point is a sum of the random number added and the expected mean.  
         [0163]    Optimal unstructured map  212   b  is generated for each zone  206   b  by fitting  208  height map  200   b  to a set of B-splines  207  and storing the controls points  211  needed to generate the B-splines  207 . Optimal unstructured map  212   b  requires one-fifth the storage space of raw height map  200   b . The saving is not merely storage, but also processing time because in further steps of constructing a polygon mesh, the processor does not need to manipulate the huge data structures of raw height map  200   b . Further reduction of data manipulation is achieved because new points for triangulation will be based on small-scale zones  206   b  and will not require manipulating the entire optimal unstructured map  212   b.    
         [0164]    After generating optimal unstructured map  212   b , a base polygon sub-mesh  204   b  is constructed  224  by triangulation  216   b  in each zone  206   b . Base polygon sub-meshes  204   b , unstructured optimal unstructured map  212   b  and zones  206   b , are used on line in a flight simulation  226 . Heights are assigned  250  to the vertices of each sub-mesh  204   b  by kridging based on known heights at neighboring locations in optimal unstructured map  212   b . When a polygon  300   h   2  (FIG. 11 d ) is added (either during construction of sub-mesh  300   h   2 , or during polygon reduction or splitting) to a sub-mesh  240   b  (FIG. 11 d ) a height error is computed and stored, the error being between the face of polygon  300   h   2  and points of defined height in optimal unstructured map  212   b  falling in the domain of the polygon  300   h   2 .  
         [0165]    During flight simulation  226 , polygon mesh  204   b  is used to render  228  an image for the simulator. According to movements  229  of a pilot and an aircraft, a new view is defined  230 . The LOD required by the new view is determined  232 . From the new LOD requirement, a maximum permissible height error is defined  234  everywhere and zones  236  of maximum permissible error are generated. Error zones  236  serve as input along with the optimal unstructured map  212   b  and polygon mesh  204   b  for polygon mesh modification  238 . The detailed steps of mesh modification  238  are shown in the detailed flowchart of FIG. 8. Mesh modification  238  produces a set of sub-meshes  240  (FIG. 8) at the determined  232  required LOD. For smooth rendering, sub-meshes  240  must be joined  242 . The details of a method for joining  242  sub-meshes  240  are shown in FIG. 10 and explained hereinbelow.  
         [0166]    [0166]FIG. 8 is a detailed flow chart of a method for progressively modifying  238  a location in polygon mesh  204   b . Based on maximum error zones  236  and base zones  206   b  (which are divided according to the variance of height) sub-mesh boundaries are defined  244 . The step of determining sub-mesh boundaries is of great importance because modifying the entire polygon mesh  204   b  on line would be too slow for real time rendering and flight simulation. Therefore, sub-meshes  240  are determined and changes in LOD are carried out on line only a sub-mesh of sub-meshes  240 . At times portions of the terrain will come into view or go out of view (for instance when a low flying aircraft passes a ridge). Included in redefinition of sub-mesh boundaries is the removal of invisible sub-meshes from active memory. A sub-mesh  240   a  (FIG. 11 c ) is removed only when sub-mesh  240   a  has been inactive for 100 time steps and when all sub-meshes  240   b  sharing a boundary with sub-mesh  240   a  are also invisible. When invisible sub-mesh  240   a  shares a boundary with visible sub-mesh  240   b , sub-mesh  204   a  is stored in active memory for quick rendering in case sub-mesh  240   a  returns to active view.  
         [0167]    In each error zone  236  there is a defined maximum error. The variance of height at each data point in the optimal unstructured map can be determined by kridging. If there are points in optimal unstructured map  212   b  where the standard deviation of the height is greater than the maximum permissible error  246 , new points  248  are generated by conditional simulation  222 . Points  248  are added to optimal unstructured map  212   b . Whenever a point  248  is added to optimum map  212   b  an error between point  248  and a corresponding polygon face in polygon mesh  204   b  is computed and stored. When the optimal unstructured map  212   b  is sufficient, heights are assigned to new vertices of polygon sub-meshes  240  by kridging and new polygons are created in sub-meshes  240  as needed.  
         [0168]    If  254  the maximum error in a sub-mesh from sub-meshes  240  is greater than the permissible error  234 , then new vertices are added  256  to the sub-mesh where the error is beyond the permissible limit  234  and the process returns to testing whether the new sub-mesh is adequate. Adding  256  new vertices to a sub-mesh is illustrated in FIGS. 9 a , and  9   b . Joining  242  sub-meshes is illustrated in detail in the flowchart of FIG. 10 and in the illustrations of FIGS. 11 a ,  11   b ,  11   c ,  11   d ,  12   a ,  12   b ,  13 ,  14   a , and  14   b.    
         [0169]    When a polygon sub-mesh  240   c  (FIG. 12 a ) exceeds the LOD requirements then vertices of sub-mesh  204   c  are removed and polygons reduced (FIG. 13). Specifically, if in a particular sub-mesh  240   c , the error at 90% of points used for error testing have an error of less than 50% of the permissible error tolerance, then the particular sub-mesh  240   c  is simplified. In simplification, a vertex is removed from a sub-mesh. When a vertex is removed then polygons containing the vertex are reduced and new faces are based on the remaining vertices. Specifically, quadrilaterals  310   f - i  of FIG. 12 are reduced to quadrilateral  310   fghi  in FIG. 13. Reduction of polygons is not carried out where reduction will produce illegal structures (for example the illegal quadtree structure shown in FIG. 14 as explained hereinbelow).  
         [0170]    If  254  the maximum error in all sub-meshes  240  is less than the permissible maximum error  234  and in no sub-mesh  240  is the error of 90% of the polygons less than 50% of the maximum error, then sub-meshes  240  are joined  242  to produce polygon mesh  204   b  for rendering  228 .  
         [0171]    [0171]FIGS. 9 a - b  illustrate a method of adding a new vertex  253  to a triangulated mesh using a modified butterfly interpolation algorithm to assign height to new vertex  253  based on old vertices a 1 , a 2 , b 1 , b 2 , c 1 , c 2 , C 3 , and C 4 . FIG. 9 a  illustrates a rectangle {c 1 , c 2 , c 3 , c 4 }  250  triangulated according to the Rottger-Hiedrich algorithm. The coordinates of each vertex a 1 , a 2 , b 1 , b 2 , c 1 , c 2 , c 3 , and c 4  are defined by an ordered triplet (x, y, h) (0.5, 0.5, 1.2), (0.5, 1.5, 1.6), (1, 1, 2.1), (1, 0, 1.5), (0, 1, 1.3), (2, 1, 1.6) and (0, 0, 2) respectively. Any point inside rectangle  250  is found on the face of a triangle. The height of every point on each face is defined by three vertices surrounding the point. Specifically, point  252  is surrounded by vertices a 1 , a 2 , and b 2  and point  252  is located at (x, y)=(1.1, 0.25) therefore the height of point  252  is 1.49.  
         [0172]    To increase detail in a triangulated region, a vertex is added at the center of a side of any existing triangle. Specifically in FIG. 9 b  in order to increase detail in the middle of rectangle  250 , a vertex  253  is added at the center of side  254  (line segment {a 1 , a 2 }). The height of vertex  253  is assigned by interpolation according to the formula for the new point is h=(a 1 +a 2 )/4+({fraction (1/8)}+w)(b 1 +b 2 )+(c 1 +c 2 +c 3 +c 4 )({fraction (1/16)}−{fraction (w/2)}) where w is an arbitrary weighing constant (whose value will usually be {fraction (1/8)}&gt;w&gt;−{fraction (1/8)}). Specifically choosing the value of w as {fraction (1/8)}, the height of vertex  253  becomes (a 1 +a 2 +b 1 +b 2 )/4=1.575. After adding vertex  253 , point  252  is surrounded by vertices a 1 , b 2 , and  253 . Therefore the height of point  252  is 1.54.  
         [0173]    [0173]FIG. 10 is a flow chart illustrating a method of joining two sub-meshes  240   a  and  240   b  (sub-mesh  240   a  and sub-mesh  240   b  are shown separately in FIG. 11 a  and sub-mesh  240   a  and sub-mesh  240   b  are shown in their true joined position in FIG. 11 b ). Sub-mesh  240   a  shares a boundary with sub-mesh  240   b  where triangles  300   k  and  300   l  meet triangle  300   h . On the shared boundary there is an extra vertex  260  in sub-mesh  240   a  for which there is no corresponding vertex in sub-mesh  240   b , when the mesh is rendered, at the location of the extra vertex, a crack will form (see illustration of cracks  350   a ,  350   b , and  350   c  FIG. 15 b ). The crack is removed  262  by removing vertex  260  (FIGS. 11 a ,  11   b ). Removing  262  vertex  260  requires reduction  263  of triangles  300   k  and  300   l  (FIG. 11 b ) producing triangle  300   kl  (FIG. 11 c ). After reduction  263 , sub-meshes  240   a  and  240   b  have no un-matched vertices (FIG. 11 c ). Combined sub-meshes  240   a  and  240   b  without cracks are ready for rendering  228 .  
         [0174]    [0174]FIG. 11 a  illustrates triangulation of rectangular sub-meshes  240   a  and  240   b  by adding a fan of triangles  300   a - 300   l  around a central vertex.  
         [0175]    [0175]FIG. 11 b  illustrates the juxtaposition of sub-meshes  240   a  and  240   b . Vertex  260  of sub-mesh  240   a  does not correspond to a vertex in sub-mesh  240   a . Therefore, a crack (similar to cracks  350   a - 350   c  in FIG. 15 b ) will form.  
         [0176]    Sub-mesh  240   a  is joined to sub-mesh  240   b  without cracks by stitching. Specifically, FIG. 11 c  illustrates stitching by vertex omission, vertex  260  is removed from sub-mesh  240   a  and triangles  300   k  and  300   l  (of FIG. 11 b ) are reduced to form triangle  300   kl.    
         [0177]    An alternative means of joining sub-mesh  240   a  to sub-mesh  240   b  is illustrated in FIG. 11 d . Vertex  260  is added to sub-mesh  240   b  by splitting triangle  300   h  (of FIG. 11 b ) of sub-mesh  240   b  into triangles  300   h   1  and  300   h   2 .  
         [0178]    [0178]FIG. 12 a  illustrates a quadtree structure used for Rottger-Hiedrich triangulation. In a quadtree triangulation sub-mesh  240   c  is filled with quadrilaterals  310   a - 310   p  (as shown in FIG. 12 a ). Each Quadrilateral  310   a - 310   p  is filled with triangles surrounding a central vertex as illustrated in FIG. 11 a . Finally, by vertex omission, as illustrated in FIG. 11 c , cracks are removed from sub-mesh  240   c  as illustrated in FIG. 12 b.    
         [0179]    When joining quadtree sub-meshes by omitting vertices of triangles, it is not permissible to juxtapose two quadrilaterals differing in depth by a factor greater than two. An illegal quadtree structure is illustrated in FIG. 14. Quadrilateral  310   d  (of FIG. 12 a ) has been subdivided into four quadrilaterals  310   d   1 - 310   d   4 . The quadrilateral  310   a  differs in subdivision depth by a factor of two in comparison to quadrilaterals  310   d   1  and  310   d   2 . Therefore the juxtaposition is not permissible. Particularly, quadrilateral vertex  315  has no corresponding triangle vertex in quadrilateral  310   a . Therefore quadrilaterals  310   d   1  and  310   d   2  cannot be joined to quadrilateral  310   a.    
         [0180]    [0180]FIG. 15 a  shows a 3D wire-frame illustration of a permissible Rottger-Hiedrich quadtree mesh  340   a.    
         [0181]    [0181]FIG. 15 b  show a 3D wire frame illustration of an impermissible Rottger-Hiedrich mesh  340   b . Mesh  340   b  contains cracks  350   a ,  350   b , and  350   c.    
         [0182]    [0182]FIG. 16 illustrates a system for progressive meshing according to the present invention. Geographical data is manufactured from an aerial photograph on input interface  12   g , for example a scanner, which digitizes the photograph data. The digitized data is input into computer  490  and stored in database  16   e  which exists on an internal hard drive of computer  490 . Processor  15   e  (the CPU of computer  490 ) generates from the digitized data an optimal unstructured map and constructs from the digitized data a base polygon mesh. Processor  15   e  stores the optimal unstructured map and the base polygon mesh in database  16   e . When simulation starts, processor  490  outputs the polygon mesh to output interface  17   f  (a flight simulator) to be projected onto simulator screen  18   b.    
         [0183]    Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.  
         [0184]    All publications, patents and patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention.