Oculus Mobile SDK | Updated 2015-08-14

I have read and agree to the terms of the EULA, Terms of Use and Privacy Policy

  • Release Notes
  • Legal

Oculus Mobile SDK

This document provides an overview of new features, improvements, and fixes included in the latest version of the Oculus Mobile SDK.

The version of the Oculus Mobile SDK includes major structural changes to the native VrAppFramework library. Several subsystems that were previously part of VrAppFramework have been moved into individual libraries under the VrAppSupport folder, making the application framework leaner and reducing its focus to handling the Android application lifecycle.

LibOVR has now been renamed to LibOVRKernel to better represent its intended functionality and to maintain parity with the PC SDK.

The Java activity code has been refactored to remove dependencies on the VrActivity class for applications that do not use VrAppFramework.

The SDK Native Samples were updated to a cross-platform friendly structure. Android Library Projects are now found at [ProjectName]/Projects/Android.

Changes to Unity Integration

The Oculus Unity Integration is no longer bundled with the Mobile SDK and must now be downloaded separately from our Downloads page: https://developer.oculus.com/downloads/

We now provide a Utilities for Unity package for use with Unity’s first-party VR support (available in Unity 5.1+). For legacy project development, we currently offer a legacy Unity Integration package for use with Unity 4.6.7 and later. Please see our Unity documentation for more information.

If you are using the Utilities for Unity Package with Unity 5.1+, the SDKExamples are now available for download separately.

If you are using the Legacy Unity Integration, update to Oculus Runtime for OS X Before updating your runtime, be sure to run uninstall.app (found in /Applications/Oculus/) to remove your previous installation.

New Features

  • VrApi
    • Images composited by the time warp are now allocated through the VrApi as “texture swap chains”.
    • Performance params (CPU/GPU level, thread ids) can now be adjusted every frame through vrapi_SubmitFrame.
    • adb logcat -s VrApi now reports the thread affinity.
    • ovr_GetSystemProperty now provides options for querying GpuType, Device external memory, and max fullspeed framebuffer samples, see ovrSystemProperty in VrApi_Types.h
  • VrCubeWorld
    • Added example to VrCubeWorld_SurfaceView and VrCubeWorld_NativeActivity samples to reduce the latency by re-sampling the tracking state later in the frame.
  • VrTemplate
    • make_new_project script is now converted to Python for cross-compatibility.
  • VrCapture / OVRMonitor
    • VrCapture may now be integrated into and collect data from multiple shared libraries in your app simultaneously (previously you could capture from VrApi or from your app, but not both at the same time).
    • OpenGL and logcat calls are now captured throughout the entire process.
    • Applications may now expose user-adjustable variables via OVR::Capture::GetVariable() and tweak the values in real-time in OVRMonitor.
    • Frame Buffer capturing now does basic block-based compression on the GPU, reducing network bandwidth by 50%.
    • GPU Zones are enabled, but we recommend only using them on the Samsung GALAXY S6.
    • Added Settings View for toggling VR Developer Mode.
    • Sensor Graphs now turn red when values exceed max defined by SetSensorRange().

API Changes

  • Native Application Framework
    • VRMenu, OvrGuiSys, OvrGazeCursor and related classes have been moved to the VrAppSupport/VrGui library.
    • OvrSceneView, ModelFile and related classes have been moved to the VrAppSupport/VrModel library.
    • Localization-related functionality has been moved to the VrAppSupport/VrLocale library.
    • The sound pool and related classes have been moved to the VrAppSupport/VrSound library.
    • The VrGui library now uses the SoundEffectPlayer interface for sound playback, replacing SoundManager. This simple interface can be overloaded to allow VrGui sounds to be played by any sound library.
    • VrActivity java class now subclasses Android Activity instead of ActivityGroup.

