philosophy

navigating in 3d space on a computer is tricky. creating and manipulating objects in 3d space is even trickier. however, i feel that most tasks (even outside of the realm of software), can be approached in an intuitive way, if a few simple concepts are chosen, and those concepts are applied universally and consistently to the problem. this is what i like to call the "philosophy" of dune.

here are a few simple principles of user interface which dune attempts to follow:

modes suck

have as few "modes" of operation as possible. the user should be able to do any operation at any time, without being restricted by their current "mode". if there is a "mode" in effect, it should be clearly reflected to the user. for those modes which are usually used for a short period of time, provide a hotkey (eg., CTRL or SHIFT) to temporarily change the mode.

feedback

reflect clearly to the user their current operation. this is achieved with cursor changes (the cursor changes to reflect the operation that would be performed if the mouse was clicked), mouse-over events (things that reveal themselves as the mouse goes over them), colour, status bar messages and bubble help (tooltips).

get out of the way!

there's nothing more annoying than trying to get something done in an application, and being pestered by a million popup dialog boxes. dune tries to use as few dialogs as possible, and just let the user interact with what's on the screen. there are some times where a dialog is necessary, but they are kept to a minimum.