Three-dimensional active file explorer

A three-dimensional object that represents computer data and methods and computer-readable media for presenting same. The object has a first, active side and a second, inactive side. The active side may contain information relating to the computer data.

BACKGROUND

Major operating systems typically include a “file explorer,” which is an application that enables a user to view folders and files, perform actions, launch applications, search storage media and so forth within a graphical user interface (GUI). In a conventional file explorer, a file or folder is commonly represented as a two-dimensional (2-D) icon with some additional information such as a file name or type displayed next to it. A user may click on the icon to perform an operation on the file or folder. Because there is a limit to the size of the icon (in many cases, 64×64 pixels) and the amount of space available for relevant data (e.g., file name, type, size, etc.), additional information about the file and how it can be used are displayed at other locations in the explorer.

Conventionally, this auxiliary file information is displayed in a “right-click menu” and a “left hand pane.” The right-click menu (i.e., the menu that appears upon the user clicking on the icon with a right mouse button) typically provides available file actions and a link to a properties menu. The left hand pane (i.e., an information area typically displayed on the left side of the file explorer) usually displays additional metadata and actions.

The 2-D icon approach to displaying file or folder information forces a user to look somewhere other than to the icon for such information. For example, a user must either discover that a right-click exposes some additional file information or must look off to the side to the left hand pane. This poses a discoverability problem for many users. Namely, because this information is not displayed directly in context with the icon, users often ignore or forget about it. Thus, useful information may go undetected and/or unused because the user is not reminded of its availability by the icon.

SUMMARY

An embodiment provides a three-dimensional object that represents computer data, such as a computer file or folder. The object may have any number of sides, and any one or more of which may be selected as active at a given time. The other side(s) may be inactive and may or may not be within view. The active side may contain information relating to the computer data, and a user input with respect to the object or information may cause a change to the object or an action to be taken with respect to the computer data.

DETAILED DESCRIPTION

Example Computing Environment

For purposes of comparison and explanation,FIGS. 2A-Cillustrate 2-D file icon and file explorer configurations. InFIG. 2A, file explorer view200displays an example file explorer window202. Within file explorer window202are tools204that enable manipulation of window202and its contents. Path206shows the location within a storage medium that is displayed by window202. Viewing area260displays file icon210, which is a 2-D representation of a file (inFIG. 2Athe file is an example MICROSOFT WORD® document). Next to file icon210in viewing area260is file data220, which displays the file name, type and size. As can be seen, the information provided by data220is limited and no further options or actions with respect to the file are provided by file icon210.

FIG. 2Bagain displays view200and viewing area260, along with menu230and pane240. Menu230is shown as a typical right-click menu that lists detailed file information as well as additional settings and actions that may be taken with respect to the file. As discussed above, menu230is displayed upon a user right-clicking on file icon210, or sometimes file data220. Pane240provides additional metadata and file actions. It can be seen that menu230and pane240display information that is largely unavailable in file icon210or data220.

FIG. 2Cagain displays view200, along with viewing area260and pane250. Viewing area260displays a plurality of folders represented by folder icon211and folder data221. It can be seen that folder icon211and folder data221correspond to file icon210and file data220, respectively, with appropriate modifications made to represent a folder. Pane250shows a tree view of folders. Again, menu230and pane240display information that is largely unavailable in file icon210, file data220, folder icon211or folder data221.

Example Embodiments

In the discussion that follows, it is assumed that one skilled in the art is familiar with GUIs, GUI objects and methods for programming same. Thus, details relating to such matters are omitted herein for clarity.FIG. 3shows an example view300according to an embodiment. View300includes file explorer window302, which may include tools304and path306. Tools304and path306may, for example, operate in a similar manner to tools204and path206discussed above in connection withFIGS. 2A-C.

It can be seen that files are represented in viewing area360as three-dimensional (3-D) file objects310having file data320. Folder object311and folder data321correspond to object310and file data320, discussed above, except that folder object311and folder data321represent a folder that itself may contain additional files, folders and/or the like. File and folder object310,311may be any type of GUI object such as, for example, a “widget.” A widget is a control that may be manipulated by a user within a GUI. In the discussion that follows, unless explicitly stated otherwise, a reference to the characteristics, properties and the like of file object310or folder object311is intended to refer to either object310or311interchangeably. In other words, in an embodiment, the objects used to represent a file or folder may differ in their content so as to accurately represent the different actions and properties that are available for each (e.g., different actions may be available for a folder as compared to a file), but the overall principles governing the behavior and characteristics of the objects themselves may be the same or similar.

