Jump to content

Software development kit

From VR & AR Wiki

A software development kit (SDK) is a collection of software development tools distributed in one installable package that lets programmers build applications for a particular hardware platform, operating system, runtime, or service.[1][2] A typical SDK bundles libraries, an application programming interface (API), documentation, sample code, and tools such as a compiler, debugger, and sometimes an integrated development environment, so that a developer does not have to assemble these pieces separately or write low-level code from scratch.[1][3]

SDKs are normally specific to a hardware platform and operating system combination; well known general-computing examples include the Android SDK, the iOS SDK, and the Java Development Kit.[1] In virtual reality (VR), augmented reality (AR), and the broader category of extended reality (XR), the SDK is the primary way a headset or glasses maker exposes its tracking, rendering, input, and platform services to third-party developers. Most VR and AR content is built against one or more such kits, either a vendor-specific SDK like the Oculus SDK or a cross-vendor standard like OpenXR, usually accessed through a game engine such as Unity or Unreal Engine.

SDK versus API

An SDK and an API are related but distinct. An API is a defined set of functions, data structures, and protocols through which one piece of software requests services from another; it describes the interface without dictating the surrounding tooling.[2][3] An SDK is broader: it is a complete toolkit that brings third-party development tools into the developer's environment, and an API is typically one component inside it, alongside libraries, samples, documentation, and debugging or build tools.[2][3] Red Hat describes the relationship by noting that an API is included in most SDKs to connect new projects at the source level, while the SDK supplies the larger set of resources needed to actually build and ship the software.[3] In VR and AR this distinction matters because some products ship a pure runtime API (for example the OpenVR API that applications call at run time) while others ship a fuller kit with prefabricated components, sample scenes, and editor integrations layered on top of that API.

Typical components

The exact contents vary by vendor, but published descriptions of SDKs converge on a common set of parts.[1][2][3]

Component Role
Libraries and APIs Precompiled code modules and the documented interface used to call them, so common tasks do not have to be written from scratch.[2]
Compiler or interpreter Translates source code into a form the target platform can run.[1][2]
Debugger Locates and helps correct errors, with features such as breakpoints, variable inspection, and step-through execution.[1]
Documentation and tutorials Reference manuals, guides, and examples explaining the kit's features and recommended use.[1][3]
Sample code Illustrative programs that demonstrate how to use the kit.[1][2]
Integrated development environment (IDE) An optional editor that presents the common tools together.[1][2]
Profilers, deployment, and testing tools Utilities for measuring performance, packaging builds, and validating them on the target.[2][3]

In VR and AR kits the libraries usually include components specific to immersive computing: head and controller pose tracking, stereoscopic rendering, frame submission and reprojection, positional tracking data, input mapping, and, for AR, environment understanding such as plane detection and feature mapping.

Licensing

An SDK is distributed under a license that constrains how the resulting software may be built and shipped. Proprietary SDKs can conflict with free-software development, and a kit released under the GNU General Public License can conflict with proprietary development, whereas kits released under the GNU Lesser General Public License are generally usable for proprietary development.[1] VR and AR kits span this range: OpenVR is published by Valve as open source on GitHub,[4] OpenXR is a royalty-free open standard,[5] while platform kits such as Apple's ARKit and Meta's XR SDK are proprietary and tied to their respective hardware and stores.

Role in VR and AR

Because a VR or AR headset combines unusual hardware (multiple cameras, inertial sensors, low-persistence displays, dedicated controllers) with strict latency requirements, application developers rarely talk to that hardware directly. The platform's SDK abstracts it. The kit reports the headset and controller poses each frame, accepts the rendered left- and right-eye images, handles distortion correction and reprojection to compensate for the wide-angle optics, and exposes higher-level services such as guardian or boundary systems, hand tracking, passthrough, and store and social features.[5][6] For AR, the SDK additionally provides environment understanding: it fuses camera and motion data using computer vision and SLAM techniques to track the device in space, detect surfaces, and anchor virtual content to the real world.[7]

