MAVERIK - a VR micro kernel

What is MAVERIK?

MAVERIK is designed to support 3D virtual environments, and interaction with those environments. It uses Mesa or OpenGL to perform low-level rendering, but includes a lot of stuff on top of this to render different kinds of objects, to manage environments and provide support for 3D interaction. MAVERIK is a VR application developers toolkit/framework; it is not an end-user application.

The system is designed to be fairly open-ended in the way that it represents different kinds of models. It uses call-back functions to do this, rather than importing and converting data to its own formats. This means that it can be adapted relatively easily to widely differing application data structures without forcing particular representations on the implementor. Thus, for example, if you have a simulation in which different parts of your model are varying dynamically, but in ways which cannot be represented using normal affine transformations (e.g. deformable objects), then MAVERIK will allow you to use the dynamically changing data directly to generate images.

It also contains support for a variety of 3D input devices, and various kinds of displays (including stereo).

Maverik runs on GNU/linux PCs. The new release has not been tested on Silicon Graphics workstations.

Downloading GNU MAVERIK

The complete MAVERIK distribution is available as both RPMs and gzipped tars from http://aig.cs.man.ac.uk/, and also from ftp.gnu.org. However, it should be pointed out that the first distribution stopped at version 6.2 and runs only on 32bit platforms without any trouble. The GNU-versions covers now version number 6.3, 6.4 and 6.5. The last one runs smoothly on 32 or 64 bit system resp. It is recommended to use only the 6.5-version.

Examples of MAVERIK applications

Visit the MAVERIK Applications Gallery for examples of a wide range of MAVERIK applications.

Why MAVERIK is novel

MAVERIK dispenses with a separate representation for application data. Conventional VR systems need to import data into their own format, but MAVERIK avoids this by making use of the application's own internal data structures. This has two important benefits:

  1. MAVERIK can easily take advantage of optimisations that are highly application-specific, intimately tied to knowledge that the application has.

  2. MAVERIK can far more readily adapt (dynamically) to a wide range of application demands. Its flexible design means that applications with widely differing requirements can be supported.

The MAVERIK architecture

MAVERIK has two main parts:

  1. The MAVERIK micro-kernel implements a set of core services, and a framework that applications can use to build complete virtual environments and virtual reality interfaces.

  2. The MAVERIK supporting modules contain default methods for optimised display management including culling, spatial management, interaction and navigation, and control of VR input and output devices. MAVERIK's structure allows these default methods to be customised to operate directly on application data, so that optimal representations and algorithms can be employed.

Related work

MAVERIK provides a framework and toolkit for a single user to perceive, interact with, and navigate around, a graphically complex Virtual Environment. Although it can be used very successfully for stand-alone single-user VR applications, it has been designed to integrate with a large-scale distributed multi-user VR system called Deva, (see AIG Systems). Deva supports multiple virtual worlds and applications, together with sophisticated methods of specifying behaviours and laws for objects within VEs.

The Advanced Interfaces Group. 1999

Maintainer

Gnu maintainer of this project is Hartmut Rosch.