ComparisonExtended Reality (XR)

OpenXR, WebXR or native SDKs: how to choose an enterprise XR stack

Three routes lead to an enterprise XR application: the OpenXR standard reached through an engine such as Unity, Unreal or Godot; WebXR in the browser; or each platform's own SDK. They trade device reach, feature depth, distribution and portability differently. This comparison explains what each covers, where lock-in really sits, and which route suits training at scale, browser product viewers and high-fidelity design review.

Reviewed 8 min read

On this page
  1. Five places an XR application gets locked in
  2. The layers of an XR application stack
  3. OpenXR: one native API across many headsets
  4. WebXR: distribution by link, within browser limits
  5. Native platform SDKs: depth at the cost of portability
  6. OpenXR, WebXR and native SDKs side by side
  7. Content formats that travel between tools
  8. Which XR stack fits which scenario
  9. A manufacturer supporting two headset brands and tablets
  10. Questions and answers
  11. Sources

Five places an XR application gets locked in

Vendor lock-in in XR is rarely a single decision. It accumulates in five layers, and a team can be portable in one while tied down in another: the runtime that drives displays, cameras and trackers; the engine or framework developers write against; the store or distribution channel; device management, which enrolls, locks down and updates devices; and the content format, which decides whether 3D assets can move to another tool.

A project that writes to an open runtime API but stores every scene in one engine's proprietary format, and ships only through one vendor's store, is still locked in. The aim is not zero dependency but knowing which dependencies you chose and what replacing each would cost. ColdAI builds on open runtimes such as OpenXR and WebXR where the task allows it8.

The layers of an XR application stack

Application code01Content and assets02Engine or framework03XR API04Device runtime and OS05Headset hardware06
  1. Application code

    Your scenarios, procedures, interface and integrations with business systems.

  2. Content and assets

    Models, scenes and media, ideally in formats that outlive one tool.

  3. Engine or framework

    Unity, Unreal, Godot, a web framework or a platform's own UI toolkit.

  4. XR API

    OpenXR, WebXR or a vendor's native interface to tracking, input and rendering.

  5. Device runtime and OS

    The vendor's implementation on the headset, with its store and management hooks.

  6. Headset hardware

    Displays, cameras and sensors, which set the features available.

Conceptual stack from application code at the top to hardware at the bottom; each layer is a separate portability decision, not a product diagram.

OpenXR: one native API across many headsets

OpenXR is a royalty-free standard from the Khronos Group that gives applications a common API for tracking, input and rendering on AR and VR devices1. Vendors ship OpenXR runtimes, and an app written against the API, usually through an engine, runs on any conformant one. Khronos lists runtimes from vendors including Meta, Google for Android XR, HTC, Pico, Valve, Varjo, Magic Leap and Microsoft, and engine support in Unreal Engine, Unity and Godot1.

Two caveats matter. Many features enterprise apps want, such as passthrough, scene understanding and some hand or eye tracking, arrive as extensions, some shared across vendors and some owned by one. OpenXR 1.1 moved several widely used extensions into the core specification1, but an app relying on a vendor extension still needs a fallback. And conformance covers the API, not the store, the management console or the device lifecycle; those stay vendor-specific.

Android XR shows the engine route at work: Google's guidance states that Unity's Android XR support is built on OpenXR6. Apple is the notable absence. visionOS apps are built with Apple's frameworks, such as SwiftUI, RealityKit and ARKit, or through Unity's visionOS support5, and Apple does not appear among the runtime vendors Khronos lists1.

Native platform SDKs: depth at the cost of portability

Every platform also offers its own SDK, and new hardware features usually appear there first. On Apple Vision Pro, ARKit provides scene reconstruction, image anchoring and skeletal hand tracking with the user's permission5; Android XR documents its Jetpack XR SDK as one route alongside OpenXR, Unity, Godot, Unreal Engine and WebXR9.

Native makes most sense when one platform has been chosen deliberately and the experience depends on a feature only it offers, or must behave like part of the operating system. The cost arrives the day another device joins the estate: a second codebase. Teams that go native usually confine platform code to a thin layer and keep business logic, data access and content shared.

OpenXR, WebXR and native SDKs side by side

