Interface XrInputSource
interface XrInputSource {
gamepad: Gamepad | null;
gripMatrix: Float32Array;
gripTracked: boolean;
handedness: XrHandedness;
selecting: boolean;
source: XRInputSource;
squeezing: boolean;
targetRayMatrix: Float32Array;
targetRayMode: XrTargetRayMode;
targetRayTracked: boolean;
}
gamepad: Gamepad | null;
gripMatrix: Float32Array;
gripTracked: boolean;
handedness: XrHandedness;
selecting: boolean;
source: XRInputSource;
squeezing: boolean;
targetRayMatrix: Float32Array;
targetRayMode: XrTargetRayMode;
targetRayTracked: boolean;
}
Properties
Readonlygamepad
gamepad: Gamepad | null
Associated gamepad (buttons / axes), if the source exposes one.
Readonlygrip Matrix
gripMatrix: Float32Array
World-space grip pose (column-major 4×4). Valid only when gripTracked.
grip Tracked
gripTracked: boolean
True when a valid grip pose was obtained for the current frame (false if the source has no grip space).
Readonlyhandedness
"left", "right", or "none".
selecting
selecting: boolean
True between selectstart and selectend.
Readonlysource
source: XRInputSource
The underlying WebXR input source.
squeezing
squeezing: boolean
True between squeezestart and squeezeend.
Readonlytarget Ray Matrix
targetRayMatrix: Float32Array
World-space target-ray pose (column-major 4×4). Valid only when targetRayTracked.
Readonlytarget Ray Mode
How the target ray is produced ("gaze", "tracked-pointer", "screen").
target Ray Tracked
targetRayTracked: boolean
True when a valid target-ray pose was obtained for the current frame.
Per-frame state for a single XR input source (controller, gaze, transient pointer).