Places, Everyone!

Related to the URL addressing concepts discussed here, there is the question of how to denote places within a 3D world. I really like having names for these.

A typically engineering way to map out locations in a model is with coordinates. There are a couple of problems with this.

Numbers are generally pretty meaningless to users. I hate dealing in part numbers or account numbers rather than product and account names. Numbers just aren’t as mnemonic as a single name, and in 3D it takes a lot of numbers (six numbers of several decimal positions each) to describe the position and orientation you need to be in so that you can see something of interest.

Worse, a position and orientation are only interesting because of the things you can see and do there. If those things change (e.g., move, rotate, or change size), the coordinates for you to work with them are then different. We’re also interested in doing things in cooperation with other people. While it is true that unlike the physical world, several avatars can be in the same place, it is often cognitively and socially nicer to position a group of people around some item of interest rather than stacked up on top of each other.

Our client architect Brad Fowlow has led the development of several ways to address this by interactively or automatically creating a rather sophisticated set of named places from within-world.

Start with the idea of bookmarks. In a Web browser, you can use a menu to record your current Web page, optionally giving it a title. This is often fine for a whole page, but tends to fall apart for a place within the page. If you want to record a place that you scrolled to partway down the page, you’re out of luck. Only if the page author provided named places within the page and you happen to have followed some link to put you there, then that specific place within the page is recorded. In our virtual worlds we have a menu item to name the precise place (and orientation) where you are now, however you got there. You are prompted for a title and that text appears in the collapsible list of named places that appears at the side of the viewing window. Since we’re all about collaboration, these names are automatically shared with everyone else in the space, instantly appearing in everyone’s list of places for this space. Because our application is specifically for working with invited colleagues, it makes sense to automatically share such places with everyone in the space. There’s no need for private bookmarks, thus removing a whole layer of potential complexity and empowering users with some real learn-from-others convenience. Many users don’t drive around at all in our Forums, but simply click on the different named places that others have created. You can even tab from one place to the next, cycling through the named places. It’s convenient and kind of fun, because you don’t just zap to the next place, but rather get a quick animated journey from where you are to where you’re going. The effect gives you the same sense of continuity and context as Jeff Raskin’s Zooming User Interface. (A side benefit of everything being in 3D.)

We also reify such places with little yellow 3D wedges at your feet. The token appears in the space when you use the menu to “Name this Place”, and most people don’t even notice it. But since the token is an object in the shared space, any user can move it to a better location. Clicking on the name in the Places list brings you to wherever the little wedge has been moved to. Also, if you see one of these little wedges from across the room, you can mouse over it to see what that place is called, and click on it to zoom you to that place and orientation.

Signs are a related idea. Instead of using a menu to name a place, you use one to create a sign. Again your are prompted for text, but instead of creating a little yellow wedge at your feet, a sign is generated which you can drag onto whatever surface you need it on. (You can then drag pictures onto the sign to decorate it if you want.) Again, the name appears in the list of places so that you can click on them or tab through them. But there’s a subtle new thing here: instead of ending up standing on top of the marker at the place, you end up facing the sign so that you can see whatever the sign is on. Whatever surface the sign is placed on, the system knows that it is dealing with a sign and places you so that you are on the ground in front of the sign, facing it. If the sign is made bigger or smaller, zooming to that named place positions you farther or closer from the resized sign as appropriate.

We have other objects that define how the observer should be positioned relative to those objects as places. For example, when a table is made a place and several people click on that place to go to the table, the people are automatically positioned around the table so that they can see each other.

Much of the work in our spaces is centered on live documents that appear on virtual big-screen media displays within the space. As each document is placed on one of these panels, the name of the document automatically appears in the named places list of everyone in the space. Clicking on one of these places positions you in front of the panel so that you can see it, with your distance dependent on the size of the panel, and your height dependent on the vertical placement of the panel (e.g., at a desk, on a wall, or up on a library mezzanine). If several people click on the same panel, they are arrayed in a shallow semi-circle opposite the panel.

This sophisticated notion of named place has a transitive property. If I’m just standing around in the middle of a space and you choose to go to me as a named place, you are zoomed so that we face each other. But if I am at a one of these named places and you choose to go to me as a place, you end at the same place as me as though you had gotten there by doing what I did to get there. For example, suppose I’m working on some document and you contact me from a different world via text chat. You decide that you want to see what I’m doing and press the button to “go to” me. You end up positioned at the same document, ready to work.

About Stearns

Howard Stearns works at High Fidelity, Inc., creating the metaverse. Mr. Stearns has a quarter century experience in systems engineering, applications consulting, and management of advanced software technologies. He was the technical lead of University of Wisconsin's Croquet project, an ambitious project convened by computing pioneer Alan Kay to transform collaboration through 3D graphics and real-time, persistent shared spaces. The CAD integration products Mr. Stearns created for expert system pioneer ICAD set the market standard through IPO and acquisition by Oracle. The embedded systems he wrote helped transform the industrial diamond market. In the early 2000s, Mr. Stearns was named Technology Strategist for Curl, the only startup founded by WWW pioneer Tim Berners-Lee. An expert on programming languages and operating systems, Mr. Stearns created the Eclipse commercial Common Lisp programming implementation. Mr. Stearns has two degrees from M.I.T., and has directed family businesses in early childhood education and publishing.

One Comment

  1. Good reporting on the issues and solutions to in world problems.

Comments are closed