Algorithmic Poetry


Currently, I’m in a class on Algorithmic Poetry, in which we’ll experiment with integrating machine learning algorithms into our writing and creative practice.

Last week, we were prompted to think about how we would describe our own creative practice, especially when it comes to our coding or writing. Over the past few years, I’ve been reflecting on my “style” of making, which has always been scattered and emergent but also intensely relational. I’m driven by my curiosity for a question or an idea and often the art objects or code I produce are a byproduct of the research process. I create through mapping and learning and studying, with various experimental outputs.

I recently read Natalie Loveless’ manifesto-book, A Manifesto for Research-Creation: How to Make Art at the End of the World, which I felt not only validates this practice-centered type of investigation, but also positions it as a fundamentally feminist mode of research that is focused on experimentation.

Of Donna Haraway’s book The Companion Species Manifesto, Loveless writes that it “implicitly argues that it is in allowing ourselves to be drawn by our loves, our intensive and extensive curiosities, attentive to what and whom we are driven to explore, and examining the complex web of relations that we inherit thereby, that we might inhabit research questions ethically” (27). In other words, the questions are never answered. They are always in the process of unfolding.

“A research-creational approach insists that it is to our deepest, doggiest, most curious loves that we are beholden, and that is is love – eros – that must drive our research questions as well as our methodological toolkits….A multiplicity of responsive practices structured by situated (emergent, erotic, driven) accountability” (28).

In addition, Loveless reminds us that we must cultivate the erotic as our guide in our knowledge-making practices, a reference to Audre Lorde’s essay “The Uses of the Erotic: The Erotic as Power”. When we are attuned and attentive to those things that bring us pleasure and joy, we are positioned to do our best research and work.

I’ve been reflecting on this “style” of curiosity-driven research and experimentation as I’ve revisited some of my past work in which I wrote code that generated text. A couple of examples of text generators I built:

I’m still not quite sure what the output of some of my experimentation over the next month will look like, but I have had a renewed interest in textile design – specifically, producing objects on my knitting machine. Using punch cards, I’d love to translate some of the text generation from this class into physical, knitted textiles. You can see more of my ideas & references in this channel.

Feminist HCI

Attending to the familiar

Brian Eno, Oblique Strategies, 1974
  1. What kinds of forms and practices emerge when we turn away from the new and attend to the persistent, unsettled, and non-digital?
  2. What tensions might these forms and practices create with our typical practices of attribution and impact?
  3. How does sidelining the technological new allow us to pay attention to things in a different manner?

These three questions are at the heart of a 2018 paper “From HCI to HCI-Amusement: Strategies for Engaging what New Technology Makes Old,” in which two HCI practitioners resist the formal logic and structure of design workshops and instead take inspiration from the Fluxus movement to develop a set of “HCI-amusements.”

In the 1960s and 1970s, Fluxus emerged as an interdisciplinary creative practice in which artists, composers, designers, and poets engaged in experimental art that emphasized the process (research, archive, iterative “critical making”) rather than a finished output. Fluxus was characterized as a shared posture and language towards making, rather than an art movement. It was also decidedly “anti-art” in that artists strove to eliminate boundaries between “art” and the “non-art” spaces by integrating an iterative creative practice into everyday life, using everyday objects. The result was a set of art objects that were radically accessible.

In a parallel effort towards “critical making,” UC Berkeley offers a class aimed at getting students to think about the role of discomfort in design (see the paper “Uncomfortable Interactions” for a theoretical overview). Similarly, the project “Disobedient Objects” is a cookbook of sorts for subverting the utility of various objects, and serves as a conceptual starting point for thinking about “making the familiar unfamiliar.”

I’m thinking about these three questions now:

  1. How do we attend to the non-digital in order to sensitize ourselves to new forms and processes?
  2. Given that human-centered and “persuasive” design are tools that have been co-opted by capitalism, what tactics can we use to subvert HCI? How do we inject friction, noise, slowness, and discomfort into design interactions?
  3. How do we design interfaces that are uncomfortable and subversive?
  4. What new design patterns might emerge?

