The functional requirements can be split into two major categories, those of the virtual environment and animation side and those that deal with the application interface and communication with the GUI toolkit.