Creating a virtual space.

Added by Nate Lager almost 2 years ago

A while back, when the Face re-branded to Meta, it got my attention. And we started talking about it on our podcast, Iron Sysadmin. We had an idea, that we'd try to embrace some non-meta metaverse, and demonstrate it using our show.

We already do a live stream, so it seemed like it might be a fun experiment to build ourselves a vr world, A studio, or a stadium, or just a park even, and the co-hosts and I would get together there, and record and live-stream one of our shows FROM vr, or from a metaverse space anyway. It seemed that the way to get that done was to make a world in VRChat. So I started learning how to do that, designed a space, and then realized that I couldn't actually publish it because of vrchat's ranking system. You have to be a verified user to design a space, and the path to becoming verified is... foggy.. Long story short, we never got it done.

THEN I found vrspace. VRSpace is perfect for what we want to do. Or at least it is more perfect than VRChat because it aligns better with our own ideals of open source self-hosted applications. Then I got busy, and never dig deep into how to actually make the dream happen.

I built the vrspace container so I could easily host vrspace on my web host (which I have setup 100% on containers) and of course so the community could more easily deploy vrspace! Now, I want to improve on that, and set things up so deploying vrspace, and the voice server, and really whatever other tag-alongs are required, can be deployed by anyone. THEN! I want to get back to my dream. Which is what spawns this question.

If I design a space in something like Unity (which is what vrchat uses) can I then use that space on vrspace?

If so, thats a great start, but it brings along other questions. To get done what I want to get done, I want to make the space sort of like an auditorium. If folks want to join in and watch the show live, they should be able to hear us hosts on stage or whatever. Can I do that? Can the voice server be setup to broadcast to the whole space, but only from a few sources (me and the co-hosts)? But also allow the guests to chat amongst themselves? Can I make something like a mic, that the co-hosts have, that grants them some sort of broadcast right? Ive seen something similar done in vrchat, but I have no idea how.

Can anyone offer some direction here?


Replies (8)

RE: Creating a virtual space. - Added by Josip Almasi almost 2 years ago

Have you seen first minute of my first virtual party?
So everybody can chat while DJ plays.

That's very first commercial application of VRSpace, and I've been fairly paid NOT to tell you how to do it :> The contract expires in 6 month or so, but there's plenty of stuff I can tell you in the meantime.
You could have a few guests or so, and the bottleneck is web browser's mixer. Eventually you get performance degradation, and different browsers degrade differently: firefox sacrifices 3D performance for video, and chrome drops video frame rate while keeping 3D fps steady. Bottleneck with sound is client-side bandwidth and number of concurrent streams.
OpenVidu should be able to do what you need, assuming you don't have too much guests on your show. How much streams you can practically have, I just don't know, that remains to be measured.

So the answer is yes, and it's worth a try. There's going to be some javascript programming required, like UI to keep folks muted, moderator UI and whatnot, depending on requirements.

I have no clue how Unity works, but it can export GLTF somehow, and even entire babylon scenes like html/js. You may need to pay for exporter plugins.
You can modify these babylon scenes like this:
GLTF is easier though, see explainer video here:
And of course, you're not limited to Unity, you can use Blender or whatever, everything reads and writes gltf.

Then again, there's 500,000 free, open source models at sketchfab. Including this auditorium-like one made by my wife:
Look what's inside the building, it may suit you just fine. Or just download and modify it as you like, or just let me know if you prefer original blender file.
That one is about to become a contribution, we intend to make an explainer video of the entire process, but chronically lack time.

And here's some more good news: some serious VRSpace hacking may happen during Hacktoberfest. If you can formulate requirements, maybe you can get stuff you need done. You know they say, file me a ticket ;)

RE: Creating a virtual space. - Added by Nate Lager over 1 year ago

so hey... that contract expired yet? ;) Still very curious about this feature.

RE: Creating a virtual space. - Added by Josip Almasi over 1 year ago

