Algorithmic Pattern
Lead Research Organisation:
FoAM Kernow
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.