The decameron.

Giovanni Boccaccio’s The Decameron (ca. 1353)

The Decameron was a 14th-century book by Boccaccio about a group of people stuck inside a villa quarantining themselves from the Black Plague. They pass the time by telling each other stories, jokes, and making art together. Boccaccio’s storytelling was motivated by more than just boredom: He proposed storytelling and social cohesion as a tactic to prevent plague infection in medieval Italy.

“Although Boccaccio was not the first writer to deal with pestilence or epidemics in a literary work, he was the first to unite the topos of a life-threatening context with a public health disaster like the Black Death, and certainly the first author to propose storytelling as a means of prophylaxis in times of plague.”

– Martin Marafioti, Storytelling as Plague Prevention in Medieval and Early Modern Italy: The Decameron Tradition

It’s been a while since I’ve posted on this blog. That’s because I decided to stop posting in 2017, leaving behind an archive of my programming experiments, critical explorations, and art practice during my time in grad school from 2015-2017. It was a journal of sorts for me – mapping the ideas and theory that was informing my creative practice. I wrote about “the algorithmic gaze” inspired by Donna Haraway, the biopolitics of code, and cybernetic categorization on Facebook. It also captured many of the frustrations I encountered when my code broke, I couldn’t get a package to install, I built things that I later thought were dumb, or utterly failed to understand the science behind hydrology.

Under this new reality I’ve found myself during covid-19, I’ve been revisiting some of my coding projects and writing as a source of inspiration for my current creative practice. I realized that some of the best projects I developed and classes I took during my time in “art school” weren’t documented on this blog at all – my exploration of location data with Python, my experiments in “detourning the web,” my sketches and schema, and a great deal of my thesis research never made it into this archive.

To that end, I want to continue using this blog as an informal space in which I can test out new ideas and concepts, a complement to my space for visual research and my Github for code experiments. I will continue to write about what I’m reading and creating (when I’m not busy working my 9-5 job as a researcher at Mozilla).

Artmaking and storytelling can be a tactic for survival in uncertain times.


Final post: ITP

I started this blog to keep track of my WIP projects & writing during my time in grad school at NYU-ITP. Since I graduated it’s no longer being maintained, but you can find my online portfolio here:

Get in touch: baricks at



Final Thesis Presentation: Social Assemblages

Here’s my final 10-minute presentation I gave at ITP, summarizing the work I’d done during the semester on my thesis:

ITP Thesis Week 2017: Rebecca Ricks – Social Assemblages from ITP on Vimeo.


User testing.

Yesterday I had the opportunity to user test my thesis project as it exists in its current state at the Quick & Dirty show. Since I’ve been doing some disparate experiments, I decided to show two of the pieces in an attempt to get feedback on what works, what feels compelling, and how the projects might be better synthesized.

First, I showed a web application I built that uses IBM Watson’s Personality Insights API (i.e. psychometrics) to make assumptions about who you are as a person. The user logs into Facebook in the application and then a dashboard appears that shows them their predicted psychological makeup and purchasing habits. I tried to take a satirical/speculative approach, suggesting what psychometrics could look like in the future.

Second, I showed the work I had done on generating 3D facial models from 2D images. The idea is that after a user logs into Facebook, the application will automatically produce a 3D model of their face just from their Facebook photos. Earlier in the day, I had 3D printed a face, so for the show I projected the isomap facial image on top of the 3D model to lend the 3D experiment more tactility.

People responded really well to the visual aspect of the project and expressed a desire to see more of a connection between this visual and the psychometric web app.

Overall the feedback was so useful. I felt as if the common theme was a desire for a stronger framing of the project. How do I want the audience to feel as an end result? What kind of approach or tone should I be taking?

Detourning the Web

Locating Facebook metadata in physical landscapes.

My Facebook metadata as landscape.

This semester, I’ve focused my attention on creative ways of interpreting and visualizing my personal Facebook data.