It will be appreciated that in an embodiment objects310and311may be two-dimensional representations of three-dimensional objects, so as to enable object310to be displayed on a two-dimensional display device such as a computer monitor or the like. Thus, perspective and/or other visual techniques may be used to represent the three-dimensional nature of object310. In addition, the term 3-D herein can refer to objects310and311appearing to have height, width and depth within viewing area360or to the characteristic of objects310and311having more than one “side,” as will be discussed below in connection with sides315a-c. Thus, even an object310or311that is simply represented as a 2-D object (e.g., a square) may be considered 3-D according to an embodiment. In view300, file objects310are shown as cubes and cylinders, while folder objects311are shown as pyramids. It will be appreciated, however, that these shapes are for illustration purposes only, as any type or shape of object310and/or311is consistent with an embodiment.

The example objects310and311discussed herein use common shapes such as cubes, cylinders, pyramids and the like, but an embodiment contemplates that objects310and311may take any shape. For example, object310or311may be displayed as a completely arbitrary shape such as a 3-D game logo, a game character, a picture and so forth. Objects310and311may have more or fewer sides than a “real” object of the same shape. For example, a cube is defined as a 3-D shape with six square or rectangular sides. However, a file or folder represented by object310or311, respectively, may only require three sides to display all desired or possible information relating to the file or folder. Thus, the object “cube” would only have three sides. Likewise, the file or folder represented by an object310or311may require more than six sides to display the related information. In such a case, therefore, the object cube would have more than six sides. In an alternate embodiment, the shape of object310and311can be selected so the number of object sides correspond exactly to the number of sides required by the file or folder's information.

Thus, returning toFIG. 3, objects310and311may have one or more sides315a-c. InFIG. 3, the cube-shaped objects310are shown having an active (or default) side315a, which is the side facing a user, as well as inactive sides315b-c, which are shown in a recessed fashion to simulate the three-dimensional nature of object310. Thus, it can be said that side315ais in an active position of object310, while sides315b-care in inactive positions. It will be appreciated that additional inactive sides315may be present but not viewable in view300. Data320and321can be a file name, file type, label, listing or the like. In addition, data320and321may be displayed on a surface of object310or311, respectively. For example, in an embodiment file data320may include the file's name and location within a storage device, as well as a thumbnail image of the file, if appropriate. If displayed on object310, file data320may be displayed on one or more sides315a-c. Information provided by inactive sides315b-c, or simply the appearance of inactive sides315b-cthemselves, may provide a reminder to a user that additional information is available by way of object310or311.

FIG. 4illustrates object310, which is illustrated inFIG. 4as an image file. Again, it will be appreciated that object360may represent any type of file. As noted above, object310can have any shape, but is illustrated as a cube inFIG. 4solely for purposes of explanation. Each side315a-erepresents a different set of actions and/or information that may pertain to the file. In an embodiment, side315ais a default side of object310that is typically shown to a user when in viewing area360ofFIG. 3, for example. Side315aincludes a thumbnail image, as well as file data320. Side315bprovides a list of actions that may be taken with respect to the file. It will be appreciated that315bmay also provide unavailable actions that may be represented as such by using a different text font, color or the like. In one embodiment, side315bmay be made active by right-clicking on side315b. In such a manner, a user who is accustomed to right-clicking on 2-D icons would be presented with similar information when right-clicking on object310. Side315cprovides file metadata, and side315dprovides people that are related to the file. Finally, side315eprovides object configuration data. It can be seen in side315ethat object310may be tailored for the specific file represented by object310, or for all files of the same type, for example. Thus, it can be seen that object310alone can provide the functionality of file icon210, menu230and/or pane240. The ability of a user to select each side315a-eis discussed below in connection withFIGS. 6A-F.

FIG. 5represents view300in which object310′ is selected. Object310′ is shown as selected by being made larger in size than surrounding, unselected objects310. File data320′ of selected object310′ is shown in a larger, more prominent font. Any manner of contrasting a selected object310′ from unselected objects310may be used in connection with an embodiment. For example, rather than (or in addition to) increasing the size of object310′, the appearance of310′ may change in another manner such as, for example, changing color, brightness or the like. Animation (e.g., spinning, etc.) and/or sound may also be used upon selecting object310′ to signify a transition between the unselected and selected states to represent that object310′ has been selected. File data320′, if present, may be so contrasted in a similar fashion.

