One of the most exciting aspects of interface design is the process of constructing new perspectives -- discovering new frameworks that help explain how we behave, what our expectations are, and how they are met. Constantly analyzing and re-evaluating behavior and expectations helps identify good design patterns - and identifying good design patterns makes way for creating new, engaging designs.
To give a specific example, back when I was drafting the foundational ideas for Spatial Computing, I needed to wrap my brain around what a "3d interface design" meant and how it would work. I figured that a good way to do this would be to take a look at the interaction design paradigm that exists for things before 3d input -- all types of input from 2d to 0d. Here's what I came up with:
0d*
1d
2d
Point
Line
Plane
Buttons, of any type
Dials, Scroll wheel
Mouse, Track Pad
*A quick note about 0d. The button, by itself has no dimensional context. A button multiplied by infinity in one direction would give you 1d interaction. I may write a separate post about this later...
One thing I was able to immediately take away from drafting this table was that there was a lot of important stuff that this table didn't cover. See, a lot of interactions require something I call a "modifier button."
A modifier button is something that changes the state of another input device when held down. The shift key is a perfect example. When held down, it temporarily replaces your existing keyboard with an alternative one - one that has only capitalized letters and symbols. Some common modifier buttons are: Control, Fn, Alt, etc...
The buttons on your computer mouse operate on the same principle. Moving your mouse around with your hand only moves a cursor around on the screen. Pressing and holding down the left click button creates a mouse with a completely different behavior -- instead of just navigating around, the cursor is now grabbing or selecting something.
(There are a few minor examples of this meta behavior for 1d interaction, but it's not quite as common.)
So, a few examples of what modifier buttons can accomplish:
Button
Scroll Wheel
Computer Mouse
Without
The button ("a")
Scroll up & down on a page
Navigate cursor around on screen
With
Shift+"a"="A"
Ctrl+"a"=Select All
Ctrl+Scroll wheel=Zoom (on many programs)
Select, open, drag & drop, activate buttons & menus...
The utility of the computer mouse comes from its design - a special blend of modifier button and dimensional context. Without a button, the location of the cursor on the screen can't accomplish anything, and without a location on a screen, the buttons can accomplish things in one location and one location only.
The 3d Part of the Picture
Once I realized that the computer mouse was essentially a button with a dimensional context, I knew I landed on a principle that I could carry with me into 3d.
The central design concept behind Spatial Computing is a button that the user moves around in 3d space. Pressing the button creates different behaviors, like selecting or grabbing. Like the computer mouse design, this makes room for both unbound navigation and pixel perfect specificity.
But taking a step back, the frame of "modifier button + spatial context" helped in a much bigger way. When drafting this project I was able to lift my head up from all the detail work and take a good long look at the big picture.
The details are things like triggers, events, and handlers. The big picture is more spatial - it's expectation management, narrative construction, communication design. The big picture is interactivity that is based on dance and theatrical design. Once I honed in on a big picture design, all the details just needed to be aligned to focus in on the parent design.