From: owner-3dui@hitl.washington.edu on behalf of Jeff Pierce [jpierce@cs.cmu.edu] Sent: Thursday, August 10, 2000 8:37 PM To: 3d-ui@hitl.washington.edu Subject: Topic: dynamically creating (copies of) objects Hey gang, it's been awhile since we had a good discussion on the list, so I thought I'd propose a topic and mention some of my thinking to see if we can get a discussion going. Topic ----- How to take advantage of the ability of computers to dynamically create new objects and copy existing objects Background ---------- Consider the fact that one of the things computers do really well is create copies (witness the controversy over Napster and DeCSS). However, in 3D worlds we rarely take advantage of this capability; we tend to implicitly follow the real world stricture that objects cannot be created or destroyed on demand. I believe that as a result we're missing out on some potentially interesting interaction techniques. Questions --------- 1) My research group has developed several techniques that employ multiple copies of objects (e.g. the Worlds in Miniature and Voodoo Dolls techniques). Have you or your research group experimented with any techniques (especially unpublished techniques) that do the same? If so, what were your experiences with the techniques? 2) What kinds of problems in VR do you think we could address using this approach? What new capabilities we could give the user, or how could we improve the user experience? My $0.02 -------- I've found that the theme of dynamically creating objects and copies of objects has come up a number of times while generating interaction technique ideas for my thesis. I'll start with the general themes I've noticed, and then include some of the technique ideas to help get discussion started. A few general themes - If an object is distant, a copy closer to the user can be easier to work with whie still allowing the user to view the object in context - Voodoo Dolls, WIM - copies can be useful for tentative results, i.e. the original and modified states co-exist until the user chooses which one to keep (contrast this with "regular" undo where states only exist sequentially, so in order to undo the user must remember the previous states) - when the user moves an object it could leave behind a transparent copy of itself; selecting the transparent copy would return the object to that location - copies can allow the user to work with objects locally without needing to explicitly move or replace the original object - a user could "retrieve" an object to manipulate its parts (e.g. changing the position of a bunny's arms) without having to restore the object if the system creates a copy for him to hold rather than moving the original - copies can be used for "user assisted disambiguation"; when the user does something ambiguous the system can present copies of objects representing the different possible interpretations and let the user choose one ( - consider Joe LaViola's system for adding objects: when the user says "chair" the system could present him with copies of all the possible chairs and let him choose one (allowing the user to view the candidates in parallel rather than serially) Ok, so moving on to some potential interaction techniques. (1) Problem: The selection techniques we've currently got don't work well for selecting occluded objects. For example, you can get your hands on an occluded object using the context of a voodoo doll, but that only works if the occluded object is actually included on the object. Technique: When the user points toward the desired object we can create copies of the objects along that vector and arrange them along that vector within the user's reach. The user could then reach out with his other hand and touch the desired object. (2) Problem: Selecting small/distant and occluded objects on the desktop is extremely hard. Ever tried to grab a really small object on your desktop with the mouse? It can be a serious pain. Technique: If the user asks for help the system could create copies of objects that project onto the view plane near the mouse, move them closer to the user, and then arrange them around the mouse cursor in the view plane (making them larger targets for selection, and exposing occluded objects). (3) Problem: Currently we provide fairly weak feedback as to which object the user will get when they select, particularly for distant objects. Imagine trying to determine which book on a distant bookshelf you would select by trying to see which book your ray or crosshair intersects (for ray casting or image plane selection), or by trying to see a distant bounding box. Technique: Create a transparent copy of the potential selection target and place it in the user's hand. For a technique like Voodoo Dolls, when the user selects you can just turn the transparent copy opaque. This also makes it easier for users to select occluded or partially occluded objects, or objects that lie beyond the clipping plane. (4) Problem: Image plane navigation techniques and the navigation variant of HOMER really only work when there is a target that users can select and pull themselves to. Similarly, point of interest navigation on the desktop requires a point of interest to move to. Technique: If the user tries to select a target and doesn't hit one, create one for them. For example, if the user aims above the horizon in a particular direction and tries to select, create a target there at some pre-determined distance. The user can then pull themselves to this target in constant time. (5) Problem: Rendering N views of an object effectively divides the maximum frame rate by 1/N. Technique: Instead the system could create N copies of the object, and arrange the copies in front of the user to provide different views. These copies could also provide different constraints for manipulating the object. For example, a top down view of the object could be constrained to move the original left/right and forward/back in the scene. Instead of activating different constraints on the same object, the user would then just choose which constrained copy to pick up. (6) Problem: Techniques for transporting objects (e.g. Fix and Float, Cut and Paste, Toolspaces and Glances) require that users determine in advance which objects they will need in another location (a task we aren't always very good at). Technique: The system could create a copy of any object that we ever walk within 20 meters of. We could then access those copies later to retrieve an object we realize later we need. If the system preserves the spatial arrangement of these copies, they could also provide a means of returning to previously visited locations (a la flying into the WIM). (7) Problem: Most systems for multi-user worlds unnecessarily restrict operations on objects so that only one user can be working with an object at a time. However, in a virtual world there is no reason that one user couldn't be painting an object while another user is repositioning it. Technique: Create copies of an object on demand so that multiple users can work with it, and lock the object by operation (e.g. painting, positioning, manipulating limb positions, etc). (8) Problem: Precise placement is difficult and time consuming in virtual worlds. Approaches like gridding may unnecessarily restrict the locations where users can place objects. Technique: While the user is moving an object the system can attempt to infer potential resting places and create copies at those locations. The user can drop the the object and touch a copy to cause the placement. This allows the system to suggest possible placements rather than enforcing a particular one. Ok, hopefully that'll get the discussion ball rolling. Thoughts/feelings/reactions? Jeff