WebXR Input Profile Viewer
The dropdown on the left side of this page allows for manually testing all profiles with 3D assets available in the webxr-input-profiles repository. A profile from the local file system can also be tested by selecting the relevant files in "Local Profile" file selector. These files must include a hardware description JSON file conforming to the requirements in the @webxr-input-profiles/registry package, at least one matching 3D asset which conforms to the requirements in the @webxr-input-profiles/assets package, and, optionally, an asset description override JSON file that also conforms to the requirements in the @webxr-input-profiles/assets package. When entering VR, the best matched 3D assets for the currently connected XR hardware will be shown and animated. The locally loaded profile will be used if it is the best match.
Source code for this sample page, which happens to be written in three.js, can be found in the @webxr-input-profiles/viewer package. However, very little of the code is specific to three.js. Other engines can adopt the same functionality by integrating with the @webxr-input-profiles/motion-controllers package.