In addition, unselected objects310may also change in appearance to contrast with selected object310′ by changing color, reducing in size, etc. Such objects310may also displace around selected object310′, particularly in embodiments where selected object310′ increases in size. Unselected, or idle, objects310may remain still or may be animated, and the contents, appearance, properties or the like of any of objects310or310′ may change or be updated by user or other activity.

When a selected object310′ is deselected, its appearance may return to normal so that object310′ again resembles unselected objects310. For example, object310′ may return to its original size and objects310around object310′ may return to their original location and size to compensate. Again, animation and/or sound may be used as to signify a transition between the selected and unselected states to represent that object310′ has been deselected. Deselection may occur, for example, when a user clicks somewhere within viewing area360other than on selected object310′.

Once an object has been selected, a user may wish to view or interact with the other sides of the object to access such side's information (it will be appreciated that “information” may relate to any type of information, functionality, options, actions, or the like, that may be used in connection with the file or folder represented by objects310or311).FIGS. 6A-Frepresent various non-limiting example methods of user interaction and manipulation with file or folder object310or311. In an embodiment, such interaction occurs while such file or folder object310or311is selected. It is possible that the interaction itself also serves to select object310or320, so that object310or320need not be selected beforehand. It will be appreciated that the methods presented herein are for purposes of explanation and illustration only, as any manner of interacting with objects310or311is contemplated. (Again, references below to object310refer equally to file objects310or folder objects311.) For example, the examples ofFIGS. 6A-Fare explained in the context of a user operating a mouse or other pointing device. In an alternate embodiment, a user may use voice control, an assistance device or the like. In addition, the examples ofFIGS. 6A-Fare designed to provide functionality that is similar to that which would be obtained in a conventional file explorer if the same actions are taken by the user. Thus, a user that is familiar with the additional information provided by a right-click menu and left hand pane would not have to learn new click or key combinations to obtain the same information. Accordingly, a user transition to using file and folder objects310and311would be eased. Alternate embodiments may use partially or entirely new click combinations and the like.

FIG. 6Aillustrates an example user interaction with object310involving a right-click on object310. Side315′ refers to an active side of object310that is presented in full-view prior to a transition to side315″, which is the side of object310that becomes active after the user interaction. It can be seen that, in an embodiment, right-clicking on object310(i.e., right-clicking while a cursor600or the like is placed substantially over a selectable region corresponding to object310) causes a rotation, indicated by rotation arrow A, from side315′ to315″. As noted above, the user can see side315″ prior to the user interaction, which may remind the user that the information that is present on side315″ is available. As was also noted above, some type of transition may occur such as, for example, object310may rotate or otherwise animate as it switches between active side315′ and315″. The information that is presented by side315″ may, in an embodiment, be the same or similar to that provided by a conventional right-click menu to avoid user confusion.

FIG. 6Billustrates an example user interaction with object310that occurs if the user wishes to view inactive sides of object310, if present. Side315′ is the currently active side of object310. In an embodiment, a user may take some action such as, for example, pressing some Shift key combination (e.g., Shift-hold, which may be the Shift key by itself or a Shift-Combination, etc.) Thus, object310is slightly rotated to the right exposing an additional side of object310if one is present. It can be seen that side315′ remains the active side. Thus, a user may view available sides of object310without actually selecting them. The user interaction illustrated inFIG. 6Bmay operate in a toggle fashion, where the additional side(s) are only shown while the Shift key combination is depressed, or successive presses of the Shift key combination may continue to slightly rotate object310to expose additional, inactive sides to the user. It will be appreciated that an embodiment is not limited to rotation of object310, as any other manner of presenting inactive sides of object may be used (e.g., inactive sides may slightly enlarge out of a side of object310, a “balloon” or the like may extend from object310and provide information about a side, etc.).

FIG. 6Cillustrates another user interaction with object310. In an embodiment, holding the Shift key while right-clicking object310(i.e., right-clicking while a cursor600or the like is placed substantially over a selectable region corresponding to object310) may cause a complete rotation of object310to the right as indicated by rotation arrow C (right as viewed from the perspective of a user viewing object310) to switch from active side315′ to315″.

FIG. 6Dillustrates yet another user interaction with object310. In an embodiment, placing cursor600over an exposed, inactive side315″ of object310and left-clicking results in object switching from active side315′ to315″, as indicated by rotation arrow D. Again, any type of transition may occur as object switches from active side315′ to315″, and an embodiment is not limited to rotation of object310.

