Algorithmic Pattern
Lead Research Organisation:
Foam
Department Name: Head office
Abstract
The purpose of this project is to learn from the "heritage algorithmic arts", in order to rethink the design principles of creative technology. Heritage algorithmic arts are those where through history, ways of making have been formalised and embedded in creative culture.
I take a human-centric approach, looking for where we humans make algorithms in order to make things. Clear examples lie in the textile crafts, particularly weaving, well known for its mathematical basis, where weavers explore interference patterns between warp and weft. Once you start looking, algorithmic patterns can be found almost everywhere, for example in dance (e.g. Pinnal Kolattam of Tamil Nadu), music (e.g. canons, inversions and arpeggios of western classical music, phase patterns of New York minimalism), and computer programming (e.g. low-level bit-level masking, shifting and combination).
Broadly, heritage algorithms consist of procedures and rules of pattern - shifting, combining, reflecting, rotating, interfering, glitching, and combinations thereof, at multiple scales. They work both in the movements of the maker, and in perception of the result by the beholder. Patterns are also seen in computation, from binary operations involved in low-level machine code, to high-level operations used by artist-programmers in creative coding. However, the word "pattern" is overloaded, often used to describe simple phenomena such as straightforward sequences in music. On the other hand, the word 'algorithm' is often used to describe unfathomable complexity. In combination, "Algorithmic Pattern" refers to human-made algorithms, where complex and surprising results can result from the combination of simple parts. This offers us rich ways of making; easy to learn but taking a lifetime to master.
Surprisingly, the historical and cultural basis of algorithmic thinking and making is not well exploited in human-computer interfaces. In music, despite the prevalence of patterns, they are often treated as fixed sequences, rather than as algorithmic behaviours. In dance, while pioneers have explored "algorithmic choreography", much understanding of patterns in dance remains tacit. Indeed, a key strength of all heritage algorithmic artforms - openness to possibility - stems from its basis in oral culture, where tacit knowledge changes and adapts through the process of sharing. A challenge for this project is in capturing heritage algorithms so that they can be understood and shared, while not undermining their qualities as living ideas, open to change.
From this perspective, I develop a new approach to emerging technologies, rethinking what we currently call "creative coding". The structures of programming languages - loops, conditions, procedures, recursion and transformation - fit very well to the procedures and rules familiar to pattern-making. Indeed, programming languages can be used as end-user interfaces for collaboration and creativity, an approach championed by Douglas Engelbart and seeing recent resurgence thanks to the work of the dynamicland laboratory. Still, there is much to be done in improving the experience of programming, bringing it closer to material through tangible interfaces, bridging the gap between pattern as algorithm, and pattern as perception, and working with diverse groups to create algorithmic patterning environments for everyone.
This project establishes Algorithmic Pattern as a new, interdisciplinary research space, as a meeting point of programming language experience design, textile design, computer-supported cooperative work (CSCW), live coding, computational creativity and new interfaces for musical expression (NIME). The programme takes on the challenge of upholding the standards of academic rigour across all these fields, while establishing a new field of enquiry.
I take a human-centric approach, looking for where we humans make algorithms in order to make things. Clear examples lie in the textile crafts, particularly weaving, well known for its mathematical basis, where weavers explore interference patterns between warp and weft. Once you start looking, algorithmic patterns can be found almost everywhere, for example in dance (e.g. Pinnal Kolattam of Tamil Nadu), music (e.g. canons, inversions and arpeggios of western classical music, phase patterns of New York minimalism), and computer programming (e.g. low-level bit-level masking, shifting and combination).
Broadly, heritage algorithms consist of procedures and rules of pattern - shifting, combining, reflecting, rotating, interfering, glitching, and combinations thereof, at multiple scales. They work both in the movements of the maker, and in perception of the result by the beholder. Patterns are also seen in computation, from binary operations involved in low-level machine code, to high-level operations used by artist-programmers in creative coding. However, the word "pattern" is overloaded, often used to describe simple phenomena such as straightforward sequences in music. On the other hand, the word 'algorithm' is often used to describe unfathomable complexity. In combination, "Algorithmic Pattern" refers to human-made algorithms, where complex and surprising results can result from the combination of simple parts. This offers us rich ways of making; easy to learn but taking a lifetime to master.
Surprisingly, the historical and cultural basis of algorithmic thinking and making is not well exploited in human-computer interfaces. In music, despite the prevalence of patterns, they are often treated as fixed sequences, rather than as algorithmic behaviours. In dance, while pioneers have explored "algorithmic choreography", much understanding of patterns in dance remains tacit. Indeed, a key strength of all heritage algorithmic artforms - openness to possibility - stems from its basis in oral culture, where tacit knowledge changes and adapts through the process of sharing. A challenge for this project is in capturing heritage algorithms so that they can be understood and shared, while not undermining their qualities as living ideas, open to change.
From this perspective, I develop a new approach to emerging technologies, rethinking what we currently call "creative coding". The structures of programming languages - loops, conditions, procedures, recursion and transformation - fit very well to the procedures and rules familiar to pattern-making. Indeed, programming languages can be used as end-user interfaces for collaboration and creativity, an approach championed by Douglas Engelbart and seeing recent resurgence thanks to the work of the dynamicland laboratory. Still, there is much to be done in improving the experience of programming, bringing it closer to material through tangible interfaces, bridging the gap between pattern as algorithm, and pattern as perception, and working with diverse groups to create algorithmic patterning environments for everyone.
This project establishes Algorithmic Pattern as a new, interdisciplinary research space, as a meeting point of programming language experience design, textile design, computer-supported cooperative work (CSCW), live coding, computational creativity and new interfaces for musical expression (NIME). The programme takes on the challenge of upholding the standards of academic rigour across all these fields, while establishing a new field of enquiry.
Organisations
- Foam (Fellow, Lead Research Organisation)
- Virginia Commonwealth University (Collaboration)
- University of Iceland (Collaboration)
- Wakefield Council (Project Partner)
- Eindhoven University of Technology (Project Partner)
- Rotherham Open Arts Renaissance (ROAR) (Project Partner)
- Robert Schumann University of Music and Media (Project Partner)
Publications
Roos F
(2022)
Strudel: Algorithmic Patterns for the Web
McLean, A
(2022)
Alternate Timelines for TidalCycles
McLean A
(2022)
TidalVortex Zero
Blackwell A
(2022)
Live Coding - A User's Manual
Title | Codes for a Dance |
Description | A live performance exploring live coding patterns of movement, a collaboration between Kate Sicchio and Alex McLean. The audience was in Portugal, Kate was in Richmond US, and Alex was in Sheffield UK. Despite the distance, we live coded patterned movements together using a web-based interface, actuated using a small robot. |
Type Of Art | Performance (Music, Dance, Drama, etc) |
Year Produced | 2022 |
Impact | Informing our ongoing collaboration with q+a feedback from the live audience. |
Title | Patterns in Between Intelligences |
Description | Collaboration with live coder Lizzie Wilson, e-Textile designer Mika Satomi, and performers Deva Schubert and Juan Felipe Amaya Gonzáles, exploring algorithmic patterns between performers and coders, mediated by e-textiles and machine learning. |
Type Of Art | Performance (Music, Dance, Drama, etc) |
Year Produced | 2022 |
Impact | Reached a large audience as the opening concert of the annual No Bounds festival in Sheffield UK. |
URL | https://noboundsfestival.co.uk/artists/patterns-in-between-intelligences-live-av |
Description | Algorithmic alphabets |
Organisation | University of Iceland |
Country | Iceland |
Sector | Academic/University |
PI Contribution | Exploratory, collaborative work, exploring the possibilities of hand-drawn interfaces in algorithmic patterns, within Dynamicland's RealTalk system. |
Collaborator Contribution | See above. |
Impact | n/a |
Start Year | 2021 |
Description | Algorithmic choreography |
Organisation | Virginia Commonwealth University |
Country | United States |
Sector | Academic/University |
PI Contribution | Collaboration with Dr Kate Sicchio, exploring algorithmic patterns in choreographic notations of humans and robots. |
Collaborator Contribution | See above. |
Impact | Performances and technologies. |
Start Year | 2021 |
Title | tidalcycles/Tidal: Sanquhar |
Description | What's Changed move tidal-listener code by @polymorphicengine in https://github.com/tidalcycles/Tidal/pull/885 Fix a typo incurred (I assume) by a filename change. by @JeffreyBenjaminBrown in https://github.com/tidalcycles/Tidal/pull/886 Hide contexts from Events per default by @polymorphicengine in https://github.com/tidalcycles/Tidal/pull/887 Allow sending/receiving of broadcasted OSC control messages by @yaxu in https://github.com/tidalcycles/Tidal/pull/894 tidal-listener: Add minimal install notes by @gamar3is in https://github.com/tidalcycles/Tidal/pull/895 Add rolled function with variants by @thgrund in https://github.com/tidalcycles/Tidal/pull/820 Valuable instance for Note by @yaxu in https://github.com/tidalcycles/Tidal/pull/899 Add parsers for ints and floats that don't consume trailing whitespace by @polymorphicengine in https://github.com/tidalcycles/Tidal/pull/900 Introduce
echo and
echoWith , deprecate
stut and
stutWith by @ndr-brt in https://github.com/tidalcycles/Tidal/pull/904 tidal-listener: Optional WITH_GHC environment variable by @mindofmatthew in https://github.com/tidalcycles/Tidal/pull/903 New Contributors @gamar3is made their first contribution in https://github.com/tidalcycles/Tidal/pull/895 Full Changelog: https://github.com/tidalcycles/Tidal/compare/1.7.10...v1.8.0 |
Type Of Technology | Software |
Year Produced | 2022 |
Open Source License? | Yes |
Impact | Open source software with large international userbase. |
URL | https://zenodo.org/record/6495075 |
Title | tidalcycles/strudel: Wirbel |
Description | What's Changed Binaries by @felixroos in https://github.com/tidalcycles/strudel/pull/254 fix tutorial bugs by @felixroos in https://github.com/tidalcycles/strudel/pull/263 fix performance bottleneck by @felixroos in https://github.com/tidalcycles/strudel/pull/266 Tidying up core by @yaxu in https://github.com/tidalcycles/strudel/pull/256 tonal update with fixed memory leak by @felixroos in https://github.com/tidalcycles/strudel/pull/272 add eslint by @felixroos in https://github.com/tidalcycles/strudel/pull/271 release version bumps by @felixroos in https://github.com/tidalcycles/strudel/pull/273 Support sending CRC16 bytes with serial messages by @yaxu in https://github.com/tidalcycles/strudel/pull/276 add licenses / credits to all tunes + remove some by @felixroos in https://github.com/tidalcycles/strudel/pull/277 add basic csound output by @felixroos in https://github.com/tidalcycles/strudel/pull/275 do not recompile orc by @felixroos in https://github.com/tidalcycles/strudel/pull/278 implement collect + arp function by @felixroos in https://github.com/tidalcycles/strudel/pull/281 Switch 'operators' from .whatHow to .what.how by @yaxu in https://github.com/tidalcycles/strudel/pull/285 Fancy hap show, include part in snapshots by @yaxu in https://github.com/tidalcycles/strudel/pull/291 Reorganise pattern.mjs with a 'toplevel first' regime by @yaxu in https://github.com/tidalcycles/strudel/pull/286 add prettier task by @felixroos in https://github.com/tidalcycles/strudel/pull/296 Move stuff to new register function by @felixroos in https://github.com/tidalcycles/strudel/pull/295 can now add bare numbers to numeral object props by @felixroos in https://github.com/tidalcycles/strudel/pull/287 update vitest by @felixroos in https://github.com/tidalcycles/strudel/pull/297 remove whitespace from highlighted region by @felixroos in https://github.com/tidalcycles/strudel/pull/298 .defragmentHaps() for merging touching haps that share a whole and value by @yaxu in https://github.com/tidalcycles/strudel/pull/299 fix whitespace trimming by @felixroos in https://github.com/tidalcycles/strudel/pull/300 add freq support to sampler by @felixroos in https://github.com/tidalcycles/strudel/pull/301 add lint + prettier check before test by @felixroos in https://github.com/tidalcycles/strudel/pull/305 Updated csoundm to use the register facility . by @gogins in https://github.com/tidalcycles/strudel/pull/303 New Contributors @gogins made their first contribution in https://github.com/tidalcycles/strudel/pull/303 Full Changelog: https://github.com/tidalcycles/strudel/compare/v0.4.0...v0.5.0 |
Type Of Technology | Software |
Year Produced | 2022 |
Open Source License? | Yes |
Impact | Community of practice is developing around it. |
URL | https://zenodo.org/record/7434878 |
Description | "Live coding without anything" experimental performance |
Form Of Engagement Activity | Participation in an activity, workshop or similar |
Part Of Official Scheme? | No |
Geographic Reach | International |
Primary Audience | Professional Practitioners |
Results and Impact | An experimental performance as part of the online "hybrid live coding interfaces" workshop, in attempting to 'live code' algorithmic, vocal rhythms, without the use of a computer. |
Year(s) Of Engagement Activity | 2022 |
URL | https://hybrid-livecode.pubpub.org/workshop2022 |
Description | INTERFACE: Art/Technology/Collaboration |
Form Of Engagement Activity | A formal working group, expert panel or dialogue |
Part Of Official Scheme? | No |
Geographic Reach | Local |
Primary Audience | Professional Practitioners |
Results and Impact | A panel session at Site Gallery, Sheffield, discussing the collaborative work at the boundaries of art, science and technology. "Collaboration between artists and technologists or scientists can lead to a greater appreciation and understanding of the world, as well as new and innovative ways of thinking about and representing it. This event will showcase a range of projects with potential for future cross-disciplinary collaboration, and will provide an opportunity to hear from participants about their experiences and expectations of working with others, where even the technologies themselves may become partners." |
Year(s) Of Engagement Activity | 2022 |
URL | https://www.sitegallery.org/event/interface-art-technology-collaboration/ |
Description | Invited talk - "Live coding and the 'what-if' paradigm" |
Form Of Engagement Activity | A talk or presentation |
Part Of Official Scheme? | No |
Geographic Reach | International |
Primary Audience | Other audiences |
Results and Impact | An invited talk at this academic interest group, introducing live coding as a 'what-if' paradigm, as an alternative to the usual imperative/declarative dichotomy. |
Year(s) Of Engagement Activity | 2022 |
URL | https://www.ppig.org/workshops/2022-annual-workshop/programme/ |
Description | Invited talk at Minimal Input festival in Taipai |
Form Of Engagement Activity | A talk or presentation |
Part Of Official Scheme? | No |
Geographic Reach | International |
Primary Audience | Public/other audiences |
Results and Impact | Invited talk streamed to "Minimal Input: Algorithmic Art Gathering" festival at C-Lab Taipai, Taiwan. |
Year(s) Of Engagement Activity | 2022 |
URL | https://clab.org.tw/ |
Description | Live coding workshop as part of arts programme in Sheffield |
Form Of Engagement Activity | Participation in an activity, workshop or similar |
Part Of Official Scheme? | No |
Geographic Reach | Local |
Primary Audience | Professional Practitioners |
Results and Impact | Hands-on workshop exploring live coding musical patterns with Strudel, invited by DINA as part of their programme of events supported by Arts Council Englands. |
Year(s) Of Engagement Activity | 2023 |
URL | https://www.dinavenue.com/event-details/dina-versity-live-coding-musical-patterns-with-strudel-w-ale... |
Description | Online talk series on Algorithmic Pattern |
Form Of Engagement Activity | A talk or presentation |
Part Of Official Scheme? | No |
Geographic Reach | International |
Primary Audience | Public/other audiences |
Results and Impact | Around June 2022, we hosted six excellent speakers exploring algorithmic patterns from their own perspectives, in particular: Laura Devendorf on weaving algorithmic patterns with AdaCAD Bekah Smith on the mathematics of juggling 'siteswap' patterns Ron Eglash on heritage algorithms and generative justice Vernelle Noel on algorithms of wire-bending Sarah Hennigh Groff-Palermo on live coding patterns B C Manjunath on Konnakol patterns in Carnatic music |
Year(s) Of Engagement Activity | 2022 |
URL | https://algorithmicpattern.org/post/talk-series/ |
Description | Pattern Club Live performance event |
Form Of Engagement Activity | Participation in an activity, workshop or similar |
Part Of Official Scheme? | No |
Geographic Reach | International |
Primary Audience | Public/other audiences |
Results and Impact | Showcase of pattern-based music performance, curated by fellow Alex McLean and organised by Sheffield-based arts organisation DINA, as part of the arts-council supported programme. |
Year(s) Of Engagement Activity | 2023 |
URL | https://www.dinavenue.com/event-details/i-now-pattern-club-live |
Description | Presentation and panel discussion at Site Gallery, Sheffield |
Form Of Engagement Activity | A talk or presentation |
Part Of Official Scheme? | No |
Geographic Reach | Regional |
Primary Audience | Professional Practitioners |
Results and Impact | Invited talk on Algorithmic Patterns as part of a panel session with artists and researchers introducing their work and exploring the theme of collaboration, convened by artists Seiko Kinoshita and Jan Hopkins. |
Year(s) Of Engagement Activity | 2023 |
Description | Talk at Sheffield Forum |
Form Of Engagement Activity | A talk or presentation |
Part Of Official Scheme? | No |
Geographic Reach | Local |
Primary Audience | Public/other audiences |
Results and Impact | A talk about live coding patterns as part of a live event series organised by the local Sheffield Forum community. |
Year(s) Of Engagement Activity | 2023 |
Description | Talk on Algorithmic Patterns at EMFCamp festival |
Form Of Engagement Activity | A talk or presentation |
Part Of Official Scheme? | No |
Geographic Reach | International |
Primary Audience | Public/other audiences |
Results and Impact | Talk on algorithmic patterns and workshop on live coding musical patterns with Strudel, at this biennual creative technology festival. |
Year(s) Of Engagement Activity | 2022 |
URL | https://www.emfcamp.org/ |
Description | Workshop at Peckham Digital Festival |
Form Of Engagement Activity | A talk or presentation |
Part Of Official Scheme? | No |
Geographic Reach | Regional |
Primary Audience | Public/other audiences |
Results and Impact | Invited hands-on workshop on live coding musical patterns with the Strudel software. |
Year(s) Of Engagement Activity | 2023 |
URL | https://www.peckhamdigital.org/ |
Description | Workshop on patterns in live coding and algorithmic music |
Form Of Engagement Activity | Participation in an activity, workshop or similar |
Part Of Official Scheme? | No |
Geographic Reach | International |
Primary Audience | Professional Practitioners |
Results and Impact | Collaborating with on_the_fly festival at Hangar, Barcelona, and Elizabeth Wilson of Queen Mary, University of London, on a day-long workshop introducing live coders and other electronic musicians working with algorithms, to patterns in textiles. It included a morning workshop on tablet weaving by Co-Investigator Dave Griffiths, who introduced this fascinating, ancient craft as a computational artform. This lead into to discussions about patterns in the contemporary practice of live coding. |
Year(s) Of Engagement Activity | 2022 |
URL | https://thentrythis.org/notes/2022/07/09/digital-is-physical-remote-tablet-weaving-explorations/ |