Opening up cyberspace with Matrix and WebVR
matrix.org
matrix.org
My take is that the metaverse is simply a software system so deep that it becomes part of everyday reality. And we've already built this, but our human-computer interface technology (mostly the software) sucks too much for us to see it. In the meantime we call it the web.
This looks like really cool tech, but I don't think the path to the matrix involves a new protocol, or a new data layer. I think it will come about by extruding our pre-existing software epic -- the web -- into our virtual and augmented environments, in the same way the iPhone compressed the software and ideas that already existed into our pockets.
The thesis here is that you need some kind of fabric to weave these apps together if you want them to feel remotely immersive in AR/VR. Rather than each app being its own island, surely you want the ability to move your avatar between them, and collaborate and communicate between services and apps, and have some kind of common virtual physical metaphor that you can literally build on as a platform - whether that's with bots or services or whatever. This is the thought experiment we're doing with the VR side of Matrix.
I wholeheartedly agree that probably the biggest problem that needs solving is that of siloed experiences. But this is also something the web solved long ago with URLs and files on the front, and webby APIs on the back.
If we invent another protocol to solve this problem, are we not simply creating new silos?
I agree that the open Web avoids silos through URLs and ad hoc HTTP APIs. But this is insufficient for a hypothetical VR universe of immersive services: you don't want the only way for a user to be able to navigate between services to be to 'click a link'. And it's arguably a failure that almost every single web service ends up publishing its data via an incompatible ad hoc HTTP APIs - for instance, given Facebook, Slack, HipChat and Skype all provide supersets of precisely the same basic functionality, how come each has its own proprietary custom HTTP API to do the same thing? Wouldn't it be better if there was a standard open data fabric into which they exposed their data?
The idea here is that VR will suck if it's just a bunch of disconnected apps, and instead you need decentralised primitives for sharing Identity, Avatar properties (e.g. position & orientation), shared VoIP, shared Video, even shared world geometry/assets/physics in order to stitch it together into a coherent experience; both for users or developers.
The web was successful because HTML is so simple, forgiving and flexible - and you end up with essentially the minimum successful viable hypertext system. One could probably limp along with a VR Web which is just a bunch of webapps which happen to have chunks of WebVR UI. But it could be so much more, while still being flexible and forgiving and lightweight. At least this is Matrix's hope :)
It will be interesting if/when we finally get there but I don't expect this will be the breakthrough product. Though personally I think the real evolution of this tech will be more along the lines of augmenting reality with web tech rather than emulating virtual reality to behave like our physical world.
Empirically, there certainly is a missing layer here, and it doesn't seem unreasonable to propose Matrix as a possible solution :)
In terms of "this will happen organically, rather than as a whole new virtual universe appearing out of nowhere"... we see AR and VR as entirely the same problem from a comms/data interoperability perspective. Both of them need somewhere to store the data. The choice is simply whether you store it in a decentralised DB like Matrix, IPFS, a blockchain(!) or whatever... or if you store it in a silo like a typical VRML or WebVR app, or something like Google/Facebook.
I don't blame everyone for being cynical though - this is the holy grail after all :D
The only perf problems we've had are when using VP8 or VP9 for WebRTC video, whereas H.264 (which the demo prefers) correctly decodes efficiently in hardware... and on Firefox where unfortunately https://bugzilla.mozilla.org/show_bug.cgi?id=1246410 slows down the 360 video significantly (to around 20fps for 4K video on the gaming rig) relative to Chromium which manages a solid 30fps (which is the source framerate).
The only motion sickness we've seen has been when editing the skiing videos - the worst thing in the world is if the cameraman wobbles the camera whilst getting up from the floor but your head doesn't move...
Try out https://aframe.io/a-painter/ when you get your Vive in Firefox Nightly and try out the performance. It's native like for me.
Many people are already getting 90 frames per second out of the browser, so I don't think it's even a matter of plausibility at this point.
DHTML was introduced in 1997. Do you define this as "not long ago"?
Thrilling.
gently tap the tall tripods we have the lighthouses on and it produces a barely perceptible rocking for the VR user, mostly perceptible in their stomach.
It takes no more than 30s to go from perfectly fine to crippling nausea for most people in my lab.
There are some really compelling things to like about Cobalt; not least the fact it incorporates a load of existing protocols (XMPP for chat, VNC for accessing "traditional" applications, etc.).
Unfortunately, its use of Smalltalk (which probably helped it reach so high so quickly) seems to be holding it back from more contributors and adoption. There are Javascript ports which have seen some limited usage, but they appear to be more constrained. Perhaps bootstrapping Squeak on WebAssembly would help, and maybe offering a layer of JS scriptability on top?
Whilst I wish Matrix the best of luck with their efforts, it would be equally great to see their protocols/ecosystems integrated into existing systems too :)
To be clear: Matrix tries to be pragmatic above all else, and right now we're just saying "hey, use Matrix for open comms in VR/AR" (a bit like Croquet advocated XMPP back in the day). There is nothing stopping one from using Matrix to add comms into the Croquet metaverse however, and if it's alive and well I'd really hope that someone would try the experiment :)
I agree it looks pretty dead, but a big bag of old, existing code still does more than a project in the idea stage :)
> Should we be looking somewhere else?
I'm not involved in OpenCobalt, I'm just someone who's also been following it for years. One of its major problems seems to be fragmentation: as far as I can tell, the descendents include:
https://en.wikipedia.org/wiki/OpenQwaq
https://en.wikipedia.org/wiki/Virtual_world_framework
Maybe there's something salvagable amongst all this?
Thus this feels like it is trendy (wohoo VR!), but not actually useful.
[Edit] Sorry, re: missed reference reference!
Oh, right.
High Fidelity is worth a try. It's like Second Life with higher resolution, except there's nobody and nothing there.