A lot of development happened since my last substantial blog post. The feedback and interest I've gotten in the project has been encouraging, and I generally feel motivated to create something people could really enjoy using during this period of isolation. I also feel like I'm in a competition to be the first to market in solving this product need... judging by the rumblings I see on tech blogs about the deficiencies of existing tools/platforms. Time to get to work.
I've been updating my are.na channel with references and news about the latest in internet party culture. One distinction I want to make up front is a delineation between listening parties and dance parties.
Listening parties have been around for a while on the internet, before the pandemic. Listening parties:
The most common form of this in my immediate music community occurs on The Lot Radio website, which features a DJ livestream (usually in The Lot's physical studio) and an accessible chat room:
Since the closure of their physical venue, Nowadays has been using the same setup for their online programmming. Boiler Room is another popular example of this category of event. Any time a group of people chooses to tune into the same internet radio station and has some shared channel of communication during the event, this can be considered a listening party.
Dance parties on the internet are a newer phenomenon, driven entirely by the global practice of social distancing due to COVID-19. They are a subset of listening parties. Internet dance parties:
The most popular platform for this style of event has been Zoom Meetings, the most notable example of which is Club Quarantine:
My thesis project focuses on dance parties, not listening parties. It draws inspiration from a specific kind of club culture (one where the focus is on music; dancing drives the space, rather than sex) and attempts to transmit festive energies through telecommunications mediums.
I wrote out an initial list of must-have features for an internet dance party platform as follows:
"Nice to have" features:
I sketched out a quick UI mockup featuring 4 main features:
I figured the "host" video view could be used to show the performer(s) and spotlight dancers. In the first iteration, though, I just plugged a livestream embed in there as a cheap way to get high quality audio and ease the transition for users coming from existing platforms like Twitch and YouTube.
Out of the available open source options for video conferencing, I found Jitsi Meet to be the most attractive. It basically worked out of the box; after a couple days of hacking with lib-jitsi-meet, I had the basics of a custom video conferencing UI.
More on tech details in another blog post...
From the above mockup and use of the free meet.jit.si service as a conferencing back end, I built like this first prototype:
At this point I had convinced myself that this project is technically feasible. The next goal was to make the web application stable enough for use in a real party environment.
Since the beginning of April, I had been helping run a virtual party and fundraiser called Lunchbox NYC with my friend Matt. We were curating DJs and hosting streaming parties every Saturday night. This gave me a place to observe what it's like to host a party with some existing platforms like Zoom.
We used Lightstream to mix together DJ audio and broadcast to Twitch. I built a web page to embed the Twitch stream on lunchboxnyc.org so I could have some control over the UX and promote the fundraiser. Some of the key takeaways from the hosting experience on April 11 were:
With some additional virtual party hosting experience under my belt, I got back to building. I got the basics of a "virtual background" feature working by masking a user's body with bodypix:
Then I added a flexible, responsive grid layout system for video streams:
Also a "portrait" orientation for videos (zoomed in and cropped to the center of the frame) and a feature to select virtual backgrounds:
Lastly, I added private chat rooms with a request / block system. With all these features I was ready to do a proper user test during the April 18 LunchboxNYC stream...