capnmidnight / Calla

Virtual Meetups through Jitsi
https://www.calla.chat
MIT License
1.08k stars 77 forks source link

Integrate Three / Aframe #18

Closed lalalune closed 4 years ago

lalalune commented 4 years ago

This project is really cool.

It's not entirely unlike Networked Aframe, where you can have walk around 3D space and communicate video WebRTC audio connections (or configure an SFU, which is what Mozilla Hubs does). If you tapped into that ecosystem, you'd get all the benefits of full 2D and 3D sprite rendering, avatar templates, all kinds of stuff.

However, nobody's done NAF with Jitsi, or really intelligently though of how to do SFUs in a way that could benefit people in a video conference setting or, using positional culling, allow hundreds of people to occupy the space of a football field and organize as they see fit.

Maybe there's a way that we could work together in a way that benefits everyone? We're building a free, open source virtual chat (github.com/xrchat) and just getting to work on integrating a Jitsi adapter for NAF that looks, at least on paper, exactly like a 3D version of what you're doing right here... a collaboration would be great :)

capnmidnight commented 4 years ago

You're free to look at my code and adapt it to your purposes, but I doubt it will be useful for VR. Because I'm using the iframe-based Jitsi Meet External API, there's no ability to perform stereo panning or spatialization on the audio. My README goes into more details.

This project was conceived as a fast proof of concept, for the purpose of meetups and social gatherings. I'm unlikely to put a lot of effort into it. If I will put a lot of effort into virtual chat (or rather, when, not if), it will be at my day job, where I'm head of VR for a foreign language training company.

This project is meant to easily deployable, so that other meetups might be able to install their own copies without having to struggle with JavaScript dependency management. I won't be importing any dependencies past using the Jitsi Meet External API. After Primrose and Plume, I have little patience for JavaScript web apps. If you haven't noticed, there are no task runners configured in Lozya. It's all vanilla ES8.

I used to be super into the browser as a platform, but I'm now convinced that bespoke 3D web apps will never be a powerful force in the world, so long as Apple continues to bully the W3C working groups on installable web apps, WebRTC, WebXR, and WebGPU. The web is supposed to be "the most open platform", but in reality, because it's controlled by literally only two companies, it's not. Desktop software is the most open platform.