An insight into the software and services behind State of the Map

Posted by mstock on 2/4/2023

After having been involved with the organization of the last few global State of the Map (SotM) conferences, I recently got asked if I could provide some information about the technical side of how hybrid events work to one of the organizers of a future local SotM conference. While writing down some of these details, I figured that this might be of general interest, hence this diary post which also contains various aspects about hybrid events based on our hybrid SotM 2022.

The post will try to cover the last three global SotMs and thus not only technical aspects of a hybrid conference: SotM 2020 was originally planned to take place in Cape Town, South Africa, but had to be moved to a purely online format for well-known reasons. Still for the same reasons, SotM 2021 was planned as an online conference from the beginning. And finally, SotM 2022 in Firenze was our first hybrid conference.

Please note that all views, opinions and experiences expressed in this post are mine and not necessarily shared by the SotM Organizing Committee or other SotM Organizing Committee members. The post is also mostly based on my personal memory only, so I certainly missed or wasn’t aware of many aspects and details, especially in all the areas where I wasn’t involved at all. It also concentrates on the technical side of things and how we did them, not so much on e.g. more social aspects or why we did something in the specific way we did it.

Organization and planning

Much of the planning was done within the GitLab-hosted GitLab of the OpenStreetMap Foundation (OSMF) using tickets, which is useful to keep track of open tasks and for the related asynchronous communication in a distributed team. Our regular meetings were held in the BigBlueButton instance of the OSMF and notes, drafts etc. were usually written using ChaosPads in an instance run by the Chaos Computer Club (CCC). Other internal communication was done using our OSMF-hosted organizing committee mailing list and a Telegram channel.

Attendee information

Most of the attendee information was on the SotM website which was maintained on GitHub with one repository per SotM and built using Jekyll. Some parts of the SotM website, like the conference schedule, were built using custom scripts.

We also used the OpenStreetMap wiki for some information and for example the registration of pre-recorded lightning talks, virtual, self-organized sessions, etc. The registration for on-site lightning talks and self-organized sessions at our first hybrid SotM was done in an analogue way though by using whiteboards at the conference venue again.

Call for participation (CfP)

Like in previous years, we’ve used pretalx to collect, rate and select submissions and to schedule the different sessions. We also used it to send emails with information to the speakers. The sender address of these informational emails was set to be the email address of a queue in the OSMF-run OTRS which was also published on the CfP - so if a speaker replied to our emails or sent us a more general question, it ended up in there and produced a ticket. This is especially useful if there are multiple people who reply to these emails and to keep track of open issues.

We’ve used pretalx as a hosted service, but since it is OpenSource, it can also be hosted on one’s own infrastructure.

Tickets

The ticketing has changed quite a bit during the last three years - if I remember correctly, we didn’t even have conference tickets in 2020, so everybody could just attend by watching the streams, chatting on IRC, writing questions in pads, participating in self organized sessions that were hosted in various video conferencing platforms, etc.

In 2021, we used a conference platform for the first time but gave away the tickets for free. One year later, at our first hybrid conference, we didn’t have free tickets anymore, neither for on-site nor remote attendees, but the tickets for remote attendees were cheaper than those for on-site attendees.

The system we’ve used to give away or sell tickets, respectively, was pretix, which is also OpenSource. We’ve also used it as a hosted service.

Conference platform

In the last two years, we’ve used venueless as conference platform which provided the integrated video streaming, chat, Q&A, polls, BigBlueButton, sponsor ‘booths’ and informational pages. It is mobile friendly and it is also useful for on-site conference attendees, especially during the Q&A sessions. The latter can be a bit awkward though, but has the advantage that one can ask questions at any time during the talk. That way, the (often, but not necessarily local) session host can also handle questions from both local and remote attendees the same way, without unintentionally favoring local attendees over remote ones or vice versa.

At our hybrid SotM, both local and remote attendees therefore got access to venueless with their conference ticket which allowed them to interact with each other in the global chat rooms or the talk specific chat rooms next to the streams where everybody could also ask and rate questions in the dedicated questions tab.

For those who are not familiar with venueless or who want to take a quick look at it, there is at least an English and a German demo instance available. Interestingly, one seems to get more rights in the German instance than in the English one right now, so one can see more of the features in the German demo.

venueless is also OpenSource and could thus also be self-hosted, but we’ve used it as a hosted service, too.

pretalx, pretix and venueless integrate nicely, i.e. one can use the conference schedule from pretalx inside venueless and directly create tokens for access to venueless using pretix.

Video

Video in the form of live video conferences and live streams of the sessions is certainly among the most important elements of a hybrid conference, as it allows remote attendees to see and hear what is presented at the conference. It also lets remote speakers hold e.g. workshops and talks and makes it possible for them to participate in Q&A sessions. The final sections will thus cover various video related aspects.

Remote speakers

We generally asked the remote speakers (i.e. all speakers in 2020 and 2021, but we also had some in 2022) to pre-record their talks since there’s less that can go wrong when compared to holding a live talk remotely. So usually, only introduction and Q&A of a talk with a remote speaker were done live. The only exceptions were some talks in the academic track which were done using BigBlueButton inside venueless in 2021 or the proprietary video conferencing solution provided by the university in 2022. At least for some of these talks, we did have a pre-recorded video as a fallback, so even if there had been last minute technical issues that could not be resolved in time, we wouldn’t have had to cancel any sessions.

