exploring large graphs in 3d hyperpbolic space and graphsplatting: visualizing graphs as continuous...
TRANSCRIPT
Exploring Large Exploring Large Graphs in 3D Graphs in 3D Hyperpbolic SpaceHyperpbolic Space
AndAnd
GraphSplatting: GraphSplatting: Visualizing Graphs Visualizing Graphs as Continuous as Continuous FieldsFields
Exploring Large Exploring Large Graphs in 3D Graphs in 3D Hyperbolic Space Hyperbolic Space (1998)(1998)Tamera MunznerTamera Munzner
Stanford UniversityStanford University
Exploring Large Graphs in Exploring Large Graphs in 3D Hyperbolic Space (1998)3D Hyperbolic Space (1998)
Software system that handles much Software system that handles much larger graphs and supports dynamic larger graphs and supports dynamic exploration (Called H3)exploration (Called H3)
Developed algorithms for graph layout Developed algorithms for graph layout and drawingand drawing
Drawn in 3D hyperbolic space to show a Drawn in 3D hyperbolic space to show a large neighborhood around a node of large neighborhood around a node of interestinterest
Spanning TreesSpanning Trees Need to find a spanning tree to compute Need to find a spanning tree to compute
layout. Spanning tree influences the layout. Spanning tree influences the system’s visual impactsystem’s visual impact
Can use BFS spanning tree, but exploiting Can use BFS spanning tree, but exploiting domain-specific knowledge creates better domain-specific knowledge creates better mental modelmental model
This means, for each node, deciding some This means, for each node, deciding some parent child relationship with the edges.parent child relationship with the edges.
Sample domain specific Sample domain specific spanning treesspanning trees
Web Site- URL encodes the site’s directory Web Site- URL encodes the site’s directory structure. structure.
Function call graph- Compiler analysis and Function call graph- Compiler analysis and runtime profiling must be done to find where runtime profiling must be done to find where procedure is being called most of the time.procedure is being called most of the time.
The resulting H3 layout makes it easier for The resulting H3 layout makes it easier for software engineers to understandsoftware engineers to understand
Standford graphics group website drawn as a graph in 3D hyperbolic space
Function call graph structure for a Fortran scientific computing benchmark
LayoutLayout
Basis is cone tree methodBasis is cone tree method Instead of laying nodes on linear Instead of laying nodes on linear
circumference of a cone’s mouth, H3 lays circumference of a cone’s mouth, H3 lays nodes out on a surface of a hemispherenodes out on a surface of a hemisphere
The cone widens to its maximum extentThe cone widens to its maximum extent Cone body flattens out into a disk at base Cone body flattens out into a disk at base
of hemisphereof hemisphere
Traditional Cone Tree vs. H3 layout
Layout AlgorithmLayout Algorithm
It requires 2 passesIt requires 2 passes A bottom-up pass to estimate the radius A bottom-up pass to estimate the radius
needed for each hemisphere to needed for each hemisphere to accommodate all its childrenaccommodate all its children
A top-down pass to place each child A top-down pass to place each child node on its parental hemisphere's node on its parental hemisphere's surface.surface.
Layout (cont)Layout (cont)
Circle packing problem- child Circle packing problem- child hemispheres on the surface of their hemispheres on the surface of their parentparent
Solution- lay out children in concetric Solution- lay out children in concetric bands around the hemisphere’s pole. bands around the hemisphere’s pole. The amount of room each node needs is The amount of room each node needs is directly proportional to the total number directly proportional to the total number of its descendants.of its descendants.
They lay the nodes out in sorted order to avoid wasting space within the bands, and the disk at the pole is the node with the most progeny (children, descendants)
Hemispherical LayoutHemispherical Layout Area of hemisphere, 2Area of hemisphere, 2ππr, increases polynomially with r, increases polynomially with
respect to its radius in Euclidean spacerespect to its radius in Euclidean space Area of hemisphere, 2Area of hemisphere, 2ππsinhsinh22(r), increases (r), increases
exponentially exponentially In hyperbolic geometry, you can map the entire infinite In hyperbolic geometry, you can map the entire infinite
space into a finite portion of Euclidean spacespace into a finite portion of Euclidean space Is effective because the tree is laid out in a Is effective because the tree is laid out in a
mathematical space having a exponential “amount of mathematical space having a exponential “amount of room” in direction of the hemisphere’s growthroom” in direction of the hemisphere’s growth
They chose the Klein hyperbolic geometry model They chose the Klein hyperbolic geometry model because motions can be expressed as 4x4 matrices.because motions can be expressed as 4x4 matrices.
Navigation in 3D hyperbolic space through a Unix file system of more than 31,000 nodes
DrawingDrawing
Only a local neighborhood of nodes in Only a local neighborhood of nodes in the graph will be visible at any given the graph will be visible at any given time. This is because the projection from time. This is because the projection from hyperbolic to Euclidean space hyperbolic to Euclidean space guarantees that nodes sufficiently far guarantees that nodes sufficiently far from the center will project to less than a from the center will project to less than a single pixel.single pixel.
Drawing (cont)Drawing (cont)
Designed adaptive drawing algorithm to Designed adaptive drawing algorithm to always maintain a target frame ratealways maintain a target frame rate
A high constant framerate results from A high constant framerate results from drawing only as much of the drawing only as much of the neighborhood around a center point as neighborhood around a center point as much as allotted time permitsmuch as allotted time permits
When user is idle, the system fills in When user is idle, the system fills in more of the surrounding scene.more of the surrounding scene.
Drawing (cont)Drawing (cont)
Drawing algorithm uses knowledge of the Drawing algorithm uses knowledge of the graph structure and the current viewing graph structure and the current viewing positionposition
Spanning tree’s link structure is used as Spanning tree’s link structure is used as a guide to choose for candidates for a guide to choose for candidates for drawing. The largest project area node drawing. The largest project area node from the previous frame serves as a seed from the previous frame serves as a seed for the tree traversal on the next framefor the tree traversal on the next frame
Scaffolding for attributesScaffolding for attributes
Can show dynamic or static attributes.Can show dynamic or static attributes. By color and line-width coding, text By color and line-width coding, text
labels, and filteringlabels, and filtering Example: Can show paths taken by Web Example: Can show paths taken by Web
Users by highlight those nodes or Users by highlight those nodes or coloring the edgescoloring the edges
Color of edge can represent if inward Color of edge can represent if inward edge or outward edgeedge or outward edge
Local OrientationLocal Orientation
When user clicks on node, it is When user clicks on node, it is highlighted and undergoes an animated highlighted and undergoes an animated transition to the center of the sphere. transition to the center of the sphere. This minimizes occlusion of nodes and This minimizes occlusion of nodes and labelslabels
Ancestors appear on left and Ancestors appear on left and descendents appear on rightdescendents appear on right
Local Orientation (cont)Local Orientation (cont)
It draws links to and out of node even if It draws links to and out of node even if doesn’t draw node at other end.doesn’t draw node at other end.
This presence of undetermined link This presence of undetermined link during motion hints user of something during motion hints user of something interesting in that directioninteresting in that direction
Context of part in wholeContext of part in whole
Hyperbolic space very effectively Hyperbolic space very effectively presents a large area around a focus presents a large area around a focus nodenode
User can see enough of the distant User can see enough of the distant subtrees to identify dense and sparse subtrees to identify dense and sparse onesones
Graph as indexGraph as index
Integrate H3Viewer with other graph Integrate H3Viewer with other graph views like 2D file viewerviews like 2D file viewer
Graph structure becomes one way to Graph structure becomes one way to index the information. This becomes index the information. This becomes useful for finding patterns in a different useful for finding patterns in a different type of viewtype of view
ConclusionConclusion
It can handle graphs that are very large(more It can handle graphs that are very large(more than 100,000 edges)than 100,000 edges)
Manipulates by using backbone spanning treeManipulates by using backbone spanning tree 3D hyperbolic space allows large amount of 3D hyperbolic space allows large amount of
context around a focus pointcontext around a focus point Layout is good balance of information density Layout is good balance of information density
and clutterand clutter Maintains guaranteed frame rateMaintains guaranteed frame rate I downloaded movies of it and demo program I downloaded movies of it and demo program
from websitefrom website
GraphSplatting: GraphSplatting: Visualizing Graphs as Visualizing Graphs as Continuous Fields Continuous Fields (2003)(2003)
Robert van Liere and Wim de Leeuw
GraphSplatting: Visualizing GraphSplatting: Visualizing Graphs as Continous FieldsGraphs as Continous Fields
Transforms a graph into a 2D scalar fieldTransforms a graph into a 2D scalar field Scalar field can be rendered as a color-coded Scalar field can be rendered as a color-coded
map, a height field, or a set of contoursmap, a height field, or a set of contours Allows visualization of large graphs without Allows visualization of large graphs without
cluttering (overview of graph)cluttering (overview of graph) It provides density information of the graph It provides density information of the graph
(assuming that graph Layout algorithm uses (assuming that graph Layout algorithm uses density of vertices as a characteristic) That is, density of vertices as a characteristic) That is, How vertices placed relative to each other How vertices placed relative to each other means somethingmeans something
Related WorkRelated Work
This work was inspired by ThemeScape, This work was inspired by ThemeScape, a technique which conveys information a technique which conveys information about topics in text documents. They are about topics in text documents. They are 3D landscapes of information that are 3D landscapes of information that are constructed from documents to show constructed from documents to show strength of themes in a documentstrength of themes in a document
GraphSlatting techniqueGraphSlatting technique
Central assumption is that the density of Central assumption is that the density of vertices is an important characteristic of vertices is an important characteristic of layout used by a graphlayout used by a graph
Some layouts that use this are the spring Some layouts that use this are the spring mass technique and edge length mass technique and edge length minimization techniqueminimization technique
SplattingSplatting
Projects each vertex of the graph onto Projects each vertex of the graph onto 2D scalar field using splatting function.2D scalar field using splatting function.
Instead of showing individual vertices, Instead of showing individual vertices, continuous variation in density is showncontinuous variation in density is shown
Each vertex contributes to the field with a Each vertex contributes to the field with a 2D Gaussian shaped basis function. 2D Gaussian shaped basis function. Field is obtained by adding all the Field is obtained by adding all the contributions. -> splat fieldcontributions. -> splat field
Gaussian SplatGaussian Splat
σ determines the smoothness. When σ large, smooth out details of graph. When σ small, more detail. If σ = 0, vertices are shown as impulses
Splat Field ConstructionSplat Field Construction2D continuous function M is constructed by summing the contributions of individual 2D basis functions
X = (x,y), a position in the splat field
Each basis function is modeled as a normalized Gaussian function
The basis function fi is defined by placing the center of the Gaussian at the vertex position pi = (pi,x , pi,y)
Splat field construction Splat field construction (cont)(cont)
Splat field is done on a grid with user Splat field is done on a grid with user controlled resolutioncontrolled resolution
Gaussian functions are discretized and Gaussian functions are discretized and added to the cells gridadded to the cells grid
Contribution to each splat to a pixel in the Contribution to each splat to a pixel in the grid is estimated by using the distance grid is estimated by using the distance between the vertex position and the between the vertex position and the center of the pixelcenter of the pixel
40 vertices are shown on Left. Middle shows splat field with a low sigma. Right shows with high sigma. High sigma gives a more global view of the density. Blacker means higher density.
Splat Field VisualizationSplat Field Visualization
Important to realize that underlying data is a Important to realize that underlying data is a graph. Splat field is often combined with graph. Splat field is often combined with discrete representations that can be rendered discrete representations that can be rendered on top of the splat field.on top of the splat field.
Color coding. 2D view of the field which the Color coding. 2D view of the field which the value is shown using color.value is shown using color.
Height mapHeight map Isovalue contours. Can be used to show the Isovalue contours. Can be used to show the
boundary of specific clustersboundary of specific clusters
Splat Field ZoomingSplat Field Zooming
For large graphs, not all For large graphs, not all details can be discerned details can be discerned in the constructed splat in the constructed splat fieldfield
Sigma parameter with a Sigma parameter with a smaller region of interest smaller region of interest -> Zooming-> Zooming
This is done by This is done by maintaining same maintaining same contrast ratio of the contrast ratio of the unzoomed imageunzoomed image
Splat field with all the data. Region of interest shown in dashed bounding box
Previous ROI zoomed in. Now another ROI is selected
Second level zooming of the bounding box
Combining Splat Fields Combining Splat Fields with Texture Fieldswith Texture Fields
Gaussian function is limited in the frequency Gaussian function is limited in the frequency domaindomain
The sum of Gaussian functions will have the The sum of Gaussian functions will have the same spectral properties as a single Gaussian same spectral properties as a single Gaussian function. So spectrum of splat field is restricted function. So spectrum of splat field is restricted to lower frequenciesto lower frequencies
This property is used to map an additional This property is used to map an additional scalar field. Remaining higher frequencies are scalar field. Remaining higher frequencies are used for a texture that represents additional used for a texture that represents additional scalar datascalar data
Low frequencies for the splat field and High frequencies for the noise
The Fourier Transform g(ω) of Normalized Gaussian
σk = 1 / (πσ) and ω is 2D frequency vector
A high σ results in a low cut off in the frequency domain and large splat.
A low σ results in a high cut off in the frequency domain and small splat.
Combining Splat Fields Combining Splat Fields with Texture Fields (cont)with Texture Fields (cont)
Combining splat fields with scalar data is performed by Combining splat fields with scalar data is performed by adding high frequency data to the splatadding high frequency data to the splat
The intesnisty of the noise added to the splat is The intesnisty of the noise added to the splat is proportional to the mapped scalar valueproportional to the mapped scalar value
Rh(x) is the frequency noise function. sa is a scalar attribute value of the point represented by the splat
Combining Splat Fields Combining Splat Fields with Texture Fields (cont)with Texture Fields (cont)
Maximum frequency that can be Maximum frequency that can be represented is determined by limited represented is determined by limited texture and screen resolutiontexture and screen resolution
If the range of [If the range of [ωω00, , ωω11] is too small, noise ] is too small, noise
mapping cannot be usedmapping cannot be used Use a database of splats so they don’t Use a database of splats so they don’t
have to recompute S(x) for every have to recompute S(x) for every rendered splatrendered splat
Regular data set splat field splat field with noise added
Hardware Hardware ImplementationImplementation
Gaussian Function represented as textured Gaussian Function represented as textured polygon, rendered to offscreen buffer with polygon, rendered to offscreen buffer with additive blending enabledadditive blending enabled
Optimal rendering, max splat value would map Optimal rendering, max splat value would map to max pixel valueto max pixel value
Due to limited dept of frame buffer, and to Due to limited dept of frame buffer, and to additive blending of unknown number of splats, additive blending of unknown number of splats, the maximum intensity of splat field is unknownthe maximum intensity of splat field is unknown
Hardware Hardware Implementation (cont)Implementation (cont)
Use adaptive algorithm to get optimal Use adaptive algorithm to get optimal intensity mappingintensity mapping
Optimal intensity is a value at least 80% Optimal intensity is a value at least 80% of max intensity of frame bufferof max intensity of frame buffer
Algorithm scales intensity of all splats Algorithm scales intensity of all splats such that max intensity of splat field is such that max intensity of splat field is close to max intensity of frame bufferclose to max intensity of frame buffer
Hardware Hardware Implementation (cont)Implementation (cont)
Algorithm implemented by first rendering Algorithm implemented by first rendering splat field with estimated splat intensity splat field with estimated splat intensity scaling. Iscaling. Imax max of splat field is scanned for.of splat field is scanned for.
3 cases for I3 cases for Imaxmax
1.1. If IIf Imaxmax lies in R2. Then terminate. Satisfactory scaling found lies in R2. Then terminate. Satisfactory scaling found
2.2. If ImaxIf Imax lies in R1, Increase splat intensity scaling withlies in R1, Increase splat intensity scaling with
And re-render.
3. If Imax = FBmax. Decrease splat instensity scaling by
Keep doing this over until Imax is in R2
Applications Applications Multidimensional Feature Multidimensional Feature SpacesSpaces
For an image a feature is For an image a feature is expressed as a k-expressed as a k-dimensional feature dimensional feature vectorvector
Similarity between 2 Similarity between 2 images is based on images is based on distance between the 2 distance between the 2 feature vectorsfeature vectors
MDS can be used to MDS can be used to project multidimensional project multidimensional spaces onto a 2D planespaces onto a 2D plane
For example: brightness might correspond to first element
Left is MDS graph of images. Vertices are images and edges are similarity between 2 images. 200 vertices and 4007 edges. Right is the splat field as colored height field. The location and relative sizes of the 2 main clusters can be easily detected. The peaks represent similar images
Detail of high density area in feature space
ApplicationApplicationIEEE Vis Citation IndexIEEE Vis Citation Index
Input data are BibTeX entries of papers Input data are BibTeX entries of papers in the IEEE Vis’XX conferences and all in the IEEE Vis’XX conferences and all references between papers in the setreferences between papers in the set
672 BibTeX entries, 1044 references672 BibTeX entries, 1044 references Also name session where paper was Also name session where paper was
collected was collectedcollected was collected
ApplicationApplicationIEEE Vis Citation Index IEEE Vis Citation Index (cont)(cont)
Graph was made where vertices = Graph was made where vertices = papers and edges = referencespapers and edges = references
Used spring mass graph layoutUsed spring mass graph layout Referencing papers are attracted to each Referencing papers are attracted to each
otherother Goal: test hypothesis: topics in Goal: test hypothesis: topics in
visualization could be identified by using visualization could be identified by using reference informationreference information
Right shows the splat field applied to graph using rainbow colormap
Hypothesis says that higher peaks coincide with papers related to topics on which many papers are written. (in Red) Lower peaks(green and yellow) = less popular topics
ApplicationApplicationIEEE Vis Citation Index IEEE Vis Citation Index (cont)(cont)
To validate hypothesis, used session names to To validate hypothesis, used session names to show what topic paper belongs toshow what topic paper belongs to
Noise mapping used to combine splatmap with Noise mapping used to combine splatmap with info about the session name of paperinfo about the session name of paper
Occurrence of “flow” or “volume” in session Occurrence of “flow” or “volume” in session name linked to Boolean attribute to noise name linked to Boolean attribute to noise mappingmapping
Papers menitioned in sessions are rendered as Papers menitioned in sessions are rendered as noisy splatsnoisy splats
Left shows noise mapping to show papers presented in flow visualization sessions.
Right uses noise to show papers presented in volume visualization sessions
Left image shows that there is a strong correlation between a region of strong noise and the red region in the splat field
In right image, there is no maximum in the splat field in the region of strong noise.
ApplicationApplicationIEEE Vis Citation Index IEEE Vis Citation Index (cont)(cont)
Since noise regions are disjoint, the Since noise regions are disjoint, the assumption that visualization topics can be assumption that visualization topics can be identified is valididentified is valid
For flow viz, strong correlation between the For flow viz, strong correlation between the noise field and splat field. Not so for vol viz.noise field and splat field. Not so for vol viz.
Noise fields show small regions out of “primary Noise fields show small regions out of “primary region” of splat field. This is because these region” of splat field. This is because these papers do not reference other papers.papers do not reference other papers.
Flow papers tend to reference other papers Flow papers tend to reference other papers and Volume papers do not.and Volume papers do not.
Zooming into a region of interest
Discussion/ConclusionDiscussion/Conclusion
Overview of arbitrarily large graphs can Overview of arbitrarily large graphs can be producedbe produced
Visualization of splat fields presents Visualization of splat fields presents density information. Graph layout must density information. Graph layout must have meaning between vertices spaceshave meaning between vertices spaces
Noise mapping can be used to present Noise mapping can be used to present secondary scalar field.secondary scalar field.