Thanks for reminder - it has expired on Feb 1st! :)
So ask away, but please try to ask specific questions.

... and I'm gonna check with the man just in case he wants to pay me some more to do nothing ;)

RE: Creating a virtual space. - Added by Nate Lager over 1 year ago

Lol. well i guess what i need to know is, is this something that has to be a feature of vrspace? Or is it something I could figure out and code into my world somehow?

If its the latter.. Where do I even start?


RE: Creating a virtual space. - Added by Josip Almasi over 1 year ago

Err, define 'it' :)

Record a live session?
Sure, record everything using shotcut. Plenty of sessions on the youtube channel. Tricky part is, one that records the session does not record own voice. I don't know how to work around it, guess there must be a way to mix two audio inputs (browser and mic), I just don't know what that is.

Build your own world(s)?
Start with this explainer vid... OMG 188 subscribers, how did this happen?! 13k views! :)
Anyway, this explainer vid:
Basically you copy a html or two and one js and tinker :)

The other option is vrspace world editor, like in vrcraft world:
This way you build your world together with your friends, and that would be a session that I would love to see ;)
In this case you use vrcraft world for your template, and the first explainer already explained how.

... and then just delete all the worlds you don't want.

Hard part is, as you have already noticed, running OpenVidu. Well what do I say, it's tricky; I've pointed you to resources, need more help, just ask.
But you don't have to, because you can use one at, as explained in the first explainer.
Of course I can't guarantee any quality of service, you know they say, you get what you pay for ;)

RE: Creating a virtual space. - Added by Nate Lager over 1 year ago

basically, the ability to have a priority speaker.. or a broadcast speaker (or several of them).

So, imagine you've got a few hosts, and a crowd. The hosts need to be heard over the crowd. The way I understood your first response, that was a feature you were paid to implement and were under contract to not release for some time. Did i misunderstand?

RE: Creating a virtual space. - Added by Josip Almasi over 1 year ago

Ah, right.
I was contracted for
- custom nightclub environment
- spatial audio service
- third person camera and freecam features
- custom video avatars
Everything else was vrspace as it was at the time. The thing you're asking about is hidden under 'spatial audio service', and we used
Bad news - it's all proprietary.
So what it does is, you give it a stream and position, for every user - rather trivial operation. It mixes it all up, and delivers mixed up stream to every user's browser. The browser does not mix anything, just plays one stream, again, rather trivial.
I'm not aware of any open source thing doing anything like that. I just googled around a bit (again), there are open source 3d mixers, but nothing works directly with WebRTC, and that's a must to play anything in the browser. If you happen to run across any, please do let me know, I'd gladly write support for it (as I did for OpenVidu and BotLibre).
And writing open source connectors to proprietary services doesn't make much sense.

I happen to have some ideas how this works, because my best man implemented streaming for a TV, and it includes rather expensive specialized signal-processing hardware. If you want to have like 100 folks in the audience that is. For 10, browser's mixer might just do - depending on end-user's graphic and/or audio card. I really don't know what to expect, but that's the selling point of these cloud mixer companies.

Second thing that you need for what you want are admin functions, like, you're moderator and you can mute or kick whoever you want any time, or everybody. That part is mostly the same for both cases.
I honestly didn't even start to think of it yet. But I have ticket for it ;)
So if you want to help me define requirements, let's discuss there?

RE: Creating a virtual space. - Added by Josip Almasi over 1 year ago

<show off mode> be more specific, my work is featured on their demo page! direct link:
Ara (Soundstage guy), myself, and another excellent guy (which I'll not name because I don't know terms of his contract).
Their promo video and 'gameplay' recording of one of their concerts is about the best you can do with VRSpace:
So that MVP was made with vrspace, took over a year. Audius bought them last year:
And I don't know what are they doing now and how, but must be really cool! ;)
</show off mode>
... but that was all very hush-hush for two years now. And now that I finally can share my know-how freely, it feels like taking off shoes two sizes too small ;)