Bug Fixes

  • VrAPI
    • Fixed adb logcat -s VrApi failure to report memory stats.
  • Native Application Framework
    • Fixed a bug where missing font glyphs were skipped instead of rendering as an asterisk.
  • Cinema SDK
    • Fixed last media poster showing up as the first poster for another category.
    • Play/Pause icon does not function correctly after unmount/mount.
    • Unmount/Mount does not pause media immediately.
    • Fixed bad camera orientation in Void theater when auto-switching from another theater due to starting a video with a resolution greater than 1920x1080.
  • 360 Photos SDK
    • Fixed Favorites and Folder Browser icon switching in the attribution menu.
    • Fixed menu state bug causing background scene not to be drawn.
    • Fixed menu orientations not resetting on reorient.
    • Increased vertical spacing between categories in Folder Browser to improve thumbnail scrollbar fit.
  • 360 Videos SDK
    • Fixed media failure to pause immediately when unmounted.
    • Fixed movie not pausing on launching system activities.
    • Fixed menu orientation when resuming app.
    • Fixed gaze cursor not showing up when in Browser.
  • Build Scripts
    • Fix for devices over adb tcpip: If the phone was connected over TCP, it was trying to find oculussig_WWW.XXX.YYY.ZZZ:PPP when checking for the oculussig file.
    • If an install and run was requested but no devices found, now reports to user rather than quitting silently.
    • Change directories in an exception-safe manner.
  • VrCapture / Remote Monitor
    • Fixed rare crash when disconnecting from remote host on OS X.
    • Reconnecting to an app multiple times no longer puts the capture library in an undefined state.

Known Issues

  • Unity 4 with Oculus Runtime for OS X 0.4.4 and Legacy Integration or
    • Editor crashes when building APK or pressing play in Play View; Mac standalone player crashes. To fix, update to Oculus Runtime for OS X Before updating your runtime, be sure to run uninstall.app (found in /Applications/Oculus/) to remove your previous installation.VrApi implicitly links to libGLESv3.so, so currently you cannot load libvrapi.so on devices without OpenGL ES 3.0 support.
  • VrCapture / Remote Monitor
    • GPU Zones currently work on the Galaxy S6 only.
    • Timer Queries are not functional on Adreno based devices.
    • Integrated systrace support is under development and is currently disabled.
    • Some VPNs break auto-discovery.

Oculus VR, LLC Software Development Kit License Agreement

Copyright ©  Oculus VR, LLC. All rights reserved.

The text of this may be found at: https://developer.oculus.com/licenses/mobile-3.2.1/

Human-Readable Summary*:

You are Free to:

Use, modify, and distribute the Oculus Mobile SDK in source and binary form with your applications/software.

With the Following Restrictions:

  • You can only distribute or re-distribute the source code to VRLib in whole, not in part.
  • Modifications to the Oculus Mobile SDK in source or binary form must be shared with Oculus.
  • If your applications cause health or safety issues, you may lose your right to use the Oculus Mobile SDK.
  • The Oculus Mobile SDK may not be used to interface with unapproved commercial virtual reality mobile or non-mobile products or hardware.

* This human-readable Summary is not a license. It is simply a convenient reference for understanding the full Oculus Mobile SDK License Agreement. The Summary is written as a user-friendly interface to the full Oculus Mobile SDK License Agreement below. This Summary itself has no legal value, and its contents do not appear in the actual license.

Full-length Legal Copy:

1. Subject to the terms and conditions of this License Agreement (the “License”), Oculus VR, LLC (“Oculus”) hereby grants to you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, sublicenseable copyright license to use, reproduce, redistribute (subject to restrictions below), modify, and improve the software contained in this Oculus Mobile Software Development Kit (“MOBILE SDK”), including, but not limited to, the samples, headers, VRLib headers, and VRLib source. This license is subject to the following terms and conditions:

1.1. This license includes the non-exclusive license and right to use (i) the MOBILE SDK to make applications, content, games and demos (collectively and generally referred to as “Developer Content”) that run on the Oculus approved mobile hardware and software products (“Oculus Approved Mobile Products”) and which may incorporate the MOBILE SDK in whole or in part in binary or object code; and (ii) use the MOBILE SDK to create derivative works of the MOBILE SDK itself (“MOBILE SDK Derivatives”), whether in source, binary, or object form, in whole or in part, including third-party software unless otherwise noted.

1.2. MOBILE SDK Derivatives are further defined as source, binary or object code derived exclusively from the MOBILE SDK by you; provided, however, that MOBILE SDK Derivatives do not include the Developer Content (engines, utilities, applications, content, games or demos) which may be developed using the MOBILE SDK. By way of example a mobile application or game or demo that is developed using the MOBILE SDK would not be a MOBILE SDK Derivative, nor would a utility or tool set in a pre-existing game engine that is adapted to work with the MOBILE SDK be a MOBILE SDK Derivative. By way of example, but not limitation, a MOBILE SDK Derivative is or would be: either (i) an adaptation of a utility or piece of code from the MOBILE SDK to improve efficiency; or (ii) an addition of code or improvement to the MOBILE SDK that adds functionality.

