Advanced Interfaces Groups - Department of Computer Science, University of Manchester

What is MAVERIK?

MAVERIK is a publicly available virtual reality (VR) system, which was developed the Advanced Interfaces Group between 1995 and around 2002. We've lost track of how many times it has been downloaded since, but our web server logs say it's currently about 100 per month. MAVERIK enables rapid production of complex virtual environments as well as providing many functions that are valuable to anyone developing applications with 3D graphics or using 3D peripherals. MAVERIK deals primarily with graphical and spatial management, and integrates with our other VR system, Deva, which extends MAVERIK abilities to multi user and multi application virtual reality. 

Within this wider context, MAVERIK is designed to support high-performance rendering, including large-model processing, customised representations of environments for different applications, and customisable techniques for interaction and navigation. Although it is a component of a larger system, MAVERIK works equally well stand-alone and forms an ideal platform for the construction of VR applications for individual users. 

MAVERIK has two components:

  • 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.
  • 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.

MAVERIK's novel research contribution is in dispensing with a separate representation for the 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.

  • MAVERIK can easily take advantage of optimisations that are highly application specific, intimately tied to knowledge that the application has.
  • 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.

MAVERIK can provide the functionality required to implement effective interaction with very large-scale, geometrically complex VEs. You can find more details about MAVERIK core services below, and there are published papers describing MAVERIK's design philosophy, accessible through our publications page.

A good way to see what MAVERIK can do is to look at the Applications Gallery

MAVERIK Core Services

  • A framework for managing the display and interaction requirements specific to an application. This is achieved through a callback mechanism where applications register primitives they wish to deal with, and the operations that they can perform to display them. Maverik manages the application of culling algorithms and spatial management, calling the application's display methods as necessary. By dynamically registering capabilities, different display strategies can be simultaneously accommodated. For example, objects generated by a radiosity algorithm with their particular display optimisations, can co-exist with conventionally shaded display algorithms.
  • A spatial management system to keep track of objects in a 3D environment. Spatial management lies at the heart of any VR system. It is required for tasks such as culling and level-of-detail processing, navigation, collision detection, and object manipulation. Maverik provides functions for building and maintaining the required data structures which underpin these tasks.
  • High-performance algorithms for culling, navigation and collision detection. These are necessary for handling very large, visually complex models.
  • A complete set of default primitive objects, from which virtual environments can be constructed. These include: boxes, cylinders, spheres, cones, tori, and polygon meshes. New classes of objects can be constructed easily, and tailored to specific applications. The display code for these default primitives is included in Maverik. The default functions use the Silicon Graphics Inc. OpenGL graphics library, providing portability across a wide range of platforms. 
  • Support for different VR input and output devices, such as stereoscopic head-mounted displays, stereoscopic projection displays, autostereoscopic display, hand and head-tracking devices, sound output, and speech recognition. Maverik will automatically manage the generation of stereoscopic pairs of images if required. It will also drive normal workstation or PC screens, and accept input from a conventional desktop (2D) mouse.
  • Navigation and Interaction techniques. Maverik has methods for navigating a model using desktop (2D) and 3D mice and conventional keyboards, including a low-overhead Force Field algorithm for ease of navigating complex scenes. These algorithms which we call 'Mr. Spiggot' are used to provide navigation over steps, ladders and obstacles, relying only upon the model geometry.

Getting Hold of MAVERIK

MAVERIK is primarily available under the GNU General Public License and you can download it here. The GPL places certain restrictions on how you can distribute code you have written using MAVERIK... if this causes you problems please look here

See the FAQ for answers to common questions. 

MAVERIK download

MAVERIK-6.2

Latest version of the software [More...]

3D Mouse (TDM)

Unix Support for 6-degrees-of-freedom devices [More...]

MAVERIK 'Beta'

Useful addons to MAVERIK [More...]

Related publications

R. Hubbold, J. Cook, M. Keates, S. Gibson, T. Howard, A. Murta, A. West, and S. Pettifer. GNU/MAVERIK : A micro-kernel for large-scale virtual environments. Presence: Teloperators and Virtual Environments, 10:22-34, February 2001. ISSN 1054-7460.
[ http ]

S. Pettifer, J. Cook, J. Marsh, and A. West. Deva3: Architecture for a large scale virtual reality system. In Proceedings of ACM Symposium in Virtual Reality Software and Technology 2000, pages 33-39. ACM Press, October 2000. ISBN 1-58103160-2.
[ http ]

R. J. Hubbold and M. Keates. Real-time simulation of a stretcher evacuation in a large-scale virtual environment. Computer Graphics Forum, 19:123-133, June 2000. ISSN 0167-7055.
[ .html | .ps.gz ]

A. J. West and R. J. Hubbold. System challenges for collaborative virtual environments. In D. Snowdon and E. Churchill, editors, Proceedings of Collaborative Virtual Environments '98. Springer-Verlag, 2000. Keynote Speech.
[ .ps.gz ]

R. J. Hubbold, J. Cook, M. Keates, S. Gibson, T. Howard, A. Murta, A. West, and S. Pettifer. GNU/MAVERIK: A mirco-kernel for large-scale virtual environments. In Proceedings of ACM Symposium on Virtual Reality Software and Technology, December 1999. London.
[ http | .ps.gz ]

R. Hubbold and M. Keates. Landmarking for navigation of large models. Computer and Graphics, 23:729-738, October 1999.
[ .ps.gz ]

T. Howard, R. Hubbold, and A. Murta. MAVERIK: A virtual reality system for research and teaching. In Proceedings of GVE'99, July 1999. Coimbra, Portugal.
[ http ]

J. Cook, R. Hubbold, and M. Keates. Virtual reality for large-scale industrial applications. Future Generation Computer Systems, 14:157-166, 1998.
[ http ]

R. Hubbold, D. Xiao, and S. Gibson. MAVERIK - the manchester virtual environment interface kernel. In Proceedings of 3rd Eurographics Workshop on Virtual Environments, February 1996. Monte-Carlo.
[ http | .ps.Z ]

R.J. Hubbold and N.P. McPhater. The use of virtual reality for training process plant operatives. In Proceedings of EPSRC Conference on Virtual Reality and Rapid Protoyping for Engineering (James A. Powell (Ed)), EPSRC Information Technology Awareness in Engineering, DRAL, pages 31-41, January 1995.
[ .ps.Z ]

R.J. Hubbold and N.P. McPhater. The use of virtual reality for training process plant operatives. In Proceedings Computer Graphics Expo '94 Conference. Computer Graphics Suppliers' Association, Worcester, England, November 1994.