Monthly Archives: December 2023
OCD S(t)imulator and Reflections
Once I have a really good grasp on how to debug broken link sites on GitHub, the live site will be deployed. Instead, screenshots following the choose your own adventure game will be posted, along with a 1:30mn video of the game in play.
“Obsessive Compulsive S(t)imulator” draws inspiration from “Depression Quest” by Quinn, Lindsey, and Shankler, an “interactive (non)fiction about living with depression.” This game distinguishes itself by challenging conventional gaming norms. While most games are designed to be entertaining and rewarding, this game strives to depict the struggles of living with depression by making the player feel drained and frustrated.
Typically, games present obstacles as external forces that players must overcome. Successful completion of these tasks often leads to feelings of accomplishment and pride. However, this game raises the question: how would it feel to play a game that doesn’t provide such positive reinforcement? How do you cope with the concept of life as a game that offers no rewards or intrinsic value in the end? Are negative feelings a result of an individual’s interpretation of events, or the actual negative events themselves?
Games often offer clear rewards at the end, but how does one maintain the belief in life’s rewards? What if the obstacle you’re facing is yourself? A person’s tendencies, designed to bring comfort and ease, can paradoxically harm the individual. This presents a challenge to the self, whether it be in the form of addiction, depression, obsessive-compulsive disorder, or other various forms self-harm.
The interactive narration is presented with the simple objective: write a project proposal while avoiding a cleaning compulsion. However, in this short version, no completion of this objective is provided at all. It loops endlessly, forcing the user to click the ‘Back’ button at the top of their browser. The only other option provided that doesn’t involve making a ‘choice’ is the large asterisk lingering on the bottom-left of the page, which brings the user to initial landing page. Throughout the experience, the user is faced with intrusive, repetitive thoughts about questions which cannot possibly be answered, and are philosophical and frightening in nature.
I chose the concept of ‘cleaning compulsion’ to challenge the stereotypical portrayal of “OCD” as a quirky trait associated with perfection and tidiness. This portrayal is common in the media because it’s easy to visualize and understand: “If the sink is dirty, I am dirty. Cleaning the sink of external contamination rids me of personal contamination.” However, as players progress in the game, they encounter a stream of spiraling existential thoughts that seem to fracture out of control.
Texts that did not end up in the final product derived from James Gleick’s book “Chaos: Making a New Science“. Chaos theory is an “interdisciplinary area of scientific study and branch of mathematics focused on the underlying patterns and deterministic laws of dynamical systems that are highly sensitive to initial conditions, and were once thought to have completely random states of disorder and irregularities.” It covers topics like The Butterfly Effect, which is described as so by Gleick:
The Butterfly Effect acquired a technical name: sensitive dependence on initial conditions… In science as in life, it is well known that a chain of events can have a point of crisis that could magnify small changes. But chaos meant that such points were everywhere. They were pervasive.
– Gleick, 1987, pg. 23
Ultimately, the theory can be summarized with a simple theoretical question: “Does the flap of a butterfly’s wings in Brazil set off a tornado in Texas?”
Possibly not, but the thought is indeed frightening. The complete loss of control in reality looms over us. Our significance is both diminished and magnified at the same time. It raises questions: Do my actions at this moment truly have an impact, or could they unintentionally set off a chain of events that could harm others in any capacity? In ‘choose your own adventure’ games, choices are presented as clear options leading to set paths. In reality, though, choices that may seem to offer clear options and paths are affected through variables that are often unseen, inaccessible, or, unfortunately, subjective.
Another aspect of the project that didn’t end up in the final piece involved animated visualizations of fractals. As users selected different options, the background fractal zoomed in, revealing a continually repeating pattern. This illustrated the fractal’s self-similarity at varying scales, a concept described in the book as: “In the mind’s eye, a fractal is a way of seeing infinity.” Major anxieties stem from smaller ones, which in turn originate from even tinier concerns. The user gradually realizes that the fractal in the background is both repetitive and infinite. A therapist once advised me during a session to “just look at the bigger picture” while I was fixating on minor details. However, I found it impossible. There is no bigger picture. Large existential anxieties consist of minute, intricate details. Everything is intertwined, and I can’t extricate myself from this web. I suppose the most anyone can do is to keep trying.
“The ceaseless motion and incomprehensible bustle of life. Feigenbaum recalled the words of Gustav Mahler, describing a sensation that he tried to capture in the third movement of his Second Symphony. Like the motions of dancing figures in a brilliantly lit ballroom into which you look from the dark night outside and from such a distance that the music is inaudible…. Life may appear senseless to you.”
– Gleick, 1987, pg. 163
sport, illustrated: a sports zine
What a MARATHON.
I’ve been told by the site that the zine I created will be embedded at the end of the post.
I feel embedded in DHUM 780. The course was truly great — I took inspiration from everyone’s creativity and general koolness, and tried to generate a final project that did justice to what everyone brought with them to class.
The process of creating this final project was trying. I am a creative thinker in many ways, but not necessarily when it comes to design. So, I consulted a creative director on this project (my partner), and they helped me conceive of a zine that would be eye-catching, clean in design, and importantly, accessible to the user.
I did my best in this endeavor to discuss play and metagames, and apply these ideas to sport. I do think the final product is a fairly decent entry point into a topic that could use a lot more study and conversation. I want to go back and re-work some of the layout, retool some of the ideas, etc. But in general, I rock with what I produced. I’m most excited that there is a submitted product that I would feel comfortable and happy sharing with others because they might actually read/use it. I don’t even bother sharing final papers with family, friends, comrades, etc., because I love them too much to do that to them.
Is sporting play in jeopardy of being metagamed to oblivion? I think the trends are troubling, and so it makes me feel validated that I’ve chosen sport (and politics through sport) as one of my core sites of political study and struggle. I think the topic is fascinating, and I hope anyone who takes the time to read the zine comes away feeling something similar.
Jeff, if you’re reading this, I left you a surprise on pg 12 😁
Building Playing Thinking Zine (MGlover)
Map of Wunderkammer by Katie Donia
My final project is an attempt to visualize Shelley Jackson’s work of electronic fiction “my body – a Wunderkammer”. I have made a map that visualizes the structure of Wunderkammer, representing each page as a node and each hyperlink that connects two pages as an edge that connects two nodes.
Here is a link to my map via Dropbox, please take a look and enjoy!
wunderkammer map.png
Shared with Dropbox
I was inspired by the developing branch of data visualization that visualizes text analysis. In text analysis, the words of a work of literature make up the data and the words’ characteristics and relationships with each other make up the analysis. Although it is up for debate whether the analysis of text analysis actually reveals anything about the text, I felt there was an interesting analytical opportunity in the difference between normal literature and electronic fiction. With a book, the text is all there is to analyze; the structure is predetermined, one page (for the most part) always leads to the next page and only the next page. With Wunderkammer, the hyperlink structure means that each page leads to multiple other pages and multiple other pages lead to each page. In the structure of the pages, there is an extra dimension of intentional design on top of anything to do with words. The order of pages is no longer linear, but a cyclical web of possibilities.
With this in mind, my driving question was what I could uncover about Wunderkammer from analyzing the structure as a map. Each page of Wunderkammer is about a specific part of Jackson’s body and her memories associated with that part of her body. Reading through Wunderkammer, the presence of hyperlinks reminded me of the way your mind wanders during conversation, how talking about one subject reminds you of three other subjects to talk about. Accordingly, I felt that certain pages being connected must reveal that those two body parts, or memories related to those two body parts, are linked somehow in Jackson’s mind. Furthermore, pages that are linked to more often than others must be somehow more significant to Jackson’s memories.
My other driving question was how I could illustrate Wunderkammer in a new and interesting way, presenting it from an angle that cannot be seen when reading through it. I was unsure if the end product of my map would be more of an analytical tool or a pretty artifact to look at. Either way, I wanted to create my map in a style that emulates the white-on-black look of Wunderkammer and its hand drawn illustrations.
Before I drew my map, I collected the nodes and edges data by working my way though each page of Wunderkammer and transcribing which pages are reachable from that page. This gave me an adjacency list that I could easily turn into a map (in computer science we called a data structure with nodes and edges a graph, but I am using map because outside of computer science graph can mean a lot of different things). Next, I needed to layout my map. To draw on Wunderkammer’s deep connection with the human body, I arranged the 41 nodes as close as I could get to the shape of a body and with body parts as close to where they should be as possible. Drafting all the connections is hands down what took the longest. Even while collecting the data, I could not envision just how many connections I would be drawing until I started drafting them. I had to go through several rounds of drafting to reach what I felt was the best and clearest organization. I originally wanted to make a directed graph, meaning the edges have arrows indicating which direction the page navigation goes, but I quickly realized that would be an insane number of connections. For the most part you can assume that an edge on my map means you can get to either node from the other, but that is not actually correct all the time.
Ultimately, I think my map is not much of an analytical tool. There are a lot of nodes and edges on my map, I think it is a little too visually busy to expect that people will actually trace the paths to determine connections. Furthermore, I am no longer convinced that you can gleam something significant from which pages are connected to which. If anything, Wunderkammer’s web of connections show that sometimes memories operate without rhyme or reason. There is probably no specific reason why Jackson talking about her eyes should prompt her to talk about her toes, except that that is how it plays out for her. That being said, I do think there is something to say about the pages that are connected to most often. Nose and teeth are the pages that are most connected to. The nose and teeth, positioned front and center on the body for everyone to look at, are two body parts that a lot of people feel self conscious about. As most of Jackson’s memories in Wunderkammer are not positive, it makes sense to me that the most connections would lead to the body parts Jackson was the most self conscious about and thus thought about the most.
One thing I think my map captures and displays well is just how different the structure of electronic literature can be from a normal book. The surprise of seeing how complex Wunderkammer’s map of nodes and edges is really hammers home the possibilities that electronic literature offers that traditional literature cannot. I am also very happy with the visual aspects of my map and the association with the human body that my map and Wunderkammer share. When you navigate Wunderkammer, you deconstruct the body by jumping from body part to body part without discretion. My map rebuilds that deconstructed body. This is why I also decided to add my own drawings of each body part on the map. Like Wunderkammer’s title page, you can see the strange patchwork totality of the body (the body of the text and Jackson’s body) in my map. The long lines that connect nodes all across the body are inherently reminiscent of the nervous system or the circulatory system. This text in this form, far more than most traditional literature, was begging for a body.
I think I have ended up with my visualization the same place I am at with text analysis in general. It makes for pretty visualizations, it presents a work from a new angle, and it offers the ability to analyze (either words or connections) even if that analysis does not necessarily reveal things about the work.
Reflecting on Myopic Appliance
My end of semester project is a proof of concept for a tool called myopic appliance. Myopic appliance takes it’s inspiration from and is a response to Voyant Tools. This web application takes in plain text, performs natural language processing (NLP), and produces quantified data visualizations and tables for the input text. In the context of the humanities, this type of analysis is called distant reading. The question explored in creating myopic appliance is: can computational techniques like NLP be used to conduct close reading, a method used in literary study where observing word choice, syntax, and sentence sequencing as it interacts with the content to inform the meaning of a written passage.
I used the phrase “proof of concept” above purposefully, rather than “prototype.” The coding completed over the past three weeks demonstrates the feasibility of applying NLP and web styling in aid of close reading. What was built in this time period can be used on any plain text, albeit with a threshold of tech knowhow as a barrier to entry. The steps for that are as follows:
- Clone the repo
git clone [email protected]:klp/myoptic_appliances.git - Create one or many
.txtfiles and save it to thesource_txtfolder in the project - Install the required python packages
pip install -r requirements.txteither at the system or in a virtual environment (i.e.python -m venvname_of_virtualenv) - Open the
process_text.pyfile and update thefile_pathslist with the files to process (e.g."source_txt/example.txt") - Run
process_text.pywith a python interpreter, which generated a JSON file inprocessed_txtthat maps all NLP operations - Open the
script.jsand update jsonPaths variable with the process_txt path(s) to files you want to ingest into the tool (e.g"processed_txt/example.json") - Start up a web server to host the
index.htmlpage — at the CUNY Graduate Center, students are fond of Microsoft’s Visual Studio Code, and use the Live Server extension
This is far from a prototype, which would represent a step towards a final product. But it is possible to experiment with different source texts following this simple, if not easy, process.
As is often the case with digital projects, the final output deviates from the initial proposal. I moved away from a deformance based meshing of two texts published the same year in different countries with similar culture impacts (Stowe’s Uncle Tom’s Cabin and Turgenev’s A Sportsman’s Sketches). Two factors when into generating this deviation. First, before working on the web presentation layer, I cobbled together a brittle command line utility to experiment with combining sentences and swapping parts of speech between the two texts, and found the results wanting. I opted to use three chapters from Second, after receiving feedback in multiple class sessions, the consensus was that this project appears to veer into pedagogical territory. Because the first functionality focused on parts of speech emphasis and de-emphasis, it seemed a natural fit to divert from the deformance angle to a more straightforward and predetermined method of manipulating text.
Challenges, I’ve had a few, but not too few to mention. After a significant break from using popular Python NLP libraries like Natural Language Toolkit (nltk) and even the industrial strength spaCy, I forgot how much the output requires finessing. To avoid context switching and frankly strength a particular skill, perhaps advisedly, I moved some of that finesse to the clients side JavaScript. The concern with that decision comes from previous experience trying to process text in browser, and the potential for poor performance (see Our Mutual Language Processor). The fear of performance issues lead me to the type writer like display of text across the screen in myopic appliance. I stuck with that effect even when no performance issues emerged because it felt in keeping with the close reading ethos of the project.
In any event, the in-browser text process resembled Whac-A-Mole at times. At first, all punctuation was treated as words, creating all sorts of spacing. After six hours spent trying to convert text between underscore into italicized words, I’ve given up for this particular iteration. Dashes (i.e. ‘-‘) weren’t labeled as punctuation, and required their own special handling that sometimes works predictably.
Another challenge for me: my still nascent frontend web skills like CSS, Javascript and UI design. Most of my programming experience includes backend APIs, micro services, and data processing. My standards are high enough in the technical realm that I think that’ll translate into the world of frontend engineering. Not entirely so. While the digital humanities mentality welcomes projects that have some rough edges, unintentional stylistic choices that verge from what’s recognizable on the internet risk dismissal from the interactor. Getting margin, padding, flexbox concepts to work exactly as I want them still presents a challenge. Intuiting UI/UX is also not a real thing, though I think building a crumby UI and refining it feels faster/easier than sweating the interaction details ahead of development. I also split out the UI into a logical set of steps, which introduced a number bugs. For instance, there was a state in which you can both emphasis and de-emphasis parts of speech.
When looking at the iteration completed for this class, relating the output to the course material can be a stretch. I never quite got to the exploration of alea or mimic, though Ilinx could sneak into the idea of collecting parts of speech when related to the original text. I liken the play at work here as more similar to playing a piece of music.
One neat idea I had during the development process was using Github releases. This allowed me to bundle up versions of my application into zip files. I also included releases available on the Github Pages site, linked below:
- https://klp.github.io/myoptic_appliances/versions/v0.2.0/
- https://klp.github.io/myoptic_appliances/versions/v0.3.0/
- https://klp.github.io/myoptic_appliances/versions/v0.3.1/
- https://klp.github.io/myoptic_appliances/versions/v0.4.0/
- https://klp.github.io/myoptic_appliances/versions/v0.5.0/
- https://klp.github.io/myoptic_appliances/versions/v0.5.1/
Finally, if we were pushing toward a v1 of this project, uploading your own text would have to be the bare minimum, I would wager, as it provides the most value to someone using this tool. Expecting most users to go through the process above to get going on a text of their own is not realistic in my scenarios. My guess is that the distance between v0.5 and v1.0 would be much longer than v0 to now.
Final Project Reflection
Another Mark on the Wall (AMW) is a digital remediation based on The Mark on the Wall, written by Virginia Woolf in 1917. In the original short story, the narrator becomes fixated on a black mark on the wall which sparks a series of other thoughts. While these thoughts are entering and leaving the narrator’s mind, the focus periodically returns to the mark on the wall until the narrator finally realizes the mark on the wall is a snail. The intent of this digital version of the story is to experiment with the stream-of-consciousness narrative style, collaging the text to provide pathways for the interactor, to borrow Montfort’s terms for the user who reads, writes and plays interactive fiction. AMW falls somewhere between the interactive and hypertext fiction genres. While the interactor does not write or type responses as in interactive fiction, they do choose pathways as in hypertext fiction. The story is fixed with a beginning and an end but the interactor is generating their own experience of reaching the end. AMW also goes beyond hyperlinked actions to provide the interactor with ways to “play” with the text–make it move, disappear, enlarge, focus, etc.
To make the text “playful”, I used coding methods and typography to visually represent thoughts entering and leaving. To counteract the flat, two-dimensional aspects of text games and electronic literature, the narrator’s thoughts move along the z-axis (the axis that is perpendicular to the x-axis and the y-axis). The opening page hints at this–the first paragraph is presented while you scroll and then the black mark enlarges, taking you inside the story.

