Last year, we introduced the
Immersive Web Emulator (IWE), a browser extension designed to enable efficient WebXR development and testing with the ability to simulate Meta Quest headsets without a physical device. With over 9,000 monthly active installs as of June 2024, IWE has become a cornerstone in the WebXR development community by enabling developers of all skill levels to create immersive web experiences with greater ease and convenience than ever before.
Now, we’re making WebXR iteration faster and more accessible with the
Immersive Web Emulation Runtime (IWER), a comprehensive WebXR runtime implemented in modern TypeScript that enables you to emulate your WebXR apps in any modern browser. This capability is crucial for developers working in environments where WebXR is not natively supported. IWER's interface provides precise control over the emulated XR environment, allowing you to manage everything from headset and controller positions to complex inputs like button presses and hand gestures.
Let’s dive in to explore the versatility of this interface and how it can support a variety of use cases.
Bespoke Developer Tools
Interactions in WebXR can be highly nuanced, requiring precise and complex sequences that aren't always easy to execute through standard tools. While the Immersive Web Emulator (IWE) offers comprehensive control over device emulation, its 3D inspector may not be the ideal interface for triggering intricate actions, especially those involving gestures. Consider the action wheel in
Project Flowerbed, in which users hold down the A button to open an action wheel and then move the controller to select an option. This sequence is intuitive in a headset, but cumbersome to replicate with IWE’s interface.
IWER transforms this experience by allowing developers to program and trigger such sequences with the click of a button. This new level of customization enables you to build tools perfectly tailored to your WebXR projects and make intricate user interactions, like those in Project Flowerbed, smoother and more intuitive to test and develop. With IWER, you can create a development environment that aligns precisely with your project’s needs to enhance productivity and the user experience.
Cross-Platform Controls
Creating customized development tools with IWER simplifies your workflow and opens up possibilities for enhancing user interaction across different platforms. IWER functions effectively as an input remapping layer that sits on top of your WebXR experience to allow for the repurposing of XR interaction designs for traditional control schemes.
This adaptability is crucial for projects that aim to be accessible on multiple platforms. For instance, in a typical XR shooter where players shoot with a controller trigger and navigate with a joystick, you can use IWER to map these actions to desktop controls: the joystick movements map to WASD keys, the trigger action maps to a mouse click, and you can align mouse movements with headset and controller orientations using the Pointer Lock API.
This functionality is not only versatile but also lightweight to ensure that it has a minimal performance impact on your app. By leveraging IWER, you can significantly broaden the accessibility of your WebXR apps without compromising on user experience or performance.
Action Recording/Playback
One of the most eagerly awaited features among WebXR developers is the ability to easily capture and replay input sessions from WebXR-capable devices like the Meta Quest 3. As WebXR technology gains traction and the development process matures, this functionality is key to enabling scalable, automated end-to-end testing.
You can achieve this capability using IWER thanks to its experimental ActionRecorder and ActionPlayer utilities. The ActionRecorder captures input data directly from the native WebXR implementation when the experience is run on a headset. This data capture is agnostic to the rendering framework to ensure versatility across different development environments. Once captured, these input sessions can be exported and later replayed on other browsers through the ActionPlayer, which utilizes IWER to accurately reconstruct and execute user actions.
This groundbreaking feature not only enhances testing efficiency but also ensures that WebXR apps can be rigorously tested under constant conditions through the ability to replicate real user interactions without the need for continuous, manual testing.
We’re excited to provide you with efficient ways to make WebXR iteration more convenient and accessible, and we can’t wait to hear your feedback about how this tool enables you to create incredible immersive web experiences. To get started with IWER, visit the
documentation.
For the latest developer news and updates, be sure to subscribe to our monthly newsletter in your
Developer Dashboard settings, and follow us on
X and
Facebook.