Due to the current pandemic, we’re all on at least social distancing, and some of us on full-on lockdown. This has curtailed most people’s social lives somewhat (mine less so, but a 1 year old will do that), and so various people are now doing some previously offline meetups on Zoom, Skype, Houseparty, etc. I’ve used these tools before, and they’re good for certain use cases, but less good for others.
The two that they’re really good for is either up to about half a dozen people having a meeting, or some much large number listening in to a presentation from a very small number of individuals (often 1). The use we’re now putting them to is somewhat different at about the 20-30 people level (probably more as people get used to the idea of video conferencing being our best meeting method currently). The problem with this sort of scale is video conferencing’s core goal: make everyone able to hear everyone else. This is great with a handful of people, but when you’ve got 20-30 you spend a lot of time waiting for others to finish talking, and if some people want to talk about something but others don’t (e.g. politics v.s. anything else), you’ve got to annoy some people.
I started to realise that this isn’t what we need. Think of it this way: if you were in a pub with these people, you wouldn't try to have one giant conversation. You'd instead split off into various little groups (each probably no more than 6 people typically) to chat. You’re not necessarily very split off, in that you can still listen in to other conversations, and sometimes you’ll move around groups, but you’re back to that previously known working case of a small set of people having a meeting, except with more beer. How do we make this work in a more virtual space?
Well, we build a pub. Of sorts. Here’s the model I’ve got in my head. You enter the pub site, and you can see everyone - their video feeds, but you probably don’t instantly hear everyone as it would be a bit deafening. These people are associated with a series of tables. If you see some people you’d like to talk to, you can visit their table, and you’ll be able to listen in on their current conversation. They’ll be able to see you’re listening, and if they want can invite you to the table, at which point you are now able to speak at the table as well. You can view another table instead temporarily, but you’re only at most a member of one table at a time, and joining one removes you from any existing ones (tables with zero people probably get deleted). You can also make new tables if you want as well. There’s the standard moderation stuff (e.g. there’s probably one or more “landlords” allowed to boot disruptive people if they want), and we maybe want both public (ha!) pubs and private ones (virtual lock-in anyone?), and probably some other features (pub-wide text chat maybe?) that will come about, but that’s the core of it.
How do we build this? AFAIK none of the standard tools have enough of an API to build this, but you could do it with WebRTC. I’ve done some work with this before, and it’s at least mostly usable, and probably improved a bit in the 5 years since that project. Not sure how good it is vs. Zoom et al but we could run some tests with the WebRTC test app to at least check it vaguely works at this scale well enough before building it out fully. IIRC it’s compatible with anything with a web browser, potentially including mobile options with some UI work, but you’d probably want to target laptop/desktop cases first.
Anyone feel like starting to hack this together, or do I need to add it to the list?