CriterionOpenXR via an engineWebXR in the browserNative platform SDK
Device reachAny headset with a conformant runtime; one build per platform targetAny device whose browser implements WebXR; AR support variesOne platform; the work repeats for each additional one
Feature accessCore features plus extensions; vendor-only features need fallbacksWhatever the browser exposes; limited sensor and camera accessEverything, including features with no standard yet
DistributionApp stores, management push or an enterprise install modeA link; no installation or store reviewThe platform store or its enterprise distribution channel
Performance headroomHigh, with engine profiling tools and native renderingLower, because of browser and scripting overheadsHighest on that one platform
Security reviewNormal app review plus camera and sensor permissionsBrowser sandbox, HTTPS and per-session permission promptsNormal app review under platform privacy rules
Offline useStraightforward; assets ship with or are cached by the appPossible, but fragile for large assetsStraightforward
Long-term portabilityGood at the API layer; engine and store remain dependenciesGood, subject to browser supportLow; tied to one vendor's roadmap

The highlight reflects the most common enterprise case, native apps across several headset brands. It is not a universal recommendation.

Content formats that travel between tools

Which XR stack fits which scenario

  • If

    You are rolling out safety or procedure training to standalone headsets from more than one brand.

    Then

    Build natively with an engine on OpenXR and distribute through device management.

    You get one codebase, offline operation and the performance standalone headsets need.

  • If

    Customers or sales staff need to view a product in 3D or AR from a link, on whatever device they have.

    Then

    Use WebXR, with a plain 3D viewer as the fallback for unsupported browsers.

    Nobody installs an app to look at one product, and the fallback keeps the page useful everywhere.

  • If

    Engineers will review detailed designs on one chosen headset, and the review relies on eye tracking or high-resolution passthrough.

    Then

    Use an engine with that vendor's extensions, or the native SDK, and isolate the platform-specific code.

    Fidelity matters more than reach here, but isolation keeps a later move affordable.

  • If

    Apple Vision Pro must sit alongside Android-based headsets in the same program.

    Then

    Use an engine that targets both, accept a separate visionOS build path, and keep shared logic outside it.

    No single runtime covers both platforms, so portability has to come from your own architecture.

A manufacturer supporting two headset brands and tablets

Questions and answers

Does Apple Vision Pro support OpenXR?

Not according to public documentation. Apple is not listed among the OpenXR runtime vendors on the Khronos site, and Apple's developer pages describe visionOS apps built with SwiftUI, RealityKit, ARKit and Reality Composer Pro, or with Unity. For cross-platform programs, an engine that treats visionOS as a separate build target is the practical route, and Safari's immersive WebXR VR sessions can cover lighter use cases.

Can WebXR do passthrough AR on a headset?

It can where the browser implements the WebXR AR module, which defines immersive AR sessions that show the real world behind digital content. Support depends on browser and device: some headset browsers and Chrome on Android phones offer it, while Safari on Apple Vision Pro had not enabled the AR module at the visionOS 2 release3. Test on the exact devices you plan to use, and design a VR or 3D-viewer fallback for those that lack it.

Should we use a cross-platform engine or build natively for one headset?

Use a cross-platform engine when the app must run on more than one device family, when the team already knows the engine, or when the device estate is likely to change. Build natively when one platform was chosen for good reasons and the experience depends on features only it offers. Either way, keep business logic, data access and content outside the platform-specific layer.

What happens to our application if a headset vendor leaves the enterprise market?

If the app targets OpenXR through an engine and its assets are in neutral formats, moving to another conformant headset is mostly testing, input tuning and replacing vendor extensions. The larger work usually sits in device management, enrollment and distribution, which are tied to the vendor's business program. The headset fleet guide explains how to plan for that.

Sources

  1. OpenXR: high-performance access to AR and VR — The Khronos Group · checked 10 October 2026
  2. WebXR Device API (Candidate Recommendation Draft) — W3C Immersive Web Working Group · checked 10 October 2026
  3. WebXR is enabled by default in Safari with visionOS 2 — UploadVR · checked 10 October 2026
  4. News from WWDC24: WebKit in Safari 18 beta — WebKit · checked 10 October 2026
  5. visionOS: tools and frameworks — Apple Developer · checked 10 October 2026
  6. Develop with Unity for Android XR — Android Developers · checked 10 October 2026
  7. glTF: the 3D asset delivery format — The Khronos Group · checked 10 October 2026
  8. Extended Reality (XR): ColdAI's approach to AR, MR and VR applications — ColdAI
  9. Develop for Android XR — Android Developers · checked 10 October 2026
  10. Usdz File Format Specification — OpenUSD · checked 10 October 2026

More in Extended Reality (XR)

Back to Extended Reality (XR)

Next step

Get a second opinion on your XR stack before you build

Send us the devices you need to support, the features the experience depends on and how apps will reach users. We will map the routes against those constraints and set out the dependencies each one creates.

Discuss your XR stack