HEAD-MOUNTED DISPLAY FOR NAVIGATING VIRTUAL AND AUGMENTED REALITY
20220146841 · 2022-05-12
Inventors
- Eric Justin Gould Bear (Austin, TX, US)
- Rachel M. Strickland (San Francisco, CA)
- Jim McKee (San Francisco, CA, US)
Cpc classification
G06F1/1694
PHYSICS
H04N7/147
ELECTRICITY
H04N21/41407
ELECTRICITY
A63F13/92
HUMAN NECESSITIES
G06F3/011
PHYSICS
G06F2200/1637
PHYSICS
H04N7/157
ELECTRICITY
G06F3/167
PHYSICS
G05D1/0094
PHYSICS
H04N21/4316
ELECTRICITY
A63F13/213
HUMAN NECESSITIES
H04N7/142
ELECTRICITY
G06F3/165
PHYSICS
A63F13/235
HUMAN NECESSITIES
A63F13/428
HUMAN NECESSITIES
G06F3/0346
PHYSICS
H04N21/42202
ELECTRICITY
G02B27/0179
PHYSICS
G05D1/0038
PHYSICS
A63F13/803
HUMAN NECESSITIES
H04N21/42224
ELECTRICITY
A63F13/00
HUMAN NECESSITIES
H04N23/66
ELECTRICITY
G06F3/04815
PHYSICS
H04N21/8106
ELECTRICITY
A63F13/5255
HUMAN NECESSITIES
A63F13/211
HUMAN NECESSITIES
G06F1/1626
PHYSICS
H04N21/4312
ELECTRICITY
International classification
Abstract
Locomotion-based motion sickness has long been a complaint amongst virtual reality gamers and drone pilots. Traditional head-mounted display experiences require a handheld controller (e.g. thumbstick, touchpad, gamepad, keyboard, etc.) for locomotion. Teleportation compromises immersive presence and smooth navigation leads to sensory imbalances that can cause dizziness and nausea (even when using room-scale sensor systems). Designers have therefore had to choose between comfort and immersion. The invention is a hands-free, body-based navigation technology that puts the participant's body in direct control of movement through virtual space. Participants lean forward to advance in space; lean back to reverse; tip left or right to strafe/sidestep; and rotate to look around. In some embodiments, the more a participant leans, the faster they go. Because the interactions were designed to respond to natural bearing and balancing instincts, movement coordination is intuitive and vection-based cybersickness is reduced.
Claims
1. A system for minimizing a person's discomfort whilst navigating a collection of visually displayable digital objects, comprising: a head-mounted display (HMD) device configured to visually display one or more digital objects to a person wearing the HMD device, the HMD device being associated with one or more microprocessors and one or more sensors, wherein the HMD device, in combination with the microprocessors and sensors, is configured to cause at least one of the objects to: increase in size when the person leans towards the object; and decrease in size when the person leans away from the object.
2. The system of claim 1, wherein the HMD device is configured to vary the object's displayed size in response to a lean angle of the person.
3. The system of claim 2, wherein the HMD device is configured to cause the object to increase in display size at a faster rate as the person leans at a greater angle towards the object.
4. The system of claim 3, wherein the object's increased display size causes the object to appear closer to the person.
5. The system of claim 2, wherein the HMD device is configured cause the object to decrease in display size at a faster rate as the person leans at a greater angle away from the object.
6. The system of claim 5, wherein the object's decreased display size causes the object to appear further away from the person.
7. The system of claim 2, wherein the HMD device is configured to cause the object to maintain its apparent size when the person leans towards the object past a specified threshold lean angle.
8. The system of claim 2, wherein the HMD device is configured to cause the object to maintain its apparent size when the person leans away from the object past a specified threshold lean angle.
9. The system of claim 2, wherein the one or more digital objects are displayed in a virtual environment.
10. The system of claim 2, wherein the one or more digital objects are displayed as an overlay to a person's view of their physical environment.
11. A method for minimizing a person's discomfort whilst navigating a collection of visually displayable digital objects, comprising: visually displaying, by a computer processor associated with one or more sensors, one or more digital objects to a person wearing a head-mounted display (HMD) device; and causing, by the computer processor, at least one of the objects to: increase in size when the person leans towards the object; and decrease in size when the person leans away from the object.
12. The method of claim 11, further comprising varying, by the computer processor, the object's displayed size in response to a lean angle of the person.
13. The method of claim 12, further comprising causing the object to increase in display size at a faster rate as the person leans at a greater angle towards the object.
14. The method of claim 13, wherein the object's increased display size causes the object to appear closer to the person.
15. The method of claim 12, further comprising causing the object to decrease in display size at a faster rate as the person leans at a greater angle away from the object.
16. The method of claim 15, wherein the object's decreased display size causes the object to appear further away from the person.
17. The method of claim 12, further comprising maintaining an apparent size of the object when the person leans towards the object past a specified threshold lean angle.
18. The method of claim 12, further comprising maintaining an apparent size of the object when the person leans away from the object past a specified threshold lean angle.
19. The method of claim 12, further comprising displaying the one or more digital objects in a virtual environment.
20. The method of claim 12, further comprising displaying the one or more digital objects as an overlay to a person's view of their physical environment.
21. One or more statutory computer readable storage media (CRM) comprising instructions that, when executed by a computer associated with a head-mounted display (HMD) device and one or more sensors, are capable of visually displaying a collection of digital objects to a person and causing at least one of the objects to: increase in size when the person leans towards the object; and decrease in size when the person leans away from the object.
22. The CRM of claim 21, wherein the instructions are capable of varying the object's displayed size in response to a lean angle of the person.
23. The CRM of claim 22, wherein the instructions are capable of causing the object to increase in display size at a faster rate as the person leans at a great angle towards the object.
24. The CRM of claim 23, wherein the object's increased display size causes the object to appear closer to the person.
25. The CRM of claim 22, wherein the instructions are capable of causing the object to decrease in display size at a faster rate as the person leans at a greater angle away from the object.
26. The CRM of claim 25, wherein the object's decreased display size causes the object to appear further away from the person.
27. The CRM of claim 22, wherein the instructions are capable of causing the object to maintain its apparent size when the person leans towards the object past a specified threshold lean angle.
28. The CRM of claim 22, wherein the instructions are capable of causing the object to maintain its apparent size when the person leans away from the object past a specified threshold lean angle.
29. The CRM of claim 22, wherein the instructions are capable of causing the one or more digital objects to be displayed in a virtual environment.
30. The CRM of claim 22, wherein the instructions are capable of causing the one or more digital objects to be displayed as an overlay to a person's view of their physical environment.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
[0120]
[0121]
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]
[0139]
[0140]
[0141]
[0142]
[0143] Like reference numerals in the various drawings indicate like elements. And as described above, like reference numerals apply to all like elements in the drawings including those like elements absent reference numeral indicia in a given view.
DETAILED DESCRIPTION
[0144] The present invention comprises techniques for using, and configuring for use, a handheld computing device with simple human body “language” integrating ordinary locomotion, orientation and stabilization gestures to navigate and explore polylinear audio and video streams produced for display through multiple video panes and virtual speakers that are spatially distributed in a virtual environment of architectural scale and manifold vistas, for peripatetic discovery and perusal with proprioceptive feedback; all without the need for button, keyboard, joystick or touchscreen interaction.
[0145]
[0146] If building an embodiment of the invention for an Apple iOS device, designer directed engineer(s) may construct aspects of the system using Apple's Xcode developer tools [available at the time of writing in the Apple App Store] and a computer programming language such as Objective C. Xcode provides ready-to-use libraries of code that engineers may use in building embodiments of the invention, with application programming interfaces (each an “API”) to those code libraries. Apple provides a wealth of technical resources on developing apps for iOS devices on the iOS Dev Center [at the time of writing via http://developer.apple.com/]. Apple's online iOS Developer Library includes getting started guides, sample code, technical notes, articles and training videos.
Virtual Environment
[0147]
[0148]
[0149] Such a VE may be built using an OpenGL API such as OpenGL ES version 2.0. Techniques for 3D engineering are taught in books such as Beginning iPhone Games Development by Peter Bakhirev, P J Cabrera, Ian Marsh, Scott Penberthy, Ben Britten Smith and Eric Wing [Apress, 2010].
[0150] Video may be built into a VE by texture mapping frames of video during playback onto an object surface in the VE. Code libraries by Dr. Gerard Allan for texturing of streamed movies using OpenGL on iOS are available from Predictions Software Ltd [at the time of writing via http://www.predictions-software.com/], including APIs to features engineered in support of instantiation of preferred embodiments of the present invention.
[0151] A single movie file may be used as a texture atlas for multiple synchronized video panes in a VE. To accomplish this, a portion of each video frame (e.g. a top-left quadrant, a top-right quadrant, a bottom-left quadrant or a bottom-right quadrant) may be texture mapped to a separate video pane in the VE. By dividing each video frame into four regions, only one movie file need be streamed at a time to produce a polylinear video experience comprising four unique video panes.
[0152] This technique theoretically improves responsiveness to participant interaction by reducing processor load and increasing rendering speed.
[0153] An OpenAL API may be used for building 3D spatialized audio into a VE. Techniques for buffering and spatializing streamed audio files are taught in books such as Learning Core Audio: A Hands-On Guide to Audio Programming for Mac and iOS by Chris Adamson and Kevin Avila [Addison-Wesley Professional, 2012]. The OpenAL 1.1 specification and programmers guide is available from Creative Labs, Inc. [at the time of writing via http://connect.creativelabs.com/openal/].
[0154] OpenAL enables a designer to specify the location of each virtual speaker in the VE, the direction the virtual speaker is facing in the VE, a roll-off factor (i.e. the attenuation range of a virtual speaker), a reference distance (i.e. the distance that a virtual speaker's volume would normally fall by half), a maximum distance (i.e. the distance at which the virtual speaker becomes completely inaudible) and other parameters. OpenAL on iOS currently supports production of up to 32 tracks of simultaneously playing sounds, all ultimately rendered down to a left-to-right stereo mix.
Device Posture & Motion
[0155]
[0156] In one preferred embodiment, the pivot down origin is preset at Δ25° pivoted down from vertical and the pivot down neutral zone threshold is preset at Δ10° from the origin. Pivot down origin preference, however, varies from participant to participant. Some prefer to look down at a device; others prefer to hold the device up high with arms outstretched. In an alternate preferred embodiment, the pivot down origin is established on the fly by identifying the average resting posture of the device for a given participant during app launch. Origins and neutral zone thresholds may also be set and/or calibrated, individually or en masse, by participants in a preferences panel. For clarity's sake, pivot down neutral zones are not limited to any particular device posture ranges and may be established, for example, near an origin at or near the bottom of a device's pivot down range. Furthermore, there is no limit to the number of neutral zones that may be employed in a single embodiment.
[0157] X-axisometer data may be derived, for example, from an iOS UI Accelerometer object data feed. Apple's Accelerometer Filter sample code implements a low and high pass filter with optional adaptive filtering. This readily adoptable code smooths out raw accelerometer data, which can then be converted to an angular value. Apple, Google, Microsoft and other device platform manufacturers also provide sensor fusion algorithm APIs, which can be programmatically employed to smooth out the stream of sensor data. Apple's Core Motion API uses gyroscope data to smooth out accelerometer data, providing interpolation and fine grain corrections for x-axisometer data free from delayed response and drift.
[0158] In certain preferred embodiments, when the device is held perpendicular to the physical ground—the pivot down origin in certain preferred embodiments—then the virtual camera view is established parallel with the virtual ground in the VE, as if looking straight ahead. When the device is pivoted down from the pivot down origin, then the virtual camera is rotated around the virtual camera's x-axis to moderately drop the vertical center of the virtual camera closer to the virtual ground, as if the participant dropped their gaze slightly downward. The adjusted angle of the virtual camera need not have a 1:1 correlation with the posture of the device. In a preferred embodiment, the degree of vertical drop of the virtual camera view is dampened in comparison to the degree of pivot down by a factor of five. For every Δ1° of pivot down, the camera view is angled down by Δ0.2°. This provides sufficient feedback for the participant to maintain awareness of their movement of the device while softening that feedback enough to avoid distraction. In certain preferred embodiments, the degree of angle down of the virtual camera view is capped at a maximum drop of Δ10° down from straight ahead to stabilize the participant experience while the virtual camera is changing position.
[0159]
[0160] In one preferred embodiment, the pivot up origin is preset at Δ25° pivoted up from vertical and the pivot up neutral zone threshold is preset at Δ10° from the origin. Pivot up origin preference, however, varies from participant to participant. Some prefer to look down at a device; others prefer to hold the device up high with arms outstretched. In an alternate preferred embodiment, the pivot up origin is established on the fly by identifying the average resting posture of the device for a given participant during app launch. Origins and neutral zone thresholds may also be set and/or calibrated, individually or en masse, by participants in a preferences panel. For clarity's sake, pivot up neutral zones are not limited to any particular device posture ranges and may be established, for example, near an origin at or near the top of a device's pivot up range. Furthermore, there is no limit to the number of neutral zones that may be employed in a single embodiment.
[0161] In certain preferred embodiments, when the device is held perpendicular to the physical ground—the pivot down origin in certain preferred embodiments—then the virtual camera view is established parallel with the virtual ground in the VE, as if looking straight ahead. When the device is pivoted up from the pivot up origin, then the virtual camera is rotated around the virtual camera's x-axis to moderately raise the vertical center of the virtual camera away from the virtual ground, as if the participant raised their gaze slightly upward. The adjusted angle of the virtual camera need not have a 1:1 correlation with the posture of the device. In a preferred embodiment, the degree of vertical rise of the virtual camera view is dampened in comparison to the degree of pivot up by a factor of five. For every 41° of pivot up, the camera view is angled up by 40.2°. This provides sufficient feedback for the participant to maintain awareness of their movement of the device while softening that feedback enough to avoid distraction. In certain preferred embodiments, the degree of angle up of the virtual camera view is capped at a maximum rise of Δ10° up from straight ahead to stabilize the participant experience while the virtual camera is changing position.
[0162]
[0163] When the device is in a tipped up posture between vertical and horizontal, pivot left motions are difficult to humanly distinguish from tip left motions. In other words, participants intending to tip left have a tendency to pivot left at the same time. For these reasons, certain embodiments of the invention specifically avoid mapping any interaction results to y-axisometer data. Mapping of y-axisometer data to unique interaction results, when performed in the context of the present invention, must be carefully considered so as not to degrade the simplicity, ease and comfort of the participant experience.
[0164] Y-axisometer data independent of v-axisometer data may be derived, for example, from an iOS UI Accelerometer object data feed. Apple's Accelerometer Filter sample code implements a low and high pass filter with optional adaptive filtering. This readily adoptable code smooths out raw accelerometer data, which can then be converted to an angular value. Apple, Google, Microsoft and other device platform manufacturers also provide sensor fusion algorithm APIs, which can be programmatically employed to smooth out the stream of sensor data. Apple's Core Motion API uses gyroscope data to smooth out accelerometer data, providing interpolation and fine grain corrections for y-axisometer data free from delayed response and drift.
[0165]
[0166] When the device is in a tipped up posture between vertical and horizontal, pivot right motions are difficult to humanly distinguish from tip right motions. In other words, participants intending to tip right have a tendency to pivot right at the same time. For these reasons, certain embodiments of the invention specifically avoid mapping any interaction results to y-axisometer data. Mapping of y-axisometer data to unique interaction results, when performed in the context of the present invention, must be carefully considered so as not to degrade the simplicity, ease and comfort of the participant experience.
[0167]
[0168] In one preferred embodiment, the tip right origin is preset at Δ0° (i.e. vertical) and the tip right neutral zone threshold is preset at Δ10° from the origin. When it comes to left/right tip centering, level (as detected by a device) isn't necessarily the same as a person's perceived sense of level. Some people hold one shoulder higher than another, some rest their head at a slight angle, others stand square. As a result, the world is framed differently for different people. Thus, calibrating tip origin to a participant's resting position can yield more comfortable interactions because it cuts down on inadvertent input. In a preferred embodiment, the tip right origin is established on the fly by identifying the average resting posture of the device for a given participant during app launch. Origins and neutral zone thresholds may also be set and/or calibrated, individually or en masse, by participants in a preferences panel. For clarity's sake, tip right neutral zones are not limited to any particular device posture ranges and may be established, for example, near an origin at or near the far right of a device's tip right range. Furthermore, there is no limit to the number of neutral zones that may be employed in a single embodiment.
[0169] Z-axisometer data may be derived, for example, from an iOS UI Accelerometer object data feed. Apple's Accelerometer Filter sample code implements a low and high pass filter with optional adaptive filtering. This readily adoptable code smooths out raw accelerometer data, which can then be converted to an angular value. Apple, Google, Microsoft and other device platform manufacturers provide optional sensor fusion algorithm APIs, which can be programmatically employed to smooth out the stream of sensor data. Apple's Core Motion API uses gyroscope data to smooth out accelerometer data, providing interpolation and fine grain corrections for z-axisometer data free from delayed response and drift.
[0170] In certain preferred embodiments, when the device is held perpendicular to the physical ground—the tip right origin in certain preferred embodiments—then the virtual camera view is established parallel with the virtual ground in the VE, as if looking straight ahead without cocking one's head left or right. When the device is tipped right from the tip right origin, then the virtual camera is moderately rotated counter-clockwise around the virtual camera's z-axis to tip the left side of the virtual camera closer to the virtual ground, somewhat compensating for the difference between the virtual horizon and the real horizon as a result of tipping the device. The adjusted angle of the virtual camera need not have a 1:1 inverse correlation with the posture of the device. In a preferred embodiment, the degree of counter-clockwise rotation of the virtual camera view is dampened in comparison to the degree of tip right by a factor of five. For every Δ1° of tip right, the camera view is rotated counter-clockwise by Δ0.2°. This provides sufficient feedback for the participant to maintain awareness of their movement of the device while softening that feedback enough to avoid distraction. In certain preferred embodiments, the degree of counter-clockwise rotation of the virtual camera view is capped at a maximum rotation of Δ10° left from level to stabilize the participant experience while the virtual camera is changing position.
[0171]
[0172] In one preferred embodiment, the tip left origin is preset at Δ0° (i.e. vertical) and the tip left neutral zone threshold is preset at Δ10° from the origin. When it comes to left/right tip centering, level (as detected by a device) isn't necessarily the same as a person's perceived sense of level. Some people hold one shoulder higher than another, some rest their head at a slight angle, others stand square. As a result, the world is framed differently for different people. Thus, calibrating tip origin to a participant's resting position can yield more comfortable interactions because it cuts down on inadvertent input. In a preferred embodiment, the tip left origin is established on the fly by identifying the average resting posture of the device for a given participant during app launch. Origins and neutral zone thresholds may also be set and/or calibrated, individually or en masse, by participants in a preferences panel. For clarity's sake, tip left neutral zones are not limited to any particular device posture ranges and may be established, for example, near an origin at or near the far left of a device's tip left range. Furthermore, there is no limit to the number of neutral zones that may be employed in a single embodiment.
[0173] In certain preferred embodiments, when the device is held perpendicular to the physical ground—the tip left origin in certain preferred embodiments—then the virtual camera view is established parallel with the virtual ground in the VE, as if looking straight ahead without cocking one's head left or right. When the device is tipped left from the tip left origin, then the virtual camera is moderately rotated clockwise around the virtual camera's z-axis to tip the right side of the virtual camera closer to the virtual ground, somewhat compensating for the difference between the virtual horizon and the real horizon as a result of tipping the device. The adjusted angle of the virtual camera need not have a 1:1 inverse correlation with the posture of the device. In a preferred embodiment, the degree of clockwise rotation of the virtual camera view is dampened in comparison to the degree of tip left by a factor of five. For every Δ1° of tip left, the camera view is rotated clockwise by Δ0.2°. This provides sufficient feedback for the participant to maintain awareness of their movement of the device while softening that feedback enough to avoid distraction. In certain preferred embodiments, the degree of clockwise rotation of the virtual camera view is capped at a maximum rotation of Δ10° right from level to stabilize the participant experience while the virtual camera is changing position.
[0174]
[0175] A v-axisometer sensor reference data origin may be established based on the real-world compass, based on a starting position of an app, based on the resting posture of a device, or based on user preference. Using the compass as an origin enables all participants, wherever located on the planet to engage in a common audiovisual composition with components mapped to specific ordinal referents. In one preferred embodiment, content designed to be located on the east side of a VE requires all participants to aim east in the real world to access such content. Alternately, content designed to be associated with a specific location in the world could base the location of objects in the VE on the relative location of the participant in the real world to such reference location. For example, a video from Kyoto, Japan could appear on the east side of a VE for participants in North America, while on the west side of a VE for participants in China. In a videoconferencing embodiment, the v-axisometer origin may be established based on the posture of the device upon launching the videoconference app, or subsequently calibrated to match the relative configuration of conference attendees.
[0176] V-axisometer data may be derived, for example, from an iOS Core Location object data feed. Magnetic heading may be used rather than true heading to avoid usage of a GPS sensor. At the time of writing, iOS magnetometer data is limited to Δ1° resolution accuracy. To resolve visible jerkiness in perspective rendering, a preferred embodiment averages the five most recent v-axisometer data results to provide relatively smooth animation transitions between each discrete orientation reading. Apple, Google, Microsoft and other device platform manufacturers also provide sensor fusion algorithm APIs, which can be programmatically employed to smooth out the stream of sensor data. Apple's Core Motion API uses gyroscope data to smooth out magnetometer data, providing interpolation and fine grain corrections for v-axisometer data free from delayed response, drift and magnetic interference.
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183] Movements may be performed in succession (e.g. pull then push) to effect results. In certain embodiments, a pull-based movement sequence is used to jump the virtual camera to an optimal viewing location (but not necessarily optimal orientation) in relation to content in view. In certain embodiments, such a gesture both jumps the virtual camera to this optimal viewing location and engages a view lock. The view lock may be used to establish a view lock neutral zone or to extend the range of a neutral zone already in place around one or more axes of device movement.
[0184] In other preferred embodiments, a pull motion may be used to initiate video interactions ranging from basic media transport functions (such as pause, fast-forward, rewind, skip forward and skip back) to traversing links from a video to related content (whether or not such related content is video), traversing seamless expansions, engaging interactive advertisements or otherwise directing the flow of a video or the experience.
[0185]
[0186] Movements may be performed in succession (e.g. push then pull) to effect results. In certain embodiments, a push-based movement sequence is used to jump the virtual camera to an optimal viewing location (but not necessarily optimal orientation) in relation to content in view. In certain embodiments, such a gesture both jumps the virtual camera to this optimal viewing location and engages a view lock. The view lock may be used to establish a view lock neutral zone or to extend the range of a neutral zone already in place around one or more axes of device movement.
[0187] In other preferred embodiments, a push motion may be used to initiate video interactions ranging from basic media transport functions (such as pause, fast-forward, rewind, skip forward and skip back) to traversing links from a video to related content (whether or not such related content is video), traversing seamless expansions, engaging interactive advertisements or otherwise directing the flow of a video or the experience.
Interaction Sequences
[0188]
[0189]
[0190]
[0191]
[0192] In a preferred embodiment, velocity of virtual camera forward movement is related to pivot down in the following manner using the following equations. First, data about the device's x-axis rotation posture is compared against an origin to determine whether the device is pivoted down—by subtracting an origin from the raw x-axisometer data to determine relative pivot down (if any). Second, if the relative pivot down is greater than a maximum pivot down of Δ50° then the relative pivot down is set to 50°. Third, the relative pivot down is compared against a neutral zone threshold. If the relative pivot down is greater than the threshold, then the threshold is subtracted from the relative pivot down to determine active pivot down. The active pivot down value is multiplied by (−cos (((v-axisometer data)+90.0)/180.0*Pi)) to determine a basis of travel along one vector of the floor of the VE; and the active pivot down value is multiplied by (−sin (((v-axisometer data)+90.0)/180.0*Pi)) to determine a basis of travel along the other vector of the floor of the VE. These bases of travel are normalized for consistency across devices with varying processor speeds, divided by a dampening factor of 60 and then added to each of the current location point variables. If the newly calculated location is outside the bounds of the VE, then the new location is set inside the bounds of the VE.
[0193] Thus, in this embodiment, the virtual camera moves forward proportionally faster as the device is pivoted down farther from the origin.
[0194]
[0195]
[0196]
[0197]
[0198] In a preferred embodiment, velocity of virtual camera backward movement is related to pivot up in the following manner using the following equations. First, data about the device's x-axis rotation posture is compared against an origin to determine whether the device is pivoted up—by subtracting an origin from the raw x-axisometer data to determine relative pivot up (if any). Second, if the relative pivot up is greater than a maximum pivot up of 450° then the relative pivot up is set to 50°. Third, the relative pivot up is compared against a neutral zone threshold. If the relative pivot down is greater than the threshold, then the threshold is subtracted from the relative pivot down to determine active pivot up. The active pivot up value is multiplied by (−cos (((v-axisometer data)+90.0)/180.0*Pi)) to determine a basis of travel along one vector of the floor of the VE; and the active pivot up value is multiplied by (−sin (((v-axisometer data)+90.0)/180.0*Pi)) to determine a basis of travel along the other vector of the floor of the VE. These bases of travel are normalized for consistency across devices with varying processor speeds, divided by a dampening factor of 60 and then added to each of the current location point variables. If the newly calculated location is outside the bounds of the VE, then the new location is set inside the bounds of the VE.
[0199] Thus, in this embodiment, the virtual camera moves backward proportionally faster as the device is pivoted up farther from the origin.
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206]
[0207]
[0208]
[0209]
[0210]
[0211]
[0212] In a preferred embodiment of the invention, tip right of a device will not result in movement of the virtual camera if the virtual camera is currently moving forward or backward in response to pivot down or pivot up interactions. It is generally easier for participants to do one thing at a time, and such separating of pivot axes reduces the chances of accidental actuation and simplifies the overall user experience. While rightward virtual camera movement is suppressed during forward and backward movement, counter-clockwise rotation of the virtual camera to fluidly maintain the virtual horizon is not suppressed. This maintains the illusion of multidirectional control without evidencing the aforementioned suppression. For skilled 3D navigators, however, enabling movement along both axes simultaneously can provide more interaction control.
[0213] In a preferred embodiment, velocity of virtual camera movement to the right is related to tip right in the following manner using the following equations. First, data about the device's z-axis rotation posture is compared against an origin to determine whether the device is tipped right—by subtracting an origin from the raw z-axisometer data to determine relative tip right (if any). Second, if the relative tip right is greater than a maximum tip right of 50° then the relative tip right is set to 50°. Third, the relative tip right is compared against a neutral zone threshold. If the relative tip right is greater than the threshold, then the threshold is subtracted from the relative tip right to determine active tip right. The active tip right value is multiplied by (−cos (((v-axisometer data)+90.0)/180.0*Pi)) to determine a basis of travel along one vector of the floor of the VE; and the active tip right value is multiplied by (−sin (((v-axisometer data)+90.0)/180.0*Pi)) to determine a basis of travel along the other vector of the floor of the VE. These bases of travel are normalized for consistency across devices with varying processor speeds, divided by a dampening factor of 120 and then added to each of the current location point variables. If the newly calculated location is outside the bounds of the VE, then the new location is set inside the bounds of the VE.
[0214] Thus, in this embodiment, the virtual camera moves right proportionally faster as the device is tipped right farther from the origin.
[0215]
[0216]
[0217]
[0218]
[0219] In a preferred embodiment of the invention, tip left of a device will not result in movement of the virtual camera if the virtual camera is currently moving forward or backward in response to pivot down or pivot up interactions. It is generally easier for participants to do one thing at a time, and such separating of pivot axes reduces the chances of accidental actuation and simplifies the overall user experience. While leftward virtual camera movement is suppressed during forward and backward movement, clockwise rotation of the virtual camera to fluidly maintain the virtual horizon is not suppressed. This maintains the illusion of multidirectional control without evidencing the aforementioned suppression. For skilled 3D navigators, however, enabling movement along both axes simultaneously can provide more interaction control.
[0220] In a preferred embodiment, velocity of virtual camera movement to the left is related to tip left in the following manner using the following equations. First, data about the device's z-axis rotation posture is compared against an origin to determine whether the device is tipped left—by subtracting an origin from the raw z-axisometer data to determine relative tip left (if any). Second, if the relative tip left is greater than a maximum tip left of 50° then the relative tip left is set to 50°. Third, the relative tip left is compared against a neutral zone threshold. If the relative tip left is greater than the threshold, then the threshold is subtracted from the relative tip left to determine active tip left. The active tip left value is multiplied by (−cos (((v-axisometer data)+90.0)/180.0*Pi)) to determine a basis of travel along one vector of the floor of the VE; and the active tip left value is multiplied by (−sin (((v-axisometer data)+90.0)/180.0*Pi)) to determine a basis of travel along the other vector of the floor of the VE. These bases of travel are normalized for consistency across devices with varying processor speeds, divided by a dampening factor of 120 and then added to each of the current location point variables. If the newly calculated location is outside the bounds of the VE, then the new location is set inside the bounds of the VE.
[0221] Thus, in such an embodiment, the virtual camera moves left proportionally faster as the device is tipped left farther from the origin.
[0222] In a preferred embodiment of the invention, the above described interaction mappings are combined to result in a coherent gestalt user experience. An example interaction sequence based on the VE model illustrated in
[0223]
Video Pane Characteristics
[0224] Video panes and virtual speakers may appear, disappear, change size or shape, or change location in space at temporal locations predetermined before a given participant experience or at temporal locations determined in part or in whole on the fly.
[0225] When a video pane is visible from more than one side, the video pane's content may be automatically flipped around the video pane's y-axis when viewed from the backside of the video pane to maintain the content's original facing. This approach would be critical in the event that words, such as subtitles, are part of the video content. Alternately, video content may be produced in reverse from the backside of the video pane.
[0226] Video panes may be opaque to other video panes and objects in the VE, or may be transparent. In one preferred embodiment, video panes are produced at 75% opacity, hinting at detail necessary for navigating a manifold vista VE without compromising the experience of the video content.
[0227] Whether transparent or not, participants may be permitted to walk directly through video panes or be blocked from such passage. If permitted to pass through video panes, audio feedback and/or video effects may assist in participant comprehension of such transaction. Video panes and other objects in the VE may optionally be used as portals that bridge non-neighboring regions of the VE—enabling a participant to travel, for example, directly from a pane located in the northwest region of a VE to a pane located in the southeast region of the VE. Portal interactions may also be used for traversing hyperlinks or for entry into and exit from a VE.
[0228] It should be understood that characteristics of, transformations of, and interactions with video panes in a VE may be generalized to other content forms including but not limited to still images, text documents, web pages, maps, graphs and 3D objects.
Exemplary Hardware Configuration
[0229]
[0230] From a participant interaction perspective, the device can include one or more visual display(s) 201 coupled with one or more visual display controller(s) 202, one or more auditory display(s) 203 coupled with one or more auditory display controller(s) 204, and one or more tactile display(s) 205 coupled with one or more tactile display controller(s) 206. It can include one or more accelerometer(s) 207, one or more magnetometer(s) 208, one or more gyro sensor(s) 209, one or more touch sensor(s) 210, and one or more other input hardware 211 (such as hardware button(s), camera(s) and/or other proximity sensing and/or motion sensing technologies) each coupled to one or more input interface(s) 212.
[0231] The device can include one or more processor(s) 213 and one or more memory bank(s) 214 connected to one another and connected to the various display controller(s) and input interface(s) via one or more bus(es) 218. It can also be coupled with one or more wireless communication subsystem(s) 215 that communicate through one or more wireless network(s) 216 to one or more remote computing device(s) 217.
Applicability
[0232] The claimed invention may be used for navigating in a variety of contexts including but not limited to productions of artistic expression, theatrical prototyping, architectural simulation, street-view mapping, gaming, remote control of vehicles, augmented reality, virtual reality, videoconferencing and other telepresence applications, and user interfaces for document and image searching, browsing and retrieval. Virtual environments containing polylinear video and audio have already been discussed at length. The peripatetic proprioceptive experience principles and solutions disclosed apply to a variety of other applications making use of virtual or virtual-like environments.
[0233] Architects can prototype buildings and museum exhibit curators can prototype the design of exhibits, then test virtual experiences of the space and fine tune before physical construction.
[0234] Augmented reality applications can be enhanced by enabling participants to travel in the modeled space without having to change their location in the physical world.
[0235] Games situated in virtual environments, for example, can be improved by enabling participants to move around more naturally without overloading the visual display with buttons.
[0236] Street-view maps can be transformed into a form of VE. Rather than mouse-clicking or finger-tapping on a visual display interface to move from virtual camera location to virtual camera location, the present invention enables participants to more easily navigate the map environment and experience the captured streets (or other spaces) with proprioceptive perspective.
[0237] Extemporaneous control of remote objects can be made more natural using the invention, enabling a participant to pivot, tip and aim a handheld or head mounted device to control a remote-controlled toy or full-sized military tank, for example. If the vehicle is outfitted with a camera, then the participant may see the remote location from first-person proprioceptive perspective.
[0238] A frequently expressed need in the domain of videoconferencing involves effective techniques for spatializing and navigating amongst attendee video panes and related document content. The present invention can overturn the rigid seating arrangements and unwieldy display limitations of current-day multi-party videoconferencing systems in favor of a portable experience that uses intuitive and comfortable interactions.
[0239] Other social media, such as a navigable VE-based telepresence event may be transformed by adding peripatetic proprioceptive interactions, complete with soundscape cocktail party effects. As a participant moves their avatar through the VE, conversations overheard amongst virtual attendees close by in the space are produced louder than conversations further away.
[0240] The present invention may be used in improve the participant experience of searching, browsing and retrieving documents and images from large databases, whether locally or remotely stored. Contents of search results may be distributed in two or three dimensions akin to a distribution of video panes in a VE, thus enabling a participant to move through the plurality of results using peripatetic and/or proprioceptive interactions. Gestures such as push and pull may be used to tag and/or collect results of interest and/or initiate subsequent filtering of navigable results produced for browsing in the space.
[0241] Having now set forth the preferred embodiments and certain modifications of the concepts underlying the present invention—which are meant to be exemplary and not limiting—various other embodiments and uses as well as certain variations and modifications thereto may obviously occur to those skilled in the art upon becoming familiar with the underlying concepts. It is to be understood, therefore, that the invention may be practiced otherwise than as specifically set forth herein, including using sensors, apparatus, programming languages, toolkits and algorithms (including adding steps, removing steps, reversing the interpretation of motions, and changing the order of procedures) other than those described to effectuate the user experiences disclosed herein.