The team continues to work on updates to SteamVR Input, and we've made strides in the overall system and user experience.

Recently, we've updated the SteamVR beta with an improved Controller Binding UI - making it simpler to rebind games that haven't implemented the new SteamVR Input API. Now it's even easier for players and developers to create and share new bindings for VR games, for any current and future controllers.

With Halloween rapidly approaching, we figured folks have probably had enough with spooky decorations popping up - both in and out of VR. Instead, we wanted to focus on the best part of this holiday - the candy!

So today we're shipping the Perfectly Normal Candy Emporium. That's right, it's perfectly normal - just your regular old candy shop with candy and cupcakes - which just happens to be closed right now... On a perfectly normal dark and stormy night...

Have fun exploring! Poke around a bit, you may even find a couple things to unlock.

And as with the last few releases, we're making this environment available as an Asset Pack. So you can remix and create your own map using the models, textures, and sounds from this one. For a refresher, check out this guide.

Today we are introducing a new feature in SteamVR called Motion Smoothing. This feature enables more players on more PCs to play high-fidelity VR games and experiences.

Motion Smoothing is currently available in SteamVR Beta. To opt in, right-click on SteamVR in ‘Library > Tools’, select the Betas tab, and choose ‘beta’ from the dropdown.

How it works

If you have a flatscreen TV, you may be familiar with the term Motion Smoothing. TVs apply Motion Smoothing by interpolating between two existing frames to create a new in-between frame. This smooths out the frames and increases framerate, but it also adds latency – providing passable results for TV but definitely not the right way to go in VR.

The way we are applying Motion Smoothing in SteamVR is a bit different. When SteamVR sees that an application isn’t going to make framerate (i.e. start dropping frames), Motion Smoothing kicks in. It looks at the last two delivered frames, estimates motion and animation, and extrapolates a new frame. Synthesizing new frames keeps the current application at full framerate, advances motion forward, and avoids judder.

This means that the player is still experiencing full framerate (90 Hz for the Vive and Vive Pro), but the application only needs to render 1 out of every 2 frames, dramatically lowering the performance requirements. Even better, if synthesizing a new frame for every frame delivered by the application still leads to performance issues, Motion Smoothing is designed to scale further down to synthesize 2 frames or even 3 frames for every 1 frame delivered.

What it means for you

From the player’s perspective, what was previously a game that would hitch and drop frames producing judder is now a game that constantly runs smoothly at 90 Hz. SteamVR Motion Smoothing improves upon the previously released Asynchronous Reprojection to enhance the overall experience for customers across a wide variety of VR systems. Not only can lower-end GPUs now produce smooth frames in applications that were previously too expensive, higher-end GPUs can now render at an even higher resolution increasing the fidelity of all experiences on all VR systems.

This feature is ready to kick in the moment an application starts dropping frames and shuts off when no longer needed. Of course, if you prefer to run without this feature, just look under ‘Settings > Video’ or ‘Settings > Applications’ to control when it is enabled. Motion Smoothing is not enabled when using Oculus Rift or Windows Mixed Reality headsets with SteamVR, because their underlying display drivers use different techniques when applications miss framerate.

Motion Smoothing is in beta and currently only enabled for systems running Windows 10 with an NVIDIA GPU. Please provide feedback on the SteamVR discussion forum.

Today, in addition to the many features and bug fixes that are making their way from the beta to the default version of SteamVR, we are also releasing a new environment for SteamVR Home.

The Gulping Goat fully roboticized and automated space farm is now available for exploration in SteamVR Home. This map ships with an asset pack, so you can reuse and remix space and farm-themed props and sounds to your heart's content. For more information about using asset packs in your own SteamVR Home environment, view this guide.

SteamVR and Unity have both changed in the three years since we initially released our plugin on the Asset Store. For one thing, there are a few more controllers:

With each new controller comes a new headache for developers. Every game needs to be updated to support each new device, and if they aren't the user experience suffers. This is where SteamVR Input comes in. SteamVR Input abstracts input so that instead of thinking about low level button presses, we can think about user actions. For example, instead of hard-coding "pull the top trigger button down 75% to grab the block", it can simply be “grab the block”.

The Steam Controller has shown us what a boon this can be not only to players but to development as well. Modern game engines have also found the value in action based input systems. Unreal has been working with actions for a while now, and Unity has a new input system in development that also follows this theme.

Instead of thinking of input as a static button, with SteamVR Input developers define default bindings outside of your application and users can customize from there. It allows new devices to be used with the application with no code changes, easy customization for accessibility, handedness, or just personal preference.

A few months ago we released the first version of this SDK to the public. Today we are happy to release the matching Unity Plugin in the Unity Asset Store. This new plugin builds on top of the SteamVR Input system and gives Unity developers the ability to create actions in the editor, assign them to components, and generate named C# classes based on your actions for ease of access in code.

The new input system uses a different approach from the previous input system, and we’ve updated the SteamVR Unity Interaction System to reflect these changes. We have also added more examples to help get developers into VR faster.

We’ve been working with this system alongside the development of the Knuckles controllers, and it works well with both EV2 and EV3 models. You can check out a more full fledged example of this system in action in the source of the Knuckles Tech Demos - the Moondust project. There's also a tutorial for using the new SteamVR Unity Plugin, which you can find here.

We still want your feedback moving forward. We recommend that all developers subscribe to the SteamVR Beta branch to make sure their applications work with the newest versions of SteamVR. The new version of the plugin is available now on the Unity Asset Store. The project is also up on Github to make it easier for developers to discuss the source code and inform us of issues.