1.3 For the sake of clarification when you use the MOBILE SDK (including MOBILE SDK Derivatives) in or with Developer Content, you retain all rights to your Developer Content, and you have no obligations to share or license Developer Content (including your source and object code) to Oculus or any third parties; provided, however, Oculus retains all rights to the MOBILE SDK and the MOBILE SDK Derivatives that may be incorporated into your Developer Content.

1.4 You agree to and you will use the Flash Screen Warning and the Health and Safety Warnings (collectively the “Oculus Warnings”) and the Oculus health and safety protocols found in the Oculus Best Practices Guide (“Oculus H&S Protocols”), and you will use the Oculus Warnings and the Oculus end user license agreement (“Oculus EULA”) with your Developer Content as provided for in the Oculus Developer Center, all of which can be found at the following link: https://developer.oculus.com/documentation/.

2. You, the recipient and user of the MOBILE SDK, hereby agree and accept that Oculus shall own all right, title and interest to the intellectual property rights, including, but not limited to copyright, trademark and patent rights, to any MOBILE SDK Derivatives that you may create, and you hereby assign any and all such rights to such MOBILE SDK Derivatives to Oculus.

2.1 We hereby grant to you a fully paid up, no-charge, royalty-free, world-wide, in perpetuity, non-exclusive right and license back to use these MOBILE SDK Derivatives solely in conjunction with the MOBILE SDK (or any components of the MOBILE SDK) and/or Developer Content on Oculus Mobile Products as set forth herein.

2.2 Furthermore, for the sake of clarification, Oculus and its assignees and licensees shall be free to use such MOBILE SDK Derivatives without any approval from you and without compensation or attribution to you.

2.3 You also agree upon Oculus’s request to provide the source and binary code of any MOBILE SDK Derivatives to Oculus. Failure to comply with this request is the basis for automatic termination of this License by Oculus.

3. Subject to the terms and conditions of this License, your license to redistribute and sublicense the MOBILE SDK and MOBILE SDK Derivatives is also expressly made subject to the following conditions:

3.1. You may sublicense and redistribute the source, binary, or object code of the MOBILE SDK in whole or in part by itself for no charge; provided, however, you may only license, sublicense or redistribute the source, binary or object code of VRLib in whole, and you may not license, sublicense or redistribute any portion or element of VRLib separately or in part (in either source, binary or object form). If you license, sublicense or redistribute MOBILE SDK Derivatives in and of themselves (not as a part of a piece of Developer Content) then you may only do that solely with and in conjunction with either the MOBILE SDK or VRLib. The MOBILE SDK, any MOBILE SDK Derivatives, and any Developer Content may only be used with Oculus Approved Mobile Products and may not be used, licensed, or sublicensed to interface with mobile software or hardware or other commercial headsets, mobile tablets or phones that are not authorized and approved by Oculus;

3.2. You must include with all such redistributed or sublicensed MOBILE SDK or MOBILE SDK Derivatives code the following copyright notice: “Copyright © (current year) Oculus VR, LLC. All rights reserved,” and include the list of conditions contained in this Section 3, including the full text of the disclaimer in Section 3.6 below;

3.3. Neither the name of Oculus VR, LLC nor the names of Oculus VR, LLC’s contributors, licensors, employees, or contractors, may be used to endorse or promote products derived from this MOBILE SDK without specific prior written permission of Oculus VR, LLC;

3.4. You must give any other recipients of the MOBILE SDK or any elements thereof, including MOBILE SDK Derivatives, a copy of this License; and such recipients must agree to and enter into this License with Oculus. Recipients, licensees or sublicensees may only use the MOBILE SDK or any MOBILE SDK Derivatives or any elements thereof subject to the terms of this License. You must cause any modified files to carry prominent notices stating that you changed the files;

3.5. If the MOBILE SDK or a specific element thereof such as VRLib includes a “LICENSE” text file as part of its distribution (the “License Notice”), then any MOBILE SDK Derivatives that you distribute with the MOBILE SDK in whole or in part must include a readable copy of such attribution notices as are contained within the applicable License Notice file (excluding those notices that do not pertain to any part of the MOBILE SDK Derivatives), in at least one of the following places: within a License Notice text file distributed as part of the MOBILE SDK Derivatives; within the source form or documentation, if provided along with the MOBILE SDK Derivatives; or, within a display generated by the MOBILE SDK Derivatives, if and wherever such third-party notices normally appear. You must also include in the License Notice file for all MOBILE SDK Derivatives a copy of all notices (including any product liability or health and safety notices). The contents of the License Notice file are for informational purposes only and do not modify the License. You may add your own attribution notices within MOBILE SDK Derivatives that you distribute, alongside or as an addendum to the License Notice text from the MOBILE SDK or any part thereof, provided that such additional attribution notices cannot be construed as modifying the License.


