Syzygy applications work best with traditional VR head- and wand-tracking, that is, a six-degree-of-freedom (6DOF) position sensor on the head and another on a handheld gamepad that has several buttons and at least one joystick. But when these are not available, you can still simulate them from mouse and keyboard.
In standalone mode, this simulator overlays the lower-right corner of the window. In cluster mode, the simulator is a separate program, inputsimulator, defined as the primary input (INPUT0) of the virtual computer.
The input simulator sends data to the application specifying the position and orientation of the head and the wand, the placement of the wand's joysticks and sliders, and the up/down state of the wand's buttons (matrices, axes, and buttons, in Syzygy jargon).
The input simulator's display looks forwards into a 10-foot cubical space, like a wireframe cave. A wireframe sphere in the center represents your head (initially facing forwards, although the view has been rotated in this figure, see mode 7 below).
The blue rectangle at lower right contains numbered red circles, which
represent virtual buttons on the wand.
To change how many buttons the wand has, set the parameter
the desired number in the Syzygy database.
The two (or three) columns of red circles correspond
to the buttons on your two- or three-button mouse.
To map mouseclicks to a particular row of buttons, e.g. 3 4 5, hit the spacebar;
a white dot at left cycles through the rows, showing which row will be used.
If you commonly use a 3-button mouse,
set the Syzygy database parameter
to the string
0/1/2, to start with 3 rather than 2 columns. If your mouse has even
more buttons, extended it to something like
Below the red circles, the green dot represents the wand's joystick. The white square indicates how far the green dot can move. For example, when the dot is at the top of the square, that means the joystick is pushed all the way forwards.
The input simulator has several modes. To activate a mode, hit its corresponding number key, 0 through 9.
As of 2/08, you can create your own Input Simulator interface
as a shared
library and load it at runtime based on the value of the Syzygy database parameter
SZG_INPUTSIM/sim_type. A stupid example called arDefaultInputSimulator is contained
in szg/skeleton; it behaves just like the built-in one, but it does show you which
methods are available for overriding. Copy the skeleton directory tree somewhere,
rename the source file, and modify skeleton/build/makefiles/Makefile.my_app
appropriately. To use it, add e.g. the following in an
<assign> block in your
<computer> SZG_INPUTSIM sim_type arDefaultInputSimulator
...where <computer> is the computer on which the inputsimulator program will run, as specified in the SZG_INPUT#/map section of your virtual computer definition.