I’ve been thinking a bit about how the GUI for computer desktops could be improved so that it is possible to have more information available without cluttering the screen with windows and folders etc.
One approach that is kind of interesting is to think of the desktop as a sphere instead of a plane. You can zoom in or out from the sphere by holding down the shift key and dragging up or down. When you zoom in sufficiently it’s flat, just like standing on Earth. So for example, to read or write a document, just zoom in until it is flat enough to work in. Or if you want to look at several documents at once, just zoom out until they are all visible. If you zoom out all the way you see the entire sphere from an orbital position.
On the surface of the sphere you can place windows, folders, files, apps, etc. You can put them wherever you want, even on top of one another if you like, just like the windowing systems we’re used to presently. You can also lay them out in groups or clusters of related windows, like continents separated by bodies of water on the surface of the globe.
One reason for using a sphere as an interface for storing our “desktops” is that a sphere provides more space while still being topologically equivalent to a plane. We are all quite familiar with thinking in planar terms about the locations of things — for instance, the locations of buildings or parks in a city, or geographic places on the globe. This is a natural, intuitive skill we all have by virtue of the fact that we are living on the surface of a globe. Note however, that this only applies to 2D spatial geographic reasoning, not to 3D geographic reasoning. When it comes to organizing things in three dimensions, we easily get disoriented (at least without something akin to gravity to provide a constant sense of up and down). This is one reason why I think that previous attempts to organize people’s “desktops” in 3D virtual spaces have always been a bit difficult to use — we just don’t really think or navigate well in 3D, we are planar beings (presently; perhaps in some future era when humans live in space this could change).
A spherical desktop has other advantages — for example it’s easier to navigate. You can turn the sphere by moving your mouse to any edge of the screen, which starts it turning in the opposite direction (so you sort of fly over the surface in the direction of the mouse). The velocity of your gesture controls the speed at which it turns. You can also stop the sphere from turning by clicking anywhere as it turns. Wherever you click becomes the center of the screen. If you double-click the zoom level jumps in to the close-up, flat-view of whatever you double-clicked on. If you double-click again, it zooms back out to a “high-altitude” view.
Here’s another nice feature. If you run out of space on the surface because you’ve covered it with windows and other things, simply control-click anywhere and it starts to inflate the sphere to add more space. So for example, if you want to place a window between two windows, rather than moving those windows, just inflate the sphere to create more space between them, and then put your new window in there. It should also be possible to “group items” such that they stick together even when the sphere is inflated — so for example, when the sphere is inflated additional space is not added between grouped windows: they retain constant distances between one another on the new larger sphere. Similarly, you can deflate the sphere to reduce space between items if you want to bring things back together (and likewise, grouped items would not get closer to each other when the sphere loses surface area during deflation). It should also be possible to inflate or deflate any set of windows on the sphere — which is different than inflating or deflating the sphere itself; this ability is useful for example to reduce the size of many windows at once. It could also be possible to toggle one or more windows between minimized and maximized rectangle states (in other words toggling between different preset levels of window deflation or inflation). The abilities to inflate and deflate the entire sphere, or sets of windows, and to group and ungroup items on the sphere, provide the basic tools for organizing and re-organizing the spherical desktop. For added convenience there could also be a spherical “clean up” routine, akin to what we presently have on some desktop windowing environments, that seeks to neaten up the placement of items on the surface of the sphere according to various alternative rules.
But this is just the beginning. The spherical desktop could be improved by a number of further navigational elements. It may also enable a new way to browse the Web and manage histories. Below I delve into these ideas in a little more detail.
There are times when users need to get to another place on the sphere without needing to move serially along the surface to reach that point. Serial scrolling is useful for prospecting and browsing, but there also needs to be a random-access mode of navigation. To enable this, the user should also be able to control-shift-click to jump right through the sphere to the opposite side at the same location. Additionally, when control-shift is held down, the sphere becomes transparent so you can see what the other side looks like before you go there. In addition to being able to jump through the sphere, the user should be able to jump back and forth between specific locations on the sphere. I call these places “hyperjumps.” Hyperjumps enable users to jump from where they are to another location on the sphere, at a certain altitude. So for example, the user could place a hyper jump next to a window containing an open document they are working on, which when clicked on would jump the user to another location on the sphere for a related document that is also being worked on. Hyper jumps always come in pairs and the user can jump back and forth between the two sides of the pair.
This spherical interface could also be useful for Web browsing. When you click on a link, instead of losing the page you are on, a new window opens next to it and you move over to that one. So you can see your entire path through a Website as a sequence of windows laid out on the sphere. It’s kind of like having multiple tabs in Firefox, but in this case you can see their contents all at once rather than one at a time. One way to do this would be that the first page for the site is on your desktop sphere. When you click any link within that first page you go into a new empty sphere for that site. As you surf around that sphere is populated with windows. Whenever you leave the domain of that site and go to another site you can either continue to add windows on the same sphere, or you can start a new sphere for the new site. When anew sphere is created, a hyper jump is added to both spheres so you can easily jump back and forth between them. Another nice feature is that when you leave and later return to a site the pages are laid out on its sphere in the way you left them before. Whenever you want, simply “popout” of the sphere to go right back to the desktop sphere. So this is aspherical way to drill-down into something and then back out. You simply drill into or out of sub-spheres of the current sphere.
It would also be useful to allow users to place objects representing other spheres right onto the desktop sphere, or any other sphere. These would appear as circles containing a projection of the contents of that’ sphere. When the user double-clicks on one of these circles they enter that sphere. Thus there is actually infinite space in this user-interface: the user can keep adding spheres as they need to. There should also be a way to drag a sphere into another sphere, and to merge any set of spheres into a single sphere, and to split some part of a sphere off to form a new sphere from that sphere. These basic operations make it easy to create and organize space.
The spherical desktop is a good compromise — it’s an intuitive 2D planar interface, yet still has some of the advantages of 3D space. Not only is there potentially unlimited space, but more of it can be visible at once using the zoom out feature. If you zoom out just a little from close-up, flat view, you are still able to see and read the content of whatever window is in the focus area, but you can also see additional “ambient” information around it in a circle, compressed with distance from the center due to perspective as it recedes into the horizon. This level of zoom enables you to have a central focus area as well as ambient information around it, all visible on your monitor at once, without windows overlapping — something that is not possible on regular “flat” desktops. In additionally, because the spherical topology wraps back on itself in every direction and can be rotated, it’s easy to get anywhere from anywhere else — making it very efficient to move around on.
I think a sphere is a more natural, intuitive interface for us to work with than a true 3D space. After all, we live on a sphere!