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