FIG. 6Eillustrates another user interaction with object310. In an embodiment, object310may provide emblem610that may be displayed on active side315′. Right-or left-clicking on emblem610(or taking some other action while cursor600is placed substantially in a selectable region corresponding to emblem610) may cause a predefined action to occur. For example, left-clicking on emblem610may cause object310to rotate to the left as indicated by rotation arrow E (left as viewed from the perspective of a user viewing object310), thereby causing active side315′ to switch to side315″.

FIG. 6Fillustrates yet another user interaction with object310. In an embodiment, a user depress a Shift key while, for example, left-clicking emblem610on active side315′ of object310(i.e., left-clicking while cursor600is placed substantially in a selectable region corresponding to emblem610) may cause a predefined action to occur. For example, in response to the Shift key and left-click, object310may rotate to the left as indicated by rotation arrow F (left as viewed from the perspective of a user viewing object310) so as to switch from active side315′ to side315″, even if side315″ is not currently displayed to the user. Thus, a user may rotate object310to switch from active side315′ to side315″, even if side315″ is not currently displayed to the user.

As noted above, the object interaction and manipulation methods discussed in connection withFIGS. 6A-Fare illustrative only, as any type of object310manipulation or interaction is possible. For example, in an alternate embodiment, object310may be manipulated by clicking and dragging object310. Such clicking and dragging may cause any type of effect on object310such as, for example, rotating object around one or more axes, etc. Furthermore, more than one object310may be so manipulated. For example, a user may select more than one object310and then may manipulate all such selected objects310by manipulating a single one of the selected objects310. Alternatively, a manipulation object (not shown) may be presented that enables a user to manipulate one or more of objects310.

For purposes of explanation,FIG. 7provides views300a-cthat illustrate an example transition that may occur when one or more objects310are selected. Once again, it will be appreciated that references to file objects310apply equally to folder objects311(not shown inFIG. 7). In view300aofFIG. 7, objects310′ entitled (as indicated by file data320′) “Alpha 1” and “Alpha 2” have been selected, while the other objects310are not selected. It can be seen that selected objects310′ are larger in size than unselected objects310. In addition, file data320′ may not be displayed in connection with unselected objects310.

Arrow1illustrates that view300achanges into view300b, either in a continuous fashion or discretely. In view300b, unselected objects310have continued to diminish in size, and selected objects310′ have increased in size. Finally, view300bchanges into view300c, as indicated by arrow2, in which unselected objects310are no longer present. Thus, a user may interact with selected objects310′ without the distraction of unselected objects310. In an embodiment, a user may deselect objects310′ by, for example, clicking somewhere within viewing area360where objects310′ are not located. It will be appreciated that the transition explained above in connection withFIG. 7is illustrative only, as any type or combination of transitions may occur. For example, unselected objects310may remain visible in some type of diminished form. The term “diminished” refers to the overall appearance of unselected objects310, and does not exclusively mean that unselected objects310become smaller. In an alternate embodiment, for example, unselected objects310may fade without becoming smaller. If any of selected objects310′ have an associated animation or other transition that occurs when selected, such an animation or transition may or may not occur—depending on predetermined criteria, user preferences or the like—when such an object310′ is selected as part of a group of objects310′. The entire transition between views300a-cmay take place over any period of time. In an embodiment, the transition is relatively quick (e.g., approximately 1 second or less).

As noted above,FIGS. 6A-Fand7provide example transitions, as any type of transition, manipulation or interaction with objects is possible according to an embodiment. To further illustrate this point, a few additional example actions are described. For example, when a file associated with an object is opened (e.g., run, loaded, etc.) the object may perform a custom animation such as becoming very large. In some cases, for example, if the file associated with the object is run within a particular application, the object may perform an animation that “opens” the object into a viewing window within which the file is opened by its respective application.

When a folder associated with an object is opened, the object may visually open up and become larger until it fills the entire explorer view (e.g., view300, file explorer window302and/or viewing area360) with a new view containing its contents. Thus, in an embodiment, the folder itself becomes the current view in the file explorer.

If a user sets a filter on a set of objects and certain objects are to be removed from the view, the objects that are being removed may, for example, become smaller and disappear and the remaining objects re-balance and grow larger to compensate. When a user performs a search where the file explorer finds and displays new objects over time, the visual effect can be, for example, the opposite of that used for a filter. Found objects may start small in the background and quickly grow larger and come into view.

