Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Oculus SDK
Information
Type Software development kit
Industry Virtual reality
Developer Oculus VR (Meta Platforms)
Operating System Windows (earlier 0.x releases also macOS and Linux)
License Oculus Software Development Kit License Agreement
Supported Devices Oculus Rift DK1, Oculus Rift DK2, Oculus Rift CV1, Oculus Rift S
Website https://developers.meta.com/horizon/downloads/package/oculus-sdk-for-windows/


The Oculus SDK (distributed in its later versions as the Oculus PC SDK or "Oculus SDK for Windows") is the software development kit that Oculus VR, now part of Meta Platforms, provided for building native PC applications for the Oculus Rift family of headsets. Its core library is LibOVR, which Meta's documentation also calls CAPI and describes as "the legacy API for PC VR applications, such as those on the Rift and Rift S".[1] The current download page describes the package as a way to "Build VR apps for Rift and Rift S in C++ with the Oculus PC SDK" and states that it is supported only on Windows.[2]

The SDK was used throughout the Oculus Rift DK1 and DK2 development-kit period and went through a series of 0.x versions before version 1.0 shipped to launch-title developers in December 2015.[3] Early versions also ran on macOS and Linux, but Oculus paused that work in May 2015 to concentrate on Windows.[4] In July 2021 Oculus announced that its proprietary PC and mobile APIs would be deprecated in favor of OpenXR; the PC SDK entered "compatibility support" on 31 August 2021 and became unsupported on 31 August 2022.[5] The last version listed on the download page is 32.0.0, dated 30 August 2021.[2]

This article covers the PC SDK for Rift headsets. The separate SDK for Android-based headsets such as the Samsung Gear VR, Oculus Go and Oculus Quest is described in Oculus Mobile SDK.

Reviewed 27 September 2026. Checked every cited source for the SDK version history (0.2.3 to 32.0.0), the 2021-2022 OpenXR deprecation schedule, LibOVR API and setup documentation, the PC 3.2 license terms, demo descriptions and the Revive/DRM episode. About review dates.

History

DK1 era (2013)

Version 0.2.3 of the SDK, released in early July 2013, added official Linux support to the Oculus C++ SDK; Phoronix reported that it had been tested under Ubuntu 12.04 LTS.[6] The Linux package included a configuration script that installed the required development libraries, a udev rule granting access to the headset's hidraw tracking device, and the "Tuscany" C++ demo in 32-bit and 64-bit binaries with source code, according to a hands-on report by GamingOnLinux.[7]

C API and DK2 (2014)

The 0.3.1 preview, released on 15 April 2014, added initial support for the Oculus Rift DK2, although positional tracking was not yet implemented. It reorganized the headset and sensor interfaces into a simplified C API intended to make LibOVR easier to use from other programming languages, and it modelled lens distortion with spline curves instead of polynomials.[8] The same release introduced John Carmack's timewarp technique, which re-projects the rendered scene to a more recently measured head orientation during the distortion pass to reduce motion-to-photon latency.[8] Developers could choose between "SDK rendering", the recommended mode in which LibOVR handled distortion automatically, and "client rendering", in which the application kept control of distortion and post-processing. The preview was Windows-only, and a Unity 4 integration was released alongside it.[8]

Version 0.4.0 beta arrived in July 2014. It added support for the DK2's positional tracking, split the drivers, configuration utility and background service into a separate Oculus Runtime package, and introduced a Windows display driver that let applications render directly to the Rift instead of treating it as an extended desktop monitor. Mac and Linux builds were listed as "coming soon" at release.[9] In an interview with Gamasutra, Oculus chief software architect Michael Antonov said that "The Oculus C API was originally introduced with the 0.3 SDK release and was updated to support positional tracking with 0.4," that the tracking system "relies on computer vision based tracking of infrared LEDs within the headset," and that Epic Games had "integrated the Oculus SDK into the main codebase" of Unreal Engine 4.[10] Road to VR later noted that Mac support returned in 0.4.1 and experimental Linux support in 0.4.3.[4]

Road to 1.0 (2015)

On 15 May 2015 Oculus paused SDK development for OS X and Linux. Chief architect Atman Binstock wrote that the work "has been paused in order to focus on delivering a high quality consumer-level VR experience at launch across hardware, software, and content on Windows."[4][11]

