From mconway@microsoft.com Fri May 1 18:05:43 1998 Received: from burdell.cc.gatech.edu (root@burdell.cc.gatech.edu [130.207.3.207]) by lennon.cc.gatech.edu (8.8.4/8.6.9) with ESMTP id SAA21157 for ; Fri, 1 May 1998 18:05:41 -0400 (EDT) Received: from wheaten.hitl.washington.edu (4VJnxBRzW46RkMSZSdI2F0Vn8iLUikpm@[128.95.73.60]) by burdell.cc.gatech.edu (8.8.4/8.6.9) with ESMTP id SAA17380 for ; Fri, 1 May 1998 18:05:40 -0400 (EDT) Received: from mail5.microsoft.com (mail5.microsoft.com [131.107.3.31]) by wheaten.hitl.washington.edu (8.8.8/8.6.12) with ESMTP id PAA28926 for <3d-ui@hitl.washington.edu>; Fri, 1 May 1998 15:05:36 -0700 (PDT) Received: by INET-05-IMC with Internet Mail Service (5.5.1960.3) id ; Fri, 1 May 1998 15:05:25 -0700 Message-ID: <4FD6422BE942D111908D00805F3158DF05B2665E@red-msg-52.dns.microsoft.com> From: Matt Conway To: "'3d-ui@hitl.washington.edu'" <3d-ui@hitl.washington.edu> Subject: RE: Interaction technique idea Date: Fri, 1 May 1998 15:05:17 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.1960.3) Content-Type: text/plain; charset="iso-8859-1" Status: RO -----Original Message----- From: Jeff Pierce [mailto:jpierce@cs.cmu.edu] Sent: Friday, May 01, 1998 2:57 PM To: Subject: RE: Interaction technique idea At 12:49 PM 5/1/98 -0700, Matt Conway wrote: >I like this idea - though I suspect that in some cases, you might actually >get three modes in some limited cases by considering the case of an object >that gets grabbed with both hands at the same time. (Cracking an egg?) You mean you can't crack eggs one-handed? ;) Of course I can. You use your forehead, right? =) >Perhaps this idea generalizes to the idea of objects and the tools that >hold them (ick, that sounds like a Jerry Springer episode). This sort of thing gets sticky really fast. One thing I like about using the hand (NDH vs. DH) to determine mode is that there's a fairly straightforward implementation: whenever you reparent an object to the hand, you check the object for hooks and run any attached functions. Then you do the same thing when you unparent. Although come to think of it, this does technically scale because you can use these hooks for _any_ reparent. Of course, then you have to start trying to figure out exactly which object the user is trying to reparent to (did you want that on the table or in the vise?). Ugh. If the system can't tell the difference between putting something down on a table and placing it in a vice, I'd say you've got bigger problems, right? Although this does remind me of another point: has anyone found a 3D authoring system that uses the notion of object prototypes? Lots of simulation systems use prototypes - the Self system comes to mind as the most prominent. It isn't 3D of course, but it is a programming system that is largely concerned with objects and behaviors, so I think all the principles still apply. Nothing really 3D-specific is going on here, or am I confused (as usual). Ask Brad Meyers about prototype-instance systems. He loves em to death. I think most of his Garnet/Amulet/Gemstone systems use this object model. I'm sure he can give you pointers. Ex. I create a bunny and define "hopping" and "banging the drum" behaviors for him. Now I want to declare that bunny (his geometry, texture, and behaviors) to be a prototype, so that I can then create instances of him at will. This allows me to do nice things like reuse characters (rather than code - only an engineer would rather reuse code than characters ;) between worlds, or send my characters to you so that you can plug them into your worlds. Jeff