AVRA: An architecture for VR-based applications - Nourian, Saeid (University of Ottawa (Canada), 2008)
Despite recent advances in the software and hardware aspects of Virtual Reality (VR), from a software design point of view VR technology remains primitive. In particular, most existing VR applications suffer from lack of extensibility, maintainability, reusability and interoperability. This thesis proposes a flexible and practical architecture for defining and constructing VR simulations that addresses the above issues. The proposed architecture employs lessons learned from the more architecturally advanced software fields such as those of web-based applications and database banks. The advancement of these fields is driven by the fact that the contents and views change frequently, hence the architecture must be (1) flexible with changes in content, and (2) decouple the content and the view (i.e. using MVC pattern [52]). These essential requirements gave birth to such technologies as the extensible markup language (XML), and the extensible style sheets (XSL). Most VR applications are similar to the web-based applications in that they also deal with contents and views. The content (or model) describes the conceptual and the mathematical aspects of the elements that exist in the virtual environment. The view is the visual representation of the content often rendered in a 3D platform. As an application matures its content and view often change. The contents are the more reusable components whereas the views are more application specific. Take a heart surgery simulation for example. The content consists of some mathematical and conceptual models of the heart and the human body as a whole; and the view is the visualization of a human body (including the heart) and the operating room and surgical tools. Although there is a clear separation between the content and the view models, the two are often tightly interconnected at run-time. For example, a change in the content should reflect the corresponding changes in the view, often through means of dynamic scene creations and animations. Changes can also be initiated at the view side through means of user interactions and specifications. These changes should be reflected back at the contents accordingly. The above issue is addressed in the web-based applications through use of XML for representing the content (data) and XSL for specifying how the content should be viewed. Most VR applications are interactive simulations of the real world and these simulations are either mathematical in nature or based on a rich set of data models both of which can be easily represented by XML models. The view component, however, is much more complex in VR than it is in web-based applications. In such applications, the view target is simply a static hyper-text representation of the data whereas in VR applications the view consists of dynamic 3D geometries that interact with each other and whose shape and appearance may change on the fly. This thesis presents AVRA, a novel architecture that dynamically generates VR simulations based on XML descriptions that are received as inputs. These XML descriptions are used to define and configure the various elements of an interactive VR application such as simulation models, 3D graphics, visualization behavior and the nature of user interactions. The proposed architecture uses two categories of XML models: those that describe the numerical model of a simulation and those that describe how the numerical output is to be visualized in a virtual environment. Upon loading the XML descriptions, AVRA dynamically generates a VR application that corresponds to those specifications. The result consists of a 3D scene with configurable graphical elements that are animated based on the numerical outputs of the simulation models. The task of managing the communication between the model and view components as well as their construction and destruction is automatically handled by AVRA. In essence, this framework allows developers to quickly construct the simulation components of a VR application through XML descriptions and view plugins thereby allowing developers to focus their efforts on implementing the higher level functionalities of the application.
Keywords: Computer Science.