The DIVERSE software distributed here is freely available for down load and use.
As a courtesy, it is requested that credit be given to the
Scientific Applications and Visualization Group at NIST. DIVERSE is a cross-platform, open source, API for creating visualization
applications and virtual environments. Please visit the DIVERSE homepage
for more information.
Software Download: screenContactAlert.tar.Z (165kb)
|
Stop Sign
|
This is a DIVERSE DSO which
monitors the physical position of the wand and head tracked glasses. If
either device comes close to physically touching the screen, a large bright
red Stop Sign is displayed while the devices are within proximity of the
screen. Hopefully, this screen contact alert will prevent users from
actually touching the screen.
This software is distributed as a compressed tar file. It requires DIVERSE.
It also assumes the user is familiar with DIVERSE and how to install a DIVERSE DSO.
Credits:
Visualization: John Kelso
Julien C. Franiatte
Steven G. Satterfield
John G. Hagedorn
Group Leader: Judith E. Terrill
For information about this DSO, contact
John Kelso
Software Download: turntable.tar.gz (131kb)
|
Submarine spinning about Z axis
|
This is a DIVERSE DSO which
loads files specified by an environment variable, DPF_TURNTABLE_FILES,
and spins the corresponding objects around the Z axis going through
their centers.
This software is distributed as a compressed tar file. It requires DIVERSE.
It also assumes the user is familiar with DIVERSE and how to install a DIVERSE DSO.
Credits:
Visualization: Adele Peskin
John Kelso
Steven G. Satterfield
Group Leader: Judith E. Terrill
For information about this DSO, contact
Adele Peskin
Software Download: ABswitchShell.tar.gz (346kb)
|
object in position A, then in position B with command A executed
|
This is a DIVERSE DSO that displays pairs of objects and executes
accompanying commands. Selection of an object, using the wand and mouse button 1, switches the display of the pair from one object to the other, and causes the execution of the desired command. This DSO provides a method of interaction between the objects in a visualization and accompanying applications. The DSO
reads files specified
by an environment variable, DPF_ABSWITCH_FILES, which list the objects and commands to use.
This software is distributed as a compressed tar file. It requires DIVERSE.
It also assumes the user is familiar with DIVERSE and how to install a DIVERSE DSO.
Credits:
Visualization: Adele Peskin
Steven G. Satterfield
John Kelso
Group Leader: Judith E. Terrill
For information about this DSO, contact
Adele Peskin
Software Download: ABswitchShell.tar.gz (346kb)
|
object in position A and then in position B
|
This is a DIVERSE DSO that displays pairs of objects and executes
accompanying commands. Selection of an object switches the display of the pair from one object to the other, and causes the execution of the desired command. The wand is used to select objects, and is flipped 180 degrees when selecting.This DSO provides a method of interaction between the objects in a visualization and accompanying applications. The DSO
reads files specified
by an environment variable, DPF_ABSWITCH_FILES, which list the objects and commands to use. It has the same functionality as the ABswitchShell, with a different method for selecting objects.
This software is distributed as a compressed tar file. It requires DIVERSE.
It also assumes the user is familiar with DIVERSE and how to install a DIVERSE DSO.
Credits:
Visualization: Adele Peskin
Steven G. Satterfield
John Kelso
Group Leader: Judith E. Terrill
For information about this DSO, contact
Adele Peskin
Software Download: ABCDswitch.tar.gz (5.1kb)
|
display copper atoms, gold atoms, all atoms |
This is a DIVERSE DSO that displays sets of objects. Sets containing the same number of objects are displayed.
Originally, the first object of each set is displayed. The user can choose to display any combination
of the objects in all of the sets at a given time.
This software is distributed as a compressed tar file. It requires DIVERSE.
It also assumes the user is familiar with DIVERSE and how to install a DIVERSE DSO.
Credits:
Visualization: Adele Peskin
Steven G. Satterfield
John Kelso
Group Leader: Judith E. Terrill
For information about this DSO, contact
Adele Peskin
Software Download: objectMover.tar.gz (194kb)
|
object in position A and then in position B
|
This is a DIVERSE DSO which
enables a user to move around objects loaded into the
visualization environment. Each object is loaded in at a specified
location (xyz hpr). Objects can be moved around using the wand and
its buttons. An object can be selected by the wand by pressing button 1.
The object then moves with the wand. The object is deselected by
pressing button 1 again.
This software is distributed as a compressed tar file. It requires DIVERSE.
It also assumes the user is familiar with DIVERSE and how to install a DIVERSE DSO.
Credits:
Visualization: Adele Peskin
Steven G. Satterfield
Group Leader: Judith E. Terrill
For information about this DSO, contact
Adele Peskin
Software Download: movieFromPathfile.tar.gz (10kb)
|
image from movie |
This is a DIVERSE DSO which reads a "pathfile" as created by the DIVERSE
pathfileWrite DSO, and traverses this path while creating a series of
images files, one file per frame, which can be used to construct a movie
or animated GIF file. Each image contains the contents of the window
containing the Performer "master channel". The DSO's internal framerate
is 30 frames/second, so a pathfile that takes a minute to traverse will
produce 60*30 = 1800 separate frame files, each sequentially numbered. An
animation created from the frame files with a framerate of 30
frames/second will duplicate the timing of the pathfile.
Credits:
Visualization: John Kelso
Steven G. Satterfield
Group Leader: Judith E. Terrill
For information about this DSO, contact
John Kelso
Software Download: smallFeatureCull.tar.gz (4.2kb)
This DIVERSE DSO enables Peformer's small feature culling. See the
pfCullProgram man page for more details.
By default, scenegraph nodes less than 5 pixels in size are discarded.
Set the environment variable DPF_SMALLFEATURECULL_SIZE to change this
value.
This software is distributed as a compressed tar file. It requires DIVERSE.
It also assumes the user is familiar with DIVERSE and how to install a DIVERSE DSO.
Credits:
Visualization: John Kelso
Group Leader: Judith E. Terrill
For information about this DSO, contact
John Kelso
Software Download: vwand.tar.gz (87kb)
|
the vwand
|
FakeSpace vwand service for the DIVERSE ToolKit:This directory contains the code for a DIVERSE ToolKit service for a FakeSpace vwand.
To install:
|
copy Makefile and vwand.cpp to the directory of your choice and cd
to that directory |
|
be sure the dtk-config command is in your path |
|
edit vwand.cpp and set DEVICE_FILE to the correct terminal file.
You might also want to modify MAX_XY_OFFSET if your wand is not
generating scaled data between -1 and 1, and TRACKD_COMPATABLE if
you are using dtk-getTrackd to supply trackd-compatible data. |
|
type: make |
|
if you have permission, you can install it with the other DTK
services by typing: make install |
To run:
|
Start a DTK server if one is not already running |
|
Load the service into the server by typing: dtk-loadService vwand |
|
Test the vwand's joystick output by typing: dtk-readFloats
joystick |
|
Test the vwand's button output by typing: dtk-readButtons buttons |
This software is distributed as a compressed tar file. It requires DIVERSE.
It also assumes the user is familiar with DIVERSE and how to install a DIVERSE DSO.
Credits:
Visualization: ;
Visualization: John Kelso
Group Leader: Judith E. Terrill
For information about this DSO, contact
John Kelso
Software Download: lodScale.tar.gz (4.2kb)
This DIVERSE DSO reads a floating point number from the DTK shared memory file
named lodScale, and sets the level-of-detail scale for all channels..
See
pfChannel::setLODAttr for more details. Two shell scripts,
lodScaleSliders.sh, and lodScaleText.sh are included as examples of how to
set the shared memory file.
By default, scenegraph nodes less than 5 pixels in size are discarded.
Set the environment variable DPF_SMALLFEATURECULL_SIZE to change this
value.
This software is distributed as a compressed tar file. It requires DIVERSE.
It also assumes the user is familiar with DIVERSE and how to install a DIVERSE DSO.
Credits:
Visualization: John Kelso
Group Leader: Judith E. Terrill
For information about this DSO, contact
John Kelso
Software Download: frameGrabber.tar.gz (4.5kb)
This DIVERSE DSO grabs the contents of the first window of the first pipe,
every frame, and dumps its contents, in SGI's RGB format, to sequentially
numbered files. It does this every frame, regardless of the frame rate.
The screen area to be dumped is at the window's original size and location
once frame grabbing is started. Move or resize it and you'll get whatever
is being displayed where the window originally was located. Therefore, move
and resize the window before you start grabbing the frames.
The base of the output file name is specified by the environment variable
HEV_FRAME_GRABBER_FILE, if set, otherwise the base of the file used is
"/tmp/frameGrabber-$LOGNAME". In either case the base has a dash and a six
digit number appended to it, and the extension "rgb". For best results use
a local filesystem.
Keypresses and environment variables control when frame grabbing starts and
stops. The cursor must be in the graphics window when pressing the key.
The cursor will not appear in the stored images.
The l (lowercase L) key can be used to start and stop logging. Each time
logging is started, the logging counter is reset to 0, so pressing "l"
multiple times will overwrite previous files.
The L (uppercase L) key can also be used to start and stop logging. Each
time logging is started with the "L" key, the logging counter is incremented
from the last logging counter, which causes logged frames to be appended.
If the HEV_FRAME_GRABBER_NUM_FRAMES environment variable is set to a
positive number, then once L or l, as described above, is pressed, the
specified number of frames will be logged before logging is turned off.
This can be useful to capture all frames of an animation sequence, such as
contained in a pfSequence node. For best results, the frameTimeStamp DSO
should also be used to ensure no child nodes of the sequence node are
skipped or duplicated.
If the HEV_FRAME_GRABBER_WAIT_FRAMES environment variable is set to a
non-negative number, then when pfGetFrameCount(), the global Performer frame
counter, equals the specified number, logging will automatically start.
This can be useful to start logging at the beginning of an animation
sequence. Timing issues peculiar to each machine will usually prevent you
from setting this to 0 and getting the first frame of the sequence.
Instead, if your sequence has "N" frames, try setting
HEV_FRAME_GRABBER_WAIT_FRAMES to "N" plus or minus a few frames, until the
first frame captured is the first frame of the sequence.
The file demo.sh in the released tarball gives a simple example of how to use
this DSO. It is a simple script that loads the frameGrabber DSO along with several other navigational DSOs, and then prompts the user to press "L," at which time it starts saving frames into a directory defined within the script. Below are several frames from this simple animation:
|
spinning cow
|
Credits:
Visualization: John Kelso
Group Leader: Judith E. Terrill
For information about this DSO, contact
John Kelso
Software Download: frameTimeStamp.tar.gz (2.9kb)
This DIVERSE DSO calls pfFrameTimeStamp() with the value specified by the
HEV_FRAME_TIME_STAMP environment variable. This value is used by the
pfSequence node to determine which child node to display.
This DSO ensures that no child nodes of a sequence node are skipped or
duplicated in the graphics frame loop, which can be useful when grabbing
frames using the frameGrabber DSO.
For example, if successive child nodes of a sequence node are selected after
"N" seconds have elapsed, then setting HEV_FRAME_TIME_STAMP to "N" will
cause every child node to be displayed once per frame. Setting
HEV_FRAME_TIME_STAMP to 2*"N" will every other child node to be displayed,
and setting HEV_FRAME_TIME_STAMP to "N"/2 will cause every child node to be
displayed for two frames.
Note that this time stamp has nothing to do with the real frame rate. For
example, if your frame rate is 30 frames/second, and your sequence node
increments its child node index every second, and HEV_FRAME_TIME_STAMP is
set to "1", then the sequence file will be displayed 30 times real time.
But, every node will be displayed exactly once.
This node can also be used to change the speed of an animation in a sequence
node. For example, if your graphics frame rate is 30 frames/second, then
setting HEV_FRAME_TIME_STAMP to 2/30 or .06666 will cause the animation to
run half its usual speed.
The stats DSO can use used to display the graphics frame rate.
The file demo.sh in the release tarball gives a simple example of how to use
this DSO.
Credits:
Visualization: John Kelso
Group Leader: Judith E. Terrill
For information about this DSO, contact
John Kelso
|