A recurring problem in the field has been fragmentation: each headset shipped its own SDK and API, so an application written for one device did not run on another without being ported. OpenXR was created specifically to address this by defining a common interface that many runtimes implement.[5][6] Most VR and AR developers reach these kits through a game engine. Both Unity and Unreal Engine integrate the major VR and AR SDKs, and Unity's AR Foundation and OpenXR support let a project target several runtimes from one codebase.[8]

Major VR and AR SDKs

SDK Developer Initial release Scope
Oculus SDK (later Meta XR SDK) Oculus VR / Meta Platforms 2013 PC and standalone Meta headsets; rendering, tracking, input, and platform services[9][10]
OpenVR Valve 2015 Open-source API and runtime behind SteamVR; multi-vendor headset and controller support[4]
Vuforia Qualcomm, now PTC 2010 Cross-platform mobile and headset AR; image, object, and model tracking[11][12]
ARKit Apple 2017 Mobile AR on iOS, iPadOS, and visionOS; world tracking, plane detection, scene understanding[7]
ARCore Google 2018 (preview 2017) Mobile AR on Android and iOS; motion tracking, environmental understanding, light estimation[13]
OpenXR Khronos Group 2019 Cross-vendor open standard for VR and AR runtimes and devices[5][6]
Snapdragon Spaces Qualcomm 2021 Headworn AR on smartphone-tethered glasses; OpenXR-conformant runtime[8][14]

History in VR and AR

The modern wave of consumer VR SDKs began with Oculus VR. The company shipped the Oculus Rift Development Kit 1 to backers in 2013 and developed a proprietary Windows SDK for it; from 2013 to 2015 that firmware and SDK were built exclusively for the Rift, and Facebook (now Meta Platforms) acquired Oculus in 2014.[9] Starting in 2014 Oculus extended its software to Android for the Samsung Gear VR, producing a separate mobile SDK.[9] Over time the Oculus-branded kits were consolidated and rebranded; the legacy Oculus Integration package for Unity was deprecated and replaced by modular Meta XR packages delivered through the Unity Package Manager beginning with version 59 in 2023.[10]

Valve released the OpenVR SDK publicly on 30 April 2015 as the default API and runtime for SteamVR. OpenVR was designed for multiple vendors, so an application could target controllers and headsets from different makers (such as the HTC Vive, Oculus Rift, and Windows Mixed Reality devices) without hardware-specific code, and Valve published it as open source on GitHub.[4]

On the AR side, Vuforia launched on Android in 2010 as a Qualcomm computer-vision SDK and came to iOS in 2011; Qualcomm reported it was used by more than 175,000 registered developers and powered over 20,000 apps by the time PTC acquired it for $65 million in 2015.[11][12] Mobile AR became mainstream when Apple released ARKit with iOS 11 in 2017 and Google released ARCore for Android, which it previewed in August 2017 and brought to a stable 1.0 in February 2018; ARCore drew on Google's earlier Project Tango research.[7][13] Both kits use camera and motion-sensor fusion with SLAM to place virtual objects in the user's surroundings, and ARKit later expanded to iPadOS and to visionOS on the Apple Vision Pro.[7]

The clearest response to SDK fragmentation is OpenXR. The Khronos Group announced the OpenXR working group at the Game Developers Conference on 27 February 2017, published a provisional 0.90 specification on 18 March 2019, and ratified version 1.0 at SIGGRAPH on 29 July 2019.[5][6] The standard defines two interfaces: an application interface that developers and engines code against, and a device-layer interface that runtimes use to drive headsets and controllers.[6] At the 1.0 launch, shipping implementations included Microsoft's runtime for Windows Mixed Reality and HoloLens 2, an Oculus runtime for the Rift, and Collabora's open-source Monado runtime, with Unreal Engine support planned.[5] Support widened afterward: SteamVR added an OpenXR runtime in February 2021, Unity gained OpenXR support from version 2020.2, and version 1.1 of the specification was released on 15 April 2024.[6] Qualcomm built its Snapdragon Spaces developer platform for smartphone-tethered AR glasses on an OpenXR-conformant runtime, announcing it on 9 November 2021 with SDKs for Unity and Unreal Engine.[8][14]

