As a response to my article about my sad experience with WebVR, I got in touch with some guys working on a interesting framework to make WebVR development easy. After some email exchange, I thought it was a good idea to talk about their product, that is called Rodin.

What is Rodin? Well, they say that:

We’re making it ridiculously easy to build and deploy powerful VR
experiences. Create experiences for multiple platforms with a single codebase and reach your audience no matter their device (from web to oculus)

Woah, “ridiculously easy” is pure marketing juice, I love it. 😀 😀

Anyway, let’s return serious. These guys were the founders of a studio (Knoxlabs) that was making VR experiences for lots of companies, even big ones. In the end, as always happens when you develop lots of similar applications, they started creating their own libraries, their own shortcuts… and in the end they had a little engine. So they envisioned the possibility to stop focusing on selling content and to begin investing in an engine that would let the developers to develop VR application faster and better.

Rodin is the product of all this process: a library that developers can use to make WebVR applications in an easy way just using Javascript. It is built on top of Three.js. Well, why Javascript? Because it’s one of the most known programming languages (it is used even inside Unity!) and because it is the web-programming language par excellence. It’s fast and compatible… so it’s the ideal programming language for WebVR.

As these guys have told me,

Developers simply use our library and using their IDE, within 5 seconds, they are already working in VR. They can build great VR experiences with just simple Javascript. We offer many templates to begin with, such as a video reel environment, VR hangout, games (from arcade to shooting), and much more. It’s simple to plug in any media, and customize it in a million ways.

So, cool. Very cool. Lots of people want to start making VR experiences (my article about how to start developing for virtual reality is still one of my most clicked ones), but they have not the experience, so every kind of framework that makes development easier is surely welcome. These guys are working on VR since 2015 (one year after me… a-ha, newbies…), so they surely have the experience about this new medium.

I was curious about why one dev should use Rodin over Unity or ReactVR. They answered me this way.

Unity is a standalone desktop development environment with a drag and drop first approach while Rodin is a web development environment for coding with no-time deployment cross-platform. Rodin enables the VR Metaverse, it adds the 3rd dimension to the web 🙂

Apart from the marketing juice, this means that Unity is more standalone-project oriented: it makes you build web projects, but they are a mess… they are like Unity standalones translated into web languages. Unity is more well-suited for standalone VR games, like the one we all play on SteamVR or Oculus Home. Rodin is more web oriented: with it, you can really make a VR web page. It is more web-developers friendly: it lets developers using their standard web dev tools, but to make VR stuff. There also another difference: Unity is itself a standalone app, while Rodin is itself a web development environment: if you don’t want to use your IDE, the team gives you the opportunity to use an online Rodin editor to develop your apps.

rodin webvr javascript framework
Learning curve of various WebVR frameworks, according to Rodin guys

About ReactVR, instead:

While providing lots of ready-to-use solutions, Rodin library is a direct overlay on Three.js library. During the last years, Three.js proved to be the best library out there for creating WebGL experiences. Its structure is very flexible and has been polished to fit all the needs of 3D/VR development with almost no limitations. Rodin does it’s best trying to keep all the benefits this structure provides, and only enhances them so that any Three.js developer can switch to Rodin in a day. Meantime ReactVR tries to simplify everything and bring it to a higher level coding by isolating the developer from Three.js, ignoring the fact that the additional dimension (3D vs 2D) is a game changer, and React framework may not be capable of handling this.

Again, it is the high-level vs low-level struggle that I’ve seen lots of time: ReactVR is more high-level than Rodin, so it makes things easier, but it will makes some choices for you, making for you difficult to customize low-level stuff. It’s like C# vs C++ debate (and I prefer C++ of course… I’ve a nerd heart!!). Plus, Rodin is trying to keep Three.js philosophy, so migration for current Three.js developers is far easier.

Ok, so this project could help in reducing VR developing time for WebVR. Of course this won’t happen for free, so these are their plans for the future pricing.

Rodin will offer different subscription tiers where you can host your experience, a marketplace for third party add ons and custom enterprise solutions. Rodin’s flexible pricing is great for developers
and agencies alike. An agency producing one-off VR experiences can use Rodin to build, pay a one-time fee + a fee to export a native app for the platform of their choice, (X amount for cardboard
app, Y for Oculus or Vive and so on) and then pass the hosting to the client after the campaign is over. Think of Rodin as Heroku for VR with a Shopify kick.

I got interested in this project because WebVR is surely the future of the World Wide Web. And the future of AR/VR world, since it enables an awesome level of abstraction: with WebVR, your VR application can work on every device (so, no more Vive vs Oculus dev fanboyism… just develop one time and run everywhere!). It will be huge. A framework like this can really be a game changer. Unluckily I’m not a Javascript dev, so I haven’t be able to try and review it: I’m counting on you trying it and letting me know your opinion in the comments!

rodin webvr javascript framework
A sample room, all made with Rodin. Navigating it, I found the environment very fast in responding to my inputs

But… what is the project status? Private beta. If you go to their website, you’ll notice a lot of “coming-soon” stuff. They’re looking for beta-testers, so if you’re a web developer, a VR developer, a VR passionate or just a random-nerd, subscribe to their beta round to be the first to try this framework! Help this guys in carrying on this awesome project and making WebVR development easier! If you’re not a dev, you can have a look at a builded demo here.

And that’s it, as a VR startupper I’m always very passionate when talking about other great VR products and I hope you have appreciated this passion (if it has been so, please like and share!).

UPDATE: as Andy has pointed out to me in the comments, I didn’t mentioned nothing about A-Frame. I’m fixing this here:

The webVR community is quickly growing thanks to Mozilla’s A-frame and Google’s webVR team. They have been doing some awesome work in pushing the limits. A-Frame is evolving into more of a high level markup framework for VR, which we will support soon – environments created with A-frame can be ported into Rodin.