Direct Manipulation

BenShneiderman identified 4 primary user interaction styles:
  1. MenuSelection?
  2. FormFillIn?
  3. CommandLanguage?
  4. DirectManipulation

Direct Manipulation is what we use for highly interactive tasks (wordprocessors, drawing programs, games, etc).

Okay, I have seen pretty darn accurate design descriptions of the first 3, but: Is there a prototyping/design technique that can capture the essence of Direct Manipulation? -- ToddCoram

DirectManipulation tools/frameworks:

Although DirectManipulation was coined by BenShneiderman and expanded upon in the book 'DirectManipulationInterfaces?' by Hutchins, Hollan and Norman, NakedObjects seem to represent a fusion of the author's ideas on ExpressiveSystems? and object oriented UI design. "Expressive Systems" book.

I think JohnVlissides UnidrawFramework (source, paper, and thesis)
captured a lot of the essence of direct-manipulation user interfaces: How to grow them yourself by starting with a fully working example program and perturbing it. How to derive new layers of application frameworks on top of a generic foundation.

idraw, ibuild, and schem were the three example programs that showed a single layer could be built on top of the UnidrawFramework, the first example of a LayeredApplicationFramework. IvTools [] showed that it could be stacked even higher. Other direct-manipulation environments to investigate: HotDraw (Smalltalk), SGraphics (Java), Fresco/Parmesan (C++) (FrescoFramework), EZDraw (C++). I think their basic premise (Vlissides and his adviser Mark Linton) was that no one should have to write one of these things from scratch, so they were going to do it and share the result in a way that could be built upon by others.

-- ScottJohnston
The "Self" [] programming environment (see SelfLanguage) did some serious pioneering work in direct manipulation. You should be able to find at least some description of it in the literature. Note that the "Morphic" UI system was originally developed in the context of Self and later ported to SqueakSmalltalk.

SqueakSmalltalk has run with those ideas -- they call it "Morphic".

From what I have seen of those environments, I get the impression that DirectManipulation is, at best, oversold, but that's just MHO.

-- BillTrost

Btw, look for TooledComposite in the September 99 issue of CppReport. --JohnVlissides

Tools and Materials by Dirk Riehle and Heinz Züllighoven is a pattern language for writing direct manipulation programs. See "A Pattern Language for Tool Construction and Integration Based on the Tools and Materials Metaphor."
A newer DirectManipulation technique, "pick-and-drop", is creating a buzz due to plenary mention at CHI 2004 (previously presented at CHI 98, apparently). Pick-and-drop allows e.g. moving an object to another system's screen via drag and drop.

Most (all the ones I know of, anyway) 3d modelling programes (Blender, 3dMax, Maya) use this concept extensively).

See also: VisAd, NakedObjects, DirectManipulationVsScripting, HowToPervertDirectManipulation

EditText of this page (last edited August 18, 2005) or FindPage with title or text search