Beckman Institute            University of Illinois at Urbana-Champaign             
University of Illinois at Urbana-Champaign

Syzygy Documentation: Table of Contents

Integrated Systems Lab
01/09/2007

Syzygy Homepage

Using this Documentation

Getting Started

  • GettingSoftware.html explains how to download and compile the source code. If you're on Windows and using Microsoft Visual C++, you'll also need to look at VisualStudioBuildVars.html. Note that most of Syzygy can now be compiled on Windows using the MinGW GNU compiler; the exceptions are the input device driver plugins and the Python bindings, which still require a Microsoft compiler. Hopefully you'll be able to download precompiled copies of these from the same place where you got this archive...
  • SupportingLibraries.html covers installing and using supporting libraries that give Syzygy extra functionality.
  • Standalone.html Standalone mode: Running Syzygy programs on a single PC without setting up a cluster.
  • ExampleCode.html: How to run the included example programs, where their data files should be installed, etc.
  • TrackingSim.html: Using Syzygy's tracking and input device simulator (inputsimulator) to control a program in the absence of a tracked input device (this is currently required in standalone mode).
  • SystemConfiguration.html describes interacting with the Syzygy Database to specify parameters of your virtual reality system in both Standalone and Cluster modes. This includes the following further topics:

Creating Your Own Syzygy Progams

  • Programming.html: Writing a program using Syzygy's application frameworks.
  • QuickPort.html: Porting an OpenGL/GLUT-based application, in a hurry.
  • CompileCPP.html: How to build Syzygy C++ programs.
  • PySZG.html: How to write Syzygy Python programs.
  • SceneGraph.html: Using the distributed scene graph API.
  • Sound.html: Using the sound system to produce spatially-localized sound.
  • Objects.html: Using external meshes (.obj or .3ds) and animations in Syzygy.
  • Navigation.html: How to use built-in functions for navigation in your application.
  • Interaction.html: How to use built-in classes and functions for picking, grabbing, and otherwise interacting with virtual objects.
  • PortabilityLayer.html: The portability layer consists of classes and functions that wrap platform-specific implementations of sockets, serial ports, time, threads, mutexes, etc.
  • SceneGraphTutorial.html: Shows how to manipulate Syzygy scene graphs from a Python prompt. A good starting point for writing Python programs based on the distributed scene graph framework. See also SceneGraph.html.
  • RandomNumbers.html describes facilities of the master/slave application framework (described in Programming.html) for generating shared sequences of pseudo-random numbers in all running instances of an application. Not tested much.

Setting Up, Testing, and Managing a Syzygy Cluster

  • DistributedOS.html: Concepts and commands for setting up Syzygy PC clusters and running programs on them (Look here and in Configuring Virtual Computers for an explanation of virtual computers).
  • ClusterTest.html: Basic testing of your Syzygy cluster.
  • InputDevices.html describes the use of the input device infrastructure in Cluster Mode.
  • InputDevices-Drivers.html lists the supported input devices.
  • InputDeviceConfiguration.html explains how to configure input devices.
  • PForth.html introduces the PForth ("Pseudo-FORTH") input-filtering language. It's a stack-based language very similar to FORTH; it's designed for applying simple transformations to streams of input events (e.g. re-mapping input device button indices).
  • AppFeatures.html: A few pet tricks for managing Cluster Mode applications using the 'dmsg' command.

Miscellaneous

Advanced Topics

  • SharedWorldTutorial.html shows how to use the experimental extensions to the Syzygy distributed scene graph that allow peer-to-peer sharing of scene graphs between clusters.
  • InputClasses.html contains some esoteric information about the code objects that handle input data.
  • InputFilters.html briefly describes how to write an input-event filter in C++. For most purposes it's more convenient to write such filters in the PForth language.

Background Information


[Schedule] [Labs] [Beckman Meeting Rooms] [Equipment] [Projects] [CUBE Projects] [Syzygy] [VSS] [People] [Events] [Publications]