(Research - System) MASSIVE-3 / HIVEK



MASSIVE-3 is the ongoing development at the University of Nottingham of the HIVE project distributed VR Kernel, HIVEK.

MASSIVE-3 is a distributed multi-user virtual reality system, current features of which include:

At least in its current form MASSIVE-3 uses parts of the CRGSHARE library system used by MASSIVE-2. Rendering is currently provided by the DGL component of that library over GL.


Contents


Availability

MASSIVE-3 currently runs on SG IRIX 5.3 and above, AIX 4.3, and Windows NT 4.0, 95, 98 and 2000 (i.e. Win32).

It is currently available to a number of research partners. Wider availability is subject of ongoing discussions.


Links

The following are links to related pages:

People

Chris Greenhalgh
The author of the MASSIVE and MASSIVE-2 systems; architect of MASSIVE-3..
Dave Snowdon
The author of AVIARY (a multi-user object oriented distributed VR system), and major contributor to MASSIVE-2 (devices, graphics) and MASSIVE-3/HIVEK (original library implementation).
Dave Roberts
The author of PARADE, and designer of the consistency mechanisms used in MASSIVE-3/HIVEK.
Milena Radenkovic
PhD student working on distributed audio support in CVEs, using the MASSIVE-3 platform.
Jim Purbrick
PhD student working on persistence and also implementing locales in MASSIVE-3.

Example Applications

See the user tutorial, below.

Documentation

For MASSIVE-3:

For a bullet-list of features (e.g. to decide if MASSIVE-3 could be useful for you look at:

"MASSIVE-3/HIVEK Introduction", Chris Greenhalgh, 22nd June 1999.
PDF 2 page document with bullet list of main concepts and features as of the current time.

If you want to use MASSIVE-3 then first use this to get the basic client programs and other applications running:

"MASSIVE-3 User Guide", Chris Greenhalgh, 21st June 1999, rev-2.
A user-level (i.e. non-programming) introduction to MASSIVE-3, its applications, and environment variables. Includes how to run your first session.

For a description of the CVE file format used by CveWorld (to create simple static worlds without programming), and for notes on the DGL file format used by MASSIVE-3 see the later sections of the MASSIVE-2 user tutorial (part 2).

If you want to customise your user client(s) without programming, then look at:

"Configuring BodyExample-based User Clients for MASSIVE-3", Chris Greenhalgh, 28th May 2000
A list of configuration file options and environment variable settings for customising the operation of the standard MASSIVE-3 user clients without programming.

If you want to start programming then read this for a general architectural overview:

"HIVEK: the HIVE Project Distributed VR Runtime Kernel", Chris Greenhalgh, Feb. 1999.
Powerpoint presentation (in PDF) providing a short introduction to key distribution concepts in MASSIVE-3.
"Realizing Flexible Consistency in HIVEK", Chris Greenhalgh, 3rd Workshop on System Aspects of Sharing a Virtual Environment, Houston, USA, March 1999.
2 page workshop paper on the same kind of thing as the above.

For some applications (e.g. virtual cameras and browsers) you may not need to code in C++: the standard application MgmtServerMain supports a line-based text protocol which can be used to control it from a standard application (e.g. a Java app.). If you want to use this then read:

Some notes on the MASSIVE-3/HIVEK management server, Chris Greenhalgh, 1999
Outline of the ascii protocol used to control MgmtServerMain, a C++ server program which can be controlled via a TCP-based client to create graphical windows or to impose user constraints.

If you want to start compiling MASSIVE-3 stuff in C++ and/or changing the MASSIVE-3 core and/or porting MASSIVE-3 to another platform start with:

Compiling the MASSIVE-3 library and/or Applications, Chris Greenhalgh, 6/12/2000
Some notes on the directory structure, build system, makefiles and step-by-step compile instructions.

Next move on to the following, to get a basic introduction to programming MASSIVE-3 applications. Also look at the sample code in the MASSIVE-3 release (src/samples):

NOTES on the source code use and organisation, Chris Greenhalgh, last updated 5/10/99.
Information on directories and use, including RCS.
"MASSIVE-3/HIVEK Application Programming: Basics", Chris Greenhalgh, 24th June, 1999.
Introduction to programming with Agents and Environments, including code snippets. Based on updated API (especially for event callbacks).

Other specific areas of application programming are described in the following:

"MASSIVE-3/HIVEK Application Programming: Auras", Chris Greenhalgh, 29th June 1999.
Introduction to using Auras and AuraSensors for proximity-based object detection/response.
"MASSIVE-3/HIVEK Application Programming: Behaviours", Chris Greenhalgh, 7th July 1999.
How to define and use Behaviours in MASSIVE-3 to support local and distributed code.
"MASSIVE-3/HIVEK Application Programming: Subjectivity", Chris Greenhalgh, 7th July 1999.
How to create subjective worlds and interfaces in MASSIVE-3.

Locale-based world structuring and interest management are considered in the following documents:

"HIVE Kernel Locale facilities - overview", Jim Purbrick, Jan. 1999.
Overview of locale facilities.
"HIVE Kernel Locale facilities - details", Jim Purbrick, Jan. 1999.
Classes and implementation of locale facilities; future work and known problems.
"Extending Locales: Awareness Management in MASSIVE-3", James Purbrick and Chris Greenhalgh, September 1999.
Details of Locales and the (currently experimental) division of Locales into Aspects. Also describes Locale selection policies.
"Aspects in MASSIVE-3", Jim Purbrick, March 2000.
How to create multiple aspect locales and define aspect selection policies in MASSIVE-3, with example code.

MASSIVE-3 can record and replay activities in virtual worlds. Only limited documentation is available at present, I'm afraid:

"Recording and Replaying Action in MASSIVE-3", Jim Purbrick, March 2000.
How to record action and replay the resulting history files. (CRG only for now)

The following documents relate to the development history of MASSIVE-3/HIVEK, and may be out of date:

"MASSIVE-3 Core API Excerpts", 28/6/99.
Extracts from the core system header files, covering Agents and Environments, in particular. A useful accompaniment for "Application Programming: Basics".
"MASSIVE-3/HIVEK Consistency", Chris Greenhalgh, August 24th 1999.
A more detailed description of consistency techniques present in MASSIVE-3/HIVEK, as demonstrated by the hiveClient application (described here).
"HIVE Distribution API", Dave Snowdon and Chris Greenhalgh, Nov. 1997.
Slightly old documentation of the core networking and distribution classes and facilities in MASSIVE-3/HIVEK, including network and distribution class hierarchies, notes on serialisation, basic types, geomtry types (not a lot), agent classes and utilities.
"HIVE Kernel working design 14/1/98", Chris Greenhalgh and Dave Snowdon.
Complete list of files and classes as of 14/1/98, i.e. a bit out of date. Overlaps with "HIVE distribution API", above, having broader - but shallower - coverage.

For CRGSHARE, which is currently used by MASSIVE-3:

Publications

David Roberts, Paul Sharkey, "Maximising concurrency and scalability in a consistent, causal, distributed virtual reality system, whilst minimising the effect of network delays", IEEE proc. wetice'97 June 1997
The underlying consistency mechanisms.

Links



URL:
http://www.crg.cs.nott.ac.uk/research/systems/MASSIVE-2/
Author:
Communications Research Group (crg@cs.nott.ac.uk - Department of Computer Science)
Created:
30 September 1997
Last-modified:
7 December 2000