250 likes | 393 Views
Lance Arsenault John Kelso Ron Kriz www.diverse.vt.edu. Data visualization in the Engineering Sciences using DIVERSE. http://www.sv.vt.edu/ Item7- Student projects (91,92, … 01). evice ndependent irtual nvironments- econfigurable, calable, xtensible. DIVERSE. Overview. C++ API
E N D
Lance ArsenaultJohn KelsoRon Kriz www.diverse.vt.edu
Data visualization in the Engineering Sciences using DIVERSE • http://www.sv.vt.edu/ Item7- Student projects (91,92, … 01)
evicendependentirtualnvironments-econfigurable,calable,xtensibleevicendependentirtualnvironments-econfigurable,calable,xtensible DIVERSE
Overview • C++ API • Free, Open source • LGPL libraries, GPL applications • SGI IRIX and GNU/Linux • Support for all three IRIX binary types
Goals • Modular • Only use the parts you need • Flexible • Easy to reconfigure and extend • Same program works on all hardware • No changes to application
We always tried to keep this in mind… • Stay out of the user’s way • They know better than we do how to do their job • Augment instead of replace • Build on existing packages, don’t reinvent new ones • Works by default • Lowest-common-denominator defaults work anywhere
Who uses DIVERSE? • US Navy: • 3d target-acquisition visualization for submarines • Dynamic ship-crane project • Lockheed-Martin: • Tools for collaborative engineering. • NIST: • Visualization of complex data sets • Haptic device for probing data set densities
Two separate packages • DTK- the DIVERSE ToolKit • Contains classes not related to graphics • A standalone package in its own right • dgiPf- the DIVERSE graphics interface for OpenGL Performer™ • Built using DTK and Performer
DTK DIVERSE ToolKit • Library • C++ classes used to build server and applications • Server • Manager of services • A true daemon, in the form of a select server • Services • Interfaces to hardware devices or virtual surrogates • Loaded and unloaded into server at run-time as DSOs
dgiPf DIVERSE Graphics Interface for Performer • Uses DTK and Performer to provide: • Configuration via DSOs • Display-independent graphics • Coordinate systems and scenegraph • Symmetric and asymmetric viewing frusta • Stereo parallax • Generic input devices • Navigation • New Performer node types
DIVERSE distribution includes: • Library for application development • Stand-alone application programs and utilities • Several dozen small programs to illustrate specific features of dgiPf • Written to be easily moved and modified
The only thing you should say before giving a demo is “watch this”
diversifly • Application program • Loads model files with optional transformations • Behavior can be modified via DSOs
diversifly demos • Performer Town on a desktop: diversifly --origin 2500 2500 2 -90 0 0 town.pfb Performer Town in a CaveTM simulator: env DGIPF_DSO_FILES=desktopCaveSimGroup \ diversifly --origin 2500 2500 2 -90 0 0 town.pfb
Hello World! #include <dgiPf.h> int main(void) { pfInit(); dgiPf app; pfConfig(); app.display()->world()-> addChild(pfdLoadFile(”model.pfb")); while(app.state & DGIPF_ISRUNNING) pfFrame(); pfExit(); return 0; }
hello.C demos • Default, no navigation or input devices: hello • Desktop: env DGIPF_DSO_FILES=desktopGroup \ hello • Cave Simulator: env DGIPF_DSO_FILES=desktopCaveSimGroup \ hello
hello.C demos • Desktop, writing navigation to DTK shared memory: env DGIPF_DSO_FILES=desktopGroup:\ navDTKOutputhello View the data in a terminal window: dtk-readFloats nav --carriage-return
hello.C demos • While the writer is running, start a reader: Desktop, with navigation read from DTK shared memory: env DGIPF_DSO_FILES=simpleDisplay:\ • keyboardMouseInput:\ • iconSleepKeyboardMod:\ • toggleObjectsGroup:\ • dtkNav \ hello
hello.C demos • Terminate the writer and use sliders to write data: dtk-sliders nav --number 7 \ --scale 0 20 -20 0 --scale 1 20 -20 0 --scale 2 20 -20 0 \ --scale 3 180 -180 0 --scale 4 180 -180 0 \ --scale 5 180 -180 0 --scale 6 10 .1 1 \ --labels x y z h p r scale
hello.C demos • Run another reader: Cave simulator, with navigation read from DTK shared memory: env DGIPF_DSO_FILES=desktopCaveSimGroup:\ dtkNav hello
hello.C demos • And finally, a Cave Simulator, with navigation written to DTK shared memory, and a flashlight: env DGIPF_DSO_FILES=desktopCaveSimGroup:\ navDTKOutput:wandLight hello
Future directions • dgiGL (summer 2001) • Augments OpenGL • Support for many more platforms • dgiOi (fall 2001) • Adds Open Inventor scenegraph to dgiGL
Future directions • head’s up displays (summer 2001) • hooks to VTK (summer 2001) • more navigation and simulation techniques(summer 2001) • collaborative tools (fall 2001) • motion queuing (fall 2001) • new devices • Phantom haptic device (fall 2001) • Xwand (summer 2001) • PocketPC (summer 2001)
Want to know more? • Visit www.diverse.vt.edu and • Download and try it out • Read the friendly manuals • Contact: • Lance Arsenault (lanceman@vt.edu) • John Kelso (kelso@vt.edu) • Ron Kriz (rkriz@vt.edu)