-
-
Notifications
You must be signed in to change notification settings - Fork 198
Description
Summary
A list of all of the current components in the React Three XR library, tracking which examples / tutorials exist for them, and which tutorials / examples still need to be written. This is intended to be a living document that gets updated as things change and tasks get completed. By the end of this, the docs should be pretty robust ;)
Current State
- β - Completely covered with a fully filled out jsdoc
- βοΈ - Completely covered with existing examples and tutorials
- π¨ - Partially covered by either an example or tutorial
- β - Not covered by either an example or a tutorial
Anchors
useRequestXRAnchor β
useXRAnchor π¨: Needs Example
Hit Testing
XRHitTest β
useXRHitTest β
useXRHitTestSource β
useXRRequestHitTest β
Physics based AR interactions
useInitRoomCapture β
Movement
useXRControllerLocomotion βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
TeleportTarget βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
Customizing Controller
XRControllerComponent π¨: Needs tutorial
XRControllerModel π¨: Needs tutorial
useLoadXRControllerLayout π¨: Needs tutorial
useLoadXRControllerModel π¨: Needs tutorial
useXRControllerButtonEvent β
DefaultXRController βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
DefaultXRControllerGrabPointer β
DefaultXRGaze π¨: Needs example
DefaultXRInputSourceRayPointer β
DefaultXRInputSourceTeleportPointer β
DefaultXRScreenInput π¨: Needs example
DefaultXRTransientPointer π¨: Needs example
Customizing Hands
XRHandModel βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
DefaultXRHandGrabPointer β
DefaultXRHandTouchPointer β
DefaultXRHand βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
Customizing Pointer
Input Methods
useHover π¨: Needs tutorial
CombinedPointer β
PointerCursorModel π¨: Needs example
PointerRayModel β
useGrabPointer β
useLinesPointer β
usePointerXRInputSourceEvents β
useRayPointer β
useTouchPointer π¨: Needs example
useXRInputSourceEvent βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc. Could use a better tutorial
Overlays / HUD
XRDomOverlay βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
NotInXR π¨: Needs tutorial
Guards and Checks
IfFacingCamera β
ShowIfFacingCamera β
IfSessionVisible β
ShowIfSessionVisible β
IfInSessionMode βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
ShowIfInSessionMode β
IfSessionModeSupported β
ShowIfSessionModeSupported β
useXRSessionFeatureEnabled β
useXRSessionModeSupported β
useXRSessionVisibilityState β
XR Layers, what they are and when to use them
XRLayer βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
XRSpace βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
XRSpaceType β
useApplyXRSpaceMatrix β
useGetXRSpaceMatrix β
useXRSpace β
Starting a Session and general flow of XR
XROrigin βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
XR βοΈ : Needs usage snippet, better description, and links to tutorial and example in jsdoc
createXRStore βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
useXR βοΈ : Needs usage snippet, and links to tutorial and example in jsdoc
useXRStore β
XRGeometry? (Not sure what these do)
XRMeshModel π¨: Needs example
useXRMeshGeometry β
useXRMeshes π¨: Needs example
XRPlaneModel π¨: Needs example
useXRPlaneGeometry β
useXRPlanes π¨: Needs example
Planned Tutorials
Tutorials that are planned to cover the items above that still need a tutorial
-
Object Detection: Update the existing Object Detection tutorial to better explain what these components are, why you would want to use them, and include
useXRPlaneGeometryanduseXRMeshGeometry- (useXRPlaneGeometry, useXRMeshGeometry)
-
XRSpaces Primer: Update the new XRSpaces Primer tutorial to touch on all of the hooks available for accessing and using spaces in WebXR, and when you would use each in WebXR
- (XRSpace, XRSpaceType, useApplyXRSpaceMatrix, useGetXRSpaceMatrix, useXRSpace)
-
Guards: Update the current Guards tutorial to touch on all of the other relevant guards
- (IfFacingCamera, ShowIfFacingCamera, IfSessionVisible, ShowIfSessionVisible, IfInSessionMode, ShowIfInSessionMode, IfSessionModeSupported, ShowIfSessionModeSupported, useXRSessionFeatureEnabled, useXRSessionModeSupported, useXRSessionVisibilityState)
-
Heads up Display: A tutorial explaining how to create the HUD example
-
Pointers: A tutorial explaining the various components and how to use them to customize things
- (CombinedPointer, PointerCursorModel, PointerRayModel, useGrabPointer, useLinesPointer, usePointerXRInputSourceEvents, useRayPointer, useTouchPointer, DefaultXRInputSourceTeleportPointer, DefaultXRControllerGrabPointer, DefaultXRInputSourceRayPointer, DefaultXRHandGrabPointer, DefaultXRHandTouchPointer DefaultXRTransientPointer)
-
Inputs and Events in WebXR: A lot of people get confused about this. It would be good to create a tutorial about how events work in React Three XR, how they relate to DOM events, and what the developer can do to customize/use them.
- (useHover)
-
Customizing Controllers and Hands: Update the existing tutorial to be clearer and easier to follow. Also include a section for updating the controllers
- (XRControllerComponent, XRControllerModel, useLoadXRControllerLayout, useLoadXRControllerModel, DefaultXRController, DefaultXRGaze, DefaultXRScreenInput, XRHandModel, DefaultXRHand, DefaultXRInputSourceTeleportPointer)
-
Grabbing/Equiping tutorial: Seems like a common use case that people would want to implement in their applications. Should touch on both physics and non physics scenarios
β Hit Test: Update the current hist testing tutorial to touch on the rest of the components in the library: (useXRHitTest, useXRHitTestSource, useXRRequestHitTest)
- Anchors: Update the anchor tutorial to touch on the other anchor component as well
- (useRequestXRAnchor)
Planned Examples
Examples that are planned to cover the items above that still need a tutorial
-
Guards and checks Playground: An example that showcases all of the different guards and checks that WebXR supports
- (IfFacingCamera, ShowIfFacingCamera, IfSessionVisible, ShowIfSessionVisible, IfInSessionMode, ShowIfInSessionMode, IfSessionModeSupported, ShowIfSessionModeSupported, useXRSessionFeatureEnabled, useXRSessionModeSupported, useXRSessionVisibilityState)
-
XRGeometry showcase: Not sure what this would entail but these needed an example
- (XRMeshModel, useXRMeshGeometry, useXRMeshes, XRPlaneModel, useXRPlaneGeometry, useXRPlanes)
-
Object detection example: An example to show off the XR geometry mesh and plane capabilitys in WebXR
- (XRMeshModel, useXRMeshGeometry, useXRMeshes, XRPlaneModel, useXRPlaneGeometry, useXRPlanes)
-
XRSpaces Primer: Update the new XRSpaces Primer example to include usages of the XR spaces hooks OR make a new example showing off the capabilities
- (XRSpace, XRSpaceType, useApplyXRSpaceMatrix, useGetXRSpaceMatrix, useXRSpace)
-
Heads Up Display: An example showing how to efficiently create a HUD. Many people have been asking for this
-
Pointers: An example showing off all of the cool pointer stuff that you can use in react three XR (Maybe a lazer pointer that you can swap out the colors of, and toggle what it affects)
- (CombinedPointer, PointerCursorModel, PointerRayModel, useGrabPointer, useLinesPointer, usePointerXRInputSourceEvents, useRayPointer, useTouchPointer)
-
Hand / Controller swap demo: An example where the user can swap out a number of different hands and controllers
- (XRControllerComponent, XRControllerModel, useLoadXRControllerLayout, useLoadXRControllerModel, DefaultXRController, DefaultXRGaze, DefaultXRScreenInput, XRHandModel, DefaultXRHand, DefaultXRInputSourceTeleportPointer)
-
Grabbing/Equiping example: Seems like a common use case that people would want to implement in their applications. Should touch on both physics and non physics scenarios
β Hit testing: Modify the duck example to include showcases for these components: (useXRHitTest, useXRHitTestSource, useXRRequestHitTest)
- Anchors: An example for creating and placing anchors. Perhaps a virtual picture hanging application?
- (useRequestXRAnchor, useXRAnchor)