Motivation
Browser-based virtual and augmented reality support is an evolving technology made feasible by the WebXR API, preceded by now-deprecated APIs such as WebVR and Cardboard. WebXR browser adoption is growing with most major browsers (Chrome, Edge, Firefox) supporting the WebXR API to various extents.
We aim to add key feature support so that developers can deliver browser-based virtual and augmented reality scenes with the vtk.js platform. Features will be accompanied by documentation and example scenes for user and developer accessibility.
This roadmap provides a high-level overview of XR features we would like to pursue in VTK.js along with potential paths for implementation. Roadmap progress is highly dependent on stakeholders and relevant project needs. If you are interested in completing a feature on the roadmap, please consider leading or funding that development contribution to VTK.js.
Target Platforms
We aim to target the intersection of platforms supported by vtk.js and by WebXR; that is, devices and browsers supporting WebGL rendering along with the WebXR API.
Target hardware includes virtual reality and augmented reality headsets, mobile devices with AR capabilities, and holographic displays. Please see VTK.js WebXR documentation for a complete list of target devices.
A complete list of hardware supported by the WebXR standard may be found here.
Roadmap
The features below are planned for eventual support in VTK.js and are listed in rough expected chronological order. A timeline is not currently available for WebXR feature development.
1. Basic XR Rendering Support
We aim to initially support XR rendering for a tailored subset of XR target devices.
Backlog:
2. Extend Supported Device List
We aim to support advanced rendering to the full list of target XR hardware. Scene interaction is not yet supported.
Backlog:
3. Basic XR Controls
We aim to add support for basic XR interactions with VTK.js scenes. We will loosely base interaction infrastructure on the vtkRenderWindowInteractor3D, vtkVRRenderWindowInteractor, and vtkVRInteractorStyle hierarchy defined in the VTK C++ library.
Backlog:
4. Advanced XR Controls
We aim to add support for advanced XR interactions with VTK.js scenes.
5. Stretch Goals
This goals are not prioritized, but would be nice to have as part of the VTK.js WebXR feature set.
Motivation
Browser-based virtual and augmented reality support is an evolving technology made feasible by the WebXR API, preceded by now-deprecated APIs such as WebVR and Cardboard. WebXR browser adoption is growing with most major browsers (Chrome, Edge, Firefox) supporting the WebXR API to various extents.
We aim to add key feature support so that developers can deliver browser-based virtual and augmented reality scenes with the vtk.js platform. Features will be accompanied by documentation and example scenes for user and developer accessibility.
This roadmap provides a high-level overview of XR features we would like to pursue in VTK.js along with potential paths for implementation. Roadmap progress is highly dependent on stakeholders and relevant project needs. If you are interested in completing a feature on the roadmap, please consider leading or funding that development contribution to VTK.js.
Target Platforms
We aim to target the intersection of platforms supported by vtk.js and by WebXR; that is, devices and browsers supporting WebGL rendering along with the WebXR API.
Target hardware includes virtual reality and augmented reality headsets, mobile devices with AR capabilities, and holographic displays. Please see VTK.js WebXR documentation for a complete list of target devices.
A complete list of hardware supported by the WebXR standard may be found here.
Roadmap
The features below are planned for eventual support in VTK.js and are listed in rough expected chronological order. A timeline is not currently available for WebXR feature development.
1. Basic XR Rendering Support
We aim to initially support XR rendering for a tailored subset of XR target devices.
Backlog:
Examples/Geometry/VRfails to enter VR on first request #2136vtkWebXRRenderWindowHelper#29242. Extend Supported Device List
We aim to support advanced rendering to the full list of target XR hardware. Scene interaction is not yet supported.
Backlog:
3. Basic XR Controls
We aim to add support for basic XR interactions with VTK.js scenes. We will loosely base interaction infrastructure on the vtkRenderWindowInteractor3D, vtkVRRenderWindowInteractor, and vtkVRInteractorStyle hierarchy defined in the VTK C++ library.
vtkRenderWindowInteractor3DandvtkOpenXRInteractorStyle.hfrom VTK C++ OpenXR module to vtk.js. This would help to standardize VR/AR interactions and controls according to the vtk.js interaction system.vtkVRHMDInteractorStyle,vtkARMobileInteractorStyle, etc to appropriate handle view behaviorBacklog:
4. Advanced XR Controls
We aim to add support for advanced XR interactions with VTK.js scenes.
5. Stretch Goals
This goals are not prioritized, but would be nice to have as part of the VTK.js WebXR feature set.