11 Tools for VR Developers

by Jerad Bitner

As the VR market continues to push forward, there is an increasing amount of tools available to VR developers. While this is not an exhaustive list, I've compiled the most commonly used VR tools and platforms used today in hopes of making it easier for you to find what works best for your needs.

Desktop Tools

This is a collection of tools VR developers are using to create native application experiences, typically for Windows machines.

Unity 3D

Unity is by far one of the most ubiquitous of tools being used today for VR development. At its heart, it’s a game engine. It has a direct VR mode to preview your work in an HMD (Head Mounted Display) which can really boost productivity by designing for VR within a virtual environment. Unity is quickly becoming the default tool for VR development due to its ease of use and ability to quickly prototype VR applications with it.

There’s a huge community around this tool and so there are plenty of resources and documentation to learn from. A market of 3D assets can get you up and running in a short amount of time. If you’re familiar with C# or JavaScript, you can get into the scripting pretty easily as well. All major HMDs are supported and you can export your work to almost any platform imaginable, even WebGL.

Learn more about Unity.

Unreal Engine (UE4)

One of the main competitors of Unity 3D, Unreal Engine is also a gaming engine with VR integrations, an asset store, and great documentation. The graphics are debatably more advanced and realistic and the learning curve is similar to Unity. Many of the VR demos built with UE4 are much more life-like and smoother to navigate within. It provides great performance with the conveniences of a modern editing environment. UE4 also exports to most platforms but exports to slightly less than Unity.

Learn more about Unreal Engine.

3DS Max & Maya 

These are Autodesk products for modeling, animation, lighting, and VFX. They don’t have VR support by default but through pricey plugins instead. AutoCAD and 3DS Max are long-time standards in the architectural design industry and have some of the most precise tools in their UI. Like almost all GUI’s for building 3D environments and drawings, these tend to be quite massive UI’s with a lot of tools hidden behind menus, sub-menus, and toolbars.

Learn more about 3DS Max, Maya, and other Autodesk products.

Blender 

Blender is quickly becoming a favorite modeler for many VR developers. It’s free and open source software written in Python and is available for Windows, Mac, and Linux. There’s a huge community of people devoted to this software and its use. Many websites provide tutorial videos, forums, and documentation.

The software’s official documentation is also quite comprehensive. Mainly for modeling, UV mapping, lighting, rigging, and animation, you can export your models to a multitude of formats that can then be used with many other tools. There’s even a great plugin for exporting your creations into JanusVR with a free open source plugin called FireVR.

Learn more about Blender.

SketchUp 

Google’s SketchUp is a basic modeling application with a very low learning curve that can get anyone up and running in a short amount of time. The tutorials on the website are excellent, not only teaching the basics of the software but also as introductory lessons to basic 3D modeling concepts. You can quickly learn the basics of modeling with SketchUp and then move onto more advanced tools like Blender if you desire. It’s really great for modeling, quickly learning the lingo, and then moving onto bigger and better things. There's a free trial version of this software.

Learn more about SketchUp.

WebVR Tools 

These are tools used for developing WebVR in the various browsers. Most browsers are still struggling with headset device support, but they’re getting much closer to be included in the main builds of modern browsers like Chrome and Firefox. However, most phones can be detected with the WebVR-polyfill and if turned sideways, switched to a dual display mode that you can use with Google Cardboard, Samsung VR, or other headsets that are built to be used in conjunction with a smart phone.

Three.js 

This is a JavaScript library which works as a layer on top of WebGL. It has many helpers and abstractions that make working with WebGL much easier than the WebGL API alone. WebGL is an OpenGL implementation within modern browsers such as Chrome, Firefox, and Safari. There are some excellent applications being developed with Three.js which utilize 3D design to create anything from fun demos to multiplayer worlds and games.

Most WebVR implementations are built using Three.js due to its ease of use and in part due to how popular JavaScript has become. Doing 3D graphics in the browser is hardly done without Three.js. 

Learn more about Three.js.

A-Frame 

If you’d like to skip learning Three.js and WebGL directly, check out the open-source project A-Frame by Mozilla. This is a web framework built on top of Three.js and WebGL to build virtual reality experiences with HTML using an Entity-Component ecosystem. Works on Vive, Rift, desktop, and mobile platforms.

If you’re coming from the web development world, this is a great place to start as it has an HTML-like syntax and you can use all of your typical web development tools. It’s hands-down the easiest to pick up and so far the framework of choice at Lullabot.

Learn more about A-Frame.

React VR 

Promising to be the next big thing in WebVR, React VR promises rapid iteration and a syntax that is similar to A-Frame’s but hinges on the benefits that React brings. You can read more about how to get started in their documentation.

Learn more about React VR.

Vizor.io 

Vizor is an interesting take on a WebVR editor in your browser built with NodeJS and Three.js. It’s a visual programming environment for WebGL, WebVR and other HTML5 APIs. It features live preview, data flow visualization, network communication, publishing, unlimited undo, and a catalog of presets that can be used as modular building blocks. Complex logic can be nested in subgraphs and they can be rendered directly to a specific render target, or simply used as a texture. Loops are modeled as nested graphs that are evaluated once per loop iteration. All within your browser.

Learn more about Vizor.io.

JanusVR

Janus is more akin to a web browser for VR than a development tool. It’s a platform and while the client is closed source and built in QT5, the server side component is open source and written in NodeJS. Janus has full Oculus Rift support with avatars and some hand control via the Leap Motion controller. HTC Vive is also supported and Razor OSVR support is on the roadmap.

One thing that separates Janus from these other tools, is that it’s really more of a web browser. Virtual environments are written much the same way a more traditional website is created. An HTML-like syntax is used to set up what is referred to as “rooms” and there is basic JavaScript support as well. Since virtual environments are just websites in Janus, you can serve them up just like a traditional website, using whatever web server you like, and hosting it wherever you please. It’s totally distributed just like the web of today.

Within Janus you can hit ‘tab’ to create a portal to a new website, much the way you enter an address into your traditional web browser. Just click the portal and walk through to a new website, or “room”. You can even place the Janus markup inside of a traditional website within comment tags so that when you view the site with a typical browser, you see your regular website which parses the HTML, and Janus will see the 3D version of the site.

Janus has a means of editing the code of the room from directly within Janus and saving. This is one feature that’s making it become a popular option for web developers to start the transition to building virtual environments. Janus even has built-in multi-user support so you can walk around the internet with your friends, and talk to them via the built-in voice chat support. It’s a lot of fun and has a very low learning curve, especially if you’re already familiar with web technologies. You can learn more about Janus and its many uses or refer to the ever-helpful subReddit.

Learn more about JanusVR.

JanusWeb 

Janus also has a WebVR counterpart which aims to support everything that the browser does within WebVR. Check out the open source code.

Learn more about JanusWeb.

Do you use any of these tools or platforms mentioned? I'd be curious to hear your thoughts on them and any others not on this list.

Published
in

newsletter-bot