From: owner-3dui@hitl.washington.edu on behalf of Doug Bowman [bowman@vt.edu] Sent: Wednesday, November 29, 2000 11:56 AM To: 3dui List Cc: Rex Hartson Subject: notation for 3D interaction techniques Greetings all, I just updated the 3DUI archive on the web (http://vtopus.cs.vt.edu/~bowman/3dui/index.html) so I thought I would quickly make it out-of-date again by posting a new message. Ivan, Ernst, Joe, and I are proposing a new course on advanced 3D user interfaces for SIGGRAPH 2001. One thing we plan to do in this course is to go into some detail about the implementation of common interaction techniques. There are some real subtleties in the implementation of some of these techniques that would be useful to developers if they were available. For example, when implementing Ivan's Go-Go technique, it's easy to determine based on the function the distance the virtual hand should be from the body. But where do you place the virtual hand in 3-space? It takes a little thought to realize that the virtual hand should always remain along a vector starting at the user's torso and going through the user's physical hand. Then, you have to figure out where the torso is relative to the head, since we don't usually track the torso. At any rate, you see how much text I had to use to describe that simple constraint (and it's probably still ambiguous!). Wouldn't it be nice if we had a standard notation for describing 3D interaction techniques? If it's precise enough, such a notation could even be used as a very high-level language for technique implementation. One idea is something like the User Action Notation (UAN). In UAN, 2D GUI techniques can be described. For example, ~[file] Mv is a user action meaning the mouse pointer is over a file icon, and the mouse button has been clicked down. It also represents system feedback: file!, forall(file!): file-! means that the file icon that was clicked should be highlighted, and all file icons that were highlighted should be un-highlighted. Now for the question: what are the _primitives_ (e.g. 3D cursor, virtual hand, eye, virtual object), _actions_ (e.g. button press, gesture, voice input, virtual object selection), and _state_ (e.g. selected object, virtual hand position) that we would need for a notation for 3D interaction techniques? I'd like to make this a group effort so that the final product has wide coverage and applicability. Feel free to offer examples. Anyone who helps out will certainly get an acknowledgment, and those who are really interested might join us in formalizing such a notation for publication. Please send your comments/thoughts. Best, Doug -- Doug A. Bowman, Ph.D. (540) 231-7537 Assistant Professor bowman@vt.edu Computer Science www.cs.vt.edu/~bowman/ Virginia Tech