VR tech 411 : 6DoF, XYZ + YPR, position + orientation in 3space

I’ve spent so many cycles describing this gesturally to so many people, I’m considering getting this tattooed on my chest. To avert that, here is the diagram, liberally adapted, corrected, and upgraded from the Oculus Developer Guide:

We present to you, the standard coordinate 3-space system:

dSky-Oculus-XYZ-YPR position orientation diagram

POSITION is listed as a set of coordinates :

  • X is left / right
  • Y is up / down
  • Z is forward / back

ORIENTATION is represented as a quaternion* (later). Simply:

  • Pitch is leaning forward / back (X axis rotation)
  • Yaw is rotating left / right (Y axis rotation / compass orientation)
  • Roll is spinning clockwise / counterclockwise (Z axis rotation)

Now there, all clear. You’re welcome.


 

Further clarifications:

* a quaternion is a very special (and generally non-human readable) way of representing 3-dimensional orientation reference as a 4-dimensional number (X, Y, Z, W) in order to correct for strange behaviours encountered when rotating 3d objects.

* 6DoF is an acronym for “six degrees of freedom”. It is generally used in talking about input devices which allow a user to control position and orientation simultaneously, such as head trackers, playstation Moves, razer Hydras, Sixense STEMs, etc.

 

first flights : lessons learned

Flying : Major accomplishments, and major lessons learned.

dSky VR : under the GGB!

dSky VR : under the GGB!

The good news : we got Flying Adventure working in the Rift, and let me tell you : flying under the Golden Gate Bridge, through volumetric clouds, at 70mph about 3′ above deck… a total rush. I flew in and around the city for about 30 minutes, totally absorbed, free, in bliss. Further, there was a palpably sublime moment when, flying across the surface of the water at speed, I looked down and saw something on the face of the waves: it was my avatar’s reflection, distorted in real time. Spine tingling.

whats that on the face of the water? me, as avatar

whats that reflected on the face of the water? me, as avatar

The bad news : humans and birds are not at all built the same. We first modelled the simulation so that a human flyer would be belly down, in a sort of yoga cobra position, abs engaged. The challenge is : while a birds eyes are on the *sides* of its head, and its head is naturally aligned for the bird to view forward while prone… a human’s eyes are on the *front* of our heads; and while prone, we are naturally looking downward. thus, if we are using “natural” forward propulsion, as one might imagine superman or ironman doing, we humans are forced to *seriously* arc our necks back in order to see “forward” towards where we are headed, and to more naturally navigate our flying world.

Human neck : natural downward articulation while flying | avian neck : natural forward orientation

Human neck : natural downward articulation | avian neck : natural forward orientation

human v. eagle : very different animals.

human v. eagle : very different animals.

The consequence : after 30 minutes of flying, my neck really hurts… and that’s coming from a trained acrobat, supposedly used to such contortions.

Fast conclusion: we are fast coming full circle to Palmer Luckey’s assertion that “present-day VR is a seated experience”. Going to start exploring alternate methods of navigation metaphors, including:

  • levitating chair, a la Professor X
  • cockpit, a la an F-18
  • saddle riding, a la How to Train Your Dragon
quite possibly the best way to fly

quite possibly the best way to fly : on a saddle, atop a trained giant eagle.

  • we also might simply try rotating the camera 90° up
    relative to the avatar body :)

Until our next post, enjoy the screenshots.

flyin

Click here for downloadable demo.

 

 

we made it: your avatar awaits…

Well, its been a hard month of headbanging on the issue of inverse kinematics, first person head cameras, and 1:1 perfect hand calibration.

And today, we made it:

head-and-hands-finally

As with many things, it took going back to square one.

Instead of trying and continually failing to integrate multi-player full avatar control + keyboard + mouse + gamepad + oculus + hydra all at once into our working game prototype, we created a barebones scene:

1 avatar, 1 wall, 1 light.

simple avatar solve

And went about tracking heads and hands, and making the avatar move along with the inputs. Finally, late tonight, everything came together, and we got it working. Thank the VR Gods. Now onto more important things. Like eating, drinking, sleeping, and… yes, that.