The first dimension was the command line.
The second dimension was windowed interfaces.
Every two or three months someone decides that it's time for the third dimension with a revolutionary 3D application that claims that it will change the way we will use applications forever. This month it's this 3D interface a few months before that I remember seeing another design from Sun Microsystems, before that it was Microsoft research and the month before that it was something else. Remember a few years back when the web was taking off it was all about VRML. Yikes.
Why is 3D so compelling that we keep trying and failing?
We like to think of ourselves as Superman, able to multitasking applications and complex data structures in a single bound. Able to locate data with X-ray vision. We assume that the more data we can see at any point in time means we are being more productive. Many people see 3D as the logical way to achieve that productivity. Unfortunately we are not Superman and Superwomen, most people are just trying to do a simple tasks, 3D does not change the input that is required to accomplish tasks and it does not generally enhance the output or interpretation of data.
Some people think that people can think better in 3 dimensions because we interact in 3D all the time. I've heard theories that people will find and navigate applications and data faster because they will have better spatial memory. I don't buy it. My keys get lost far more often in our 3D world then my files get lost in a 2D world. May I never find myself wandering through virtual rooms looking for a file.
Hollywood, paints futuristic 3D interfaces as glamorous and incredibly easy to use. From the touch screen in Minority report to the imersive interface in Lawnmower Man you only see the things that work in movies. It's the perfect demo. You never see any of the real interfaces issues, dialog boxes, confirmation or even basic tasks like inputting data into a form, editing and saving a document, copying or moving data between applications.
When do you use 3D?
3D interfaces tend to force un-natural data abstractions. For example it may be very natural to model census data on a 3D map, this is a natural use of 3D because the data represents a 3D space but making file system objects 3D is a less natural model. People try to make their data fit the three dimensional model and this makes it harder to find, read and interpret data. People use computers to organize their files and data, why would you want to scatter files in three dimensions inside your computer?
If you are considering adding 3D, ask yourself... Can I do the same thing in 2-D without adding a new dimension? Almost always the answer is yes. There are only a few times when going 3D in an application can work:
- The data you are representing is naturally three dimensional. (Maps, Architecture, CAD, Medical Scanning, etc)
- You are building some form of first person game.
- You are adding 3D for aesthetic reasons and not for interface reasons. Actual interactions are done in a 2D plane but rendered in an interesting 3D way.
The last one is where I see the interfaces of the future going. We will add another dimension to make the interface look and feel more attractive but in order to keep software easy to use the actual interface interactions will only be two or even one dimensional.
One dimensional UI or linear UI
Interestingly there are many new applications and products that use linear interfaces or one dimensional interfaces. This isn't the old fashioned command line, it's applications like Tivo, Ipod and even many cell phones. Application tasks are presented in a single vertical list. Selecting a task gives you a new list of tasks and choices. On each linear screen you can either go deeper down to a new list or back to the previous list. This type of interface is easy to use because only one choice has to be made on each screen.
As we add 3D for it's aesthetic appeal I actually believe we will reduce the number of interface dimensions in many areas to make software easier to use.