Get started with Meta VR Glasses using IWSDK
Updated: Sep 4, 2026
Meta VR Glasses use gaze for targeting and a hand pinch for selection. IWSDK maps
these inputs to its existing ray-pointer interaction path, while IWER lets you
exercise the interaction and preview Meta VR Glasses scene coverage on a desktop.
Start with a manifest-first IWSDK project. If you do not have one, follow
Project setup.
Update the root iwsdk.config.json to request gaze and hand tracking and
enable the Meta VR Glasses field-of-view mask for on-device comparison:
{
"$schema": "./node_modules/@iwsdk/core/dist/schemas/iwsdk-project.v1.schema.json",
"version": "iwsdk.project.v1",
"scene": "./public/scenes/main.iwsdk.scene.json",
"world": {
"xr": {
"mode": "vr",
"features": {
"handTracking": { "required": true },
"gazeTracking": true
}
},
"features": {
"fieldOfViewMask": true
}
}
}
The settings have separate roles:
handTracking: { "required": true } requires the hand input used for the
pinch.gazeTracking: true requests gaze tracking as an optional XR session
feature. If the runtime does not provide a usable gaze pose, IWSDK falls back
to head pointing.fieldOfViewMask: true enables IWSDK’s built-in Meta VR Glasses view profile. The
mask applies in an immersive session, including a native WebXR session on
another Quest headset.
Use gazeTracking: { "required": true } only when the immersive session must
fail instead of using the head-pointing fallback.
For desktop emulation, set dev.emulator.device to the device profile that
your IWER build provides for the Meta VR Glasses device. This setting affects only
desktop emulation.
Make objects work with gaze
Gaze uses the same targets and events as other IWSDK ray pointers. Add
RayInteractable to a target and handle the standard Hovered and Pressed
states. An existing ray interaction does not need a gaze-specific component or
event handler.
When grabbing is enabled, gaze can also target DistanceGrabbable. A pinch
starts the grab, and the captured interaction follows the pinching hand by
default.
With the Meta VR Glasses device profile selected, start the development server and
open its local URL:
Enter XR, open Select input mode in the IWER toolbar, and choose
Gaze + Hands. This selects hands as the primary inputs and uses
cursor-controlled gaze. The toolbar also provides gaze-mode, commit-hand, and
field-of-view mask controls.
Test scene coverage on a headset
Open the same project on Meta Quest 3, Quest 3S, or another supported Quest
headset and enter immersive XR. world.features.fieldOfViewMask: true uses the
browser’s native WebXR session and does not require IWER on the headset. The
dev.emulator.device setting affects only desktop emulation.
The mask approximates the angular coverage of the built-in Meta VR Glasses WebXR view
profile. It does not reproduce lens-edge shape, change the headset’s native
projection, or expand a host view that is narrower than the target bounds.