PC SDK 0.6.0, made available the same day, moved distortion rendering out of the application into a compositor service running in the OVRServer process and added layer support, which lets an application submit several independent render targets (Oculus gave the example of a heads-up display, a background and the game space), each with its own size, resolution and update rate. Oculus described the release as "a major step toward v1.0 including removing support for application-based distortion rendering."[12]

PC SDK 0.7, released on 20 August 2015, introduced Direct Driver Mode, developed with NVIDIA and AMD, in which "headset awareness is added directly to the driver." It also removed Extended Mode, the older option of treating the headset as a desktop monitor, which had often caused problems for users and developers. Applications built with SDKs older than 0.6.0.1 were not supported by the 0.7 runtime, and Unity 4 developers were told to move to Unity 5 to use the new features.[13]

PC SDK 0.8, reported by Road to VR on 22 October 2015, improved support for Windows 10, which the Rift had not officially supported through 0.7. It moved the API from an HMD-based model to a session-based model and added ovr_GetTrackingCaps; Road to VR read the change as preparation for tracking several devices, including Oculus Touch controllers and third-party peripherals using the Constellation system.[14]

Version 1.0 and the consumer Rift (2015-2016)

In December 2015 Oculus began sending finished Rift hardware and SDK 1.0 to selected developers. The company said that "the Rift SDK 1.0 and runtime include features tied to the consumer product, so we've currently limited the release to developers putting final touches on launch titles."[3]

On 28 March 2016 Oculus announced PC SDK 1.3 on the Oculus Developer Center, with "support for the consumer Rift, app lifecycle support, native integrations with the latest releases of Unity and Unreal Engine, and Asynchronous Timewarp (ATW)." The same announcement introduced Oculus Platform SDK 1.0 with leaderboards, matchmaking and peer-to-peer networking, and said that DK2 units, although not supported as consumer devices, would remain functional as development kits that year for developers using the latest SDK.[15]

OpenXR and deprecation (2020-2022)

In July 2020 Oculus announced support for an OpenXR 1.0 implementation as of its v19 release, allowing developers to submit OpenXR applications to the Oculus Store as an alternative to the proprietary SDKs.[16]

On 23 July 2021 Oculus announced that it was "all in" on OpenXR. From the v31 release, new features would be delivered as OpenXR extensions rather than through new Oculus Mobile and PC APIs.[5] Road to VR noted that this included the then newly announced passthrough API.[17] The support levels for the legacy APIs were:

Date Status of Oculus PC and Mobile APIs Meta's commitments
31 August 2021 Compatibility support Limited QA testing; triage of reported bugs and fixes for critical ones; migration guides to OpenXR, but no help creating new applications with the legacy APIs[5]
31 August 2022 Unsupported Fixes only for critical security, privacy or safety bugs; QA reduced to automated testing of core features[5]

Oculus said that existing applications built with the older SDKs would continue to function.[5][17] The final PC SDK release, 32.0.0 (30 August 2021), contained no new features; its notes list bug fixes, including the removal of a signature check in LibOVR, a memory-leak fix in the OculusRoomTiny_DX12 sample and debug-layer support for OculusRoomTiny_Vk.[2] Meta's current documentation states that LibOVR "remains available only for PC VR applications targeting Rift hardware".[1]

Features

LibOVR is a C interface for head tracking and stereo rendering on a connected PC. An application initializes the library with ovr_Initialize, then calls ovr_Create, and obtains a predicted headset pose for each frame by combining GetPredictedDisplayTime with ovr_GetTrackingState. Rendering goes into texture swap chains created for the graphics API in use, for example with ovr_CreateTextureSwapChainDX for Direct3D or ovr_CreateTextureSwapChainGL for OpenGL, and each frame is submitted through ovr_WaitToBeginFrame, ovr_BeginFrame and ovr_EndFrame.[18] Since 0.6, distortion correction and layer composition have been handled by the Oculus compositor rather than by the application.[12]

The SDK setup guide states that versions follow a major.minor.patch format, that Visual Studio solutions and project files are provided for Visual Studio 2010, 2012, 2013, 2015 and 2017, that the LibOVR libraries do not require exception handling or RTTI, and that the SDK does not support the Universal Windows Platform (UWP).[19]

License

