Does OpenXR provide DIY controller API, or is something else needed?

Hello there (again),

If you want to be able to use your own DIY controller with OpenXR applications, then those applications are built to interrogate the OpenXR API to retrieve the controller inputs.

You can override the behavior of the OpenXR runtime to make it use your own controller inputs via an API Layers. This is something that my OpenXR Toolkit project does, where I translate input from a Leap Motion hand tracking device into simulated VR controller inputs.

For button/sticks input, what you can do is intercept the XrAction-related APIs in order to report your controller input when the application calls xrGetActionStateFloat() or xrGetActionStateBoolean().

For 6DOF tracking, you need to intercept the xrCreateActionSpace() and xrLocateSpace() calls. In xrLocateSpace(), you can then return your own position/orientation data.

You can take a look my open source project, and I'm also happy to answer some of your questions.

/r/OpenXR Thread