Functional Prototype II

Here is the list of items we set out to complete after Functional Protytpe I.

  1. Add gesture to control speed
  2. Add “rescue” and start/stop control gestures
  3. Improve visual feedback
  4. Twitter
  5. Provide context information
  6. Design a proper interface/layout
  7. Create gesture to “look up/down”
  8. Create gesture to adjust altitude (aka FLYING!)
  9. Allow exploration of “cool” places (i.e. Mars, Moon)

1. Speed Control

We included a faster speed for walking, so if users take a slightly larger step forward they can walk faster when they need to cover a larger distance in a short amount of time.

Shoulder Turning Granularity
We considered mixing the arm turning and shoulder turning so that shoulders mapped to smaller turns and arms mapped to larger degree turns, but decided that an additional gesture would add too much complexity. Instead, we focused on shoulders. We included the turning granularity so that the turning speed corresponds to the degree that the user’s shoulders are turned.

2. Rescue/Start/Stop

We haven’t yet incorporated a help menu/tutorial or an method for users to start/stop/relocate. We did manage to hardcode starting locations to San Francisco and Paris but they are currently not integrated to work with users’ gestures. Our big issue was creating a startup screen/menu from which users could choose a destination, etc. We embedded a browser into WPF and wanted the Google Earth browser to fill up the entire screen, but because of that, we were unable to display any other items on the screen unless it was from the Javascript side. Without visual feedback, we did not want to add additional gestures for users to have to learn and remember.

3/5/6. Visual Feedback/Location Context/GUI

We iterated through a couple UI screens. For user testing we used the border to indicate what direction the user is walking. For example, when walking forward, the top border highlighted. We also had a mini window to the side for video feedback. Then we got rid of the borders in favor of filling the entire screen with Google Earth view. We replaced the border indicator by overlaying a navigational icon in the bottom left-hand corner of the screen. The icon arrows light up depending on the direction the user is moving. Up/down indicate forward/back and left/right indicate left and right turns. Also, we added a banner with location text along the bottom border to show the user where he/she is (i.e. San Francisco).

4. Twitter


We integrated the birdwatcher gesture with twitter. We currently aren’t pulling real tweets yet. We changed the icon to display a blue twitter bird instead of the default yellow pin. When the gesture is activated (arm up), the tweets appear. When not activated (arm down), the tweets disappear.

7. Look up/down

The need to enable tilting the camera view up and down seemed obvious for recreating an explorable world. However, detecting head rotation proved more difficult than we thought. Of course, once other features are completed, this would definitely be a problem we’d like to revisit.

8. JetPack Flying

Implemented a “jetpack” gesture to simulate flying. The speed at which you go up increases as the user’s altitude level increases. The user currently cannot hover in midair, and automatically falls back to earth, with a smooth landing. Next we would like to add the option of hovering and navigating in the air.

Update: We refined jetpack mode! It now includes audio feedback by playing back a jetpack sound while a user is in the air. Users can hover and navigate forward/back/left/right. The forward speed in the air was adjust to be faster, as we discovered during testing that the default walking speed turned out to be visually too slow at higher altitudes. We added an icon to display when jetpack mode is activated as well.

9. Explore Cool Places

We thought this was a cool idea. Possible existing places in Google Earth to visit are Disneyland. As for places like Mars, the Moon, or Middle Earth, we’ll have to wait until models of these are built before we could include them into our application.