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.

 

dynamic audio : wind in your hair

When we design spaces, we want our worlds to be *alive*.

A key component of this sense of vitality is dynamic audio. In a nutshell, dynamic audio is physics-based, player-generative audio signals. The two challenges we are working on are:

1. the sound of the lightsaber as the player swooshes it around them in the environment. buzzzzzzz…. hmmmmm… zap! Obviously, this is dynamic, based on the velocity and acceleration of the ‘blade’.

dsky sceneplay lightsaber ultimate

2. the sound of wind in the player’s hair as they fly high above the city… modulated by airspeed, gusts, and hopefully, near-miss-objects.

_dsky-real-flying-SF

Programming Sound with Pure Data

Solution? Hard work, creative sample bases, and sweet code. I’ve found this awesome resource: Programming Sound with Pure Data, by Tony Hillerson.

 

Can’t wait!

Stay tuned…

 

PS – here’s a little extra on the actual components of the original lightsaber sounds, circa 1977: doppler microphone swinging :)

 

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.

 

 

meanwhile, back at the ranch…

DT and I, fresh back from a great demo of the StarWars ‘ractive to Sixense in SF, are now branching the dev base. ScenePlay SWEp4 continues… FlyingAdventure begins.

Iron_Man_Flight

We’ll let you decide which film flying model we will best embody. Here are the theatrical flying scenes which inspire us most… click the links to play the movieclips:

So… Which flying model would you prefer to embody?

Comment below with your choice.