ITLACMDScientific Applications  Visualization Group
Visualization Software
Attractive Image NIST
 
Up Visualization Parallel Computing Data Mining Released Software

DIVERSE DSOs



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
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
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
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
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
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
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
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
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:

(bullet) copy Makefile and vwand.cpp to the directory of your choice and cd to that directory
(bullet) be sure the dtk-config command is in your path
(bullet) 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.
(bullet) type: make
(bullet) if you have permission, you can install it with the other DTK services by typing: make install

To run:

(bullet) Start a DTK server if one is not already running
(bullet) Load the service into the server by typing: dtk-loadService vwand
(bullet) Test the vwand's joystick output by typing: dtk-readFloats joystick
(bullet) 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
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




Privacy Policy | Disclaimer | FOIA
NIST is an agency of the U.S. Commerce Department.
Date created: 2001-11-01, Last updated: 2011-01-12.
Contact