Estuary 0.3: Collaborative audio-visual live coding with a multilingual browser-based platform David Ogborn McMaster University ogbornd@mcmaster.ca Alejandro Franco Briones McMaster University francoba@mcmaster.ca Luis N. del Angel McMaster University navarrol@mcmaster.ca Antonio Roberts hellocatfood@gmail.com D. Andrew Stewart University of Lethbridge contact@dandrewstewart.ca Jamie Beverley jamie_beverley@hotmail.com Bernard Gray bernie@grbt.com.au Kofi Oduro illestpreacha@outlook.com Jessica Rodríguez McMaster University rodrij28@mcmaster.ca Carl Testa carl@carltesta.net Nicholas Brown-Hernandez McMaster University brownhen@mcmaster.ca Alex MacLean maclean199@gmail.com Spencer Park spinnr95@gmail.com Kate Sicchio Virginia Commonwealth University ksicchio@vcu.edu Eldad Tsabary Concordia University eldad.tsabary@concordia.ca ABSTRACT Estuary is a browser-based platform for live coding that allows a heterogeneous collection of live coding languages to be used together in collaborative “ensembles”. This paper begins with a broad outline of the history of Estuary’s development, including discussion of the philosophies and accountabilities that guide that development. We then present two of the main directions in which work on Estuary has been concentrated in recent years: (1) towards supporting audiovisual live coding (and not merely musical live coding) through the development and inclusion of languages focused on visual results (in close connection with musical concepts), and (2) towards supporting diverse use cases by evolving into a modular “sandbox” where live coding languages, widgets (including some focused on intra-ensemble communication), and media resources are brought together “on-the-fly" in flexible ways. Reflections on specific applications of Estuary in different contexts are interspersed throughout, with a penultimate section focusing on some further applications, largely in educational settings. The paper concludes with brief remarks about directions for future work. Licensed under a Creative Commons Attribution 4.0 International License (CC BY 4.0). Attribution: owner/author(s). Web Audio Conference WAC-2022, July 68, 2022, Cannes, France. © 2022 Copyright held by the owner/author(s). 1. INTRODUCTION Estuary is a browser-based platform for collaborative live coding that has been developed and in active use since 2015. Estuary's affordances are characterized by an emphasis on mixing heterogenous live coding languages (as well as other interfaces to media computing) in collaborative, networked “ensembles”. Estuary’s ensembles can be used by completely co-located groups (as a way of facilitating collaboration and sharing access to hardware), by completely distributed groups (as a way of working together despite geographic and logistical constraints), and by hybrid groups that mix these two possibilities (such as a co-located group with a few members “dialing in” remotely). The earliest work on Estuary [1] began with the goal of exploring structure and projectional editing around the TidalCycles live coding language [2], producing a series of different structure editors characterized by minimal keyboard usage, the use of blank space as an interface, and a mixture of notations at different levels of programming liveness [3, 4]. From that starting point, work on Estuary then returned to an abiding interest in multiple, heterogenous, text languages, typed with a keyboard, as a key interface for engaging with the possibilities of live coding. Estuary’s early evolution into an environment for “multilingual” live coding was inspired by the recognition that facilitating an individualized choice of programming interface, within a larger collaborative setting, would allow people to choose languages that best suit their purpose or situation, without thereby having to forego collaborating with others making different choices. A member of a group might choose to work with a particular language because of an existing level of comfort or familiarity with it, or they might choose a language on account of its close fit to a particular result that is required in a certain moment (eg. choosing a language that facilitates making drone-like continuous sonic textures, when such textures are desired), or since live coding is often not only about the result but also about the way the code is shared with an audience