Ever since the acquisition of Oculus by Facebook in 2014, the major VR systems have not only competed in regards to hardware, but also with platforms and software ecosystems.
Facebook and Valve are two classical platform operators who are currently dominating the market. It seems natural that their respective platforms are a vital part of their company’s strategy for VR.
Facebook’s ecosystem, Oculus, is a rather closed one, locking users to the company’s hardware and enforcing strict content requirements on their most important system, the Oculus Quest.
In contrast, Valves ecosystem, consisting of the games distribution platform Steam and the VR software tool SteamVR, is a significantly more open system that allows for compatibility with VR HMDs of their competitors, allows to add custom controllers and does not strictly enforce rules on content offered within their platform.
This is the reason why many smaller providers of VR equipment and VR applications prefer SteamVR over the Oculus system.
When it comes to providers of VR locomotion systems, there are two ways a company could go in terms of Software Interface:
- Creating their custom software interface in order to enable software developers to natively support their products. While this is a great option in case the client creates his own content – or in case the content is created for the client specifically, the lack of compatibility with existing VR applications is a practical issue in many cases.
- The alternative is focusing on implementing the locomotion product into SteamVR, to allow for wide compatibility with many existing VR applications. While this benefit is easy to understand, the disadvantages of this approach are in the detail and will be explained in the next paragraph.
To meet the requirements of a wide variety of customers, Cyberith offers both of the mentioned options above. Therefore allowing the best implementation possibilities for those with software development know-how and a wide compatibility for all who use existing applications.
The classical game controller input vs. human locomotion
SteamVR’s “free locomotion” applications are reliant on the concept of a classical game controller. Think of a regular joystick, a thumbstick on a gamepad or the thumbstick/trackpad of your VR controllers. You can move the stick upwards, downwards, or sideways at different speeds. In combination this allows you to move in all 360 degrees.
However, there is a limit to the extent at which you can move the stick. If you try pushing a stick further than this maximum, you will not end up moving faster. This directly leads us to the biggest inaccuracy of such a locomotion system for walking in VR: There is an artificial maximum speed that cannot be bypassed.
This maximum speed is artificial in a sense that it is introduced in the software in order to avoid unrealistically fast movement from movement of the thumb alone, without proportional physical effort.
This makes sense for a classical, non-physical controller, but in terms of a realistic VR locomotion system that requires the user to physically move, such an artificial maximum speed value is nonsensical.
There is no requirement of limiting the users movement speed via the software. If physical walking or running is involved, it is the physical ability of the user that limits the maximum possible movement speed. Everyone should be able to walk virtually as fast as he’s able to physically walk. Representing physical effort and ability in VR is one of the key values of a locomotion system, so having an artificial maximum value of movement speed that is easy to reach can be very damaging.
Another practical issue is the meaninglessness of the movement speed data provided by a classical joystick based controller. It sends values like 0 for standing still, 1 for maximum speed forwards and -1 for maximum speed backwards. For describing human locomotion, these values are rather inappropriate. How fast is value 1? or 0.5?
Alternatively, making use of physical values which can be measured in clear and universally understandable units such as kilometers per hour, miles per hour, or even better – in meters per second, is a much more logical option. Enabling locomotion devices to determine the users movement speed realistically and to allow for direct transfer of these values to the VR applications does improve accuracy of virtual movement significantly.
Meaningfully describing human locomotion
As briefly mentioned in the previous paragraph, we can see that classical game controller input shows multiple inadequacies when being used for human locomotion and thus do not provide a good standard of input for virtual reality applications. As the goal of a VR treadmill or any locomotion system should be to correctly represent real movement in VR, it needs both to measure the movement of a user precisely and to transfer that movement data to the application.
We want to introduce a standard for transmitting this movement data in a meaningful and generic way. The generic approach, that orientates on key values describing human locomotion, brings the benefit of being hardware-agnostic and therefore by concept, compatible with a multitude of VR locomotion products:
- Orientation of the user (Body Orientation): A value representing the user’s orientation, that can be interpreted in degrees.
- Movement Direction: A value representing the movement direction relative to the orientation of the user. It can be interpreted as a value in degrees, with 0 degrees meaning forwards walking and 180 degrees meaning backwards walking.
- Movement Speed: A value representing the walking or running speed in meters/second. The user’s speed is not limited to any maximum value by software.
- Height of the hips: An optional additional value in centimeters for IK systems or scaling purposes.
The currently used systems and the benefits of Open Locomotion:
While Cyberith uses the generic and hardware agnostic definition of human locomotion already in their SDK, other vendors of VR locomotion products still rely on their own custom interfaces, that are device specific and thus not hardware-agnostic and universally compatible.
This does not only lock a user to one specific type of hardware, but also makes technological improvements and changes unnecessarily difficult, as compatibility might not be provided. Only the use of generic and hardware-agnostic input is future-proof and can provide compatibility in between products of different vendors.
Alternatively to offering custom and device specific interfaces, some providers also focus solely on compatibility with SteamVR by using classical controller input. While Cyberith also offers this compatibility, we are aware of the limitations described above and thus do not rely on this option solely.
Creating a common “Open Locomotion” standard unites the benefits of both an optimal implementation and wide compatibility. Creating such a standard is a win-win-win situation for all stakeholders: the providers of VR Locomotion Solutions, the users and content developers.
While the providers of VR Locomotion Solutions can benefit from increased and improved content compatibility, the content developers can stop worrying about supporting different systems, resulting in reduced workload and cost. To many users, the products with increased content compatibility will have additional value, as they will be able to use VR Locomotion devices in a more versatile way.
Thus, we want to invite all relevant companies, including alleged competitors, to join the initiative and to roll out a meaningful, future-proof and hardware-agnostic standard for locomotion input for VR. Together, we can establish a standard that is good for all of us!
And if we do so together, who knows, we might be able to change the way locomotion is handled in systems like SteamVR.
For learning more about how Cyberith’s solutions for walking in VR, the Virtualizer VR Treadmills, could benefit your specific applications, or if you want to discuss joining or supporting Cyberith’s Open Locomotion initiative, please reach out to Holger Hager at any time.
We are very open to talking with anyone!
PS: I want to express many thanks to the Vienna Business Agency and the City of Vienna for the support of this specific Open Locomotion project as well as for the general support provided to the local VR community!