From: Pablo Figueroa [pfiguero@cs.ualberta.ca] Sent: Wednesday, December 13, 2000 2:11 PM To: Doug Bowman Cc: 3dui List Subject: Re: description of an IT Hi all, Two comments: - Doug, great you are brave enough to talk about this topic that I really like! ;-> - From your example I've got that the requirements you propose for a language for ITs are that it should be precise and human-understandable. if these are the requirements, I think the pseudocode is maybe not precise enough neither easy to understand. It is not easy to find what are the unknown details in the pseudocode, despite there are some, and it was easier for me to read the textual description than the pseudocode. It is difficult to find one language with these two characteristics. Ideally, it might be nice to have more than one way to understand an IT, maybe several formats. For example, it might be nice to have for any IT the following: - A textual description in a nice format (latex?), similar to what you find in a paper. - A program-readable interface (IDL?, XML?) that can be implemented in several languages and frameworks. - A source-free implementation in a well known framework (Java3D?) that shows how it works, it is precise enough, and it is related to the program-readable interface. So, in the case of GoGo, the description can be the following: Text: (A short description from Poupyrev's paper) Program-readable Interface: (Something like what I wrote in a previous email, without the formal invariance.) Source-free implementation (It is possible define a framework in java3D that allows any author to add a new IT) Despite this description means more work, it fulfills your requirements (and I like it... ;->) From your pseudocode I have just one concern... you describe at the end the feedback for selection highlighting... I wonder if this constrains too much the selection IT... It is possible to have other types of feedback, with the same selection mechanism... Best Regards, ------------------------------------------- Pablo Figueroa pfiguero@cs.ualberta.ca PhD Student http://www.cs.ualberta.ca/~pfiguero University of Alberta Relax ... God is in charge ------------------------------------------- > Greetings! > > I see that no one was brave enough to accept my challenge to > describe your favorite interaction technique. So, I thought > I would give it a shot. Here's a description of the Go-Go technique > (only the selection part, not manipulation). > > Remember that my goal here is for this to be understandable, > yet precise. > > --------------------------------------------------------------------- > // declarations and definitions > constant GOGOTHRESHOLD = 0.3 meters; > > object headTracker; > object handTracker; > object virtualHand; > object selectableObjects[N]; > > 3Dpoint headPosition; > 3Dpoint handPosition; > 3Dpoint virtualHandPosition; > 3Dpoint torsoPoint; > > float virtualHandDistance; > vector virtualHandVector; > > // all of this should happen before every frame is rendered > headPosition = world coord. position of headTracker; > handPosition = world coord. position of handTracker; > > // assuming y is the vertical axis > torsoPoint = (headPosition.x, headPosition.y - 0.5, headPosition.z) > > if(distance(torsoPoint, handPosition) <= GOGOTHRESHOLD) > then virtualHandPosition = handPosition; > move(virtualHand, virtualHandPosition); > > else > virtualHandDistance = GoGoFunction(distance(torsoPoint, handPosition)); > virtualHandVector = handPosition - torsoPoint; > normalize(virtualHandVector); > virtualHandPosition = torsoPoint + (virtualHandVector * > virtualHandDistance); > move(virtualHand, virtualHandPosition); > > for i from 0 to N > if(highlighted(selectableObjects[i]) > unhighlight(selectableObjects[i]); > if(intersects(boundingBox(virtualHand), boundingBox(selectableObjects[i])) > highlight(selectableObjects[i]); > --------------------------------------------------------------------- > Thoughts and comments are welcome. Is this a good level of description? > What's missing? What details are irrelevant? I didn't include many > comments on purpose so that you could see if the description itself is > understandable. > > Best, > Doug > > -- > Doug A. Bowman, Ph.D. (540) 231-7537 > Assistant Professor bowman@vt.edu > Computer Science www.cs.vt.edu/~bowman/ > Virginia Tech >