OpenMASK: an Open-Source Middleware for Virtual Reality
by Bruno Arnaldi and Stéphane Donikian
OpenMASK is a platform for the development and execution of modular applications in the fields of animation, simulation and virtual reality.
The modelling of an interactive application with several dynamic entities that evolve in complex virtual environments requires communication between different models. These can include environment models, mechanical models, motion control models, behavioural models, interaction models, sensor models, geometric models and scenarios.
The main features provided by OpenMASK are its ability to:
- interact with a virtual environment using various devices (sensors, data gloves, haptic devices etc) in a local or distant 3D cooperation (collaborative work)
- integrate different computation modules (mechanical simulators, human motion, behavioural models etc) using high-level abstractions
- automatically distribute computations on a network of workstations
- show results in an immersive environment (Reality Center, Workbench etc) or on a standard display by using a visualisation module based on Performer (Sgi) or OpenSG (Fraunhofer Institute).
One of the main objectives of OpenMASK (Modular Animation and Simulation Kit, and Multi-threaded Animation and Simulation Kernel) is to provide a common run-time and conception framework for the creation of virtual reality applications. In OpenMASK, the unit of modularity is the simulated object, which can implement any preceding models and could be the result of code generation provided by a dedicated tool (see Figure 1).
|Figure 1: Architecture of an application including several autonomous characters.
Objects can communicate by simultaneously using data-flow and asynchronous mechanisms. Object activation can be performed by the kernel of the platform on a regular basis (giving the object a simulation frequency), on a reactive basis (when the object receives events), or by a combination of the two. The same framework can therefore be used in a natural way for reactive as well as proactive objects.
|Figure 2: Awareness of constrained interactions, and shared interaction upon a car mock-up.
Building an OpenMASK application consists of composing simulated objects by organising them all in a simulation tree. The main advantages of this approach are the component reusability between applications and the automatic generation of modules produced by dedicated tools. Once the application has been built, the last step before achieving any result is to choose the run-time kernel to be used. Indeed, the conceptual framework presented here is a solid foundation for many different run-time constraints, as it has been designed to enable both offline and online simulation, and multi-threaded execution. OpenMASK comes with multi-site (for distributed applications, eg distributed virtual reality, distributed simulation) and/or multi-threaded (for parallel computations) kernels.
Generic adapters are provided to make simulated objects interactive and to allow them to communicate in a generic way with interaction tools. Collaborations between distant users within 3D virtual environments are possible thanks to the OpenMASK distribution capabilities, which allow simulated objects to be distributed among several processes. Thus several users can share simultaneous interactions with the same interactive object.
OpenMASK-j is a new contribution to OpenMASK, and concerns the integration and interaction of different physical simulation engines and force-feedback devices for cooperative virtual reality applications. Thanks to three software components, one can simply and effectively integrate various physical simulators such that they can coexist in the same virtual world. A number of simulators have already been successfully integrated, including CONTACT Tolkit (Inria I3D team), ODE (Open Dynamics Engine) and DYNAMO (Eindhoven University). This feature is vital if one is to to take advantage of the specificities of each simulator. We have also demonstrated the integration of various haptic devices such as the Virtuose 6D from the Haption Company and the Spidar (Tokyo University).
Since a number of users are able to physically interact on local or distant sites inside the same virtual world, they can, for example, sense the weight of a virtual object in their hands and cooperate in its manipulation even if they are hundreds of kilometres apart.
|Figure 3: Direct immersive manipulation with the haptic device Virtuose 6D and multi-user manipulation on laptops.
Current Projects Involving OpenMASK
OpenMASK is well suited for the development of virtual reality applications. It is currently in use in several research projects with academic and industrial partners such as Bayesian learning of virtual humans (ROBEA project with E-MOTION and EVASION INRIA Grenoble Research Teams), distant cooperation in distributed virtual environments (with Renault in the Perf-RV National Research Network on Virtual Reality), crowd simulation including thousands of pedestrians (with AREP and SNCF) and virtual training (with GIAT Industry).
OpenMASK is available under an open-source license and currently operates on Linux and Unix systems (production of Windows and MAC OS X versions is in progress).
Bruno Arnaldi, IRISA/INRIA Rennes
Tel:+33 2 99 84 72 61