I’m interested in exploring the concept of “digital dualism” – the habit of viewing the online and offline as largely distinct (source). We are actively constructing our identities whether behind a screen or in person. As Nathan Jurgenson writes, “Any zero-sum “on” and “offline” digital dualism betrays the reality of devices and bodies working together, always intersecting and overlapping, to construct, maintain, and destroy intimacy, pleasure, and other social bonds.”

The exact location where I made a Facebook update.

With this project, I wanted to try re-inserting the digital world into the physical world. I decided to locate specific actions I took on Facebook within a physical geography and landscape.

It’s very easy to download your Facebook metadata from the website – all you have to do is follow these directions. In my data archive, I found information about every major administrative change I’ve made to my Facebook account since I created the account in 2006, including changes to my password, deactivating my account, changing my profile picture, etc. This information was interesting to me because from Facebook’s perspective, these activities were in all likelihood the most important decisions I had ever made as a Facebook user.

I rearranged that data into a simple JSON file:

I decided to explore the IP Address metadata associated with each action. I wanted to know more about the physical location where I had made these decisions concerning my Facebook account, since I obviously didn’t remember where I was or what I was doing when I had made these changes.

I wrote a Python script (see code here) that performs several different actions for each item in the JSON file:

(1) Takes the IP address and finds the corresponding geolocation, including latitude & longitude & city/state;

(2) Feeds the latitude/longitude into Google Maps’ Street View and downloads 10 images that each rotate 5 degrees;

(3) Adds a caption to each image specifying the Facebook activity, the exact date/time, and the city/state; and

(4) Merges the 10 images into a gif.

The result was two dozen weird undulating gifs of Google Street View locations, which you can check out on the project website.

After doing all that work, however, I didn’t feel satisfied with the output. If the goal was to find a way to re-insert my digital data trail into a physical space, I felt that the goal hadn’t yet been realized in this form. I decided to take the project into a different, more spatially-minded direction.

I wrote another Python script that programmatically takes the IP address and searches for the latitude/longitude on Google Maps, clicks the 3D setting, records a short video of the three-dimensional landscape, and then exports the frames of that video into images.

Programmatically screen recording Google Maps’ 3D landscape.

Using the photogrammetry software Photoscan, I created a 3D mesh and texture from the video frames. Then, I made a quick design of the Facebook app on an iPhone with the specific Facebook activity associated with that location & IP address. Finally, I pulled the landscape .obj into Unity with the iPhone image and produced some strange, fantastical 3D landscapes:

Pulling the 3D mesh into Unity and inserting the Facebook metadata into the landscape.


Thesis progress, Week 7.

The past few weeks have allowed me to think deeply about what I want to get out of my thesis project and what form this project will take. I wrote last week of the idea of the “manufactured self” – a self that has been constructed socially by external sources of power.

I stumbled on Alexandru Dragulescu’s thesis paper Data Portraits: Aesthetics and Algorithms, which outlines his creative practice for data portraiture. He describes “the concept of data portraits as a means for evoking our data bodies” and showcases his “data portraiture techniques that are re-purposed in the context of one’s social network.”

With my project, I will attempt to create a portrait of each participant based only on his or her Facebook data. I want to use facial recognition models (C++ and Python), 3D modeling (Three.js, Blender), the Facebook Graph API, and IBM Watson’s Natural Language Processing and Personality Insights APIs.


Visit the website:

After much experimentation, I have an overall idea of what the user flow will look like. There will be an online web application + a physical component. Here’s the flow:

(1) User logs into web application (with Facebook Oauth)

(2) Real-time analysis of personality + generate 3D facial model

(3) The 3D object is manipulated/distorted based on the personality insights (?)

(4) At the show, users will be able to take home a physical artifact of their data portrait (thermal print of the 3D model? An .obj? A list of personality insights?)

This week, I used C++ and Python to get this library up and running, which allows you to create a 3D model of a face from a 2D image. I spent a significant amount of time trying to install the library, generate the landmark points, and run the analysis on my own images. Here’s what that process looked like:

