Skip to content

Update the terminology and API from "XR Runtime" to "XR Backend" #152

@jcfr

Description

@jcfr

In light of the official description of OpenXR on the Khronos website1 and the loader specification overview2, it has been suggested by @sankhesh that we disambiguate by not using the term Runtime.

Within the context of OpenXR, what is traditionally referred to as a "Runtime" is the software that integrates with specific platforms and hardware, implementing an OpenXR API that can be queried and interacted with. Examples3 of these OpenXR Runtimes include Windows Mixed Reality (WMR), Oculus, SteamVR, and Varjo.

The usage of the term "Runtime" is corroborated by the vtkOpenXRManager::GetXrRuntimeInstance()4 docstring, confirming that communication occurs with a runtime instance.

  ///@{
  /**
   * Return the instance used to communicate with the runtime
   */
  const XrInstance& GetXrRuntimeInstance() { return this->Instance; }
  ///@}

Conclusion: The proposal is to transition to the term "Environment," as indicated in the "Overview" section of the OpenXR Loader Specifications2. Similarly, in the context of OpenVR, the term "Environment" is used to describe a comparable concept.

⚡ UPDATE ⚡: Following #152 (comment) from @LucasGandel, we will transition to the term Backend

In the sections below, you will find supporting material and references, along with information related to dealing with multiple environments and observations regarding the "incorrect" use of the "Runtime" qualifier from an OpenXR perspective.

Dealing with Multiple Runtimes

Considering that multiple OpenXR Environments may be installed on one system, users of OpenXR applications, such as the SlicerVirtualReality extension, must ensure that the correct one is activated. The xrsetenvironment tool5 may assist in streamlining this process.

"Incorrect" use of the Runtime qualifier

While documentation from projects like Unity appropriately describes OpenXR Runtimes6, there are instances of oversimplification in terminology, as seen in articles like "Steam VR vs OpenXR: Which Environment is Best?"7.

Description of OpenXR by khronos

OpenXR provides cross-platform [...] access directly into diverse XR device runtimes across multiple platforms. OpenXR enables applications and engines, including WebXR, to run on any system that exposes the OpenXR APIs.

Source: https://www.khronos.org/openxr/

Overview section of the OpenXR Loader Specs

https://registry.khronos.org/OpenXR/specs/1.0/loader.html#Overview
image

Footnotes

  1. https://www.khronos.org/openxr/

  2. https://registry.khronos.org/OpenXR/specs/1.0/loader.html#Overview 2

  3. https://github.com/maluoi/openxr-explorer/blob/main/src/common/xr_runtime_default.h

  4. https://github.com/Kitware/VTK/blob/fe0411db8b8cd6638f006274fb62f46a85995747/Rendering/OpenXR/vtkOpenXRManager.h#L199-L204

  5. https://github.com/maluoi/openxr-explorer/tree/main/src/xrsetruntime

  6. https://docs.unrealengine.com/5.0/en-US/openxr-prerequisites-in-unreal-engine/

  7. https://pimax.com/steam-vr-vs-openxr-which-runtime-is-best/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions