New XRV Core and Module add-ons
XRV is a new library developed by our team to build VR and AR experiences. Originally developed for our own customer applications, we are now releasing it in a preview state to the public. It is a powerful framework that simplifies the development of mixed reality experiences by providing a range of features and tools to help developers build engaging and immersive applications. Whether you’re building a simple app or a complex multi-module experience, XRV makes it easy to add functionality like voice commands, hand menu buttons, customizable settings, and help panels. With a range of file access options, localization support, and built-in modules like image galleries and 3D model viewers, making it a versatile solution that can help streamline development and enhance the user experience. While still in preview, XRV is constantly being improved and expanded with new features and functionality.
There are several benefits to using XRV in your XR application development. Some of these benefits include:
- Cross-platform support: XRV supports multiple XR devices, including the Meta Quest, Meta Quest 2, Meta Quest Pro, Microsoft HoloLens 2, or Pico XR headsets, allowing you to develop applications for a wider range of devices.
- Built-in features: XRV provides a number of built-in features, such as the hand menu, window system, tab control, and voice commands, that can help you build XR applications more easily and efficiently.
- Customizability: XRV is designed to be highly customizable, allowing developers to create a unique user experience that meets the needs of your application and its users.
- Modular design: XRV’s modular design allows for easy addition and removal of features as needed and the reuse of modules in different applications, simplifying the maintenance and updates of your applications.
In this article, we will provide an overview of the capabilities that XRV offers. We will cover the main functionalities, including user interface, voice commands, file access, localization, and more. For more information on how to use XRV and its features, please refer to our public documentation.
One of the built-in features of XRV is the hand menu, which appears when the user turns their palm up. This menu is customizable and can be programmed to display a set of buttons that open specific panels or activate and deactivate 3D elements within the XR environment. This feature is particularly useful for VR and AR experiences, as it allows for a more intuitive way of interacting with the environment without requiring external controllers.
XRV includes a Windows system, which provides a consistent look and feel for all windows within the XR environment. This system allows developers to create any number of windows they need and customize the content for each one. The windows come with built-in features like a close button that can be set to either follow the user’s movements or remain stationary in the XR space. This makes it easy for users to interact with multiple windows and keep track of their content.
Settings and Help systems
Thanks to the Window System, XRV provides two built-in panels. First of them is the Settings window, which allows developers to add or remove entries to include UI elements like buttons to change the behavior of various parts of the application. For example, the default Settings tab includes options to activate or deactivate voice commands and passthrough for XR devices with support for this technology.
The second of Windows is the Help window, which can contain different tabs explaining to final users how to use different parts of the application.
XRV includes a voice command service that is specifically designed for use in UWP-based XR devices such as the HoloLens. This service allows developers to create custom voice commands that can be used to control various aspects of the XR application. While this service is currently limited to UWP-based devices, it can be a powerful tool for creating immersive and interactive experiences for users who are using these devices.
We define the concept of File Access, which provides a simple abstraction for performing CRUD operations on files. XRV includes implementations for working with application local storage, as well as Azure Blobs and Azure Files services. They are very helpful in loading remote files like images or 3D models.
Another useful feature is the built-in localization system, which is based on .NET resource files. XRV includes custom components to make it easier to define multi-language user interfaces, with literals available in both English and Spanish.
Finally, XRV also includes a theme system, which allows developers to easily change the colors, fonts, and font sizes used throughout the application. This can help to give your XR experience a more polished and professional look and feel.
Modules can be a powerful tool for developers to quickly add custom functionality to their XR projects. By encapsulating related features into a module, it becomes easier to manage and reuse those features across multiple projects. With XRV, developers can easily define a module and have it integrated into the hand menu, settings, and help windows. Additionally, modules can include initialization and event-handling functionality for UI elements, making it easier to manage interactions between the user and the XR application. For more information on how to use modules, see Modules page in our public documentation.
We are providing the following add-ons in this release, published as independent Evergine add-ons:
- Image Gallery: This module provides an easy way to view a collection of images in XR space. Users can navigate through the images one by one.
- Model Viewer: With this module, developers can import 3D models into their XR applications, and users can manipulate these models in real-time using common gestures like pinch and two-hands rotate. The module includes a range of customization options including the model size.
- Painter: This module allows users to create and manipulate 3D lines in XR space, with the ability to adjust line thickness and color. This can be useful for creating annotations or other visual elements.
- Ruler: The Ruler module lets users measure objects in XR space using a virtual ruler. This can be useful for applications that require precise measurements, such as interior design or architecture.
- Streaming Viewer: This module provides a simple way to stream MJPEG videos, such as those from IP cameras, directly into the XR application. Users can view the video in a virtual environment.
In the future, we plan to continue improving and extending XRV to make it even more powerful and user-friendly. Some of the improvements we have in mind include adding the ability for users to change the language of the application at runtime, as well as expanding our file access implementations to include OneDrive and support for network sessions.
We also plan to enhance our existing modules with more features and make them more flexible and extensible, as well as add new modules to the library. We are always looking for ways to improve the user experience and make XRV more accessible to developers and users alike.
Want to learn more about XRV and all of its features? Check out our documentation and start exploring!