Exploring Large Graphs in 3D Hyperpbolic Space And GraphSplatting: Visualizing Graphs as Continuous Fields Exploring Large Graphs in 3D Hyperbolic Space (1998) Tamera Munzner Stanford University Exploring Large Graphs in 3D Hyperbolic Space (1998) Software system that handles much larger graphs and supports dynamic exploration (Called H3) Developed algorithms for graph layout and drawing Drawn in 3D hyperbolic space to show a large neighborhood around a node of interest Spanning Trees Need to find a spanning tree to compute layout. Spanning tree influences the system’s visual impact Can use BFS spanning tree, but exploiting domain-specific knowledge creates better mental model This means, for each node, deciding some parent child relationship with the edges. Sample domain specific spanning trees Web Site- URL encodes the site’s directory structure. Function call graph- Compiler analysis and runtime profiling must be done to find where procedure is being called most of the time. The resulting H3 layout makes it easier for software engineers to understand Standford graphics group website drawn as a graph in 3D hyperbolic space Function call graph structure for a Fortran scientific computing benchmar k Layout Basis is cone tree method Instead of laying nodes on linear circumference of a cone’s mouth, H3 lays nodes out on a surface of a hemisphere The cone widens to its maximum extent Cone body flattens out into a disk at base of hemisphere Traditional Cone Tree vs. H3 layout Layout Algorithm It requires 2 passes A bottom-up pass to estimate the radius needed for each hemisphere to accommodate all its children A top-down pass to place each child node on its parental hemisphere's surface. Layout (cont) Circle packing problem- child hemispheres on the surface of their parent Solution- lay out children in concetric bands around the hemisphere’s pole. The amount of room each node needs is directly proportional to the total number 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 Layout Area of hemisphere, 2πr, increases polynomially with respect to its radius in Euclidean space Area of hemisphere, 2πsinh2(r), increases exponentially In hyperbolic geometry, you can map the entire infinite space into a finite portion of Euclidean space Is effective because the tree is laid out in a mathematical space having a exponential “amount of room” in direction of the hemisphere’s growth They chose the Klein hyperbolic geometry model because motions can be expressed as 4x4 matrices. Navigation in 3D hyperbolic space through a Unix file system of more than 31,000 nodes Drawing Only a local neighborhood of nodes in the graph will be visible at any given time. This is because the projection from hyperbolic to Euclidean space guarantees that nodes sufficiently far from the center will project to less than a single pixel. Drawing (cont) Designed adaptive drawing algorithm to always maintain a target frame rate A high constant framerate results from drawing only as much of the neighborhood around a center point as much as allotted time permits When user is idle, the system fills in more of the surrounding scene. Drawing (cont) Drawing algorithm uses knowledge of the graph structure and the current viewing position Spanning tree’s link structure is used as a guide to choose for candidates for drawing. The largest project area node from the previous frame serves as a seed for the tree traversal on the next frame Scaffolding for attributes Can show dynamic or static attributes. By color and line-width coding, text labels, and filtering Example: Can show paths taken by Web Users by highlight those nodes or coloring the edges Color of edge can represent if inward edge or outward edge Local Orientation When user clicks on node, it is highlighted and undergoes an animated transition to the center of the sphere. This minimizes occlusion of nodes and labels Ancestors appear on left and descendents appear on right Local Orientation (cont) It draws links to and out of node even if doesn’t draw node at other end. This presence of undetermined link during motion hints user of something interesting in that direction Context of part in whole Hyperbolic space very effectively presents a large area around a focus node User can see enough of the distant subtrees to identify dense and sparse ones Graph as index Integrate H3Viewer with other graph views like 2D file viewer Graph structure becomes one way to index the information. This becomes useful for finding patterns in a different type of view Conclusion It can handle graphs that are very large(more than 100,000 edges) Manipulates by using backbone spanning tree 3D hyperbolic space allows large amount of context around a focus point Layout is good balance of information density and clutter Maintains guaranteed frame rate I downloaded movies of it and demo program from website GraphSplatting: Visualizing Graphs as Continuous Fields (2003) Robert van Liere Leeuw and Wim de GraphSplatting: Visualizing Graphs as Continous Fields Transforms a graph into a 2D scalar field Scalar field can be rendered as a color-coded map, a height field, or a set of contours Allows visualization of large graphs without cluttering (overview of graph) It provides density information of the graph (assuming that graph Layout algorithm uses density of vertices as a characteristic) That is, How vertices placed relative to each other means something Related Work This work was inspired by ThemeScape, a technique which conveys information about topics in text documents. They are 3D landscapes of information that are constructed from documents to show strength of themes in a document GraphSlatting technique Central assumption is that the density of vertices is an important characteristic of layout used by a graph Some layouts that use this are the spring mass technique and edge length minimization technique Splatting Projects each vertex of the graph onto 2D scalar field using splatting function. Instead of showing individual vertices, continuous variation in density is shown Each vertex contributes to the field with a 2D Gaussian shaped basis function. Field is obtained by adding all the contributions. -> splat field Gaussian Splat σ determines the smoothness. When σ large, smooth out details of graph. When σ small, more detail. If σ = 0, vertices are shown as impulses Splat Field Construction 2D 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 (cont) Splat field is done on a grid with user controlled resolution Gaussian functions are discretized and added to the cells grid Contribution to each splat to a pixel in the grid is estimated by using the distance between the vertex position and the center 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 Visualization Important to realize that underlying data is a graph. Splat field is often combined with discrete representations that can be rendered on top of the splat field. Color coding. 2D view of the field which the value is shown using color. Height map Isovalue contours. Can be used to show the boundary of specific clusters Splat Field Zooming For large graphs, not all details can be discerned in the constructed splat field Sigma parameter with a smaller region of interest -> Zooming This is done by maintaining same contrast ratio of the unzoomed 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 with Texture Fields Gaussian function is limited in the frequency domain The sum of Gaussian functions will have the same spectral properties as a single Gaussian function. So spectrum of splat field is restricted to lower frequencies This property is used to map an additional scalar field. Remaining higher frequencies are used for a texture that represents additional scalar 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 with Texture Fields (cont) Combining splat fields with scalar data is performed by adding high frequency data to the splat The intesnisty of the noise added to the splat is proportional 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 with Texture Fields (cont) Maximum frequency that can be represented is determined by limited texture and screen resolution If the range of [ω0, ω1] is too small, noise mapping cannot be used Use a database of splats so they don’t have to recompute S(x) for every rendered splat Regular data set splat field splat field with noise added Hardware Implementation Gaussian Function represented as textured polygon, rendered to offscreen buffer with additive blending enabled Optimal rendering, max splat value would map to max pixel value Due to limited dept of frame buffer, and to additive blending of unknown number of splats, the maximum intensity of splat field is unknown Hardware Implementation (cont) Use adaptive algorithm to get optimal intensity mapping Optimal intensity is a value at least 80% of max intensity of frame buffer Algorithm scales intensity of all splats such that max intensity of splat field is close to max intensity of frame buffer Hardware Implementation (cont) Algorithm implemented by first rendering splat field with estimated splat intensity scaling. Imax of splat field is scanned for. 3 cases for Imax 1. If Imax lies in R2. Then terminate. Satisfactory scaling found 2. If Imax lies 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 Multidimensional Feature Spaces For an image a feature is expressed as a kdimensional feature vector Similarity between 2 images is based on distance between the 2 feature vectors MDS can be used to project multidimensional spaces 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 Application IEEE Vis Citation Index Input data are BibTeX entries of papers in the IEEE Vis’XX conferences and all references between papers in the set 672 BibTeX entries, 1044 references Also name session where paper was collected was collected Application IEEE Vis Citation Index (cont) Graph was made where vertices = papers and edges = references Used spring mass graph layout Referencing papers are attracted to each other Goal: test hypothesis: topics in visualization could be identified by using reference 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 Application IEEE Vis Citation Index (cont) To validate hypothesis, used session names to show what topic paper belongs to Noise mapping used to combine splatmap with info about the session name of paper Occurrence of “flow” or “volume” in session name linked to Boolean attribute to noise mapping Papers menitioned in sessions are rendered as noisy 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. Application IEEE Vis Citation Index (cont) Since noise regions are disjoint, the assumption that visualization topics can be identified is valid For flow viz, strong correlation between the noise field and splat field. Not so for vol viz. Noise fields show small regions out of “primary region” of splat field. This is because these papers do not reference other papers. Flow papers tend to reference other papers and Volume papers do not. Zooming into a region of interest Discussion/Conclusion Overview of arbitrarily large graphs can be produced Visualization of splat fields presents density information. Graph layout must have meaning between vertices spaces Noise mapping can be used to present secondary scalar field.