Closed Bug 1196672 Opened 9 years ago Closed 7 years ago

[meta] Implement support for motion controllers

Categories

(Core :: WebVR, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jcarpenter, Unassigned)

References

Details

(Whiteboard: [webvr])

Devices like the Oculus Touch, Vive controllers and Nod Backspin are "motion controllers" that accurately capture the user's physical movements in 3D space. Motion control is emerging as perhaps the mouse of VR, so we want to support these devices in WebVR.

Potential solutions being discussed include:

* Adding connect/disconnect events to the WebVR API
* Building on top of the Gamepad API
There's been WIP support for OpenVR Gamepads (Vive controllers) added to the experimental WebVR branch of Chromium: https://twitter.com/Tojiro/status/686398197237854208

Worth following the conversation and links there.
The WebVR 1.0 API now defines a point for association between motion controllers and the VR display (HMD):

https://mozvr.github.io/webvr-spec/

It will still be necessary to design the WebIDL interface to return the position, orientation, and capabilities of the motion controller.

Perhaps we could follow the pattern in the WebVR 1.0 API, by returning a 3-entry Float32Array for the position and a 4-entry quaternion Float32Array for the orientation.  These could be null if the sensors could not acquire the position or orientation.  A separate set of boolean values (i.e. HasOrientation and HasPosition) should be set to indicate the presence of the sensor, even if it is unable to acquire the data at the current moment in time.
Blocks: 1250244
Perhaps this bug should be turned in to a meta bug and broken down into separate bugs to track the WebIDL interface design / standardization, implementation of Oculus Touch controllers, and Implementation of HTC Vive controllers.
Summary: Implement support for motion controllers → [meta] Implement support for motion controllers
Depends on: 1260558
Depends on: 1260561
See Also: → 1260563
No longer blocks: 1250244
Depends on: 1250244, 1299926
Component: General → WebVR
Oculus remote is not a "motion controller", removing dependency.
Rest of these are all implemented now, closing meta bug.
Status: NEW → RESOLVED
Closed: 7 years ago
No longer depends on: 1260561
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.