A chronology of keylogging my own data exhaust

tywen kelly
7 min readFeb 1, 2021
“Keyscape, December to January” (2021)

This work was an exploration of my personal “data exhaust.”

There is a magic in using a computer. It does not just take instructions; it is not just an Analytical Machine that executes instructions given to it. It feels alive, like it listens and responds and learns. It appears to have the ability to make original, inspired, and creative decisions. Especially with the diverse range ways in which developers have constructed experiences in it, the reality that the computer is crunching a series of bits is all but hidden behind an immersive illusion. The verisimilitude of a computer goes beyond it’s ability to render photorealistic things, or to connect us to real people on the internet, or even to exhibit data relayed by real-world metrics. The verisimilitude is in the magic of simply using the computer: the instant feedback. It creates a magic loop between person and the computer that connects one to the components in a way that denatures the atomic materiality of the world and instead erects a virtual imagination-space in its place.

How Keyscape was made.

But it is nevertheless important to understand that this magic is mediated. One of the basic layers of mediation exists at the plane of hardware interfaces. Interfacing with a computer requires peripherals like mice, screens, and keyboards. I spend countless hours in my room, on the computer (the extent to which has only been exacerbated under lockdown). I have always been aware by the amount of time I spend mediated by my peripherals. I can feel it in my body. Parts of my wrist are tougher, thickened with flesh, puffed up by hours of skating along the top of a table to guide the mouse to a precise point. My back and neck of course suffer the brunt of having to warp and petrify myself, very still, in front of the computer screen so I can make out clear images. Sometimes I am away from the computer and my thumb may randomly gets a cramp from not being in the position to hit the spacebar.

These keys were clicked in abundance. My FPS gaming habit seems to have weighed the pool heavily to one side, leaving one side of the keyspace dense with keycap highrises. This is also a good image that shows the “data exhaust” of the 3D printer, expanded on later on in this write-up.

It only recently occurred to me to try and visualize what exactly it is that causes such contortions on my body. What is this invisible magic that is bending me in such weird, painful ways? This question came around the same time as my discovery of the idea of “data exhaust”, which is the data a user may generate data which is not apparently useful to them (or data companies). Data exhaust typically includes traces of software usage, like cookies, caches, and log files. This idea struck a nerve with me, as I saw an immediate metaphorical connection to the mediation of hardware peripherals. I looked at my keyboard and saw that certain keys on my keyboard were more worn down than others, and that dandruff and crumbs had fallen into the cracks between the Shift and Control keycaps. My mouse left click had a distinct shininess on the black plastic where I must have tapped it hundreds of thousands of times. Even my dusty monitor had parts of the screen which had a finger imprints where I had clearly grabbed to adjust the view angle. Were these not examples of data exhaust too?

Of course to visualize such data exhaust I could take an image of these erosions. But the deterioration of these plastic bits felt too on-the-nose, too defeatist, to image. I saw the beauty of the data exhaust and wanted to show that data exhaust was not a thing of entropy but something to be harnessed to give oneself more meaning with the computer. So the goal then was to create an additive work, to lead by demonstration and use data exhaust for creation rather than wallow in the ways that it simply leads to a destruction of a magical relationship to computers (which is a potential for data exhaust when it is in the hands of pure-profit-seeking organizations). The vision then came very plainly, to create a sort of keyboard landscape, whose height-map data is generated by the usage of each of the keys on my keyboard. The taller points were keys that I used more regularly. What more simplistic way was there to at once celebrate data exhaust and frame it in such a way that can be easily understood and inspire in the viewers a new way of understanding the qualities of the peripherals they use that invisibly and unconsciously mediate their computer experience!

Some keys were used relatively infrequently.

The process of making this piece was two-fold: track and print. After consulting with some tech-savvy friends, I discovered the best way to track my key usage was by creating my own custom Python script which could track and log my key usage in the exact manner I needed to later map it out. I found countless YouTube tutorials online that helped me and in no time I had a script running in the background tracking my keys. Interestingly, the Windows operating system detected that I had a keylogger installed and promptly deleted it. The foresight of the engineers at Microsoft must have recognized this common ploy of a keylogger program which nefarious individuals often use to steal their victim’s passwords. It reminded me of the omnipresent potential of exploiting data exhaust, in the wrong hands. I had to explicitly tell Windows to not delete the Python file, as I knew I was tracking myself — an unusual act, this self-quantifying.

I let the script run for a month. It tracked just about half a million key strokes. At this point I ran it through a sorting script which organized it into the most used. With this spreadsheet list of keys I began to manually adjust a 3D STL file, kindly open-sourced by someone I do not know online, so that it could fit my particular keyboard, and so that each key was set to the corresponding height with respect to its usage. The process from here was largely automated, intentionally. I used a 3D printer to get precise heights of the keys, as I wanted the keyboard landscape to be an accurate reflection of my doings in the metaverse. The 3D printer also proved to be a meta-reflection of the theme of data exhaust. The printer is an imperfect machine and leaves its own data-residues in the print. The layers of FDM printing show how the keycap files were sliced and calculated in custom software, traces of “stringing” were evidence of an inefficient melting of the plastic filament deposited layer-by-layer, and aberrations of “ghosting” along the sides of the plastic models were records of when the 3D printer was unintentionally shaken leaving hardened ripples in the otherwise atom-perfect prints (sometimes this is cause by someone walking by, or if the printer is not on a steady surface, like a shaky table). These anomalies were themselves their own data exhaust, a byproduct of a seemingly pure automated process, which I really loved, and decided not to blow away with 200 grit sandpaper.

Ultimately, with the work complete, I could take a long look at it. It works as an acknowledgement of my being in digital space, my veritable footprints in the digital realm. It’s also a object that shows my efforts in trying to be more intentional with the use of media tools, in a greater context of my attempt to become more media literate, namely by making these objects as a thing to reflect my behavior back to me, in hopes that I can glean something meaningful from them. It is also an object that is unique to any person at a precise time and context. What would someone else’s keyboard landscape look like? They might not have a heavy weight on the WASD keys as I do, I imagine.

The work is also a reminder of the dance between computer and me. It reminds me that not only do I see the computer but the computer also sees me. As with any lively environment — which a computer certainly is — there is always a two way street. Liveliness innately means there is a back and forth. By default my mode of being in the computer environment is a one way street. I tell it to run programs, what content to churn, what memory to purge, and when to render images in the background. To understand the entire media ecosystem as system, I think it best to understand the minutiae of the ecology — the organisms, the niches, the habitats — within it. Through this lens it is possible to truly capture the magic of the machine, and swap the default and opt into a mode where you can see and understand the mediation of the computer and turn it into something additive.

The keyscape skyline. An additive sublime.