The SDK was distributed under the Oculus Software Development Kit License Agreement. The archived PC 3.2 version of the agreement, replaced on 1 June 2020, granted a "perpetual, worldwide, non-exclusive, no-charge, royalty-free, sublicenseable" copyright license, but stated that the SDK "may only be used with Oculus Approved Rift Products" and could not be used to interface with other commercial headsets. LibOVR source, binary or object code could be redistributed only "in whole".[20]

Supported devices

Headset SDK support
Oculus Rift DK1 Supported by the early 0.x releases, including 0.2.3 (2013)[6]
Oculus Rift DK2 Initial support in 0.3.1 (April 2014); positional tracking from 0.4.0 (July 2014)[8][9]
Oculus Rift CV1 SDK 1.0 to launch-title developers (December 2015); consumer Rift support in 1.3 (March 2016)[3][15]
Oculus Rift S Listed as a target of the Oculus PC SDK on the download page[2]

Third-party compatibility layers

Revive, a project by the developer LibreVR, is a compatibility layer that redirects Oculus SDK calls to OpenVR so that games made for the Rift can run on the HTC Vive. In May 2016, Oculus Home 1.4 changed the entitlement check to also verify that a Rift was connected, which blocked Revive; Oculus said the update was intended to "curb piracy" and "wasn't targeted at a specific hack."[21] Oculus removed the hardware check in the runtime 1.5 update the following month and stated: "We won't use hardware checks as part of DRM on PC in the future."[22]

Installation

The Oculus SDK for Windows is available for download from the Meta Horizon Developer Center (formerly the Oculus Developer Center).[2][19] Earlier releases of the Oculus SDK were also available for other operating systems.[6][4]

Demos

The SDK includes sample programs with source code. Meta's getting-started guide describes two of them:[23]

Sample Description
OculusWorldDemo A more complex sample intended to be portable and to support more features: windowed and full-screen switching, XML 3D model and texture loading, movement collision detection, adjustable view size and quality, 2D UI text overlays, and an overlay menu for settings such as field of view, render target use and timewarp. It uses Direct3D 11 by default; the "-r GL" command-line argument selects OpenGL. A pre-built executable is included in the SDK root.[23]
OculusRoomTiny A compact sample that combines the critical SDK features: LibOVR initialization, device access, the player profile, head tracking, sensor fusion, stereoscopic 3D rendering and distortion processing. It comes in Direct3D 11, OpenGL and Direct3D 12 variants, each with its own project.[23] The 32.0.0 release notes also refer to a Vulkan variant, OculusRoomTiny_Vk.[2]

See also

