Sunday, January 30, 2011

The worst user interface I have used.

One of the worst user interfaces I have used is that of the 3d modeling program, Blender 3d. I absolutely love using the program, but only because I have spent a long time learning its peculiarities, fighting it and looking up instructions.

(Blender 3d 2.5 beta default UI layout)

Non Standard Interface
The first thing you notice when starting up Blender is how completely different the interface looks than any other program on your operating system, whether Mac, Windows or Linux. It is not entirely clear if there was one original inspiration for the UI widgets used by Blender, but it is clear that they were built from the ground up for the program. This leads to behavior such as a typical horizontal spinner UI elements that requires the user to Shift-click on it to be directly
editable. Though this Shift-click to edit behavior is consistent across most of the interface
widgets, it does not follow any established widget interaction conventions and thus is not
intuitive even to people who are used typical window based GUIs.
(An example of a Shift-Click spinner. In previous versions of the program shift-clicking would be the only way to be able type it a specific value)

Speaking of windows, Blender throws out the entire window convention, opting for a single window with re-arrangeable sub panels. It is easy to understand why you would not want to have to contend with layers of floating windows cluttering your screen while trying to move quickly through many different functionality modes. What is not understandable is the
arbitrary solution that Blender comes up with to handle sub panels. To create a new panel, say for a new view of the 3d editing space, the user must "peel off" a new
panel by dragging it from the corner of an existing panel. This is easy enough to do, and users often inadvertently create new panels constantly while trying to resize existing ones. But to get rid of these new panels is tricky as there is no visible way to get rid of them. Most panel or window systems use the convention of a small 'x' icon or the sort to indicate where you click to get rid of a panel. Blender requires you to click and hold onto the same area you clicked to create the panel, then drag to merge the panel with a neighboring panel.

(An example of the "tear-away" corner of a panel. Disregard the "plus" sign, it does something different)

I appreciate that it is occasionally necessary to develop completely new interfaces to handle complex or new interactions. There is no reason, however, to throw away classic tropes of user interfaces when they have been shown to be flexible. Re-inventing the wheel is not always necessary.

Steep Learning Curve
Typically there is a tradeoff between how easy it is to learn to use a program and how complex the functionality of that program can be. This is no different in 3d modeling programs, where it is typical for users to spend a long time mastering the interface and functionality. Blender, however takes the high learning curve to an extreme. The interface itself provides very little hint of how to use it, is minimalistic on visible controls and expects the user to primarily use keyboard shortcuts. Keyboard shortcuts are not a bad means of control if they are consistent and have some sort of mnemonic mapping, but keyboard shortcuts in Blender change functionality depending on which mode you are in, operate with multiple modifier keys and seldom make mnemonic sense. This all adds up to an imposing learning experience that can turn away new users, whether they are experienced with other 3d programs or are new to modeling and are interested in learning the ropes. It is particularly dissapointing that complete newbies must face such an imposing learning curve since Blender is one of the few high quality free modeling programs, the perfect price for budding artists trying to learn the ropes.



Despite all of these problems, Blender eventually makes an odd sort of sense for me to use. Perhaps I suffer from Stockholm syndrome.

No comments:

Post a Comment