XRHand
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
TheXRHand interface is pair iterator (an ordered map) with the key being the hand joints and the value being anXRJointSpace.
XRHand is returned byXRInputSource.hand.
In this article
Instance properties
sizeRead onlyExperimentalReturns
25, the size of the pair iterator.
Instance methods
TheXRHand object is a pair iterator. It can directly be used in afor...of structure.for (const joint of myHand) is equivalent tofor (const joint of myHand.entries()).However, it's not a map-like object, so you don't have theclear(),delete(),has(), andset() methods.
entries()ExperimentalReturns an iterator with the hand joints/
XRJointSpacepairs for each element.SeeMap.prototype.entries()for more details.forEach()ExperimentalRuns a provided function once per each hand joint/
XRJointSpacepair.SeeMap.prototype.forEach()for more details.get()ExperimentalReturns a
XRJointSpacefor a given hand joint orundefinedif no such hand joint key is in the map.SeeMap.prototype.get()for more details.keys()ExperimentalReturns an iterator with all the hand joint keys.See
Map.prototype.keys()for more details.values()ExperimentalReturns an iterator with all the
XRJointSpacevalues.SeeMap.prototype.values()for more details.
Hand joints
TheXRHand object contains the following hand joints:
| Hand joint | Index |
|---|---|
| wrist | 0 |
| thumb-metacarpal | 1 |
| thumb-phalanx-proximal | 2 |
| thumb-phalanx-distal | 3 |
| thumb-tip | 4 |
| index-finger-metacarpal | 5 |
| index-finger-phalanx-proximal | 6 |
| index-finger-phalanx-intermediate | 7 |
| index-finger-phalanx-distal | 8 |
| index-finger-tip | 9 |
| middle-finger-metacarpal | 10 |
| middle-finger-phalanx-proximal | 11 |
| middle-finger-phalanx-intermediate | 12 |
| middle-finger-phalanx-distal | 13 |
| middle-finger-tip | 14 |
| ring-finger-metacarpal | 15 |
| ring-finger-phalanx-proximal | 16 |
| ring-finger-phalanx-intermediate | 17 |
| ring-finger-phalanx-distal | 18 |
| ring-finger-tip | 19 |
| pinky-finger-metacarpal | 20 |
| pinky-finger-phalanx-proximal | 21 |
| pinky-finger-phalanx-intermediate | 22 |
| pinky-finger-phalanx-distal | 23 |
| pinky-finger-tip | 24 |
Examples
>UsingXRHand objects
const wristJoint = inputSource.hand.get("wrist");const indexFingerTipJoint = inputSource.hand.get("index-finger-tip");for (const [joint, jointSpace] of inputSource.hand) { console.log(joint); console.log(jointSpace);}Specifications
| Specification |
|---|
| WebXR Hand Input Module - Level 1> # xrhand-interface> |