Web and engine-level kits

Not every VR or AR developer uses a native platform SDK. The WebXR Device API exposes VR and AR capabilities to web browsers, allowing immersive experiences to run from a web page without a separately installed kit, and game engines act as a layer above the underlying SDKs. Unity and Unreal Engine both integrate the major VR and AR kits and expose them through higher-level abstractions, which is why most commercial VR and AR titles are authored in an engine rather than directly against a single vendor SDK.[8][6]

Current status

As of 2026 the dominant pattern in VR and AR development is engine integration over OpenXR for cross-device portability, supplemented by vendor-specific kits where a developer needs features unique to one platform, such as Meta's hand tracking and platform services through the Meta XR SDK or Apple's spatial features through ARKit and visionOS.[10][7][6] Several earlier kits have been retired: Google ended updates to its Google VR SDK for Cardboard and Daydream on 15 October 2019, releasing a smaller open-source Cardboard SDK as the migration path, and the original monolithic Oculus Integration package was superseded by the modular Meta XR packages.[15][10]

References

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 "Software development kit". https://en.wikipedia.org/wiki/Software_development_kit.
  2. 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 "What is SDK (Software Development Kit)". https://aws.amazon.com/what-is/sdk/.
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 "What is an SDK?". https://www.redhat.com/en/topics/cloud-native-apps/what-is-SDK.
  4. 4.0 4.1 4.2 "OpenVR". https://en.wikipedia.org/wiki/OpenVR.
  5. 5.0 5.1 5.2 5.3 5.4 5.5 "Khronos Releases OpenXR 1.0 Specification Establishing a Foundation for the AR and VR Ecosystem". 2019-07-29. https://www.khronos.org/news/press/khronos-releases-openxr-1.0-specification-establishing-a-foundation-for-the-ar-and-vr-ecosystem.
  6. 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 "OpenXR". https://en.wikipedia.org/wiki/OpenXR.
  7. 7.0 7.1 7.2 7.3 7.4 "ARKit". https://en.wikipedia.org/wiki/ARKit.
  8. 8.0 8.1 8.2 8.3 "Snapdragon Spaces XR Developer Platform Launches to Create Headworn AR Experiences that Adapt to the Spaces Around Us". 2021-11-09. https://www.qualcomm.com/news/releases/2021/11/snapdragon-spaces-xr-developer-platform-launches-create-headworn-ar.
  9. 9.0 9.1 9.2 "Oculus Rift". https://en.wikipedia.org/wiki/Oculus_Rift.
  10. 10.0 10.1 10.2 10.3 "Unity Package Manager (UPM): Important Meta XR SDK Release Updates for Unity". https://developers.meta.com/horizon/blog/unity-package-manager-sdk-updates-v59-meta-quest/.
  11. 11.0 11.1 "PTC buys Qualcomm's Vuforia augmented reality platform for $65 million". 2015-10-12. https://fortune.com/2015/10/12/ptc-buys-vuforia-from-qualcomm/.
  12. 12.0 12.1 "PTC to Acquire Augmented Reality Leader Vuforia from Qualcomm". 2015-10-12. https://investor.ptc.com/resources/news/news-details/2015/PTC-to-Acquire-Augmented-Reality-Leader-Vuforia-from-Qualcomm/default.aspx.
  13. 13.0 13.1 "Announcing ARCore 1.0 and new updates to Google Lens". 2018-02-23. https://developers.googleblog.com/2018/02/announcing-arcore-10-and-new-updates-to.html.
  14. 14.0 14.1 "Qualcomm Introduces Snapdragon Spaces XR Developer Platform Using OpenXR". https://www.khronos.org/news/permalink/qualcomm-introduces-snapdragon-spaces-xr-developer-platform-using-openxr.
  15. "Releases - gvr-android-sdk". https://developers.google.com/vr/android/release-notes.