Title: Peter Stein
1Peter Stein Clark University Advisor Professor
Jerry Breecher April 25th, 2007
Unleashing Dynamic Data in 3D and Beyond
2Motivation
- The real world has complicated structures and
relationships that are not easy to - represent in a generated space because of the
difficulty in logically packing - things in multiple directions and dimensions.
- Simple examples
- Networks
- Computers
- Social
- Trees/Hierarchies
- Clades
- File directories
A portion of a clade tree
3The Problem
Technology is fairly capable in terms of
expressing the 2D realm charts, simple maps,
timelines, etc. But, dynamic 3D expression is
generally limited to science fiction. Virtual
reality interfaces are easier said than done,
and where there are such interfaces, they are
generally pre-designed rather than
on-the-fly. The general question how do we
simplify that which, for the human mind, is
fairly easy to visualize, but for a computer, is
a complicated task?
Inside a computer in Disneys Tron (1982)
4Research Question
The research question, then, goes something like
this Is there a programming interface that
could be made that would simplify and
generalize the arrangement of arbitrary related
data in a 2D and/or 3D space?
?
5Whats Out There Now
There are some existing software packages which
address data representation
Gajer and Kobourov (2002) GRIP Intelligent
placement of nodes in a graph in a
multi-dimensional environment.
Sanderson (2006) Paloverde, a 3D phylogeny
visualization tool.
Figures from GRIP (Gajer and Kobourov, 2002)
Paloverde radial graph (Sanderson, 2006)
6A Solution?
- While promising graph drawing techniques seem to
be available, are they the end solution to the
question of simplifying the arrangement of data? - Things to consider
- Interfacing a set of data with generic nodes
in an algorithm - Different kinds of graph arrangements (3D,
planar, stacked-planar) - Nodes with multiple connectionscircuits
-
7My Project
- Achieving synergy between existing graph drawing
algorithms and real-world applications of 2D/3D
expression. - The Project Itself
- A library for automating the generation of plot
points for a set of data, and sample client(s)
that use that library. - Components
- An XML format for expressing nodes and
relationships - Translation scripts for converting raw data to
the XML format - A loader module for reading in the XML-formatted
data - A generator module for filling in the
geometrical data for the nodes (the - graph-generating algorithm)
- A group-parser module for assembling information
about node groups - Unifier module(s) for collating and
consolidating data into one set - Viewer module(s) for displaying the data.
8Sample Runthrough Raw Data
We start off with some raw data describing a
network
IP 192.168.0.1 Type gateway Link
192.168.0.3 Link 192.168.0.7 Link
192.168.0.11
IP 192.168.0.3 Type workstation Gateway
192.168.0.1 Link 192.168.0.7 Link
192.168.0.11
IP 192.168.0.7 Type workstation Gateway
192.168.0.1 Link 192.168.0.3 Link
192.168.0.11
IP 192.168.0.11 Type workstation Gateway
192.168.0.1 Link 192.168.0.3 Link
192.168.0.7
raw
XML
plotted
displayed
9Sample Runthrough - XML
Then, the translator routine written for the
application converts the raw data into uniform
XML data
ltnodegt ltidgt1lt/idgt ltnamegt192.168.0.1lt/namegt ltcat
egorygtgatewaylt/categorygt ltlink
type1gt2lt/linkgt ltlink type1gt3lt/linkgt ltlink
type1gt4lt/linkgt lt/nodegt ltnodegt ltidgt2lt/idgt ltname
gt192.168.0.3lt/namegt ltcategorygtdesktoplt/categorygt
ltlink type2gt1lt/linkgt ltlink type1gt3lt/linkgt ltli
nk type1gt4lt/linkgt lt/nodegt
ltnodegt ltidgt3lt/idgt ltnamegt192.168.0.7lt/namegt ltcat
egorygtdesktoplt/categorygt ltlink
type2gt1lt/linkgt ltlink type1gt2lt/linkgt ltlink
type1gt4lt/linkgt lt/nodegt ltnodegt ltidgt4lt/idgt ltname
gt192.168.0.11lt/namegt ltcategorygtdesktoplt/categorygt
ltlink type2gt1lt/linkgt ltlink type1gt2lt/linkgt ltl
ink type1gt3lt/linkgt lt/nodegt
raw
XML
plotted
displayed
10Sample Runthrough Graph Generation
Next, the XML data is fed to the graph drawing
routine, which uses an algorithm to generate
geometric data for each node.
ltnodegt ltidgt1lt/idgt ltnamegt192.168.0.1lt/namegt ltcat
egorygtgatewaylt/categorygt ltlink
type1gt2lt/linkgt ltlink type1gt3lt/linkgt ltlink
type1gt4lt/linkgt ltxgtlt/xgtltygtlt/ygtltzgtlt/zgt lt/nodegt
ltnodegt ltidgt2lt/idgt ltnamegt192.168.0.3lt/namegt ltca
tegorygtdesktoplt/categorygt ltlink
type2gt1lt/linkgt ltlink type1gt3lt/linkgt ltlink
type1gt4lt/linkgt ltxgtlt/xgtltygtlt/ygtltzgtlt/zgt lt/nodegt
ltnodegt ltidgt3lt/idgt ltnamegt192.168.0.7lt/namegt ltcat
egorygtdesktoplt/categorygt ltlink
type2gt1lt/linkgt ltlink type1gt2lt/linkgt ltlink
type1gt4lt/linkgt ltxgtlt/xgtltygtlt/ygtltzgtlt/zgt lt/nodegt
ltnodegt ltidgt4lt/idgt ltnamegt192.168.0.11lt/namegt ltc
ategorygtdesktoplt/categorygt ltlink
type2gt1lt/linkgt ltlink type1gt2lt/linkgt ltlink
type1gt3lt/linkgt ltxgtlt/xgtltygtlt/ygtltzgtlt/zgt lt/nodegt
raw
XML
plotted
displayed
raw
XML
plotted
displayed
11Sample Runthrough Final Display
Finally, the completed XML data is fed to the
viewing module, which uses simple graphic
routines to place nodes in the graphical
environment.
raw
XML
plotted
displayed
12Project Flowchart
13Process Timeline
Timeline illustrating the broad state changes
that occur
Data state
XML (GraphML)
XML
graphical
raw
Program state
importer
translator
generator
viewer
start
finish
14Visualization Enhancements
Label Display Clarity Control the size and
fading distances of nodes Group
Highlighting Computation of convex hull
enveloping group nodes. Miscellaneous
Effects E.g., textured and shaded 3D models
representing different classes of nodes.
15Demonstration
The project has been implemented under Linux
(Fedora Core 6), but there is nothing platform
specific that would prevent it from running under
Windows or MacOS.
16Applications of this Project
- The program framework could be used for/test
programs may include - Phylogenetic tree viewers
- Virtual reality systems
- Star system explorers
- Social network viewers
17Acknowledgements
Thanks goes first and foremost to Professor
Breecher, for advice and guidance with this
project. The work presented today relies on
several software applications and algorithms
without which the project would not be entirely
possible GRIP node placement algorithm
(original) Pawel Gajer, Michael T. Goodrich, and
Stephen G. Kobourov Johns Hopkins University and
University of Arizona http//www.cs.arizona.edu/k
obourov/GRIP/ GRiP with GraphML Weighted Nodes
Thomas Willhalm University of Konstanz http//www
.inf.uni-konstanz.de/willhalm Convex Hull
Algorithm Joseph O'Rourke From Computational
Geometry in C, 2nd ed., 1998. Expat XML
Parser http//expat.sourceforge.net/
18Questions
Questions from the audience?!