Continuing from previous explorations and experiments with weaving drafts, pattern making, thermal printing, influence/interactivity and emergent systems, Wyrd was exhibited at the Chimera Gardens, Computaional Arts MA/MFA degree show at Goldsmiths University of London, september 2020.
“Digital weavings hang from the wall, burnt onto paper with a thermal printer. The patterns are constructed through algorithmic procedures and emergent systems encountered and interacted with through bodily movements. They are the proposed results of generative weaving drafts or notations. Drafts used as navigational tools, as codified images of a process or maps visualizing the setup and operation of a weaving loom to create suggested structures and patterns. They are studies of the vivid connections between weaving and digital technology, of fate, agency, responsibility and necessity. A reflection on the tensity of living and creating while having little or no control yet participating in and constantly influencing all of one’s surroundings.
Next to the prints, an installation lets the viewer co-create patterns together with a computational system, channelled through ever changing weaving drafts and printed in real time. Bodily movements, captured by a camera, can be used to navigate the operations of a digital loom and to influence emergent forces, creating unfolding patterns. The work invites you to read as well as make patterns, to participate in a process where one is never in full control of the outcome but always interfering and influencing it as part of a collective creative process.
A companion website containing a set of interactive experiments and meditations on weaving drafts is also a part of the work. It can be found here.”
The code running the installation is written in c++/openFrameworks with the help of the following addons:
- bakercp / ofxPS3EyeGrabber – extending ofBaseVideoGrabber with PS3 Eye
- kylemcdonald / ofxCv – openCV wrapper for OF
- Patricio Gonzales Vivo / ofxThermalPrinter – adding real time control over thermal printer
To create the weaving drafts I modeled the application after a loom, trying to emulate the weaving process in the very code itself. The drawdown is calculated by correspondence between the other three parts of the draft. Every pattern row that gets printed corresponds to a specific culmination of the different parts as illustrated in the draft.
The setup has 4 different modes for how the data from the emergent system is read. It gets the current states of each of the entities in an array of zeros and ones. In the first mode, all the states are added together into a single integer and pushed into the front of the ‘Theadling’ as the last one is removed, this results in a horizontal movement in the draft. The second mode takes the whole ‘Threading’ in account, pushing the whole array of states at once and repeating it over the whole grid. The third mode is similar but mirrors every other repeat, a technique commonly used in weaving. The fourth mode is more experimental and takes on the idea of spiral repetition, where things repeat but with a twist. It is just as the second mode but at certain points a sudden shift creates irregularities in the repetitions.
The system responsible for the setup of the weaving draft and with which the audience co-create the patterns is based and developed from so-called ‘Turmites’, of which the most famous example would be ‘Langton's Ant’. It is a universal two-dimensional Turing machine or a cellular automaton with von Neumann's neighborhood capable of displaying emergent behaviour (Gajardo et al., 2002). In Langtons example ruleset, a virtual ant walks over a square lattice, each cell having one of two states or colours. The Ant moves forward one cell at a time over the grid, flips every trodden cell to the opposite state, but changes direction (either left or right) depending on the colour of the cells. Given enough time the ants path and behaviour goes from simple to complex to emergent order. When more ants are introduced, the patterns, paths and behaviours become ever more complex.
Much research has been done about ‘Turmites’ with more states, colours and rules. For this project I wanted to keep the simplicity and aesthetics of a 2 colour system but extended the use of rules as well as interaction with the grid. The entities present are relative, meaning that they keep an internal direction. They were given a possible inverse rule state as well as designing several different rules or possible ways of reacting. The rules, which instead of being constrained to only left/right were extended into more complex movements. The rules changes under the influence of the interactive part of the installation, increasing complexity and possible emergent behaviours.
Triggered by certain movements, or randomly within certain intervals, the underlying grid black and white cells that drive the movement and dynamics of the system will undergo drastic modifications. Either the whole board will be wiped, or states will be flipped in waves or patterns. This is not only a way of resetting the system and let new interesting movements and patterns emerge, but a deliberate provocation to perhaps think about interaction and possibilities within an environment, or more precisely as being part of a living enmeshed environment. Participating as well as undergoing changes together with not only other biological living beings but the totality of the world.
The interaction of the installation is meant to be subtle and obscured, but still give a direct response. It is this very tension of control and interaction that is the underlying focus.
Using a webcam and openCV the installation read the movements in the room. As a way of involving the audience in the creation of the patterns, the treadling is navigated by the body movements of the participants. I used 'optical flow' to calculate the direction and velocity of the movements to keep the interaction dynamic and fluid with a focus on motion. The system is based on the Farneback method where the direction and speed of a moving object is calculated or estimated by comparing two frames recorded by the camera.
Direct movements are also what triggers the printing process. Giving the audience a sense of participation and direct influence. When a certain amount of movement is detected, the ‘Threading’ freezes and the printer burns the current row onto the paper.
Over time, movements in different parts of the room are collected, when a certain amount of movement is seen a numerically corresponding entity or ant of the backend system changes its rules.
A final interaction is detecting motion in the Y-axis, as in for example raising ones arms. These movements change the different modes of the draft-setup explained above.