4. This License does not grant permission to use the trade names, trademarks, service marks, or product names of Oculus, except as required for reasonable and customary use in describing the origin of the MOBILE SDK, or any element thereof, and reproducing the content of the License Notice file.

5. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall Oculus or any contributor be liable to you or your licensees or sublicensees for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the MOBILE SDK, any element thereof or any MOBILE SDK Derivatives (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if you or such contributor has been advised of the possibility of such damages.

6. Your acceptance of the terms and conditions of this License in and of itself and for all Developer Content created as of , may be evidenced by any of the following: your usage of the MOBILE SDK or any element thereof, or acceptance of the click-through agreement. As this License is updated for future releases of the MOBILE SDK, you agree to abide by and meet all requirements of future updates of this License for those future MOBILE SDK releases as evidenced by the same usage of the MOBILE SDK or any element thereof and the future updates of this License will apply for that future Developer Content that may be developed for or with that future MOBILE SDK or any element thereof (i.e., you cannot sidestep out of the requirements of future updates of the License by developing against an older release of the MOBILE SDK or License).

7. Oculus reserves the right to terminate this License and all your rights hereunder in the event you materially breach this License and fail to cure such breach within ten (10) business days after notice of breach from Oculus.

8. Furthermore, Oculus also reserves the right to cancel or terminate this License for any of the following reasons upon notice to you, subject to the appeal process set forth in Section 16 for a wrongful termination:

  1. Intellectual property infringement by you with Developer Content or MOBILE SDK Derivatives created by you that is used with or by the MOBILE SDK or any part thereof, or any of the MOBILE SDK Derivatives;
  2. Developer Content that violates or infringes upon applicable law;
  3. Health and safety issues associated with your Developer Content;
  4. Failure to comply with or use properly the Oculus Warnings, Oculus H&S Protocols, or Oculus EULA;
  5. Use of the MOBILE SDK or MOBILE SDK Derivatives with a commercial product other than an Oculus Approved Mobile Product; and
  6. Failure to provide required notices or deliver source code and/or binary of MOBILE SDK Derivatives as set forth above.

If you believe that your license has been wrongfully terminated under this Section 8 with respect to material breach or with respect to these above conditions, you have the right to appeal the termination of this License under Section 16.

9. This License may be amended by Oculus on a prospective basis, and your usage of the License after such amendments or changes signifies your consent to and acceptance of any such amendments or changes on a going forward basis.

10. In the event any provision of this License is determined to be invalid, prohibited or unenforceable by a court or other body of competent jurisdiction, this License shall be construed as if such invalid, prohibited or unenforceable provision has been more narrowly drawn so as not to be invalid, prohibited or unenforceable.

11. You may not assign any rights or obligations under this License without the advance written consent of Oculus, which may be withheld in its sole discretion. Oculus may assign its rights or obligations under this License in its sole discretion.

12. Failure of either party at any time to enforce any of the provisions of this License will not be construed as a waiver of such provisions or in any way affect the validity of this License or parts thereof.

13. Your remedies under this License shall be limited to the right to collect money damages, if any, and you hereby waive your right to injunctive or other equitable relief.

14. Your use of third-party materials included in the MOBILE SDK may be subject to other terms and conditions typically found in separate third-party license agreements or “READ ME” files included with such third-party materials. To the extent such other terms and conditions conflict with the terms and conditions of this License, the former will control with respect to the applicable third-party materials.

15. Oculus may include in the MOBILE SDK additional content (e.g., samples) for demonstration, references or other specific purposes. Such content will be clearly marked in the MOBILE SDK and is subject to any included terms and conditions.

16. This License shall be governed by the laws of the State of California, without giving effect to choice of law principles. Oculus reserves all rights not expressly granted in this License. All disputes relating to this License shall be resolved by binding non-appearance-based arbitration before a neutral arbitrator in San Mateo County, California. If your License has been terminated hereunder by Oculus, you may appeal your termination through this arbitration process on an expedited basis with an arbitration within thirty days of your giving Oculus notice of the appeal. The arbitration shall be conducted in accordance with the rules and procedures of JAMS then in effect, and the judgment of the arbitrator shall be final and capable of entry in any court of competent jurisdiction. You agree to submit to the personal jurisdiction of the courts located within San Mateo County, California in connection with any entrance of an arbitrator’s judgment or decision or any dispute with respect to the arbitration process or procedure or Oculus’s exercise of its equitable rights or remedies.