The “marks” page
The “marks” page contains all the times the narrator’s focus returns to the mark on the wall. Hovering over the sentences makes these thoughts come toward you. Hovering away, pushes them to the background. Clicking on the black mark brings you to a page of thoughts. The full text of the story was divided into seven pages, each with a different motion effect. Some pages (2, 3, 4, 7) are interactive where the text thoughts perform based on your mouse movements. On other pages (1, 5, 6), the text performs without any interference. You may choose to read the full thoughts in order or not read them at all, perhaps catching words on occasion. Each page contains motions that simulate how thoughts enter and leave our minds–they uncontrollably come from all directions at various speeds, they might invoke anxiety or calm, depending on your state of mind. In AMW, the typography is the graphical element that simulates the three-dimensional. Instead of literally showing a room, with walls, fireplace, etc., I chose to focus on the mind, thinking abstractly what this might look like.
Interrupting the thoughts on each page, a black mark and a snail randomly move across the screen. At any point, you can click on the black mark to return to the “marks” page and navigate to another set of thoughts. Clicking on the snail brings you to the end of the story when the narrator realizes the mark on the wall was simply a snail.
Inspired by the computational poetry and literary art published in Taper, you are encouraged to view the source code (⌘-Option-U or Ctrl+U) to read brief instructions for clarity. The source code also contains the full text itself, offering another way to experience this story. The contrasts between the written story of the code, the written story of the original codex, and the digital story reveal different types of persuasive and expressive practices at work, as Bogost outlines in his analysis of procedural rhetoric. Other points of departure which informed this project are Hayles’ mention of perspective and the z-axis in IF, Murray’s description of kaleidoscopic narratives, The River Poem’s transformation of an existing literary object, and John Cayley’s study of the materiality of language in Windsound.*
*To be honest, all of the readings and projects from this semester have been inspiring. So, thank you Jeff for an enlightening class! And thanks to everyone in the class for contributing to our magic circle!
Gorgar Reflects
I admit: one of my first notes to myself from the first day of class was “How can I make pinball my final project?” It felt a bit unserious at the time, but I’m so glad I gave myself that as one of my lenses for assess the digital projects in the syllabus each week. When we learned about The River Poem, I wondered if I could write text that would flow across the page to mimic the experience of playing pinball. I wasn’t sure I had the coding chops for that kind of undertaking. Then the image maps of The Pines at Walden Pond by Deena Larsen and Wunderkammer by Shelley Jackson came up in back to back weeks, the coding for which felt much more achievable to me.
An image map with associated text, I could do that. But which table would I pick? I knew I wanted to pick a table that I could spend a lot of time playing, entirely in the pursuit of this project of course! And I knew I wanted to incorporate the sound from the table. Most pinball I play is in a loud bar, so there’s too much background noise to listen to the table, and it can get expensive pretty quickly. I’m very fortunate because the captain of my pinball team has a collection of tables in his basement. And as luck would have it, he had the perfect table to inspire me: Gorgar, the first pinball table with a speech module.
The premise of the game is relatively simple: you are a barbarian warrior who must defeat the big and simply evil Gorgar, a giant red demon who has taken your woman from you and has her trapped in his volcanic lair that is apparently filled with snakes. Gorgar only speaks seven words (Gorgar, speaks, beat, you, me, hurt, got), which are combined into eight possible phrases. They are simple, for example, “Me hurt,” but does that mean Gorgar is simple? How might he communicate if he had a full and robust language toolkit to aid him?
Inspired by my love of erasure and found poetry, and the work by Kenneth Goldsmith of repurposing of existing text to write poetry, I wanted to incorporate text from the Gorgar Instruction Booklet (the owner’s manual and official rules of play). I went back and forth on how to incorporate this. Could I use just the text from the manual to give Gorgar more speech? Or would I use it as a jumping off point and mix it in with my original writing?
Jeff, your feedback on trying to incorporate procedural rhetoric to think about the prison house of language was immensely helpful, and I think it pushed my project from some fun little thought experiment into something I’m quite proud of. It’s very common on pinball tables for a repeated shot to increase in value. On the Gorgar table specifically, there are many shots that increase in value when you hit them as a set of three: the G-O-R and G-A-R, each a set of three drop targets; the three A-B-C rollover lanes at the top of the playfield; the increasing values of the eject scoop on the left; and the 2-3-4 ADV targets across the playfield on the right. So the procedure I use mimics hitting a shot on the table in triplicate.
As Gorgar has eight phrases, I used those as the starting point. I tried to locate those phrases on my image map to roughly where the shot is that triggers the speech mechanism, or else where on the table thematically or visually it made the most sense to me. When you click on a silver circle (representing the silver pinball), you see and hear what Gorgar says. You could just keep clicking around and hitting new shots from the image map, or there’s a button below the text giving you the option to hit the same shot again. When you hit the shot a second time, you have the found poems I cut and pasted together from the instruction manual. Gorgar has more speech, but it’s still limited to the speech used by his creators. Another button appears, and you can hit the same shot a third time, and then you read the speech that I found myself wanting to give Gorgar. I used a different font for each of these to help visually reinforce the change that was taking place in Gorgar’s speech. In this way, I think I’ve combined a bit of Ian Bogost’s verbal, visual, and procedural rhetoric. The sound effects are mostly for fun; I wanted you to hear what Gorgar sounds like, as well as try and replicate the beating heart background sound that speeds up the longer you play. I do think the increasing pace of the heartbeat lends itself to the urgency with which I want to expand Gorgar’s speech, so perhaps there is aural rhetoric at play too.
In terms of the inspiration for my own writing, I turned to the artwork on the table to guide me. Gorgar can speak, and it’s assumed you are the male warrior, but who is this plot device of a female character? Only Gorgar has speech baked into the table, and you as the player could presumably give the barbarian speech, which leaves her utterly silent and sidelined. I don’t even think you ever see her face except in profile (she’s seemingly lifeless in the main design on the back glass, and on the playfield she’s standing more or less in profile view.

The design choice to put an image of the barbarian on the drop targets that spell Gorgar’s name was also incredibly fascinated to me and seemed to inextricably tie the two of them together.

Also, there are many different scenes from the battle depicted across the table. Are they all from this one fight? There are demonic and human skeletal remains scattered across the art; are Gorgar and the barbarian continuing a battle started by their ancestors? Or are all possible timelines from their fight being shown a top one another?

Lastly, as much as you are trying to slow the game down and aim for certain shots and create a sense of order, the pinball table wants you to go fast and craves chaos. I tried to replicate this delirious, perhaps ilinx-inducing, experience through the many inter-hyperlinked passages for every shot.
I hope you enjoy playing Gorgar Speaks: A Literary Pinball Adventure! as much as I enjoyed creating it.
Note: The main playfield image used for the image map was provided by Robert Gonyo, my team captain, without whom this project would not have been possible. The rest of the images and audio files were captured by me.

