The Hank simulator is organized as a set of independent, parallel processes that implement the major simulation functions: behavior, dynamics, visuals, driver I/O, experimenter I/O, and data collection. Processes are scheduled to run at frequencies appropriate to their responsibilities. The visual process is responsible for updating an image generator specific scene database and initiating the rendering process. To ensure smooth motion and visual continuity, it runs at 60-76 Hz. The dynamics process executes a dynamic model for every object in the database. The dynamic model represents the continuous physical behavior of simulation entities and runs at a rate equal to (or higher than) that of the visual process. The logical decision making and state dependent aspects of object behaviors are encoded in HCSM. These deliberative computations are normally more intricate than the dynamics and visual computations. For efficiency, the behavior process that executes these models runs at a slower rate than the dynamics or visual processes (typically about 5 Hz.) The drive I/O process takes input from a steering wheel, brake pedal, and accelerator pedal. To permit filtering, this process runs at a very high rate. The experimenter I/O and data collection processes run at demand-driven rates.
The processes interact through a common database that stores information about the virtual environment. Updates to the database are synchronized to prevent conflicts and ensure presentation of consistent views to processes running at different rates. The database is implemented in shared memory to provide efficient access to simulator processes.