Distributed Scene Graph
Distributed Scene Graph (DSG) is a technology developed by Intel Corporation which allows a virtual world scene to be simulated by decentralized and heterogeneous hardware. As detailed below, this is implemented as a set of region modules. These regions modules are not shipped with the core OpenSimulator distribution, they must be downloaded and installed from the separate Github locations listed below.
Immersive virtual environments such as those running on the OpenSimulator platform require the simultaneous simulation of many diverse types of behaviors. For example, an OpenSimulator region server manages client connections, executes scripted object behaviors and simulates physics such as gravity and collisions. These different types of simulation have different hardware requirements for optimal performance and when combined in a single process, any one of them can become a bottleneck to performance and scalability of the entire scene.
DSG in OpenSimulator
Distributed Scene Graph technology has been implemented as a set of extensions (region modules) to OpenSimulator, enabling different simulation components (e.g. client management, script engine and physics engine) to execute as distinct processes. These components are also referred to as actors on the scene. The processes can then be distributed across multiple servers over a LAN or the Internet to provide additional compute capabilities to one or more OpenSimulator regions. A scene synchronization layer provides all actors with a common view of the scene through conflict resolution policies. Additionally, multiple actors can now share the work of simulating or supporting the same region of space where in the past, OpenSimulator has mapped each type of work 1:1 with a region.
Intel Corporation released DSG extensions for OpenSimulator on June 30, 2011. DSG was originally released as a branch in the OpenSimulator git repository (named "DSG"). Since then, DSG has been modified to be a separate addin module for OpenSimulator. The main git repository is available at http://github.com/intelvwi/DSG.
To include and compile DSG into and OpenSimulator source tree, follow the steps:
# create clone of OpenSimulator git clone git://opensimulator.org/git/opensim opensim-git # create a directory to hold the DSG addition cd opensim-git/addon-modules mkdir DSG # clone the DSG sources (note the clone is into ".") cd DSG git clone https://github.com/intelvwi/DSG.git . # run 'prebuild' or 'xbuild' to include DSG. For Windows: cd ../.. ./runprebuild2010.bat ./compile.bat
DSG documentation is available here: DSG Documentation
Additional background and reference papers on Distributed Scene Graph are available here: Scalable Virtual Worlds at Intel Labs