Yesterday Mozilla has announced the release of Hubs, a completely open and social VR environment, entirely made for the web. The news has been reported by all the major VR magazines since it is the first time that we have a social webVR environment, completely free and open. I’ve just tried it, so discover with me how it is!
Mozilla Hubs is a social VR environment that runs completely on the web. Its greatest strengths are:
- It is free;
- It is opensource;
- It works on every device;
- It runs completely on the web, so to use it you have to install nothing;
- Since it is all WebVR, to ask someone to join you in one of the Hubs room, all you have to do is send them a link that they have just to open in their browser;
- Your privacy is completely protected: no one will save your personal data, you can meet freely with people here.
I think that it can be revolutionary for the future of VR communication: for the first time we have a tool to meet in VR with other people easily and with our privacy completely safeguarded. If you read Mozilla Hubs privacy policy, you can read how NOTHING about what we do there gets saved on Mozilla’s servers. So, you can feel free to do there whatever you want. Awesome, isn’t it? Yeeesss, it is.
To start enjoying Hubs, you have to either create a room or join an already existing one. I started my adventure with this new awesome solution by going to Mozilla Hubs website and specifying a name for my new personal social room.
At that point, Hubs asked me to choose my nickname and my avatar. The choice of the avatar is actually very simple for now: you can only be a robot and the only choice is about the color. Mozilla has written inside its blog post that is working on a better customization since it is very important for us to have our personal identity in VR. If I don’t remember bad, Mozilla also had this project of creating a system to have our virtual identity to be consistent in all our WebVR experiences. This, together with avatar customization would be very powerful since would allow us to have our own virtual personal identity, to be someone in the metaverse, in every experience we’re going to live. I really hope they’ll manage in doing something like that.
Once you’ve set-up your avatar, you’re asked how you want to live your experience: if you’re on a PC with a VR headset connected, you can choose between the standard 2D screen or the VR headset; if you’re on a mobile phone like Samsung Note 4, you’re asked if you want to live it on the screen or inside the GearVR; and so on. The cool thing about Hubs is that it works on every device: I tried it with my VR desktop PC, with my laptop without a headset connected and on my phone and it always worked. On every platform, it has a different control scheme for locomotion and interactions, so it is really usable for everyone, everywhere. For instance, inside VR you can move with teleportation, with a standard PC you can move with WASD and mouse, on mobile you can move using some virtual thumbsticks on the screen. Awesome job, Mozilla.
After avatar customization, you have to authorize your mic to be used by the app, so that you can talk with others. Without having the mic permission, it can’t work: this is necessary because of how the networked-aframe component, that is used under the hoods, works. After that, you’re almost done: the only thing that you have to do is to test your headphones and your mic and then hit the button to enter your social space!
The system will pick up a random environment among the ones set up by Mozilla. The first time I’ve entered there, I’ve been inside a low-poly farm next to a castle.
Another time I found myself inside a home
And another time in a strange cave over a lake
All the environments are very light (the poly count is not high, for sure), but are also very nice. Mozilla claims that in the future we’ll be able to select the environment of our social space, and also to customize it, creating our 3D world where to meet our friends using our 3D models (that will have to be in glTF format, of course).
Since we’re at the beginning, the UI is very simple:
- On the upper left corner of your screen, you have a button to trigger a short help;
- On the bottom of the screen, you have a button to open the Hubs menu, that lets you invite people, read the help, sign-up for updates or report a bug to Mozilla. If you select the button to invite people, the system will provide you the address of your room, that you can send to your friends, in any way: via e-mail, Telegram, SMS… and they’ll be able to connect with you with whatever device they’re using just by following the link. This is true power;
- On the upper part of the screen, both in VR and not in VR, you have a menu that lets you choose to mute/enable your microphone, pause/resume all other avatars (to stop other people to harass you) and enable/disable your personal bubble. The personal bubble makes the other avatars that are close to you to become semi-transparent. I’ve tried it and honestly it needs some refinements: the avatars inside the bubble can still talk to you, are still visible and especially the bubble is so little that they must be really close to enter it.
What about your VR life inside Hubs? Well, first of all, you have a body and you can move inside the environment you’re in by using both standard locomotion and teleportation. The weird thing is that teleportation on Oculus Touch has been set with the Oculus Touch main trigger, that is the same command that you use to interact with the world. WTF. Since I’ve used A-frame, I know that the component that implements teleportation has always been problematic with Oculus Touch and this is one of the symptoms of this problem (it is a matter of input mapping, it will be easy to fix and move the movement to the Thumbstick pressure).
I’d suggest not to use this social environment in VR while staying seated, otherwise when you meet other people from PC or mobile, your head is in a so low position that it seems that you want to do a fellatio to them (it could be the beginning of a new social porn VR environment, who knows…).
You have your robotic hands and you can use them to interact with objects. At the moment the only interactive object in these environments is little yellow rubber ducks that you can find in every environment. When you get close to an interactive object, the tip of the ray that comes out from your right hand becomes blue and you can use the trigger of your controllers to interact with it.
In the case of the duck, it means taking it, hearing it quacking and eventually launching it by releasing the trigger. If, while you hold it, you press both the primary and secondary triggers on both hands and you move your hands closer or farther away, you can start making the duck smaller or bigger. Taking ducks, inflating them and throwing them is actually funny…
https://gfycat.com/CompleteAthleticChuckwalla
When you meet other people, you can see their names and avatars and talk with them. When they’ll talk, you’ll see their head become bigger following the volume of their voice. The head and hands, of course, will move to follow the actual movements of the user. Any number of users can join your room and so you can have fun together. When you try to join the room created by another user, the process is exactly the same that I’ve described above, the only things that change are that you don’t create a room by choosing its name but you directly go to the avatar creation stage. Ah, and the data about the avatars remain in your browser, so next time you create or join a room, you don’t have to create your avatar again!
Talking about dev details, the system is all made using A-frame. By using it, I clearly recognized various components with which it has been made, as you’ve surely noticed by reading my post. While helping Enea Le Fons in the “30 Days in VR” experiment, we understood the potential of a completely web-based social VR experience, so we created a prototype very similar to Mozilla Hubs using exactly the same components: Networked A-frame and Teleport Controls among others. It is something that you can try doing by yourself, too (even if this may create some rants about A-frame even from you).
Strangely, even if it is A-frame, it is not possible to open the Inspector from any of the rooms (it triggers an “Error Loading the Inspector” popup). But you can still look at the code by taking the source code of the webpage and formatting it properly with some regexp (the code is all in one line!) to discover that it is absolutely something that, in a prototypical form, every one of us can write. This not because Hubs is simple, but thanks to the power of A-frame and its components. Of course, Mozilla has made a polished and high-quality work: this is not a rough prototype, it is a usable app. And it is also very simple to be used in my opinion. And this has surely required a lot of time and effort, so kudos to them.
If you want to look at its full source code, you can find it on GitHub. it is under MPL 2.0 license, meaning that you can use it for whatever you want, but you have to continue sharing the sources of your derivative work, all with MPL license as well. If you create a big derivative work that uses Hubs code, you can just share the source of the Hubs code and its modified version that you created and keep all the other sources closed. It is a bit like LGPL.
My final judgment is that it is a fantastic project. Of course, it is just at its beginning, and there is a lot of work to do to add all features that it needs (avatar customizations, scene customizations, interactive objects, etc…), but it already shows its potential. Finally, we have a space in VR where we can meet with all our friends (independently of the device they’re using), without installing any app, and feeling free to talk and to do whatever we want. Social VR is finally free.
I hope that we’ll meet one day inside Hubs... maybe I can host a little event there if I’ll be able to customize some stuff… let me know if you may be interested in something like that! And in the meantime, subscribe to my newsletter to keep connected with me even in 2D 🙂
See you in the free metaverse!
(Header image by Mozilla)