Diverse header graphic

DIVERSE - An Open Source Virtual Reality Toolkit


Device Independent Virtual Environment - Reconfigurable, Scalable, Extensible

DIVERSE is a cross-platform, open source, API for developing virtual reality applications that can run almost anywhere. DIVERSE currently runs on Linux, IRIX. Support for Windows XP and Mac OS X is under development. The goal of DIVERSE is to enable developers to quickly build applications that will run on the desktop as well as various immersive systems. To avoid hindering development DIVERSE is designed without the "center of the universe" paradigm; you only use the parts of DIVERSE that you need. This allows DIVERSE to interact with many other APIs and toolkits like, OpenGL, Open Scene Graph, SGI Open GL Performer, and Coin.


DIVERSE provides:

  • A common user interface to interactive graphics and/or VE programs. Using DIVERSE the same program can be run on CAVE™, ImmersaDesk™, HMD(Head Mounted Display), desktop and laptop systems without modification.
  • A common API to VE oriented hardware such as trackers, wands, joysticks, and motion bases.
  • Many other tools such as "remote shared memory ", message passing, and collaboration tools.
  • Basic "cluster" support through DADS
  • Generic, extendable 2D in 3D interaction techniques through VEWL
  • DIVERSE includes user applications to load, view, and navigate models in the CAVE as easily as the desktop.
VEWL Window DPF CAVE Simulator & VEWL Windows

DIVERSE News

  • [7/24/2006] CoVE, a new VR Toolkit that uses DTK was released along with a new and improved version of VEWL based upon Open Scene Graph.
  • [8/21/2005] Created the Bugs & Mailing Lists page with information about our Bugzilla tracker and available mailing list
  • [8/19/2005] Updated the downloads page with the latest releases
  • [8/19/2005] VEWL and DTK are now available via subversion, see the instructions here
  • [8/16/2005] New mailing list diverse@opentechinc.com to subscribe email diverse-subscribe@opentechinc.com

Sample Code

Sample code that loads a model. This program will run in a CAVE, ImmersaDesk, HMD, desktop/laptop, with your choice of navigation and other interaction methods, I/O devices and/or emulators. This program can also be configured at runtime.

#include <dpf.h>

int main(void)
{
dpf *app = new dpf;
app->config();
app->display()->world()->addChild(pfdLoadFile("model.pfb"));

while(app->state & DTK_ISRUNNING)
app->frame();


delete app;
pfExit();
return 0;
}