Developer Blog


Getting Started with VIVE Wave™ for Developers


First download the Wave SDK : 


The five components of the Wave Platform SDK: 

Wave Native (Android) SDK 

Wave Unity SDK (Plugin)   -- see the getting started guide below -- 

Wave UE4 SDK (Plugin) 

Wave PluginKit SDK (for 3rd party accessories like controllers) 

Wave OEM SDK (for 3rd party headsets) 


Note: Porting to the VIVE Wave platform 

A case study of porting from the Vive (PC) to the Wave (mobile) includes tips for optimizing for a mobile GPU available here  Additional Porting Guides from Daydream (mobile) or from the VIVE to Wave are available here: 

If your existing application used the SteamVR APIs directly, note that most of the Wave APIs have a one to one correspondence to SteamVR.  So if you have a 3rd party framework that wraps SteamVR you should also be able to support the Wave SDK by mapping the APIs as shown in the VIVE porting guide.


A Quick Start Guide for developing in Unity: 

The following are the steps for setting up a scene with the Wave SDK, but also see the alternative below it when using the VIU toolkit along with the Wave SDK for cross platform support. 

1) Launch Unity and create a New Project and make sure you Switch Platform to Android in File->Build Settings...  (see the getting started guide to setup Android 

2) Import wavevr.unitypackage  (Assets->Import Package->Custom Package...)   

3) From the Project Assets window, drag and drop the WaveVR and ControllerLoader prefabs into your Scene Hierarchy window to create objects in your scene (delete the existing Camera object there’s one already included in WaveVR) 



4) To future proof your application for more than one controller, duplicate the ControllerLoader in your scene (or drag another one in) and select its Type as the left controller in the Inspector window as shown above. At this point it’s up to you how to handle a second controller’s inputs (or simply handle it the same as the first) 

5) from File->Build Settings.., select Build and Run (make sure device is attached via USB and Developer settings on the device allows for USB debugging) 

Note if at any time you get prompted by a WaveVR plugin popup window to accept preferred settings, simply accept unless you have a good reason not to.  You can safely dismiss the AndroidManifest related popup for now until you are ready to publish (this is for indicating 3DOF vs 6DOF support - it is recommended to support both).


At this point you should  be able to see your empty scene with your controller on your Wave device ! 



Alternative Quick Start Using the VIU (Vive Input Utility) Unity plugin: 

There is also an additional Unity SDK for developing VR projects that can target multiple platforms and devices and is highly recommended especially for new projects or projects that don’t require extensive use of the Wave SDK APIs (although you can access both). 


The Vive Input Utility This is a Unity plugin that can support ViveVive Pro, Rift, Daydream, Go and the Wave SDK (e.g. Focus) in addition to Unity’s UnityXR APIs which in turn can support Windows MR and more. This is an abstraction that wraps other SDKs like the Wave SDK creating a common code base for many platformsIt’s available on the Unity Asset Store (search for VIU)  or at    


Steps to create the same application but using the VIU plugin: 

1) Launch Unity and create a New Project and make sure you Switch Platform to Android in File->Build Settings...  (see the getting started guide to setup Android ) 

2) Import wavevr.unitypackage  (Assets->Import Package->Custom Package...)  and the  
Vive Input Utility from the Unity Asset Store 

3) Drag and drop the ViveCameraRig (or the ViveRig for additional features) into your scene and remove the existing Camera object (there is a camera already included in ViveRig) 




4) Build and Run 

VIU Note: Since these prefabs also support other platforms you already get 2 controller support (in addition to falling back to single controller). The ViveRig adds controller support for teleporting, grabbing and toggling controller models and can be easily modified in the Inspector when ViveRig->ViveControllers is selected in the scene. 

Here’s what you’ll see in your Vive Wave HMD after additionally adding a Plane and a Sphere to your scene using GameObject-> 3D Object 



This screenshot is of a Wave build (using the VIU plugin) and if you simply switch the build target to Windows it’ll work in a Vive/Vive Pro and you would simply see different controllers for the same scene with no changes. You can then develop with a Vive and then only switch the build target back to Android to create a build for the Vive Focus. 



You can use a simulator in Unity for testing a VIVE Focus in your Unity Editor: 

And if you have a VIVE Focus but are waiting on 6DOF controllers, you can also simulate 6DOF controller. More info here: 


Support is provided at the official developer forum for the Wave SDK:


There's a new opt-in program in partnership with Amazon, which gives you the opportunity to reach more potential consumers via Amazon Marketplace. 
The opportunity opened up today and VIVEPORT titles that opt-in will be eligible to appear on Amazon for purchase in the coming weeks. Like any Amazon product, VIVEPORT titles on Amazon will have their own detail pages, reviews, and can be found through search. People looking at Amazon Marketplace items including HTC VR devices can potentially see VIVEPORT titles in the 'Customers who bought this item also bought' section.


Check it out on the VIVEPORT opt-in page for your title(s).



Learn more about the VIVE 3DSP (Sound Processing) SDK. With the latest release, v0.9.0.2 we've also added support for UE4 to add to the existing Unity audio plugin and native support.





With the launch of VIVE Pro, developers will now have access to the stereo front facing cameras to create new experiences that can mix the see-through stereo camera view and their virtual worlds. This will enable developers to perform 3D perception and depth sensing with the stereo RGB sensors, opening new worlds for more creative, interactive experiences.


In addition to the updated OpenVR camera APIs that can now handle more than the mono camera of the original VIVE, the VIVE Software team is also providing developers the VIVE SRWorks SDK. With this SDK you can access more than just the raw camera images:


  • Depth
  • Spatial Mapping (static and dynamic meshes)
  • Placing virtual objects in the foreground or background
  • Live interactions with virtual objects and simple hand interactions


These features are provided by three service modules, a Depth module, a See-through module and a 3D reconstruction module thus allowing developers to focus on the content.


The SDK includes support for native development with plugins for Unity and Unreal.


The following videos illustrate some of the features:






Here's a portal for passing between the real and virtual worlds


Note: The project code for the portal example above is included in the VIVE SRWorks SDK Unity package.


Here's an example from developer Jonathan Schenker from Alvios using screen filter effect to mix the realities and here's another example from developer Vladimir Storm using the 3D Reconstruction module.




VIVE Audio

We are also announcing two VIVE audio SDKs, available for Unity, with support for UE4 coming soon.



The VIVE 3D Sound Perception SDK provides a Unity compatible, audio spatialization plugin with the following features:

  • Higher Order Ambisonics
  • HRTFs based on refined real-world modeling (horizontally and vertically)
  • Support for Hi-Res audio source files and playback.
  • Acoustic distance effect with real-world modeling.
  • The VIVE 3DSP plugin supports room effect, room reverberation and reflection, and acoustic occlusion that is tuned for the VIVE Pro, however the VIVE and other HMDs and headphones are also supported.

- VIVE Pro Audio Mode

Since the VIVE Pro has dual microphones with support for alert and conversation modes, APIs are provided so that you can toggle between the three audio modes. This provides applications with the ability to toggle between listening to foreground or background audio or a mix of both. Additionally, a USB Type-C high power mode setting (on/off) is also available.



Initially available as early access (beta) SDKs, you can find the downloads and join the developer support forums  at