References

  1. ↑ 1.0 1.1 "OpenXR, VRAPI, and LibOVR". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/documentation/native/android/os-openxr-vrapi/. Retrieved 2026-09-27.
  2. ↑ 2.0 2.1 2.2 2.3 2.4 2.5 "Oculus SDK for Windows". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/downloads/package/oculus-sdk-for-windows/. Retrieved 2026-09-27.
  3. ↑ 3.0 3.1 3.2 Steve Dent (2015-12-22). "Oculus begins shipping the finished Rift to developers". Engadget. https://engadget.com/2015/12/22/oculus-rift-consumers-developers. Retrieved 2026-09-27.
  4. ↑ 4.0 4.1 4.2 4.3 Paul James (2015-05-16). "Oculus 'Pausing' Rift SDK Development on Mac and Linux". Road to VR. https://www.roadtovr.com/oculus-pausing-oculus-rift-development-on-mac-and-linux/. Retrieved 2026-09-27.
  5. ↑ 5.0 5.1 5.2 5.3 5.4 "Oculus All In on OpenXR: Deprecates Proprietary APIs". Meta Horizon OS Developers Blog. Meta. 2021-07-23. https://developers.meta.com/horizon/blog/oculus-all-in-on-openxr-deprecates-proprietary-apis/. Retrieved 2026-09-27.
  6. ↑ 6.0 6.1 6.2 Michael Larabel (2013-07-03). "Oculus SDK Update Officially Supports Linux". Phoronix. https://www.phoronix.com/news/MTQwMjA. Retrieved 2026-09-27.
  7. ↑ Cheeseness (2013-07-06). "Oculus Rift First Impressions and Official Linux Support". GamingOnLinux. https://www.gamingonlinux.com/2013/07/oculus-rift-first-impressions-and-official-linux-support/. Retrieved 2026-09-27.
  8. ↑ 8.0 8.1 8.2 8.3 Ben Lang (2014-04-15). "New Oculus Rift SDK v0.3.1 Preview: John Carmack's Timewarp, Improved Distortion, and More". Road to VR. https://www.roadtovr.com/oculus-rift-sdk-v0-3-1-preview-distortion-john-carmack-timewarp/. Retrieved 2026-09-27.
  9. ↑ 9.0 9.1 Ben Lang (2014-07-25). "Oculus SDK 0.4.0 Beta Now Available for Windows, New Display Option Reduces Latency". Road to VR. https://roadtovr.com/new-oculus-sdk-0-4-0-beta-now-available-windows/. Retrieved 2026-09-27.
  10. ↑ Alex Wawro (2014-08-01). "Q&A: Oculus' software guru sheds light on the new SDK driving DK2". Game Developer (Gamasutra). https://www.gamedeveloper.com/programming/q-a-oculus-software-guru-sheds-light-on-the-new-sdk-driving-dk2. Retrieved 2026-09-27.
  11. ↑ Jessica Conditt (2015-05-15). "Oculus pauses Mac and Linux development, offers PC specs". Engadget. https://www.engadget.com/2015-05-15-oculus-rift-mac-linux-paused-pc-specs.html. Retrieved 2026-09-27.
  12. ↑ 12.0 12.1 "The Rift's Recommended Spec, PC SDK 0.6 Released, and Mobile VR Jam Voting". Meta Quest Blog. Meta. 2015-05-15. https://www.meta.com/blog/the-rifts-recommended-spec-pc-sdk-0-6-released-and-mobile-vr-jam-voting/. Retrieved 2026-09-27.
  13. ↑ Paul James (2015-08-07). "Oculus PC SDK 0.7 is a Major Overhaul, New Direct Driver Mode Made with NVIDIA & AMD". Road to VR. https://www.roadtovr.com/oculus-pc-sdk-0-7-brings-new-direct-driver-mode-and-a-major-overhaul/. Retrieved 2026-09-27.
  14. ↑ Ben Lang (2015-10-22). "Oculus Releases PC SDK 0.8 with "Improved Support for Windows 10"". Road to VR. https://www.roadtovr.com/oculus-releases-pc-sdk-0-8-with-improved-support-for-windows-10/. Retrieved 2026-09-27.
  15. ↑ 15.0 15.1 "Oculus PC SDK 1.3 Now Available". Meta Horizon OS Developers Blog. Meta. 2016-03-28. https://developers.meta.com/horizon/blog/oculus-pc-sdk-1-3-now-available/. Retrieved 2026-09-27.
  16. ↑ "OpenXR for Oculus". Meta Horizon OS Developers Blog. Meta. 2020-07-27. https://developers.meta.com/horizon/blog/openxr-for-oculus/. Retrieved 2026-09-27.
  17. ↑ 17.0 17.1 Ben Lang (2021-07-28). "Oculus is "All in on OpenXR," New Developer Features Will Come to OpenXR Only". Road to VR. https://roadtovr.com/oculus-openxr-shift-unity-unreal-engine/. Retrieved 2026-09-27.
  18. ↑ "LibOVR Integration". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/documentation/native/pc/dg-libovr/. Retrieved 2026-09-27.
  19. ↑ 19.0 19.1 "Rift SDK Setup". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/documentation/native/pc/dg-sdk-setup/. Retrieved 2026-09-27.
  20. ↑ "Oculus Software Development Kit License Agreement (PC 3.2, archived)". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/licenses/pc-3.2/. Retrieved 2026-09-27.
  21. ↑ Paul James (2016-05-24). "Platform Politics: Inside the Oculus and 'Revive' Dilemma". Road to VR. https://roadtovr.com/security-vs-exclusivity-inside-the-dilema-surrounding-oculus-and-revive/. Retrieved 2026-09-27.
  22. ↑ Devin Coldewey (2016-06-24). "Oculus removes hardware DRM that locked games onto its headset". TechCrunch. https://techcrunch.com/2016/06/24/oculus-removes-hardware-drm-that-locked-games-onto-its-headset. Retrieved 2026-09-27.
  23. ↑ 23.0 23.1 23.2 "Getting Started with the Demos". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/documentation/native/pc/gsg-intro-oneworld/. Retrieved 2026-09-27.