Every other way this could have gone
Every other way this could have gone is a durational installation that includes performative and participatory components. The installation unravels throughout the interaction between the artist and a narrative reordering algorithm that runs on a laptop and a circuit mounted on the wall. The participatory element of the work is presented in the form of a printed book placed on the table, which the audience is invited to activate by reading the stories in it and annotating them with their own interpretations.
produced by: Batool Desouky
Introduction
The machine embodies a fictional friend that grew out of the wall to listen to the artist and “think”/parse through the stories she reads; helping her imagine other ways they could have been written as a way for imagining alternatives to taught morals, behaviours and ultimately, realities.
Seen as a collaborative relationship between the human and the machine, the piece is an exploration of the possibility space within a narrative structure. The algorithm generates alternative stories by printing every possible permutation of the original series of events. The generated permutations contain an element of absurdist fiction, that grow stranger the further away they are from the original timeline.
Concept and background research
In Matters of Care: Speculative Ethics in More Than Human Worlds, María Puig de la Bellacasa discusses how different configurations of knowledge practices are consequential to specific rearrangements and re-makings of the world. She names storytelling, wording, and accounting among these practices, which also borrows from Donna Harraway’s conception of the practice of storytelling as a means for exploring alternatives to realities. By mediating realities through stories, we render worlds of common sense. Refiguring the order of representation can give us a known (calculable) number of alternative worlds to make. Each with its own logic, which might not match the logic of our present shared reality.
The thermal printer (along with the sensors and circuit panel) acts as a physical interface for the algorithm running on the machine and as a point of contact for the human element to engage with the thought progression of the computer code. The code on the other hands stands in for a machinic thought process, the more than human element to practice thinking with.
The practice of thinking-with socio-technical rationalities of things human and non-human (the later being the case for this work) unravels against a larger backdrop of a practice of care. Care being defined as a means of opening new ways of thinking, thus creating a recursive loop of sorts around the work where thinking and caring between the human and non-human elements of the work intertwine over time as the performance progresses.
Time within the performance space became warped as my physical pace slowed down what the machine can output in seconds, as it took over an hour to assemble, read, interpret and write all the permutations of the story. Repetition, which is a core computational characteristic, tires a human mind and it was a challenge to follow every new linear progression of the narrative without mentally resorting it to original arrangement. As a result of that, many interpretations were similar to the ones right before and after them, but growing more absurd as we travel horizontally further away from the origin — the spot where the original story is printed.
The wall of the installation space mapped out the “possibility space” of each story, as it laid out all the permutations of the story in a linear progression moving from top to bottom then left to right. A similar grid arrangement as on a screen. The wall space also housed more than a phsyical equivelent to the concept of a possibility space. In The Poetics of Space, Gaston Bachelard describes corners, angels, secluded space as ones where we find solitude for the imagination. They are part ‘door’ and part ‘wall’, creating a niche in relation to the rest of the space and bring about the dialectics between inside and outside.
The installation space — in relation to the rest of the exhibition — was very much in the type of corner described by Bachelard, which was an intentional choice in order to try and experiment with containing the installation and performance within this poetic space. Corners are also identified by Bachelard as place of waiting, daydreaming and reading, And books are described almost like a transportational/teleportational objects, that take a person outside of themselves, to the out-side, without ever leaving.
The thoughts and “idle musings” that grow in this space are without the same “reason” that keeps the physical world intact. This type of common sense that a computer lacks, makes it immune to this accusation. The logic inside the code is, from a computational stand point, extremely logical. It utilises a mathematical combinatorics concept named lexicographical ordering, which, given a finite linear sequence, will generate every possible permutation of the elements within the sequence. When given a story, it generates every possible permutation of the order of events within its timeline. The content fed into the code were stories from Aseope’s Fables. Which I chose for their short, metaphorical and traditional use of storytelling as a vehicle for expressing and teach morals and common sense.
“The dreamer in his corner wrote off the world in a detailed daydream that destroyed, one by one, all the objects in the world”
- Gaston Bachelard. “The Poetics of Space.”
Some of the artists and works that influenced the development of the project and helped me contextualise my work include The Time Camp 001 project by Black Quantum Futurists, which explores the history of linear time constructs, time travel, and exploring alternative future.
The work of Sol LeWitt, especially the Serial Project, as well as the work of Manfred Mohr, especially the configurations of a cube, were also inspirational as work that explores possibility spaces, whether through arrangements of object, or through figuring a drawing of a shape.
Technical
Two bodies of code were written for this project; one for generating the book, and one for structuring the performance.
Performance code:
The code used for the performance was written in Processing and Arduino, and used serial communication to connect all parts of the code together and to the physical components.
The processe starts on the Processing side of the code, where the code reads the text in a file that is selected by pointing to an index in an array storing all file names in the directory. These .txt files hold the original stories and are divided into four parts that are delineated with a (#) character. I chose an uncommon character so be able to easily divide the text into an array of Strings.
Basic sequence of events:
Upon touching the first sensor on the wall, Arduino passes the state of the sensor to Processing which in turn sends the String object holding the story from the .txt file back to Arduino which reads and send it to the thermal printer to print.
Each of the capacitive touch sensors on the wall trigger different commands within the Processing code, some combining a few commands within each touch. The first button prints the original story, the second button generates the upcoming permutation and prints the integer array that acts at the index, and the third button prints the text of the permutation and clears the cache of the serial.
Sensors and printer guts:
I chose to use capacitive touch sensors to emphasise the human element of the machine itself. Rather than using push buttons which can be triggered by anything that applies pressure, a touch sensor necessitates a human on the other end of the code to interact with it.
The thermal printer was also intentionally assembled outside of a box as part of using the installation as a work and process space. The tech components that were used were kept at a lo-fi level to convey a personality of a primitive machine that emerged from the wall. To house the printer, I 3D printed basic support structures to hold up the paper roll, and a trough to hold a cutting blade with which to cut the papers.
Presentation and interaction:
I chose to make the installation a space that displays the process of creating these permutations and alternatives. The space is laid out to look like a workspace, intentionally leaving the laptop in the installation. However, it does not look like a conventional laptop setup, as it is sitting on a shelf-like surface protruding from the wall. The shelf itself is an unconventional size (if it were a shelf) and from its surface grows four corners that frame the place of the laptop and aesthetically match the laptop space with the that of the panel on the wall.
Outside of this “processes space” I placed a table - a store bought table of conventional dimensions - and a chair placed at it. On the table was a book, some pens and a set of instructions:
Viewers' movement within the space tended to pause at the table, and since there was a chair, many would sit and view the wall from that angle. The intention of this placement was to encourage people to share their own take on the generated permutations, which were compiled in the book on the table.
Book code:
The original versions of each story followed by every permutation are printed in a layout style that references annotated manuscripts; encapsulating the text of the story in a small border, leaving a large margin for notes, references and interpretations. Each page also included a few elements that appropriate illuminations and margin numbers: a coloured bar at the edge of the page referenced the index order of each permutation as well as a counter keeping track of the number of versions generated, and a glyph is drawn next to the text, representing the order of the index sequence. Both the glyph and the gradient are controlled by the order of the integers in the index array and both morph from one page to the next.
Challenges and constraints:
Using processing as a performance tool proved to be very challenging as it does not readily lend itself to timed control. To work around this, I used a noLoop() function, then triggered different parts of the code manually through the sensors.
Time as space were also constrains for the length of each story, which in turn decided the length of each performance. I wanted to prioritise presenting a balanced and well proportioned piece over filling it with lengths of crowded text. This meant that I had to work with the shorter of Aesop’s fables, particularly the ones in which the series of events can be divided into four parts, as this will produce the correct number of permutations to fit the space.
One of the original sketches of the project envision the machine to be embedded into and spread across the wall. However, this proved difficult as the length of the wires required would have been too long to manage while maintaining the clean aesthetic of the piece. There was also a danger of loosing power along long stretches of very thing wire (like the ribbon wire used). To overcome this constrain, I re-imagined the machine is a a centralised body, arriving at the panel layout seen in the final work.
I had initially intended for the performance to include a live speach recognition component, which would make my reading into the mic more than just a performative element. I worked with P5.js which can access the google API speach library, however, that proved very challenging to do and nearly impossible to make reliable in real time.
Future development
For future renditions of this project I plan on using a speach library together with machine learning to include a speach recognition component. This will add depth to the project and also personality to the fictional machine, as it will not always hear exact or correct words.
I am currently working on digitising all of my own interpretations and will log their development over time to track the progression of how i interact with the code, get better at reading through its logic and generate more expansive alternate morals to stories. I also plan on compiling all the responses received from the public and create a ledger of sorts, storing everyones alternative interpretations.
Outside the constrains of an exhibition, I can also produce extensive and long documents, which might be more artifact than book, but would be interesting to explore the physical output that can be generated with from this project.
Self evaluation
The development of the peice over time, as I repeated the performance with a new story every day, was a very successful element of the work. The project was not just generative in through the code that was generating the permutations, but also over the longer arch of the exhibition days. I am happy to have been able to use relatively simple components to put together a dynamic and expansive project. The choices of the simple physical hardware, and exposed circuitry worked well along side the concept of the piece. This also corresponded to the quite low-level code that was used (as opposed to machine learning), and elemental level of engaging with narrative structures as well (through desctructuring the timeline of events asn opposed to delving into semantics and context).
The space of the installation was very balanced, and the use of sticky notes on the wall made people curious to come closer. However, In my effort to create a minial space, the space also turned out to be colder than needed. If I had anticipated that, I would have rearranged the laptop and stool to a more home-like environment, maybe even adding a blanket and some reading books. This would have also made the work stand out more as deliberately "lo-fi".
I would have added LED lights that respond to my touching the sensors, to create a visual cue for that action; and a speaker to amplify my voice when reading into the microphone. Both of those changes would have added sensory experiences to the installation beyond the visual and the textual. They might have made the space less "quiet", but would have definately made it more engaging and encouraged people to spend more time in it.
References
Research:
Matters of Care: Speculative Ethics in More Than Human Worlds - María Puig de la Bellacasa
The poetics of space - Gaston Bachelard
Staying with the Trouble - Donna J. Haraway
Ferranti Mark I: Machester love letter machine, writing experiment as a test of a random number generator:
https://www.bbc.co.uk/news/uk-england-manchester-12430551
Aesop’s Fables - project Gutenberg: http://www.gutenberg.org/ebooks/11339
Printer: https://learn.adafruit.com/mini-thermal-receipt-printer/microcontroller
Book making: https://processing.org/reference/libraries/pdf/index.html
Borrowed code:
Daniel Shiffman's tutorial: https://www.youtube.com/watch?v=goUlyp4rwiU
Lexicographic ordering: https://www.quora.com/How-would-you-explain-an-algorithm-that-generates-permutations-using-lexicographic-ordering
Serial for large strings: https://sspog.wordpress.com/code-examples/processing-to-arduino-strings-bigger-than-64-bytes/