When a user sorts or otherwise does a complete reorganization of objects in a view, the objects may, for example, visually rearrange themselves upon being sorted by moving directly from their current location on-screen to their new location. This may differ from existing GUIs in that the user sees the files moving from one location to another, as opposed to seeing them before the sort and again after the sort, without any sort of transition.

Example Object Configurations

A non-exhaustive list of example object configurations for a folder and a few common file types are provided below. The example object configurations are merely intended to serve as an illustration of the types of shapes and information that may be used in connection with an object and are in no way intended to be limiting. Accordingly, embodiments contemplate object configurations for the listed file types that differ from the configurations listed below.

As noted above, an object can be visually represented as any type of shape. The example objects listed below, and the objects discussed above in connection withFIGS. 3-7, use common shapes such as cubes, cylinders, pyramids and the like, but an embodiment contemplates that an object may take any shape.Audio File (represented as a cube):Side 1: Album Cover ArtSide 2: Actions on the AlbumSide 3: Mini Music PlayerSide 4: Related MusicSide 5: ConfigurationVideo File (represented as a square or rectangle):Side 1: Video Preview or IconSide 2: Mini Video PlayerImage File (represented as a cube):Side 1: Image PreviewSide 2: Actions on ImageSide 3: Image MetadataSide 4: Related PeopleSide 5: ConfigurationVideo Game File (Arbitrary 3-D shape):Side 1: 3D Animated Game LogoSide 2: Game Launch OptionsFolder (Arbitrary 3-D shape):Side 1: Folder Icon+PreviewSide 2: Folder Metadata

Embodiments contemplate that objects and object configurations are extensible by users, third-party developers and the like. For example, a developer may add one or more sides to an object to provide application-specific functionality that is not otherwise available. In addition, a developer may create a new object to represent a file of a certain format. For example, a photograph editing application may create a custom object to represent all photograph types. Furthermore, some objects may only have one side, effectively rendering them two-dimensional. An embodiment contemplates that a file explorer window302or the like may therefore display 2-D objects, 3-D objects or both. Thus, it will be appreciated that any type of object may be used in connection with an embodiment.

Example Method

FIG. 8is a flowchart illustrating an example, non-limiting, method of carrying out an embodiment. At step801, a three-dimensional object is displayed on a display device. The object may be, for example, file object310or folder object311as discussed above. The displayed object has a first side in an active position (for example, side315aof object310as discussed above in connection withFIG. 3) and a second side in an inactive position (for example, sides315bor315cof object310as discussed above in connection withFIG. 3). Steps803-805are optional. At optional step803, user input is received (such as, for example, any of the mouse click or Shift key combinations discussed above in connection withFIGS. 6A-F). At optional step805, the appearance of the object is modified (such as, for example, discussed above in connection withFIGS. 6A-Fand7). Alternatively, or in combination with modifying the appearance of the object, an action may be taken with respect to the computer data such as, for example, opening or deleting the file, etc., or modifying metadata associated with the file, or the like.

The methods and apparatus of the present invention may also be practiced via communications embodied in the form of program code that is transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via any other form of transmission, wherein, when the program code is received and loaded into and executed by a machine, such as an EPROM, a gate array, a programmable logic device (PLD), a client computer, a video recorder or the like, or a receiving machine having the signal processing capabilities as described in example embodiments above becomes an apparatus for practicing the invention. When implemented on a general-purpose processor, the-program code combines with the processor to provide a unique apparatus that operates to invoke the functionality of the present invention. Additionally, any storage techniques used in connection with the present invention may invariably be a combination of hardware and software.

While the present invention has been described in connection with the preferred embodiments of the various figures, it is to be understood that other similar embodiments may be used or modifications and additions may be made to the described embodiment for performing the same function of the present invention without deviating therefrom. For example, while example network environments of the invention are described in the context of a networked environment, such as a peer to peer networked environment, one skilled in the art will recognize that the present invention is not limited thereto, and that the methods, as described in the present application may apply to any computing device or environment, such as a gaming console, handheld computer, portable computer, etc., whether wired or wireless, and may be applied to any number of such computing devices connected via a communications network, and interacting across the network. Furthermore, it should be emphasized that a variety of computer platforms, including handheld device operating systems and other application specific operating systems are contemplated, especially as the number of wireless networked devices continues to proliferate. Still further, the present invention may be implemented in or across a plurality of processing chips or devices, and storage may similarly be effected across a plurality of devices. Therefore, the present invention should not be limited to any single embodiment, but rather should be construed in breadth and scope in accordance with the appended claims.