on transparency, dynamic wallpaper, 3d desktops
With Windows 7 about to arrive, I’ve been thinking about supposedly “cool” UI trends of recent years that actually annoy me greatly.
Beginning a few years back, when graphics cards in computers not used for games became powerful enough to do something interesting, out came features that tried to take advantage of this power. I’m talking about things like circular windows, transparency, video wallpapers, flipping window previews, 3d desktops, like a cube or whatever…
Now trust me. Since I don’t play games, I’ve thought about using the idle GPU for other purposes, too. So I tried the above features. And they all suck. Greatly. (I also tried GPGPU but that’s a rant for another day.)
Along the way, I’ve become convinced that trying too hard to “use” GPU power is the wrong way to go. Alas, it’s probably better to stick to the basics and think of things that are actually useful. But first, why are the aforementioned graphics features so repugnant that users (at least I) turn them off after a few tries? Because they are unnatural, that’s why!
For example, the shape of windows. Look, rectangles are nice, for a good reason. They tesselate well. Hexagons may even work. Circles do not work. Odd shaped windows are the bane of my existence. How about the use of transparency? It never works! You don’t actually want to see what’s underneath, because if you do, it’s distracting. So transparency blurs what’s behind to the degree that you can’t tell what’s behind. This is paradoxical and completely useless. Video wallpapers. Bad idea. The desktop should not be distracting with movements. The eye is extremely capable of detecting scene change, especially change due to movement. You do not want the background to move at all! Flipping windows as in Vista… no. It’s harder to see what’s in the window due to the 3d angle and harder to see which one is at the forefront because of a stack of very different looking windows all competing for attention. Cube or spherical surfaces for desktops a la Compiz: fail. Nothing on our current desktop naturally wraps around a cube or sphere. You’re introducing extra distortion to generate the unnecessary projection to 2D. This is stupid.
However, I can think of two useful graphics features that are modifications of the failures described here:
1. Getting things out of your way
Do you see all these people with multiple monitors? Why? Because people want space. They want multiple windows showing at the same time. They want a big desktop. Now desktop resolutions even on a single monitor these days are by no means small. I argue that it is the extremely inefficient use of a single monitor that drives people to multiple monitors. This is quite ridiculous, actually. Why do I say this? Because I’ve seen a good MDI (multiple document interface) in, say, source code editors and development environments that can easily put all the documents you want (usually just two) on screen at the same time. So there is no reason to give up on the same level of efficiency between multiple applications.
Okay, so what am I talking about. I think most space problems can be solved if there is a way to get things out of your way. For example, if I want to tesselate a screen with rectangles I may end up leaving unused space due to some windows being certain sizes. Wouldn’t it be nice for windows to be unions of rectangles and their contents flow within them naturally so that the entire screen looked like a newspaper page layout? This requires window content to be amenable to reflow, but whatever. It can be done. Barring that, it’d be nice if you can throw windows out of your way to a automatically determined reasonable location, either temporarily or permanently. Windows 7 sort of does that (but only to pre-defined locations and sizes like half a screen) and Mac OS X sort ot does the … opposite … of that by bringing all windows into view…
2. Changing backgrounds
While video backgrounds are extremely distracting, a changing background itself isn’t a bad idea at all. The background can be equally used to get attention, as a conduit for conveying information — provided that is the goal. After all, it is already used to convey some information, with desktop icons, etc., although this happens only when the background is actually the foreground — when all other windows are out of the way. So can the background convey information while still being the background, and how?
Yes, it can. First thing to realize is the background can’t really convey a huge amount of information, since during normal operation, either (a) a small portion of it is revealed at a time — e.g. the gap between windows; and (2) a large portion is revealed only briefly — e.g. when switching windows. But a small amount of information can still be conveyed through this. One of the best uses for the background is to convey quasistatic or low frequency data. For instance, you’ve seen little weather and time indicators… why not let the background show the time and weather display by actually displaying a scene of that? It can be either current conditions or forecast, so long as the user knows what it is. So, if you want to know if it will rain 6 hours from now in Capetown, and have set the display to show that, the desktop can simply display a scene of that — and this doesn’t really change except when the weather changes, which is precisely when you want to be distracted with this new information, and in a non-intrusive way (you’ll just notice something new between switching windows). At other times you don’t even notice.
I’m sure there are other applications like these. There is no excuse to pretend that piss poor UI design is acceptable if it just seems “cool”.