The speakers were free to use any application they liked to produce the pre-recorded video, but we did recommend using OBS since it is OpenSource and available for many platforms. Some of us also had prior experience with OBS, so we would also have been able to help the speakers. We also prepared a pre-recorded talk tutorial.

We always used Nextcloud to collect and distribute the pre-recorded videos and other talk assets like presentation slides, in 2020, it was an instance hosted by a member of the local team in Cape Town, the following two years, we used the Nextcloud instance of the OSMF.

In a hybrid setting, the Q&A is a bit of a challenge as it’s hard to get the audio right because of issues with feedback, etc. To avoid such issues, the session host of talks with a remote speaker moved to a different room (where we had a laptop computer with headset prepared), at least for the Q&A part, and joined the same video conference as the speaker. We then showed this video conference in the lecture hall. In this situation, the possibility to ask questions via venueless came in handy: The session hosts were able to ask the questions the local and remote attendees entered into venueless even though they were in a different physical room. It would also be possible to have a remote session host for these sessions, which would even tend to simplify the on-site logistics.

Workshops

Workshop sessions are a bit ‘special’ since they are more interactive than regular talks, so they tend to be slightly more challenging in a purely online or hybrid conference. We therefore didn’t attempt to do any workshops in 2020, in 2021, we did them using BigBlueButton instances inside venueless. Unfortunately, we had some issues with these instances which prevented some attendees from joining them as they didn’t seem to be able to handle as many users as anticipated. At our hybrid SotM, we had workshops again, but split them into purely online (again, using BigBlueButton in venueless) and purely on-site workshops such that speakers didn’t have to constantly switch between ‘virtual’ and ‘real’ world. We offered the speakers to choose if they wanted to hold the workshop twice though, i.e. once online and once on-site, or only once, either online or on-site. Since speakers who are on-site when they hold their workshop for remote attendees need a quiet space for this, we reserved a dedicated room for them where they could use the WiFi to connect to the video conference.

Streaming

In 2020, the video production, streaming, recording, etc. was done by the CCC Video Operation Center (c3voc) and some volunteers, mostly from the local team in Cape Town and the SotM Organizing Committee. The video production was done on centralized OBS instances and then streamed using the c3voc content distribution network (CDN). The live parts were done in Jitsi and we used Jibri to get the Jitsi conference into OBS.

One year later, we ran our own streaming server and ‘micro CDN’ on rented servers and produced the video with the help of several volunteers who ran OBS on their own computers at home. For the live portions of the conference, like introductions and Q&A sessions, we used the OSMF-hosted BigBlueButton that we recorded from within OBS. The ‘micro CDN’ was used for the public stream on the SotM website. The streaming server basically received an RTMP stream from OBS which it both forwarded to the venueless streaming infrastructure and also re-encoded it in different qualities as HLS for streaming via our ‘micro CDN’. Our infrastructure was setup using Ansible and primarily built around nginx, nginx-rtmp and ffmpeg. It was based on some previous experience and ideas taken from the very helpful c3voc and DebConf video team documentation and Ansible playbooks.

The streaming during the hybrid SotM in 2023 was done in a very similar manner as in the previous year. The main difference was that we’ve used the proprietary video conferencing solution and lecture hall audio/video infrastructure that was provided to us by the university in Firenze to produce the stream (instead of using e.g. OBS and dedicated/rented audio/video infrastructure). The stream was then sent to our streaming server via RTMP again. From there on, the basic architecture was nearly identical, except for several tweaks and extensions which were in part required to cater for the multiple streams we had. We’ve also provided an audio-only stream using Icecast which we didn’t have in 2021 (but which was available on the c3voc CDN in 2020) to cater for people with low internet bandwidth. We also tried to make the presentation slides available from pretalx and our website such that they could at least follow the slides while listening to the audio.

Since the infrastructure in the lecture halls was setup such that the stream was produced directly on the presentation computer, speakers couldn’t use their own laptop computer for the talk, they had to use the presentation laptop we provided instead. As a consequence, we had to get talk assets like slides required during the presentation onto this laptop. Part of the solution for this was telling the speakers to upload their talk assets to pretalx. We then had a script that was running on a server which retrieved the uploaded talk assets and uploaded them to the OSMF Nextcloud from where they got synchronized to the presentation laptop.

Release

The videos recorded during the conference require some post processing and cutting after the conference. In 2020, this was done on the c3voc infrastructure, in the last two years, we also did this ourselves, mostly using Shotcut and a bunch of custom scripts that supported our workflow. Most of these scripts are constructing and executing ffmpeg commands. Intros and outros for the videos have been produced using the intro-outro-generator from the c3voc.

Once the videos were cut, the release to media.ccc.de and YouTube was always done with help from the c3voc and using their infrastructure and tools. The meta data (information like the talk title, description and speaker(s)) for the videos that was used in this process was retrieved from the academic and non-academic track schedules that were exported from pretalx and merged using the schedule_convert script.

Closing words

I hope this post was at least somewhat interesting or useful - or that it maybe even sparked or increased your interest in the State of the Map conference! Unfortunately, there’s no global SotM in 2023, but there are some local SotMs around the world which are organized independent of the SotM Organizing Committee, so consider attending one of those to meet fellow mappers!

Preparations for SotM 2024 will already start this year though, too. The SotM Organizing Committee is also looking for new members, and not just in the areas I covered in this post, there are many more tasks that need tackling to make a SotM happen, so if you’d like to help, please get in touch!