Complex architecture, such as organizational charts, technical architecture, process diagrams, or other systems with hierarchical structure, may be described by texts. For example, the hierarchical and cross linking relationships between features of an application, pages of a website, storages in a cloud computing system, devices in an electronic system, processes in a software program, topics in a book, departments of a corporation, etc., may be described by lengthy texts. To show the complex relationships, two-dimensional graphics, such as flowcharts, may be used to illustrate the connections and flow of information between the components within a complex architecture. In some instances, two-and-a-half dimensional (2.5D) graphics such as a two dimensional (2D) image that presents objects with simulated perspective or depth perception, or three dimensional (3D) rendered graphics, may be used as a visual aid for showing multi-dimensional relationships of components in a complex architecture. Further, animation may be used to provide better visualization of process or flow using a complex architecture.
One aspect of the disclosure provides for receiving, by one or more processors, inputs associated with a plurality of components of an organizational structure, wherein the inputs include an identifier, a first classification, and a second classification for each of the plurality of components; determining, by the one or more processors based on the inputs, relationships between the plurality of components within the organizational structure; and generating, by the one or more processors, a visualization with a plurality of graphic elements corresponding to the plurality of components, wherein the plurality of graphic elements are arranged in a plurality of sections based on the first classifications, and arranged in one or more hierarchies based on the second classifications, and wherein the visualization includes one or more indications of the relationships between the plurality of components within the organizational structure.
The method may further comprise receiving, by the one or more processors, one or more additional classifications for each of the plurality of components; and generating, by the one or more processors, icons as the plurality of graphic elements, wherein appearance of the icons are based on the one or more additional classifications.
The method may further comprise receiving, by the one or more processors, additional input indicating that two or more of the plurality of components are connected; and generating, by the one or more processors based on the additional input, one or more connections for the corresponding graphic elements connecting to adjacent graphic elements in the visualization.
The method may further comprise receiving, by the one or more processors, additional input indicating that two or more of the plurality of components are crosslinked; and generating, by the one or more processors based on the additional input, one or more crosslinks for the corresponding graphic elements to non-adjacent graphic elements in the visualization. The one or more crosslinks may be hidden and appear in the visualization only when one or more of the crosslinked graphic elements is selected.
The method may further comprise receiving, by the one or more processors, one or more external links associated with one or more of the plurality of components, wherein the corresponding graphic elements are generated with the one or more external links.
The method may further comprise receiving, by the one or more processors, an address for each of the plurality of graphic elements, wherein the plurality of graphic elements are further arranged on the visualization based on the addresses.
The visualization may show the plurality of graphic elements as two-and-a-half or three dimensional objects in a perspective view.
The method may further comprise receiving, by the one or more processors, a command to change a view of the visualization; and generating, by the one or more processors based on the command, a two dimensional view of the visualization.
The inputs may be received in a tabular form.
The method may further comprise providing, by the one or more processors, a web-based application with templates for entering inputs, wherein the inputs associated with the plurality of components are received through the web-based application.
The method may further comprise receiving, by the one or more processors, an elevation for each of the plurality of components, wherein the plurality of graphic elements are further arranged on the visualization in a layered stack based on the elevations.
The method may further comprise receiving, by the one or more processors, additional inputs specifying one or more sequences including two or more of the plurality of components; and generating, by the one or more processors based on the additional inputs, one or more animated walkthroughs of graphic elements corresponding to the one or more sequences.
The one or more animated walkthroughs may be generated as an overlay on the visualization.
The inputs and the additional inputs may be received in a tabular form as separate sheets.
Another aspect of the disclosure provides for a system comprising one or more processors. The one or more processors are configured to receive inputs associated with a plurality of components of an organizational structure, wherein the inputs include an identifier, a first classification, and a second classification for each of the plurality of components; determine, based on the inputs, relationships between the plurality of components within the organizational structure; and generate a visualization with a plurality of graphic elements corresponding to the plurality of components, wherein the plurality of graphic elements are arranged based on the relationships between the plurality of components, and wherein the visualization includes one or more indications of the relationships between the plurality of components within the organizational structure.
The one or more processors may be further configured to receive one or more additional classifications for each of the plurality of components; and generate icons as the plurality of graphic elements, wherein appearance of the icons are based on the one or more additional classifications.
The one or more processors may be further configured to receive an elevation for each of the plurality of components, wherein the plurality of graphic elements are further arranged on the visualization in a layered stack based on the elevations.
The one or more processors may be further configured to receive additional inputs specifying one or more sequences including two or more of the plurality of components; and generate, based on the additional inputs, one or more animated walkthroughs of graphic elements corresponding to the one or more sequences.
Still another aspect of the disclosure provides for a computer-readable storage medium storing instructions executable by one or more processors for performing a method. The method comprises receiving inputs associated with a plurality of components of an organizational structure, wherein the inputs include an identifier, a first classification, and a second classification for each of the plurality of components; determining, based on the inputs, relationships between the plurality of components within the organizational structure; and generating a visualization with a plurality of graphic elements corresponding to the plurality of components, wherein the plurality of graphic elements are arranged in a plurality of sections based on the first classifications, and arranged in one or more hierarchies based on the second classifications, wherein the visualization includes one or more indications of the relationships between the plurality of components within the organizational structure.
The technology generally relates to a visualization tool. A complex architecture may not be easily described using textual information alone. A flowchart may be helpful in illustrating relationships and/or flow of information, but may require many branches or even multiple flowcharts for a complex architecture. While 2.5 or 3 dimensional graphics and animations may provide better visualization of a complex architecture, they may require significant design skills and/or effort to generate. To address these issues, a system including one or more processors may be configured to generate visualizations based on simple inputs.
In this regard, a system including one or more processors may be configured to receive inputs associated with a plurality of components of an organizational structure. For instance, the plurality of components may be part of any organizational structure including one or more hierarchies. For example, the plurality of components may be features of an application, pages of a website, storages in a cloud computing system, devices in an electronic system, processes in a software program, topics in a book, departments in a corporation, locations in a tour, etc. The inputs may be provided in a simple form, such as in a tabular form. The inputs may include an identifier, a first classification, and a second classification for each of the plurality of components. For example, the identifier may be a name of each feature, webpage, storage, device, process, topic, departments, locations, etc. The first classification may be a category of the feature, webpage, storage, device, process, topic, department, location, etc., and the second classification may be a hierarchy level of the feature, webpage, storage, device, process, topic, department, location, etc. within the respective category.
Based on the inputs, the system may determine relationships between the plurality of components within the organizational structure. For example, the system may determine which of the features, pages, storages, devices, processes, topics, departments, locations, etc. belong in the same categories, and how they relate to one another in one or more hierarchies.
The system may then generate a visualization with a plurality of graphic elements corresponding to the plurality of components, wherein the plurality of graphic elements are arranged in a plurality of sections based on the first classifications, and arranged in one or more hierarchies based on the second classifications. For example, the system may then generate icons corresponding to the various features, webpages, storages, devices, processes, topics, departments, locations, etc., and arrange the icons relative to one another based on the relationships between the various features, pages, storages, devices, processes, topics, departments, locations, etc. The visualization may include one or more indications of the relationships between the plurality of components within the organizational structure.
In some instances, the system may be further configured to receive additional inputs specifying one or more sequences including two or more of the plurality of components. For example, the additional inputs may be received in a tabular form. Based on the additional inputs, the system may generate one or more animated walkthroughs of graphic elements corresponding to the one or more sequences. For example, the walkthrough may be an example interaction of a user with features of an application or pages of a website, an example flow of information through storages for a cloud computing system, an example operation using a sequence of devices, an example run of processes in a software program, an example storyline, a product being developed through various departments of a corporation, an example tour itinerary, etc.
The technology is advantageous because it provides visualization of complex architecture in 2.5D or 3D views. Features of the technology allow users to provide simple inputs, based on which complex illustrative visualizations may be generated quickly, instead of requiring significant design skills and/or effort. The technology further allows users to generate animations of user experience and/or flow of information using simple inputs, also without requiring significant design skills and/or effort.
For instance, the one or more processors 120 can be any conventional processors, such as a commercially available CPU. Alternatively, the processors can be dedicated components such as an application specific integrated circuit (“ASIC”) or other hardware-based processor. Although not necessary, the computing devices 110 may include specialized hardware components to perform specific computing processes.
The memory 130 of the computing devices 110 can store information accessible by the one or more processors 120, including instructions 132 and data 134. The memory can be of any non-transitory type capable of storing information accessible by the processor, such as a hard-drive, memory card, ROM, RAM, DVD, CD-ROM, write-capable, and read-only memories.
The instructions 132 can be any set of instructions to be executed directly, such as machine code, or indirectly, such as scripts, by the one or more processors 120. In that regard, the terms “instructions,” “application,” “steps,” and “programs” can be used interchangeably herein. The instructions can be stored in object code format for direct processing by a processor, or in any other computing device language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. Functions, methods, and routines of the instructions are explained in more detail below. For instance, the instructions 132 may include how to process data, generate visualizations, generate animations, etc.
The data 134 may be retrieved, stored, or modified by the one or more processors 120 in accordance with the instructions 132. For instance, although the subject matter described herein is not limited by any particular data structure, the data can be stored in computer registers, in a relational database as a table having many different fields and records, or XML documents. The data can also be formatted in any computing device-readable format such as, but not limited to, binary values, ASCII or Unicode. Moreover, the data can comprise any information sufficient to identify the relevant information, such as numbers, descriptive text, propriety codes, pointers, references to data stored in other memories such as at other network locations, or information that is used by a function to calculate the relevant data. For instance, the data 134 may include images, definitions, templates, etc.
Although
Each of the computing devices 110, 160, 170 can be at different nodes of a network 150 and capable of directly and indirectly communicating with other nodes of network 150. Although only a few computing devices are depicted in
As an example, computing devices 110 may be server computing devices, while computing devices 160, 170 may be client computing devices. For instance, computing devices 110 may include web servers capable of communicating with storage system 140 as well as computing devices 160, 170 via the network 150. For example, computing devices 110 may be server computing devices that can use network 150 to transmit and present information to a user on a display, such as display 165 of computing device 160.
Each of the client computing devices 160, 170 may be configured similarly to the server computing devices 110, with one or more processors, memory and instructions as described above. Each of the client computing devices 160, 170 may be a personal computing device intended for use by a user, and have all of the components normally used in connection with a personal computing device. For example as shown, client computing device 160 includes processors 161 (e.g., a central processing unit CPU), memory 162 (e.g., RAM and internal hard drives) storing data 163 and instructions 164, a display such as display 165 (e.g., a monitor having a screen, a touch-screen, a projector, a television, or other device that is operable to display information), and user input device 166 (e.g., a mouse, keyboard, touch-screen, or microphone). The client computing device 160 may also include a camera 167 for recording video streams and/or capturing images, speakers, a network interface device, and all of the components used for connecting these elements to one another. The client computing device 160 may also include a location determination system, such as a GPS 168. Other examples of location determination systems may determine location based on wireless access signal strength, images of geographic objects such as landmarks, semantic indicators such as light or noise level, etc.
Although the client computing devices 160, 170 may each comprise a full-sized personal computing device, they may alternatively comprise mobile computing devices capable of wirelessly exchanging data with a server over a network such as the Internet. By way of example only, client computing device 160, 170 may be a mobile phone or a device such as a wireless-enabled PDA, a tablet PC, a netbook, a smart watch, a head-mounted computing system, or any other device that is capable of obtaining information via the Internet. As an example the user may input information using a small keyboard, a keypad, microphone, using visual signals with a camera, or a touch screen.
As with memory 130, storage system 140 can be of any type of computerized storage capable of storing information accessible by the server computing devices 110, such as a hard-drive, memory card, ROM, RAM, DVD, CD-ROM, write-capable, and read-only memories. In addition, storage system 140 may include a distributed storage system where data is stored on a plurality of different storage devices which may be physically located at the same or different geographic locations. As shown, storage system 140 may be connected to various computing devices via the network 150, and/or may be directly connected to any of the computing devices 110, 160, 170.
Further to example systems described above, example methods are now described. Such methods may be performed using the systems described above, modifications thereof, or any of a variety of systems having different configurations. It should be understood that the operations involved in the following methods need not be performed in the precise order described. Rather, various operations may be handled in a different order or simultaneously, and operations may be added or omitted.
Referring to
The inputs may be received by processors 120 in a simple form, such as in a tabular form or some other textual form.
As shown in table 300, inputs on the plurality of components may include identifiers 310. For example, the identifiers 310 may be provided in a “Name” column of the table 300. Thus, names of each feature of the exercise tracking application, such as “Dashboard,” “Heart Rate,” “Info,” “Settings,” etc., may be provided as identifiers 310. In other examples, the identifiers may be names of webpages, storages, devices, processes, topics, departments, locations, etc.
Table 300 further shows that the inputs may include one or more classifications for each of the plurality of components, such as first classification 320 and second classification 330. The first and second classifications 320, 330 may define relationships between the various components. As shown, the first classification 320 may be provided in a “Section” column, which categorizes the components. For instance, “Dashboard,” “Sleep,” “Heart Rate” may all be features shown on one GUI of the exercise tracking application, and are given the first classification “Home,” “Workout Summary,” “Workout detail,” and “Edit Activity” may be features shown on another GUI of the exercise tracking application, and given the first classification of “Journal,” and “Profile” and “Settings” may be features shown on yet another GUI of the exercise tracking application, and given the first classification of “Profile.”
Further as shown, the second classification 330 may be provided in a “Level” column, which specifies a hierarchy of components within a category. For example, within the “Journal” GUI, “Workout Summary” may be on level 1, which may be an initial screen that a user sees in the “Journal” GUI, then “Workout Detail” is on level 2, which may be a second screen that the user sees in the “Journal” GUI, for example a display of “Workout Detail” may be opened from a display of “Workout Summary,” and “Edit Activity” is on level 3, which may be a third screen that the user sees in the “Journal” GUI. In other examples, the first classification 320 may be categories of webpages, storages, devices, processes, departments, topics, locations, etc., and the second classification 330 may specify the hierarchies of the webpages, storages, devices, processors, departments, topics, locations, etc. within each category.
Referring back to
Referring again to
The graphic elements 401a-403c are shown arranged based on the first and second classifications 320, 330 in the table 300. For example, based on the first classification 320, graphic elements 401a-401g corresponding to components “Dashboard,” “Sleep,” “Heart Rate,” “Weight,” “Blood Pressure,” “Create New,” and “Info” may be arranged in a first section 410 corresponding to the category “Home”; graphic elements 402a-402c corresponding to components “Workout Summary,” “Workout Detail,” and “Edit Activity” may be arranged in a second section 420 corresponding to the category “Journal”; and graphic elements 403a-403b corresponding to components “Profile” and “Settings” may be arranged in a third section 430 corresponding to the category “Profile.” The sections may be shown distinguished by the separate regions they occupy in the visualization 400. Alternatively or additionally, the sections may be distinguished in any other way, such as having different colors, shading, format, etc.
Further as shown, based on the second classification 330, graphic elements 401a-401g within the first section 410 are arranged based on their hierarchical relationship within the category “Home,” graphic elements 402a-402c within the second section 420 are arranged based on their hierarchical relationship within the category “Journal,” and graphic elements 403a-403b within the third section 430 are arranged based on their hierarchical relationship within the category “Profile.” In this regard, the hierarchy levels may be represented by the positioning of the graphic elements within each respective section. In the example visualization 400, graphic elements in a same hierarchy level are arranged in a same row. Alternatively or additionally, the hierarchy levels may be distinguished in any other way, such as arranged in different columns, having different colors, shading, format, etc. Further as shown, the relationships between the plurality of components of
Once generated, the visualization 400 may be provided for display.
In some instance, the inputs received by processors 120 may include other information in addition to the identifiers and first and second classifications, based on which a visualization may be generated.
Referring to
Thus as shown, since the components “Dashboard,” “Sleep,” “Heart Rate,” “Weight” and “Blood Pressure” each have a third classification of “Dashboard,” graphic elements 401a-401e corresponding to these components each have an appearance 710a corresponding to this third classification, shown as a chart and a graph. Since the components “Create New,” “Edit Activity,” and “Settings” each have a third classification of “Form,” graphic elements 401f, 402c, and 403b corresponding to these components each have an appearance 710b corresponding to this third classification, shown as a form with fillable fields. The components “Info,” “Workout Detail,” and “Profile” each have a third classification of “Details,” thus the graphic elements 401g, 402b, and 403a corresponding to these components each have an appearance 710c corresponding to this third classification, shown as some texts and other items. The component “Workout Summary” has a third classification of “List View,” thus the graphic element 402a corresponding to this component has an appearance 710d corresponding to this third classification, shown as a list of items.
Further as shown, since the components “Dashboard,” “Sleep,” “Heart Rate,” “Weight,” “Blood Pressure,” and “Workout Summary” each have a fourth classification of “Page,” elements 401a-401e and 402a corresponding to these components each have an appearance 720a corresponding to this fourth classification, shown as multiple icons. In contrast, since the components “Create New,” “Info,” “Workout Detail,” “Edit Activity,” “Profile,” and “Settings” each have a fourth classification of “Page component,” graphic elements 401f-401g, 402b-402c, 403a-403b corresponding to these components each have an appearance 720b corresponding to this fourth classification, shown as a single icon. As alternative or in addition to the example appearances shown in
Returning to
Further as shown, table 600 may also include information on how the graphic elements should be connected or linked. For instance, whether graphic elements representing the plurality of components should be connected in the visualization may be provided in the “Connections” column of table 600. Inputs for the connections 640 may be provided as a binary yes/no indicating whether connections should exist between adjacent graphic elements as shown in
As shown in
Crosslinks 840 between graphic elements that are not adjacent in the visualization may be generated in
Further as shown in
Again returning to
As shown, the graphic elements 401a-401g, 402a-402c, and 403a-403b are arranged in two elevation levels 910 and 920. Graphic elements in the first section 410 and in the second section 420 are shown arranged in the first elevation level 910. The second elevation level 920 includes graphic elements 403a-403b and only one graphic element 401a from the first section 410. In this regard, each elevation level may highlight one or more aspects of the architecture. For example, graphic elements arranged in the second elevation 920 may illustrate the screens that a user navigates through to make administrative changes. The visualization 900 further provides collapse view option 930 to change the view back to a single elevation visualization. Alternatively or additionally, the multi-level visualization 900 may further illustrate another dimension of relationships between the plurality of components. For example, replicas in a cloud computing system may be shown in multiple elevation levels. For another instance, parts in an electronic device performing different functions may be shown in different elevation levels, and pathways connecting the different functions may be shown between the elevations levels.
In another aspect, one or more animations may be generated for the visualization. In this regard, additional inputs may be received including one or more sequences of components to be animated in walkthroughs. The inputs on the animated walkthroughs may be received by processors 120, for example from computing device 160 via user input 166. In instance where processors 120 provide templates for entering inputs of
The additional inputs on the animations may be received by processors 120 in a simple form, such as in a tabular form or some other textual form.
The example of
As shown in table 1000, inputs on the animation may include a title 1010 for the animated walkthrough. The title 1010 “Track a workout” thus summarizes that the sequence of components represent how a workout may be tracked in the exercise tracking application. Table 1000 further includes components 1020. In this regard, the components to be used in the animated walkthrough may be listed in the order they should appear. Thus as shown, the sequence starts with component “Dashboard,” followed by component “Workout Summary,” followed by component “Workout Detail.” Although in this example, the components 1020 are listed by their identifiers 310, in other examples the components may be listed in other ways, such as by their addresses 630.
The table 1000 may include additional information. For instance, table 1000 may further include narrative 1030 accompanying the animated walkthrough. In this example, the narrative 1030 explains what each component in the walkthrough shows in terms of tracking a workout. Table 1000 may also include perspective 1040 of the animated walkthrough. In this example, the perspective 1040 of the animated walkthrough is a runner. Other alternative or additional information may be provided for the walkthrough.
Further, multiple animated walkthroughs may be generated using inputs as shown in
Based on the additional inputs, one or more animated walkthroughs may be generated.
Referring to
The walkthrough overview 1100 further shows the sequence of components involved. For instance, a first line 1111 connects the first component in the sequence, “Dashboard,” to the second component in the sequence, “Workout Summary.” A second line 1112 connects the second component in the sequence “Workout Summary” to the third component in the sequence, “Workout Details.” The sequence of the components are further emphasized, for example by highlights 1120, which may optionally include the order of the component in the sequence. Further as shown, the walkthrough overview 1100 may include narratives 1130 for each step of the walkthrough. As such, the walkthrough overview 1100 provides a high-level view and summary of the animation.
Turning to
A window 1210 is also shown in this first snapshot 1200A, which includes information for the first component in the sequence. For example, the window 1210 includes title of the walkthrough, that the walkthrough is from the perspective of a runner, and a narrative describing what the runner may do using the “Dashboard” component. The window 1210 may include links, such as a “Next” link 1212, which may be selected to move to a next view of the animated walkthrough. Additional links may be provided, such as “End” to stop the animation, or “Start from Beginning,” etc. In other examples, the animated walkthrough may be timed, such that the animation automatically moves to the next view in the walkthrough after a predetermined time.
The technology is advantageous because it provides visualization of complex architecture in 2.5D or 3D views. Features of the technology allows users to provide simple inputs, based on which complex illustrative visualizations may be generated quickly, instead of requiring significant design skills and/or effort. The technology further allows users to generate animations of user experience and/or flow of information using simple inputs, also without requiring significant design skills and/or effort.
Unless otherwise stated, the foregoing alternative examples are not mutually exclusive, but may be implemented in various combinations to achieve unique advantages. As these and other variations and combinations of the features discussed above can be utilized without departing from the subject matter defined by the claims, the foregoing description of the embodiments should be taken by way of illustration rather than by way of limitation of the subject matter defined by the claims. In addition, the provision of the examples described herein, as well as clauses phrased as “such as,” “including” and the like, should not be interpreted as limiting the subject matter of the claims to the specific examples; rather, the examples are intended to illustrate only one of many possible embodiments. Further, the same reference numbers in different drawings can identify the same or similar elements.