WO2018093391A1 - 3d immersive visualization of a radial array - Google Patents
3d immersive visualization of a radial array Download PDFInfo
- Publication number
- WO2018093391A1 WO2018093391A1 PCT/US2016/063094 US2016063094W WO2018093391A1 WO 2018093391 A1 WO2018093391 A1 WO 2018093391A1 US 2016063094 W US2016063094 W US 2016063094W WO 2018093391 A1 WO2018093391 A1 WO 2018093391A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- array
- data
- radial array
- user
- graphlets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating three-dimensional [3D] models or images for computer graphics
- G06T19/20—Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Definitions
- a data collection that includes data records can be visualized in a graphical visualization.
- graphical elements can represent various attributes of the data records.
- a graphical visualization can be a two-dimensional (2D) or three-dimensional (3D) visualization.
- Figure 1 is a block diagram illustrating one example of a system for generating a 3D immersive display of a radial array.
- Figure 2 is a schematic diagram of an example non-immersive graphical visualization of a three-dimensional (3D) array of 3D graphlets, in accordance with some implementations.
- Figure 3A is a diagram illustrating a 3D data visualization using a narrow FOV display screen according to one example.
- Figure 3B is a diagram illustrating a 3D data visualization of the 3D object shown in Figure 3A using an immersive display environment according to one example.
- Figure 3C is a diagram illustrating a 3D data visualization of a
- Figure 4A is a diagram illustrating a 3D data visualization of a 3D data array with perspective effects.
- Figure 4B is a diagram illustrating a 3D data visualization of a 3D data array that avoids the perspective effects shown in Figure 4A according to one example.
- Figure 5 is a diagram illustrating a radial array of 3D data according to one example.
- Figure 6 is a flow diagram illustrating a method for calculating the parameters of the radial array shown in Figure 5 and updating the parameters based on head movement according to one example.
- Figure 7 is a diagram illustrating the change in the tilt angles of a row of a radial array in response to changes in head movement according to one example.
- Figure 8 is a diagram illustrating a data visualization that includes a radial array of 3D data with displayed labels according to one example.
- Figure 9 is a diagram illustrating a data visualization that includes a radial array of 3D data with displayed axes according to one example.
- Figure 10 is a flow diagram illustrating a method according to one example.
- Data records in a data collection can have a relatively large number of different attributes.
- Examples of data records include files, documents, objects (e.g., images, video data, etc.), user feedback comments on websites, and so forth.
- data records pertaining to employees of an enterprise e.g., business concern, educational organization, government agency, etc.
- data records pertaining to employees of an enterprise can include the following attributes: employee name, employee number, department the employee works for, employee position, social security number, salary, number of years employed, employee ranking, geographic region, and other attributes.
- data records pertaining to operation of an information technology (IT) system of an enterprise can include the following attributes: processor utilization, network utilization, storage utilization, device temperature, applications used, detected faults or errors, geographic region, and other attributes.
- IT information technology
- data records pertaining to sales activities of an enterprise can include the following attributes: product name, service name, state, country, sales amount, profit, cost, vendors, customer sentiment, and other attributes.
- attributes can be numerous other examples of attributes, including structured and unstructured attributes, in other types of data records.
- Visualization tools often allow for visualization of a relatively small number of attributes, based on the general assumption that users know what attributes are of interest and can thus select a subset of attributes to represent in a visualization. However, this may not be true in many cases, particularly for a data collection that includes a large number of attributes. In such cases, it may be beneficial to visualize a larger number of attributes concurrently, so that users can discover trends, patterns, or anomalies, which can then be used to determine which subset of attributes is of interest.
- visualization techniques or mechanisms are provided to allow for visualization of a larger number of attributes simultaneously so that users are presented with more information than provided by visualizations that are able to represent a smaller number of attributes.
- users are able to more easily detect patterns, trends, or anomalies, and can thus better focus on (and select) attributes that can allow the users to determine a cause of such patterns, trends, or anomalies.
- the visualization techniques or mechanisms according to some implementations are able to visualize the larger number of attributes with reduced or minimal occlusion of graphical elements representing data records of a data collection.
- Some examples are directed to a visualization process that generates a visualization that includes a multidimensional array of multidimensional graphlets (e.g., three-dimensional or 3D graphlets).
- the multidimensional (e.g., 3D) array arranges the 3D graphlets in multiple dimensions (e.g., three dimensions).
- a 3D graphlet is a graphical element that has multiple (e.g., at least three) dimensions.
- the 3D graphlet can have a height dimension, a width dimension, and a depth dimension.
- a multidimensional graphlet can represent more than three dimensions.
- multidimensional graphlet can have further dimension(s), such as a color, a shape, motion, and so forth.
- 3D graphlet is intended to refer to either a 3D shape that can represent one or more dimensions of data.
- a graphlet may be a 3D shape, it may be used to represent, for instance, a single data value (e.g., represented by the height of a vertical box).
- the visualization process may represent respective attributes of data records with the dimensions of the 3D array. These attributes may be split into independent variables (e.g. country, year) and dependent variables (e.g. profit, cost).
- the dimensions of the array represent the first set of attributes, the independent variables.
- the attributes of the first set can include categorical attributes.
- a categorical attribute is an attribute that has multiple categorical values.
- An example of a categorical attribute is a country attribute, where the different values of the country attribute represent different countries (which are examples of different categories).
- the attributes of the first set can include discrete numerical attributes (e.g., dates and years) .
- a discrete numerical attribute is an attribute that can have different discrete numerical values from across a range of values.
- the attributes of the first set can include both categorical and discrete numerical attributes.
- the visualization process may represent respective additional dependent attributes of the data records with the dimensions of the 3D graphlets.
- the dependent attributes are part of a second set of attributes that are distinct from the first set of attributes (i.e., the attributes of the first set can be completely distinct from the attributes of the second set).
- the attributes of the second set can include categorical attributes and/or numerical attributes. In other examples, the first set and the second set of attributes may overlap.
- Visualizing large data sets is useful in many applications, enabling users to rapidly identify patterns and anomalies in their data.
- FOV wide field of view
- Some examples are directed to a method for adapting 3D data
- the method allows a rectangular x,y,z 3D data visualization to be represented as a radial array spatial arrangement for viewing and navigation in an immersive system (such as a head-mounted display).
- the radial array appears to radiate from the user's viewpoint and fill the user's field of view.
- the method is designed to dynamically respond to viewer position and orientation changes in a way that is both intuitive and minimizes occlusions and some of the perspective effects that can be confusing to the viewer in a 3D data visualization.
- the 3D arrangement of the data is altered in response to head movements of the viewer to create a stereo image free from occlusions but still updated in an intuitive manner.
- FIG. 1 is a block diagram illustrating one example of a system 100 for generating a 3D immersive display of a radial array.
- System 100 includes at least one processor 102, a memory 104, input devices 120, output devices 122, and an immersive virtual reality (VR) display 124.
- Processor 102, memory 104, input devices 120, output devices 122, and immersive display 124 are communicatively coupled to each other through communication link 1 18.
- Processor 102 includes a Central Processing Unit (CPU) or another suitable processor.
- memory 104 stores machine readable instructions executed by processor 102 for operating system 100.
- Memory 104 includes any suitable combination of volatile and/or non-volatile memory, such as combinations of Random Access Memory (RAM), Read-Only Memory (ROM), flash memory, and/or other suitable memory. These are examples of non-transitory computer readable media.
- the memory 104 is non-transitory in the sense that it does not encompass a transitory signal but instead is made up of at least one memory component to store machine executable instructions for performing techniques described herein.
- Memory 104 stores radial array generator module 106, rectangular 3D data array 108, and radial 3D data array 1 10.
- Processor 102 executes instructions of radial array generator module 106 to transform the rectangular 3D data array 108 into the radial 3D data array 1 10, which is then displayed on immersive display 124.
- Immersive display 124 includes a motion sensor 126 to detect head movement and/or eye gaze of a viewer, and modifies the display of the radial 3D data array 1 10 based on the detected information.
- Input devices 120 include a keyboard, mouse, data ports, and/or other suitable devices for inputting information into system 100.
- Output devices 122 include speakers, data ports, and/or other suitable devices for outputting information from system 100.
- Figure 2 depicts an example non-immersive interactive graphical visualization 200 that includes a 3D array 202 of 3D graphlets.
- the graphlets are arranged in three dimensions of the 3D array 202, where the three dimensions of the 3D array 202 can represent an x attribute, a y attribute, and a z attribute, respectively.
- the three dimensions of the 3D array 202 can represent an x attribute, a y attribute, and a z attribute, respectively.
- the y dimension of the 3D array represents y attributes that have the following y attribute values: yO, y1 , y2, and y3.
- the x dimension of the 3D array represents x attributes that have the following x attribute values: xO, x1 , x2, and x3.
- the z dimension of the 3D array represents z attributes that have the following z attribute values: zO, z1 , z2, and z3.
- graphlets along the z dimension as being a row of graphlets (e.g., row 204 shown in Figure 2). More generally, graphlets along any of the dimensions (x, y, z) can be referred to as a line of graphlets along the respective dimension.
- the row 204 of graphlets include graphlets 206, 208, 210, and 212, where each graphlet is a 3D graphical element that represents at least three data attribute dimensions via its height, width, and depth.
- the graphlet 206 represents a data record that has an x attribute with value xO, a y attribute with value yO, and a z attribute with value zO.
- the graphlet 208 represents a data record that has an x attribute with value xO, a y attribute with value yO, and a z attribute with value z1 .
- the different orientations of the L-shaped 3D graphlets in Figure 2 can indicate whether the values of the horizontal (x) and vertical (y) attributes are positive or negative. Thus, if both horizontal and vertical values are positive, a graphlet will have an "L" orientation. However, if the horizontal value is negative, a graphlet will have a "J" orientation. Other orientations of graphlets may correspond to other combinations of positive and negative values.
- adjacent 3D graphlets can provide different representations.
- a 3D graphlet at a first position may represent a visualization of a first subset of attributes
- a 3D graphlet at a neighboring position may represent a visualization of a second, different subset of attributes (where the second subset can overlap or not overlap with the first subset).
- FIG. 2 Other graphlets assigned reference numerals in Figure 2 include a graphlet 214 (which represents a data record having an x attribute with value xO, a y attribute with value y3, and a z attribute with value zO), and a graphlet 216 (which represents a data record having an x attribute with value x3, a y attribute with value y2, and a z attribute with value z1 ).
- each 3D graphlet can represent a respective different dimension of data records in a data collection.
- the different characteristics of each 3D graphlet can represent a respective different dimension of data records in a data collection.
- characteristics can include the three dimensions of the 3D graphlet.
- the height dimension of the 3D graphlet can represent a first attribute
- the width dimension of the 3D graphlet can represent a second attribute
- the depth dimension of the 3D graphlet can represent a third attribute.
- the 3D graphlet can have another characteristic, such as its color or shape that can represent yet a further attribute of a data record represented by the 3D graphlet.
- the space allotted to each 3D graphlet in the visualization is fixed.
- the attribute values can be scaled as they are mapped to the graphlet properties (e.g., width, height, etc.) so that the maximum and minimum values in the data just fit within this allotted space.
- the graphlet color is set to be a simple color ramp (e.g., between red and green) between minimum and maximum values for some other attribute.
- a 3D graphlet is a graphical element that can encode a number of different attributes of data.
- the width, height, depth, and color of the graphical element can represent four respective attributes of data. If graphlet motion is used, potentially more attributes can be represented.
- each 3D graphlet can represent four attributes of data.
- the graphical visualization 202 that includes the 3D array 202 of 3D graphlets can represent seven attributes of data, which can be visualized to allow users to identify patterns, trends, or anomalies in data.
- a property panel 218 and a filter panel 220 can be included, in some examples.
- the property panel 218 can be used to display properties of a selected graphlet (or selected graphlets).
- a user can interact with the graphical visualization 200 by selecting one or multiple graphlets in the 3D array 202.
- properties of the selected graphlet(s) can be displayed in the property panel 218.
- the property panel 218 can depict values of the various attributes of data represented by the selected graphlet(s).
- the filter panel 220 includes control elements that are manipulatable by a user to control an appearance of the displayed 3D array 202 of graphlets.
- the appearance of the 3D array 202 of graphlets can include setting data bounds and thresholds on the mapping of the attribute values to graphlet properties. Instead of using the maximum and minimum values in the data to determine the scaling of the mappings to the graphlet attributes, the user can supply their own data bounds and thresholds, to reduce the impact of wildly anomalous data values, or to focus on particular value ranges in the data. The user can also select from different color mappings that can be used to highlight interesting characteristics of the data, e.g. deviation from an average value.
- the control of the appearance of the 3D array of graphlets can allow a user to emphasize particular events or patterns in the visualized data.
- 3D data visualizations such as that shown in Figure 2, may be designed to be viewed on a screen occupying a narrow portion of the user's FOV - essentially rendering an object in front of the user that the user can examine from different directions.
- Figure 3A is a diagram illustrating a 3D data
- the display screen 306 is displaying a 3D data array object 308, and has a narrow FOV 304 (e.g., 30-40 degrees) from the viewpoint of the viewer 302.
- Figure 3B is a diagram illustrating a 3D data visualization of the 3D object 308 shown in Figure 3A using an immersive display environment 312 according to one example.
- the immersive display environment 312 includes a wide FOV (e.g., 90 degrees or more) 310 from the viewpoint of the user 302.
- FOV wide field of view
- simply rendering the original 3D object 308 in front of the viewer in the immersive display environment 312 results in a much lower resolution experience, as only the pixels in the original narrow FOV 304 ( Figure 3A) are used.
- Figure 3C is a diagram illustrating a 3D data visualization of a
- the transformed version 314 of the 3D object 308 shown in Figure 3A using an immersive display environment 312 uses an immersive display environment 312 according to one example.
- the immersive display environment 312 includes a wide FOV (e.g., 90 degrees or more) 310 from the viewpoint of the user 302.
- the transformed version 314 of the 3D object 308 ( Figure 3A) is displayed around the viewer 302, providing an intuitive spatial organization that can fill the viewer's FOV 310.
- the display of the transformed version 314 prevents occlusion from being as big of an issue as in normal perspective views of a rectangular array. It also avoids some of the perspective effects that can be confusing in 3D data visualizations, such as cases in which elements at the same depth are seen at different angles depending on their x, y position.
- the 3D object 308 is a rectangular 3D data array
- radial array generator module 106 ( Figure 1 ) generates the transformed version 314 by transforming the rectangular 3D data array into a radial 3D data array.
- FIG. 4A is a diagram illustrating a 3D data visualization of a 3D data array 400 with perspective effects.
- the 3D data array 400 includes a plurality of rows 402 of graphlets (e.g., a 5x7 array with 35 rows of graphlets).
- each row of 3D graphlets is shown as a single 3D block.
- the rows 402 are seen at different angles depending on their x, y position, which results in some rows 402 (e.g., rows 402(1 ) and 402(2)) with a limited visibility along the z-axis, and some rows 402 that occlude other rows 402 (e.g., row 402(4) partially occluding row 402(3)).
- some rows 402 e.g., rows 402(1 ) and 402(2)
- some rows 402 that occlude other rows 402 e.g., row 402(4) partially occluding row 402(3).
- FIG. 4B is a diagram illustrating a 3D data visualization of a 3D data array 420 that avoids the perspective effects shown in Figure 4A according to one example.
- the 3D data array 420 includes a plurality of rows 422 of graphlets (e.g., a 5x5 array with 25 rows of graphlets). As shown in Figure 4B, the rows 422 all appear to be at the same angle regardless of their x, y position, and all of the rows 422 are completely visible along the z-axis and do not occlude each other.
- radial array generator module 106 ( Figure 1 ) generates 3D data visualizations, such as that shown in Figure 4B, that avoid negative perspective effects.
- a rectangular (x, y, z) 3D space is transformed by the radial array generator module 106 to a spherical polar-like (zx, zy, z) space surrounding the view position.
- a rectangular 3D coordinate system includes an x-axis, a y-axis, and a z-axis. It is assumed that the viewpoint of the viewer starts at (0,0,0) - looking along the z-axis in rectangular space.
- Figure 5 is a diagram illustrating a radial array 500 of 3D data according to one example.
- the radial array 500 is shown in two dimensions to simplify the illustration, and is viewed from the viewpoint of a viewer, which is represented by element 502.
- the radial array 500 includes five rows 506(1 )-506(5)
- the radial array 500 is defined by parameters 504(1 )-504(5).
- Parameter 504(1 ) actually includes two parameters (in 3D), which are starting angles away from the z axis rotating about the x and y axes, "vrStartX” and “vrStartY”.
- Parameter 504(2) is a starting radius, "vrRadius”.
- Parameter 504(3) is the pitch at which graphlets 508 are spaced along the rows 506.
- the "pitch" parameter 504(3) may be provided by the user.
- Parameter 504(4) is the angular separation between rows 506, "vrSeparationAngle”.
- Parameter 504(5) is the tilt of each row 506 in x and y with respect to the view from the viewer 502, "vrTiltX” and “vrTiltY”. If both vrTiltX and vrTiltY are 0, then the viewer 502 is looking end-on directly down the row. This may not be very useful, so the array 500 may be set up with a small initial tilt (e.g., about 5 degrees about both x and y axes).
- Head position changes may be dealt with based on what a user would want to achieve by making those motions. For example, a user may shift the user's head to the right to get a perspective on the data ordered along the z-axis that is a little more of a three-quarter view from the right, or a user may move the user's head forward to get a closer look at the data. In either case (e.g., a shift in x,y; or a move in z), the desirable aspects of the radial array 500 (simple panning, lack of occlusion) are preserved by keeping the viewpoint at the center of the radial array 500, but changing the layout of the radial array 500 to simulate the view change due to the translational input.
- Figure 6 is a flow diagram illustrating a method 600 for calculating the parameters 504 of the radial array 500 shown in Figure 5 and updating the parameters 504 based on head movement according to one example.
- system 100 ( Figure 1 ) performs method 600.
- the pitch parameter 504(3) may be set by the user or system as a characteristic of the original rectangular layout.
- vrSeparationAngle is calculated by radial array generator 106 ( Figure 1 ) based on fitting the array within initial FOV constraints.
- the tilt parameters 504(5) (“vrTiltX” and “vrTiltY”) are set to initial values by radial array generator 106, as discussed above.
- a radial array 500 is built by radial array generator 106 using the parameters 504 determined at 602-608.
- the method 600 monitors head movement of the viewer (e.g. , via motion sensor 126), and determines if the view position of the viewer has changed. If it is determined at 612 that the view position has changed, the method 600 moves to 614, where the radius parameter 504(2) ("vrRadius") is updated by an amount Az by radial array generator 106.
- vrTiltX tilt angle parameters 504(5)
- vrTiltY tilt angle parameters 504(5)
- Figure 7 is a diagram illustrating the change in the tilt angles ("vrTiltX" and "vrTiltY") of a row of a radial array in response to ⁇ , Ay changes in head movement, and the setting of the tilt scale factor, according to one example.
- Row 710(4) of the radial array includes five graphlets 712 (represented by rectangles), and represents an initial configuration of the row prior to the detection of head movement.
- Rows 710(1 )-710(3) represent different possible movements of the row 710(4) based on detected head movement, including tilting of the row to simulate the shift in viewing angle.
- the radial array rows 710(1 )-710(4) are shown in two dimensions to simplify the illustration, and are viewed from the viewpoint of a viewer, which is represented by element 702. Movement of the viewer's head is represented by viewer head translation vector 704. Based on detected head movement represented by vector 704, the radial array, including radial array row 710(4), is rotated by an angle ( ⁇ ) 706. This results in a shift upward of the row 710(4), as represented by vector 708.
- the tilt scale factor (“SF" in method 600) can be set from 0 to 1.
- Row 710(2) represents the movement of row 710(4) using a tilt scale factor of 0.
- the tilt scale factor is set to 0
- there is no "depth perspective effect” and shifting of the viewer's head appears to rotate the array an appropriate amount (sin-1 (shift/vrRadius))
- the front-most and rear-most graphlets 712 of each row appear to move by the same amount, as indicated by row 710(2).
- Row 710(3) represents the movement of row 710(4) using a tilt scale factor of 1.
- each row acts as though its far end is at infinite depth, so the far end appears stationary and does not appear to move with the head movement, as indicated by row 710(3). If there is no tilt change, the row 710(4) may appear as row 710(1 ).
- the amount of tilt can be limited to a maximum amount (e.g., 45 degrees) to limit how far a row can be tilted in x and/or y.
- the radial array is continually rebuilt around the current view direction (e.g., by adjusting the array start angles 504(1 )), so the position of the object the user currently has in the center of their FOV does not appear to change.
- the radial array is modeled and rendered in a spherical coordinate space independent of the current view direction.
- the spherical coordinate space can be relative to the view direction.
- the array can be thought of as existing in the (virtual) world seen by the viewer, and in the second case, the array coordinate system is "attached" to the viewer's view direction. In the latter case, the array is updated based on viewer rotations to present the correct portion of the array in front of the viewer.
- the array can appear to extend beyond 360 degrees.
- FIG. 8 is a diagram illustrating a data visualization that includes a radial array 800 of 3D data with displayed axes and labels according to one example.
- the radial array 800 includes a plurality of rows 802 of graphlets.
- the labels include Y labels 804(1 ), X labels 804(2), and Z labels 804(3) (collectively referred to as labels 804).
- Each graphlet in the radial array 800 includes an associated Y label 804(1 ), an associated X label 804(2), and an associated Z label 804(3).
- FIG. 9 is a diagram illustrating a data visualization 900 that includes a radial array 902 of 3D data with displayed axes according to one example.
- the radial array 902 includes a portion 904 representing the portion of the radial array 902 currently within the FOV of the viewer.
- the displayed axes include an X axis 906, a Y axis 908, and a Z axis 910.
- the X axis 906 is anchored or pinned at or near the bottom edge of the current FOV portion 902, but moves up and down with movement of the FOV as indicated by arrow 912.
- the Y axis 908 is anchored or pinned at or near the left edge of the current FOV portion 902, but moves left and right with movement of the FOV as indicated by arrow 914.
- the Z axis 910 also moves with movement of the FOV.
- the axes 906, 908, and 910 can be provided in a heads-up display type of manner, where the labels 804 ( Figure 8) track the displayed graphlets and change as the FOV changes, but the axes 906, 908, and 910 are pinned to the edges of the FOV. It is noted that the view shown in Figure 8 is essentially a close-up view of a portion of Figure 9, and that the labels 804 shown in Figure 8 are represented by hash marks along the axes 906, 908, and 910 in Figure 9.
- FIG 10 is a flow diagram illustrating a method 1000 according to one example.
- a system 100 including a processor 102 receives a three-dimensional (3D) data array 108 defined in a 3D rectangular coordinate space.
- the system 1000 transforms the 3D data array into a radial array 1 10 defined in a spherical coordinate space.
- the system generates a 3D immersive visualization of the radial array in which a user appears to be immersed within the radial array.
- the 3D immersive visualization is modified based on a movement of the user.
- One example is directed to a method that includes receiving, by a system including a processor, a three-dimensional (3D) data array defined in a 3D rectangular coordinate space.
- the method includes transforming, by the system, the 3D data array into a radial array defined in a spherical coordinate space.
- the method includes generating, by the system, a 3D immersive visualization of the radial array in which a user appears to be immersed within the radial array.
- the method includes modifying the 3D immersive visualization based on a movement of the user.
- x coordinates in the rectangular coordinate space map to zy coordinates in the spherical coordinate space and represent rotation about a y axis
- y coordinates in the rectangular coordinate space map to zx coordinates in the spherical coordinate space and represent rotation about an x axis
- z coordinates in the rectangular coordinate space map to z coordinates in the spherical coordinate space.
- the radial array may be defined by a plurality of parameters that are updated based on the movement of the user.
- the parameters may include: a radius parameter that represents a distance between the user and the radial array; start angle parameters that represent starting angles of elements of the radial array away from a z-axis and rotating about x and y axes; an angular separation parameter that represents an angular separation between elements of the radial array from a viewpoint of the user; a pitch parameter that represents a distance between adjacent elements of the radial array; and tilt parameters that represent a tilt of lines of elements in the radial array in x and y dimensions from a viewpoint of the user.
- the 3D immersive visualization may include a 3D array of multidimensional graphlets, wherein each of the multidimensional graphlets includes at least three dimensions.
- the method may further include:
- Another example is directed to a system, which includes at least one processor to: transform a three-dimensional (3D) data array defined in a 3D rectangular coordinate space into a radial array defined in a spherical coordinate space; generate a 3D immersive visualization of the radial array in which a user appears to be immersed within the radial array; detect movement of a user interacting with the 3D immersive visualization; and update the 3D immersive visualization based on movement of the user.
- the radial array may be defined by a plurality of parameters that are updated based on the
- the parameters include tilt parameters that represent a tilt of lines of elements in the radial array in x and y dimensions from a viewpoint of the user.
- Yet another example is directed to a non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to: receive a three-dimensional (3D) data array defined in a 3D rectangular coordinate system; transform the 3D data array into a 3D radial array of multidimensional graphlets defined in a non- rectangular coordinate system; generate a 3D immersive visualization of the 3D radial array of multidimensional graphlets; and modify the 3D immersive visualization based on movement of a viewer of the visualization.
- Each of the multidimensional graphlets may include at least three dimensions, and attributes of data may be represented with dimensions of the 3D radial array, and additional attributes of the data may be represented with dimensions of the multidimensional graphlets.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
A method, according to one example, includes receiving, by a system including a processor, a three-dimensional (3D) data array defined in a 3D rectangular coordinate space. The method includes transforming, by the system, the 3D data array into a radial array defined in a spherical coordinate space. The method includes generating, by the system, a 3D immersive visualization of the radial array in which a user appears to be immersed within the radial array. The method includes continually modifying the 3D immersive visualization based on movement of the user.
Description
3D IMMERSIVE VISUALIZATION OF A RADIAL ARRAY
Background
[0001] A data collection that includes data records can be visualized in a graphical visualization. In the graphical visualization, graphical elements can represent various attributes of the data records. A graphical visualization can be a two-dimensional (2D) or three-dimensional (3D) visualization.
Brief Description of the Drawings
[0002] Figure 1 is a block diagram illustrating one example of a system for generating a 3D immersive display of a radial array.
[0003] Figure 2 is a schematic diagram of an example non-immersive graphical visualization of a three-dimensional (3D) array of 3D graphlets, in accordance with some implementations.
[0004] Figure 3A is a diagram illustrating a 3D data visualization using a narrow FOV display screen according to one example.
[0005] Figure 3B is a diagram illustrating a 3D data visualization of the 3D object shown in Figure 3A using an immersive display environment according to one example.
[0006] Figure 3C is a diagram illustrating a 3D data visualization of a
transformed version of the 3D object shown in Figure 3A using an immersive display environment according to one example.
[0007] Figure 4A is a diagram illustrating a 3D data visualization of a 3D data array with perspective effects.
[0008] Figure 4B is a diagram illustrating a 3D data visualization of a 3D data array that avoids the perspective effects shown in Figure 4A according to one example.
[0009] Figure 5 is a diagram illustrating a radial array of 3D data according to one example.
[0010] Figure 6 is a flow diagram illustrating a method for calculating the parameters of the radial array shown in Figure 5 and updating the parameters based on head movement according to one example.
[0011] Figure 7 is a diagram illustrating the change in the tilt angles of a row of a radial array in response to changes in head movement according to one example.
[0012] Figure 8 is a diagram illustrating a data visualization that includes a radial array of 3D data with displayed labels according to one example.
[0013] Figure 9 is a diagram illustrating a data visualization that includes a radial array of 3D data with displayed axes according to one example.
[0014] Figure 10 is a flow diagram illustrating a method according to one example.
Detailed Description
[0015] In the following detailed description, reference is made to the
accompanying drawings which form a part hereof, and in which is shown by way of illustration specific examples in which the disclosure may be practiced. It is to be understood that other examples may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims. It is to be understood that features of the various examples described herein may be combined, in part or whole, with each other, unless specifically noted otherwise.
[0016] Data records in a data collection can have a relatively large number of different attributes. Examples of data records include files, documents, objects
(e.g., images, video data, etc.), user feedback comments on websites, and so forth. As examples, data records pertaining to employees of an enterprise (e.g., business concern, educational organization, government agency, etc.) can include the following attributes: employee name, employee number, department the employee works for, employee position, social security number, salary, number of years employed, employee ranking, geographic region, and other attributes. As another example, data records pertaining to operation of an information technology (IT) system of an enterprise can include the following attributes: processor utilization, network utilization, storage utilization, device temperature, applications used, detected faults or errors, geographic region, and other attributes. As a further example, data records pertaining to sales activities of an enterprise can include the following attributes: product name, service name, state, country, sales amount, profit, cost, vendors, customer sentiment, and other attributes. There can be numerous other examples of attributes, including structured and unstructured attributes, in other types of data records.
[0017] Visualization tools often allow for visualization of a relatively small number of attributes, based on the general assumption that users know what attributes are of interest and can thus select a subset of attributes to represent in a visualization. However, this may not be true in many cases, particularly for a data collection that includes a large number of attributes. In such cases, it may be beneficial to visualize a larger number of attributes concurrently, so that users can discover trends, patterns, or anomalies, which can then be used to determine which subset of attributes is of interest.
[0018] In accordance with some implementations, visualization techniques or mechanisms are provided to allow for visualization of a larger number of attributes simultaneously so that users are presented with more information than provided by visualizations that are able to represent a smaller number of attributes. In this way, users are able to more easily detect patterns, trends, or anomalies, and can thus better focus on (and select) attributes that can allow the users to determine a cause of such patterns, trends, or anomalies. The visualization techniques or mechanisms according to some implementations are
able to visualize the larger number of attributes with reduced or minimal occlusion of graphical elements representing data records of a data collection.
[0019] Some examples are directed to a visualization process that generates a visualization that includes a multidimensional array of multidimensional graphlets (e.g., three-dimensional or 3D graphlets). The multidimensional (e.g., 3D) array arranges the 3D graphlets in multiple dimensions (e.g., three dimensions).
[0020] A 3D graphlet is a graphical element that has multiple (e.g., at least three) dimensions. For example, the 3D graphlet can have a height dimension, a width dimension, and a depth dimension. More generally, a multidimensional graphlet can represent more than three dimensions. As examples, in addition to the height dimension, width dimension, and depth dimension, a
multidimensional graphlet can have further dimension(s), such as a color, a shape, motion, and so forth. Although reference is made in the present disclosure to 3D graphlets, it is noted that "3D graphlet" is intended to refer to either a 3D shape that can represent one or more dimensions of data. Although a graphlet may be a 3D shape, it may be used to represent, for instance, a single data value (e.g., represented by the height of a vertical box).
[0021] The visualization process may represent respective attributes of data records with the dimensions of the 3D array. These attributes may be split into independent variables (e.g. country, year) and dependent variables (e.g. profit, cost). The dimensions of the array represent the first set of attributes, the independent variables. In some examples, the attributes of the first set can include categorical attributes. A categorical attribute is an attribute that has multiple categorical values. An example of a categorical attribute is a country attribute, where the different values of the country attribute represent different countries (which are examples of different categories). In other examples, the attributes of the first set can include discrete numerical attributes (e.g., dates and years) . A discrete numerical attribute is an attribute that can have different discrete numerical values from across a range of values. In some cases, the attributes of the first set can include both categorical and discrete numerical attributes.
[0022] The visualization process may represent respective additional dependent attributes of the data records with the dimensions of the 3D graphlets. The dependent attributes are part of a second set of attributes that are distinct from the first set of attributes (i.e., the attributes of the first set can be completely distinct from the attributes of the second set). The attributes of the second set can include categorical attributes and/or numerical attributes. In other examples, the first set and the second set of attributes may overlap.
[0023] Visualizing large data sets is useful in many applications, enabling users to rapidly identify patterns and anomalies in their data. The recent advent of wide field of view (FOV), low cost, head-mounted displays with accurate, low- latency position and orientation tracking, present a new method of immersing a user in a large data set, potentially improving their ability to navigate and explore the data.
[0024] Some examples are directed to a method for adapting 3D data
visualizations to immersive displays. The method allows a rectangular x,y,z 3D data visualization to be represented as a radial array spatial arrangement for viewing and navigation in an immersive system (such as a head-mounted display). The radial array appears to radiate from the user's viewpoint and fill the user's field of view. In some examples, the method is designed to dynamically respond to viewer position and orientation changes in a way that is both intuitive and minimizes occlusions and some of the perspective effects that can be confusing to the viewer in a 3D data visualization. In some examples, the 3D arrangement of the data is altered in response to head movements of the viewer to create a stereo image free from occlusions but still updated in an intuitive manner.
[0025] An immersive display or an immersive environment according to some examples disclosed herein provides a virtual reality experience in which a user feels immersed within the data visualization, and provides: a high level of interaction and display fidelity; a high level of responsiveness to human interaction; the ability to take advantage of the visual perception system of a user; and the ability to allow users to interact with the system in a natural way.
[0026] Figure 1 is a block diagram illustrating one example of a system 100 for generating a 3D immersive display of a radial array. System 100 includes at least one processor 102, a memory 104, input devices 120, output devices 122, and an immersive virtual reality (VR) display 124. Processor 102, memory 104, input devices 120, output devices 122, and immersive display 124 are communicatively coupled to each other through communication link 1 18.
[0027] Processor 102 includes a Central Processing Unit (CPU) or another suitable processor. In one example, memory 104 stores machine readable instructions executed by processor 102 for operating system 100. Memory 104 includes any suitable combination of volatile and/or non-volatile memory, such as combinations of Random Access Memory (RAM), Read-Only Memory (ROM), flash memory, and/or other suitable memory. These are examples of non-transitory computer readable media. The memory 104 is non-transitory in the sense that it does not encompass a transitory signal but instead is made up of at least one memory component to store machine executable instructions for performing techniques described herein.
[0028] Memory 104 stores radial array generator module 106, rectangular 3D data array 108, and radial 3D data array 1 10. Processor 102 executes instructions of radial array generator module 106 to transform the rectangular 3D data array 108 into the radial 3D data array 1 10, which is then displayed on immersive display 124. Immersive display 124 includes a motion sensor 126 to detect head movement and/or eye gaze of a viewer, and modifies the display of the radial 3D data array 1 10 based on the detected information.
[0029] Input devices 120 include a keyboard, mouse, data ports, and/or other suitable devices for inputting information into system 100. Output devices 122 include speakers, data ports, and/or other suitable devices for outputting information from system 100.
[0030] In the following description, a non-immersive graphical visualization is described with respect to Figure 2, followed by a description with respect to Figures 3-9 of techniques that may be used by system 100 to adapt such a visualization to an immersive environment.
[0031] Figure 2 depicts an example non-immersive interactive graphical visualization 200 that includes a 3D array 202 of 3D graphlets. The graphlets are arranged in three dimensions of the 3D array 202, where the three dimensions of the 3D array 202 can represent an x attribute, a y attribute, and a z attribute, respectively. In the example shown in Figure 2, the three
dimensions represent respective attributes of the data records that are represented by the 3D graphlets. The y dimension of the 3D array represents y attributes that have the following y attribute values: yO, y1 , y2, and y3. The x dimension of the 3D array represents x attributes that have the following x attribute values: xO, x1 , x2, and x3. The z dimension of the 3D array represents z attributes that have the following z attribute values: zO, z1 , z2, and z3.
[0032] In the ensuing discussion, reference is made to the graphlets along the z dimension as being a row of graphlets (e.g., row 204 shown in Figure 2). More generally, graphlets along any of the dimensions (x, y, z) can be referred to as a line of graphlets along the respective dimension.
[0033] In the example of Figure 2, the row 204 of graphlets include graphlets 206, 208, 210, and 212, where each graphlet is a 3D graphical element that represents at least three data attribute dimensions via its height, width, and depth. The graphlet 206 represents a data record that has an x attribute with value xO, a y attribute with value yO, and a z attribute with value zO. The graphlet 208 represents a data record that has an x attribute with value xO, a y attribute with value yO, and a z attribute with value z1 .
[0034] The different orientations of the L-shaped 3D graphlets in Figure 2 can indicate whether the values of the horizontal (x) and vertical (y) attributes are positive or negative. Thus, if both horizontal and vertical values are positive, a graphlet will have an "L" orientation. However, if the horizontal value is negative, a graphlet will have a "J" orientation. Other orientations of graphlets may correspond to other combinations of positive and negative values.
[0035] In other examples, adjacent 3D graphlets can provide different representations. For example, a 3D graphlet at a first position may represent a visualization of a first subset of attributes, while a 3D graphlet at a neighboring
position may represent a visualization of a second, different subset of attributes (where the second subset can overlap or not overlap with the first subset).
[0036] Other graphlets assigned reference numerals in Figure 2 include a graphlet 214 (which represents a data record having an x attribute with value xO, a y attribute with value y3, and a z attribute with value zO), and a graphlet 216 (which represents a data record having an x attribute with value x3, a y attribute with value y2, and a z attribute with value z1 ).
[0037] Different characteristics of each 3D graphlet can represent a respective different dimension of data records in a data collection. The different
characteristics can include the three dimensions of the 3D graphlet. For example, the height dimension of the 3D graphlet can represent a first attribute, the width dimension of the 3D graphlet can represent a second attribute, and the depth dimension of the 3D graphlet can represent a third attribute. In addition, the 3D graphlet can have another characteristic, such as its color or shape that can represent yet a further attribute of a data record represented by the 3D graphlet. In some examples, the space allotted to each 3D graphlet in the visualization is fixed. As a result, as part of the process of generating the graphlets, the attribute values can be scaled as they are mapped to the graphlet properties (e.g., width, height, etc.) so that the maximum and minimum values in the data just fit within this allotted space. A similar process can be applied if the graphlet color is set to be a simple color ramp (e.g., between red and green) between minimum and maximum values for some other attribute.
[0038] A 3D graphlet is a graphical element that can encode a number of different attributes of data. For example, the width, height, depth, and color of the graphical element can represent four respective attributes of data. If graphlet motion is used, potentially more attributes can be represented. In the example of Figure 2, each 3D graphlet can represent four attributes of data. When combined with the three additional attributes that can be represented by the three dimensions of the 3D array 202, the graphical visualization 202 that includes the 3D array 202 of 3D graphlets can represent seven attributes of data, which can be visualized to allow users to identify patterns, trends, or anomalies in data.
[0039] In the interactive graphical visualization 200 of Figure 2, a property panel 218 and a filter panel 220 can be included, in some examples. The property panel 218 can be used to display properties of a selected graphlet (or selected graphlets). A user can interact with the graphical visualization 200 by selecting one or multiple graphlets in the 3D array 202. In response to selection of the graphlet(s), properties of the selected graphlet(s) can be displayed in the property panel 218. For example, the property panel 218 can depict values of the various attributes of data represented by the selected graphlet(s).
[0040] The filter panel 220 includes control elements that are manipulatable by a user to control an appearance of the displayed 3D array 202 of graphlets. The appearance of the 3D array 202 of graphlets can include setting data bounds and thresholds on the mapping of the attribute values to graphlet properties. Instead of using the maximum and minimum values in the data to determine the scaling of the mappings to the graphlet attributes, the user can supply their own data bounds and thresholds, to reduce the impact of wildly anomalous data values, or to focus on particular value ranges in the data. The user can also select from different color mappings that can be used to highlight interesting characteristics of the data, e.g. deviation from an average value. The control of the appearance of the 3D array of graphlets can allow a user to emphasize particular events or patterns in the visualized data.
[0041] 3D data visualizations, such as that shown in Figure 2, may be designed to be viewed on a screen occupying a narrow portion of the user's FOV - essentially rendering an object in front of the user that the user can examine from different directions. Figure 3A is a diagram illustrating a 3D data
visualization using a narrow FOV display screen 306. The display screen 306 is displaying a 3D data array object 308, and has a narrow FOV 304 (e.g., 30-40 degrees) from the viewpoint of the viewer 302.
[0042] This approach does not translate well to an immersive display
environment where the display resolution is spread out over a far wider field of view (e.g., 90 degrees or more). Figure 3B is a diagram illustrating a 3D data visualization of the 3D object 308 shown in Figure 3A using an immersive display environment 312 according to one example. The immersive display
environment 312 includes a wide FOV (e.g., 90 degrees or more) 310 from the viewpoint of the user 302. As shown in Figure 3B, simply rendering the original 3D object 308 in front of the viewer in the immersive display environment 312 results in a much lower resolution experience, as only the pixels in the original narrow FOV 304 (Figure 3A) are used.
[0043] Figure 3C is a diagram illustrating a 3D data visualization of a
transformed version 314 of the 3D object 308 shown in Figure 3A using an immersive display environment 312 according to one example. The immersive display environment 312 includes a wide FOV (e.g., 90 degrees or more) 310 from the viewpoint of the user 302. The transformed version 314 of the 3D object 308 (Figure 3A) is displayed around the viewer 302, providing an intuitive spatial organization that can fill the viewer's FOV 310. In some examples, the display of the transformed version 314 prevents occlusion from being as big of an issue as in normal perspective views of a rectangular array. It also avoids some of the perspective effects that can be confusing in 3D data visualizations, such as cases in which elements at the same depth are seen at different angles depending on their x, y position. In some examples, the 3D object 308 is a rectangular 3D data array, and radial array generator module 106 (Figure 1 ) generates the transformed version 314 by transforming the rectangular 3D data array into a radial 3D data array.
[0044] Figure 4A is a diagram illustrating a 3D data visualization of a 3D data array 400 with perspective effects. The 3D data array 400 includes a plurality of rows 402 of graphlets (e.g., a 5x7 array with 35 rows of graphlets). For simplicity, in Figures 4A and 4B, each row of 3D graphlets is shown as a single 3D block. As shown in Figure 4A, because of the perspective view, the rows 402 are seen at different angles depending on their x, y position, which results in some rows 402 (e.g., rows 402(1 ) and 402(2)) with a limited visibility along the z-axis, and some rows 402 that occlude other rows 402 (e.g., row 402(4) partially occluding row 402(3)).
[0045] Figure 4B is a diagram illustrating a 3D data visualization of a 3D data array 420 that avoids the perspective effects shown in Figure 4A according to one example. The 3D data array 420 includes a plurality of rows 422 of
graphlets (e.g., a 5x5 array with 25 rows of graphlets). As shown in Figure 4B, the rows 422 all appear to be at the same angle regardless of their x, y position, and all of the rows 422 are completely visible along the z-axis and do not occlude each other. In some examples, radial array generator module 106 (Figure 1 ) generates 3D data visualizations, such as that shown in Figure 4B, that avoid negative perspective effects.
[0046] To create an immersive visualization, a rectangular (x, y, z) 3D space is transformed by the radial array generator module 106 to a spherical polar-like (zx, zy, z) space surrounding the view position. A rectangular 3D coordinate system includes an x-axis, a y-axis, and a z-axis. It is assumed that the viewpoint of the viewer starts at (0,0,0) - looking along the z-axis in rectangular space. Mappings of the rectangular 3D coordinate system to values in a spherical coordinate system according to one example are as follows: (1 ) x in the rectangular coordinate system maps to zy in the spherical coordinate system, which represents rotation away from z = 0 in the x direction (i.e., rotation about the y axis); (2) y in the rectangular coordinate system maps to zx in the spherical coordinate system, which represents rotation away from z = 0 in the y direction (i.e., rotation about the x axis); and (3) z in the rectangular coordinate system maps to z in the spherical coordinate system.
[0047] Figure 5 is a diagram illustrating a radial array 500 of 3D data according to one example. The radial array 500 is shown in two dimensions to simplify the illustration, and is viewed from the viewpoint of a viewer, which is represented by element 502. The radial array 500 includes five rows 506(1 )-506(5)
(collectively referred to as rows 506) of graphlets 508, where each row 506 includes three graphlets 508 (represented by rectangles) in the example. The radial array 500 is defined by parameters 504(1 )-504(5). Parameter 504(1 ) actually includes two parameters (in 3D), which are starting angles away from the z axis rotating about the x and y axes, "vrStartX" and "vrStartY". Parameter 504(2) is a starting radius, "vrRadius". Parameter 504(3) is the pitch at which graphlets 508 are spaced along the rows 506. The "pitch" parameter 504(3) may be provided by the user. Parameter 504(4) is the angular separation between rows 506, "vrSeparationAngle". Parameter 504(5) is the tilt of each
row 506 in x and y with respect to the view from the viewer 502, "vrTiltX" and "vrTiltY". If both vrTiltX and vrTiltY are 0, then the viewer 502 is looking end-on directly down the row. This may not be very useful, so the array 500 may be set up with a small initial tilt (e.g., about 5 degrees about both x and y axes).
[0048] Changes in head orientation of the viewer naturally map to rotating the element 502 at the center of this arrangement - for example letting the user see the whole breadth of the array 500 by turning their head from side to side (essentially substituting head rotation for panning (translating) in front of the rectangular array). The radial rearrangement shown in Figure 5 removes the issue of occlusion for rows away from the current view direction.
[0049] Head position changes may be dealt with based on what a user would want to achieve by making those motions. For example, a user may shift the user's head to the right to get a perspective on the data ordered along the z-axis that is a little more of a three-quarter view from the right, or a user may move the user's head forward to get a closer look at the data. In either case (e.g., a shift in x,y; or a move in z), the desirable aspects of the radial array 500 (simple panning, lack of occlusion) are preserved by keeping the viewpoint at the center of the radial array 500, but changing the layout of the radial array 500 to simulate the view change due to the translational input.
[0050] Figure 6 is a flow diagram illustrating a method 600 for calculating the parameters 504 of the radial array 500 shown in Figure 5 and updating the parameters 504 based on head movement according to one example. In one example, system 100 (Figure 1 ) performs method 600. It is noted that the pitch parameter 504(3) may be set by the user or system as a characteristic of the original rectangular layout.
[0051] At 602 in method 600, the separation angle parameter 504(4)
("vrSeparationAngle") is calculated by radial array generator 106 (Figure 1 ) based on fitting the array within initial FOV constraints. At 604, the start angle parameters 504(1 ) ("vrStartX" and "vrStartY") are set to the center of the array on the zx=0, zy=0 axis by radial array generator 106. At 606, the starting radius parameter 504(2) ("vrRadius") is set by radial array generator 106 so that the separation angle parameter 504(4) ("vrSeparationAngle") leads to a first
"plane" of graphlets being separated by the same distance as the pitch parameter 504(3): vrRadius = pitch/sin(vrSeparationAngle). At 608, the tilt parameters 504(5) ("vrTiltX" and "vrTiltY") are set to initial values by radial array generator 106, as discussed above. At 610, a radial array 500 is built by radial array generator 106 using the parameters 504 determined at 602-608.
[0052] At 612, the method 600 monitors head movement of the viewer (e.g. , via motion sensor 126), and determines if the view position of the viewer has changed. If it is determined at 612 that the view position has changed, the method 600 moves to 614, where the radius parameter 504(2) ("vrRadius") is updated by an amount Az by radial array generator 106. At 616, the separation angle parameter 504(4) ("vrSeparationAngle") is updated by radial array generator 106 based on the pitch parameter 504(3) ("pitch") and the radius parameter 504(2) ("vrRadius") as follows: vrSeparationAngle = sin- 1 (pitch/vrRadius). At 618, the start angle parameters 504(1 ) ("vrStartX" and "vrStartY") are updated by radial array generator 106 based on the updated separation angle parameter 504(4) ("vrSeparationAngle") (updated at 616), and based on the current view direction ("viewX") as follows: e.g. , vrStartX = viewX - ((vrSeparationAngle * (viewX - vrStartX) )/oldSeparationAngle) . . . plus changes due to Δχ, Ay shifts (e.g., zx changes by sin-1 (Ay/vrRadius). At 620, the tilt angle parameters 504(5) ("vrTiltX" and "vrTiltY") are updated by radial array generator 106 based on the Δχ, Ay changes as follows: e.g. , vrTiltX += (-sin- 1 (Ay/vrRadius)) - (SF * sin-1 (Ay/rowLength)), where SF = tilt scale factor.
[0053] Figure 7 is a diagram illustrating the change in the tilt angles ("vrTiltX" and "vrTiltY") of a row of a radial array in response to Δχ, Ay changes in head movement, and the setting of the tilt scale factor, according to one example. Row 710(4) of the radial array includes five graphlets 712 (represented by rectangles), and represents an initial configuration of the row prior to the detection of head movement. Rows 710(1 )-710(3) represent different possible movements of the row 710(4) based on detected head movement, including tilting of the row to simulate the shift in viewing angle. The radial array rows 710(1 )-710(4) are shown in two dimensions to simplify the illustration, and are viewed from the viewpoint of a viewer, which is represented by element 702.
Movement of the viewer's head is represented by viewer head translation vector 704. Based on detected head movement represented by vector 704, the radial array, including radial array row 710(4), is rotated by an angle (Θ) 706. This results in a shift upward of the row 710(4), as represented by vector 708.
[0054] The tilt scale factor ("SF" in method 600) can be set from 0 to 1. Row 710(2) represents the movement of row 710(4) using a tilt scale factor of 0. When the tilt scale factor is set to 0, there is no "depth perspective effect", and shifting of the viewer's head appears to rotate the array an appropriate amount (sin-1 (shift/vrRadius)), and the front-most and rear-most graphlets 712 of each row appear to move by the same amount, as indicated by row 710(2). Row 710(3) represents the movement of row 710(4) using a tilt scale factor of 1. When the tilt scale factor is set to 1 , additional tilt is added, and each row acts as though its far end is at infinite depth, so the far end appears stationary and does not appear to move with the head movement, as indicated by row 710(3). If there is no tilt change, the row 710(4) may appear as row 710(1 ).
[0055] Too much tilt could lead to a confusing layout. The amount of tilt can be limited to a maximum amount (e.g., 45 degrees) to limit how far a row can be tilted in x and/or y.
[0056] In some examples, the radial array is continually rebuilt around the current view direction (e.g., by adjusting the array start angles 504(1 )), so the position of the object the user currently has in the center of their FOV does not appear to change.
[0057] In some examples, the radial array is modeled and rendered in a spherical coordinate space independent of the current view direction. In an alternative implementation, the spherical coordinate space can be relative to the view direction. In the first case, the array can be thought of as existing in the (virtual) world seen by the viewer, and in the second case, the array coordinate system is "attached" to the viewer's view direction. In the latter case, the array is updated based on viewer rotations to present the correct portion of the array in front of the viewer. An advantage of this technique is that there are no physical limits to the radial array. In particular the "poles" of the radial array are
never visible, and there is no crowding of the data points as they are
approached. Also, the array can appear to extend beyond 360 degrees.
[0058] In addition to rendering the radial array, the data visualization may also include a rendering of labels, and the axes for the x, y and z dimensions. Figure 8 is a diagram illustrating a data visualization that includes a radial array 800 of 3D data with displayed axes and labels according to one example. The radial array 800 includes a plurality of rows 802 of graphlets. The labels include Y labels 804(1 ), X labels 804(2), and Z labels 804(3) (collectively referred to as labels 804). Each graphlet in the radial array 800 includes an associated Y label 804(1 ), an associated X label 804(2), and an associated Z label 804(3).
[0059] Figure 9 is a diagram illustrating a data visualization 900 that includes a radial array 902 of 3D data with displayed axes according to one example. The radial array 902 includes a portion 904 representing the portion of the radial array 902 currently within the FOV of the viewer. The displayed axes include an X axis 906, a Y axis 908, and a Z axis 910. The X axis 906 is anchored or pinned at or near the bottom edge of the current FOV portion 902, but moves up and down with movement of the FOV as indicated by arrow 912. The Y axis 908 is anchored or pinned at or near the left edge of the current FOV portion 902, but moves left and right with movement of the FOV as indicated by arrow 914. The Z axis 910 also moves with movement of the FOV. The axes 906, 908, and 910 can be provided in a heads-up display type of manner, where the labels 804 (Figure 8) track the displayed graphlets and change as the FOV changes, but the axes 906, 908, and 910 are pinned to the edges of the FOV. It is noted that the view shown in Figure 8 is essentially a close-up view of a portion of Figure 9, and that the labels 804 shown in Figure 8 are represented by hash marks along the axes 906, 908, and 910 in Figure 9.
[0060] Figure 10 is a flow diagram illustrating a method 1000 according to one example. At 1002 in method 1000, a system 100 including a processor 102 receives a three-dimensional (3D) data array 108 defined in a 3D rectangular coordinate space. At 1004, the system 1000 transforms the 3D data array into a radial array 1 10 defined in a spherical coordinate space. At 1006, the system generates a 3D immersive visualization of the radial array in which a user
appears to be immersed within the radial array. At 1008, the 3D immersive visualization is modified based on a movement of the user.
[0061] Although some examples described herein relate to visualization techniques for graphlets in a 3D x,y,z rectangular array, the techniques described herein are applicable to other visualization types that exhibit a rectilinear structure. Examples disclosed herein may use virtual reality (VR) head mounted display (HMDs), or any other type of immersive display with head-tracking.
[0062] One example is directed to a method that includes receiving, by a system including a processor, a three-dimensional (3D) data array defined in a 3D rectangular coordinate space. The method includes transforming, by the system, the 3D data array into a radial array defined in a spherical coordinate space. The method includes generating, by the system, a 3D immersive visualization of the radial array in which a user appears to be immersed within the radial array. The method includes modifying the 3D immersive visualization based on a movement of the user.
[0063] In some implementations of the method, x coordinates in the rectangular coordinate space map to zy coordinates in the spherical coordinate space and represent rotation about a y axis, y coordinates in the rectangular coordinate space map to zx coordinates in the spherical coordinate space and represent rotation about an x axis, and z coordinates in the rectangular coordinate space map to z coordinates in the spherical coordinate space.
[0064] The radial array may be defined by a plurality of parameters that are updated based on the movement of the user. The parameters may include: a radius parameter that represents a distance between the user and the radial array; start angle parameters that represent starting angles of elements of the radial array away from a z-axis and rotating about x and y axes; an angular separation parameter that represents an angular separation between elements of the radial array from a viewpoint of the user; a pitch parameter that represents a distance between adjacent elements of the radial array; and tilt parameters that represent a tilt of lines of elements in the radial array in x and y dimensions from a viewpoint of the user.
[0065] The 3D immersive visualization may include a 3D array of multidimensional graphlets, wherein each of the multidimensional graphlets includes at least three dimensions. The method may further include:
representing, by the system, respective attributes of data with dimensions of the 3D array of multidimensional graphlets; and representing, by the system, respective additional attributes of the data with dimensions of the
multidimensional graphlets.
[0066] Another example is directed to a system, which includes at least one processor to: transform a three-dimensional (3D) data array defined in a 3D rectangular coordinate space into a radial array defined in a spherical coordinate space; generate a 3D immersive visualization of the radial array in which a user appears to be immersed within the radial array; detect movement of a user interacting with the 3D immersive visualization; and update the 3D immersive visualization based on movement of the user. The radial array may be defined by a plurality of parameters that are updated based on the
movement of the user, wherein the parameters include tilt parameters that represent a tilt of lines of elements in the radial array in x and y dimensions from a viewpoint of the user.
[0067] Yet another example is directed to a non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to: receive a three-dimensional (3D) data array defined in a 3D rectangular coordinate system; transform the 3D data array into a 3D radial array of multidimensional graphlets defined in a non- rectangular coordinate system; generate a 3D immersive visualization of the 3D radial array of multidimensional graphlets; and modify the 3D immersive visualization based on movement of a viewer of the visualization. Each of the multidimensional graphlets may include at least three dimensions, and attributes of data may be represented with dimensions of the 3D radial array, and additional attributes of the data may be represented with dimensions of the multidimensional graphlets.
[0068] Although specific examples have been illustrated and described herein, a variety of alternate and/or equivalent implementations may be substituted for the
specific examples shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the specific examples discussed herein. Therefore, it is intended that this disclosure be limited only by the claims and the equivalents thereof.
Claims
1 . A method, comprising:
receiving, by a system including a processor, a three-dimensional (3D) data array defined in a 3D rectangular coordinate space;
transforming, by the system, the 3D data array into a radial array defined in a spherical coordinate space;
generating, by the system, a 3D immersive visualization of the radial array in which a user appears to be immersed within the radial array; and
modifying the 3D immersive visualization based on a movement of the user.
2. The method of claim 1 , wherein x coordinates in the rectangular coordinate space map to zy coordinates in the spherical coordinate space and represent rotation about a y axis, and y coordinates in the rectangular coordinate space map to zx coordinates in the spherical coordinate space and represent rotation about an x axis.
3. The method of claim 2, wherein z coordinates in the rectangular coordinate space map to z coordinates in the spherical coordinate space.
4. The method of claim 1 , wherein the radial array is defined by a plurality of parameters that are updated based on the movement of the user.
5. The method of claim 4, wherein the parameters include a radius parameter that represents a distance between the user and the radial array.
6. The method of claim 4, wherein the parameters include start angle
parameters that represent starting angles of elements of the radial array away from a z-axis and rotating about x and y axes.
7. The method of claim 4, wherein the parameters include an angular separation parameter that represents an angular separation between elements of the radial array from a viewpoint of the user.
8. The method of claim 4, wherein the parameters include a pitch parameter that represents a distance between adjacent elements of the radial array.
9. The method of claim 4, wherein the parameters include tilt parameters that represent a tilt of lines of elements in the radial array in x and y dimensions from a viewpoint of the user.
10. The method of claim 1 , wherein the 3D immersive visualization includes a 3D array of multidimensional graphlets, wherein each of the multidimensional graphlets includes at least three dimensions.
1 1 . The method of claim 10, wherein the method further comprises:
representing, by the system, respective attributes of data with dimensions of the 3D array of multidimensional graphlets; and
representing, by the system, respective additional attributes of the data with dimensions of the multidimensional graphlets.
12. A system comprising:
at least one processor to:
transform a three-dimensional (3D) data array defined in a 3D rectangular coordinate space into a radial array defined in a spherical coordinate space;
generate a 3D immersive visualization of the radial array in which a user appears to be immersed within the radial array;
detect movement of a user interacting with the 3D immersive
visualization; and
update the 3D immersive visualization based on movement of the user.
13. The system of claim 12, wherein the radial array is defined by a plurality of parameters that are updated based on the movement of the user, and wherein the parameters include tilt parameters that represent a tilt of lines of elements in the radial array in x and y dimensions from a viewpoint of the user.
14. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to:
receive a three-dimensional (3D) data array defined in a 3D rectangular coordinate system;
transform the 3D data array into a 3D radial array of multidimensional graphlets defined in a non-rectangular coordinate system;
generate a 3D immersive visualization of the 3D radial array of multidimensional graphlets; and
modify the 3D immersive visualization based on movement of a viewer of the visualization.
15. The non-transitory computer-readable storage medium of claim 14, wherein each of the multidimensional graphlets includes at least three
dimensions, and wherein attributes of data are represented with dimensions of the 3D radial array, and additional attributes of the data are represented with dimensions of the multidimensional graphlets.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2016/063094 WO2018093391A1 (en) | 2016-11-21 | 2016-11-21 | 3d immersive visualization of a radial array |
| US16/075,643 US11631224B2 (en) | 2016-11-21 | 2016-11-21 | 3D immersive visualization of a radial array |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2016/063094 WO2018093391A1 (en) | 2016-11-21 | 2016-11-21 | 3d immersive visualization of a radial array |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018093391A1 true WO2018093391A1 (en) | 2018-05-24 |
Family
ID=62145729
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2016/063094 Ceased WO2018093391A1 (en) | 2016-11-21 | 2016-11-21 | 3d immersive visualization of a radial array |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11631224B2 (en) |
| WO (1) | WO2018093391A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116775752A (en) * | 2023-08-25 | 2023-09-19 | 广东南方电信规划咨询设计院有限公司 | Method and device for carrying out visualization processing on data |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12212751B1 (en) * | 2017-05-09 | 2025-01-28 | Cinova Media | Video quality improvements system and method for virtual reality |
| US10963125B2 (en) * | 2019-03-18 | 2021-03-30 | Microsoft Technology Licensing, Llc | Visualization tool for interacting with a quantum computing program |
| CN118277497B (en) * | 2024-04-08 | 2024-10-15 | 湖北大学 | A central tag cloud generation method and interactive customization design system |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130154913A1 (en) * | 2010-12-16 | 2013-06-20 | Siemens Corporation | Systems and methods for a gaze and gesture interface |
| US20140032181A1 (en) * | 2012-07-24 | 2014-01-30 | Dassault Systemes | Design Operation In An Immersive Virtual Environment |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7373612B2 (en) * | 2002-10-21 | 2008-05-13 | Battelle Memorial Institute | Multidimensional structured data visualization method and apparatus, text visualization method and apparatus, method and apparatus for visualizing and graphically navigating the world wide web, method and apparatus for visualizing hierarchies |
| US7532230B2 (en) | 2004-01-29 | 2009-05-12 | Hewlett-Packard Development Company, L.P. | Method and system for communicating gaze in an immersive virtual environment |
| US7538746B2 (en) | 2004-07-23 | 2009-05-26 | Lockheed Martin Corporation | Direct ocular virtual 3D workspace |
| US8583615B2 (en) * | 2007-08-31 | 2013-11-12 | Yahoo! Inc. | System and method for generating a playlist from a mood gradient |
| US20130218688A1 (en) * | 2007-09-26 | 2013-08-22 | Aq Media, Inc. | Audio-visual navigation and communication dynamic memory architectures |
| KR102597520B1 (en) * | 2007-09-26 | 2023-11-06 | 에이큐 미디어 인크 | Audio-visual navigation and communication |
| US8217995B2 (en) | 2008-01-18 | 2012-07-10 | Lockheed Martin Corporation | Providing a collaborative immersive environment using a spherical camera and motion capture |
| US20100128112A1 (en) | 2008-11-26 | 2010-05-27 | Samsung Electronics Co., Ltd | Immersive display system for interacting with three-dimensional content |
| US8659658B2 (en) * | 2010-02-09 | 2014-02-25 | Microsoft Corporation | Physical interaction zone for gesture-based user interfaces |
| WO2011160196A2 (en) * | 2010-06-24 | 2011-12-29 | Associação Instituto Nacional De Matemática Pura E Aplicada | Multidimensional-data-organization method |
| US9007430B2 (en) * | 2011-05-27 | 2015-04-14 | Thomas Seidl | System and method for creating a navigable, three-dimensional virtual reality environment having ultra-wide field of view |
| US20120324401A1 (en) * | 2011-06-14 | 2012-12-20 | Jeffrey Morris | Methods and system for three dimensional time and spacial user interface |
| KR101265667B1 (en) * | 2011-06-21 | 2013-05-22 | ㈜베이다스 | Device for 3d image composition for visualizing image of vehicle around and method therefor |
| EP2761419A1 (en) * | 2011-09-30 | 2014-08-06 | Van Der Westhuizen, Willem Morkel | Method for human-computer interaction on a graphical user interface (gui) |
| WO2013111145A1 (en) | 2011-12-14 | 2013-08-01 | Virtual Logic Systems Private Ltd | System and method of generating perspective corrected imagery for use in virtual combat training |
| EP2820593B1 (en) * | 2012-03-01 | 2019-11-13 | Geo Semiconductor Inc. | Method and system for adaptive perspective correction of ultra wide-angle lens images |
| US20140282266A1 (en) * | 2013-03-14 | 2014-09-18 | Applied Information Llc | Providing information regarding consumable items to users |
| US9626787B2 (en) * | 2013-03-15 | 2017-04-18 | Dreamworks Animation Llc | For node in render setup graph |
| US9798461B2 (en) * | 2013-03-15 | 2017-10-24 | Samsung Electronics Co., Ltd. | Electronic system with three dimensional user interface and method of operation thereof |
| US20150277699A1 (en) * | 2013-04-02 | 2015-10-01 | Cherif Atia Algreatly | Interaction method for optical head-mounted display |
| US10185933B2 (en) * | 2014-04-13 | 2019-01-22 | Helixaeon, Inc. | Visualization and analysis of scheduling data |
| US20160180512A1 (en) * | 2014-12-22 | 2016-06-23 | Nbcuniversal Media, Llc | Depth-ranked content viewer |
| CN107409231B (en) * | 2015-03-05 | 2021-05-11 | 索尼公司 | Image processing device and image processing method |
| CN107180406B (en) * | 2016-03-09 | 2019-03-15 | 腾讯科技(深圳)有限公司 | Image processing method and equipment |
| US10127637B2 (en) * | 2016-08-30 | 2018-11-13 | Adobe Systems Incorporated | Automatic orientation adjustment of spherical panorama digital images |
| WO2018074528A1 (en) * | 2016-10-20 | 2018-04-26 | 株式会社ニコン・エシロール | Image preparation device, image preparation method, image preparation program, method for designing eyeglass lens, and method for manufacturing eyeglass lens |
| US10600150B2 (en) * | 2016-10-31 | 2020-03-24 | Adobe Inc. | Utilizing an inertial measurement device to adjust orientation of panorama digital images |
| KR20180051288A (en) * | 2016-11-08 | 2018-05-16 | 삼성전자주식회사 | Display apparatus and control method thereof |
-
2016
- 2016-11-21 WO PCT/US2016/063094 patent/WO2018093391A1/en not_active Ceased
- 2016-11-21 US US16/075,643 patent/US11631224B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130154913A1 (en) * | 2010-12-16 | 2013-06-20 | Siemens Corporation | Systems and methods for a gaze and gesture interface |
| US20140032181A1 (en) * | 2012-07-24 | 2014-01-30 | Dassault Systemes | Design Operation In An Immersive Virtual Environment |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116775752A (en) * | 2023-08-25 | 2023-09-19 | 广东南方电信规划咨询设计院有限公司 | Method and device for carrying out visualization processing on data |
| CN116775752B (en) * | 2023-08-25 | 2023-11-17 | 广东南方电信规划咨询设计院有限公司 | Method and device for carrying out visualization processing on data |
Also Published As
| Publication number | Publication date |
|---|---|
| US20190051058A1 (en) | 2019-02-14 |
| US11631224B2 (en) | 2023-04-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Reipschlager et al. | Personal augmented reality for information visualization on large interactive displays | |
| US8402394B2 (en) | Three-dimensional website visualization | |
| US11825064B2 (en) | Light field display method and system, storage medium and display panel | |
| US10855564B2 (en) | Visualization of network data as a three-dimensional hierarchical data structure in a mixed reality environment | |
| US9749619B2 (en) | Systems and methods for generating stereoscopic images | |
| US7109998B2 (en) | Stationary semantic zooming | |
| US7983473B2 (en) | Transparency adjustment of a presentation | |
| US8250480B2 (en) | Interactive navigation of a dataflow process image | |
| KR20110039190A (en) | Visualization of the data set | |
| US20110188760A1 (en) | System and Method for Creating and Displaying Map Projections related to Real-Time Images | |
| CN103236074B (en) | A kind of 2D/3D image processing method and device | |
| US11631224B2 (en) | 3D immersive visualization of a radial array | |
| WO2015123775A1 (en) | Systems and methods for incorporating a real image stream in a virtual image stream | |
| JPWO2001043077A1 (en) | Image display method and device | |
| Kwon et al. | Spherical layout and rendering methods for immersive graph visualization | |
| US10854003B2 (en) | Visualization of network data as a three-dimensional hierarchical data structure in a mixed reality environment | |
| US20160119615A1 (en) | Three dimensional data visualization | |
| EP3435670A1 (en) | Apparatus and method for generating a tiled three-dimensional image representation of a scene | |
| CN108230433B (en) | 3D map scatter data display method and system and information data processing terminal | |
| CN102819385A (en) | Information processing device, information processing method and program | |
| JP2013232730A (en) | Image display device, method and program | |
| CN109658518A (en) | A kind of three-dimensional object display methods, storage medium and computer based on augmented reality | |
| TW201503050A (en) | Three dimensional data visualization | |
| US5257345A (en) | Computer system and method for displaying functional information with parallax shift | |
| KR101841719B1 (en) | Multi-display apparatus and the operation method thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16921849 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 16921849 Country of ref document: EP Kind code of ref document: A1 |