Generating the landmark points based on a photo of my face.
Generating the isomorphic texture that will be applied to the 3D model.
The 3D mesh model that the texture is applied to.
The final output displayed in the browser using three.js.

I also got access to a few of IBM Watson’s APIs via the Python SDK. Specifically, I’m looking at the Personality Insights API, which analyses a body of text (your Facebook likes, your Facebook posts, etc). I ran the analysis on my own Facebook data, and added the information to the website I built from the JSON file that was generated.

You can see an example of what that analysis looked like on my own Facebook data:

I also decided to test my 2D to 3D model on an earlier image I had created of my composite face based on every Facebook photo I’ve been tagged in.


Thesis progress, Week 6.

Last week I presented my midterm presentation and received some great feedback and suggestions. I resonated most with what Sam said about the monetization, commodification, and production of the self that occurs on Facebook. How can I incorporate that more fully into my thesis project?

I’m still iterating on a few different ideas, but eager to find the final form that my project will take, whether it’s one fully-developed web application or several different experimental applications.

I found some visual inspiration that has fueled the project I’m working on this week.


Share Lab has been investigating ‘The Facebook Algorithmic Factory’ with the intention “to map and visualize a complex and invisible process hidden behind a black box.” The result is an exploration of four main segments of the process: Data Collection (“Immaterial Labour and Data harvesting“), Storage and Algorithmic processing (“Human Data Banks and Algorithmic Labour“), and Targeting (“Qualified lives on discount“).

I was struck by not only the depth of research into Facebook’s policies and practices but also the beautiful (static) data visualizations produced as a way to clarify the research.


These data visualizations are simple but powerful. It left me thinking: How do I make this complex web personal ? How do I communicate the ways in which this process immediately affects every Facebook user? Can I make use of the Facebook API to build a graphic that takes the user’s personal information (likes, friends, advertisements) and displays them in an interactive web-based application?

I want to make use of a lot of the good research done by Share Lab as well as my own research to build an interactive web application that helps users see how their personal data is collected, stored, and used in order to manufacture a self, or a “consumer profile.” I was struck by what Nancy said about Facebook manufacturing a self and I think this would be a good conceptual starting point.

Right now I’m starting to build the web application using the Facebook Graph API, Facebook CLI, and a D3 clustering algorithm. I’m starting by building a web application that collects information about user_likes clustered according to category.

Detourning the Web

Film trailers as told through ‘visually similar’ images

This week, we reviewed useful tools ffmpeg and imagemagick to manipulate images and videos found online. I decided to start working with the trailer to Akira Kurosawa’s 1985 film Ran (Japanese for “chaos”). Ran is a period tragedy that combines the Shakespearian tragedy King Lear with legends of the daimyō Mōri Motonari.

The trailer is filled with beautiful, carefully framed shots. I wanted to see if there was a way to automatically detect and chop up the trailer into its individual shots/scenes. It turns out there is no simple solution to that problem so I hobbled together my own bash script to do so.

Once I had chopped up the trailer, I decided to export one image from each scene for analysis. I did so by writing a script that saves the first frame from each video.

I then used selenium to programmatically upload those images into a reverse image search that was powered by an image classifier that had been trained on Wikipedia data. The image classifier had been trained by Douweo Singa and the site can be accessed here. It’s described this way: “A set of images representing the categories in Wikidata is indexed using Google’s Inception model. For each image we extract the top layer’s vector. The uploaded image is treated the same – displayed are the images that are closest.” You can read more detailed notes about training the data in Douweo’s blog post.

I ended up with hundreds of ‘visually similar’ images, organized according to the shots in the trailer. I combined them into a side-by-side comparison video, where you can see some of the images that were deemed ‘visually similar’ by the training set. Check out the full video for Kurosawa’s Ran:

I then decided to repeat the entire process for the trailer to Dario Argento’s classic horror film Suspiria:

Find my full Github repository here.