Behind the Scenes: 30 Minutes with a Stranger
In my latest piece, I delve into 1,700 conversations had between strangers. But this post is about art and AI.
My latest piece, 30 Minutes with a Stranger, might seem familiar if you’ve been reading my work. I see this piece as a sequel to my 2023 piece, 24 Hours in an Invisible Epidemic, which is about the rise in loneliness.
The subject matter and the UI are similar: In Invisible Epidemic, the reader scrolls through 24 hours of a day to see who is socially isolated. In my latest piece, the reader scrolls through 30 minutes of a conversation to see how people interact with someone they’ve never met. Furthermore, I borrowed a format from my previous piece, The Middle Ages, where I have quote bubbles popping up from the datapoints in the visualization. I love reminding readers that data visualizations represent real people.
So it’s not particularly interesting to write about the process behind this piece. If that’s what you want, I recommend reading two other behind the scenes posts:
In this post, I want to talk about art and AI. The emergence of powerful consumer-facing AI services has triggered a crisis among artists, creators, and journalists. I’ve frequently heard people reply by saying: “Well, AI can’t do [this unique thing humans do].” Sometimes they’re referring to a craft. Other times, it’s a writing style or an artistic flourish or a narrative technique. But whatever that *unique thing* is, it’s a response to the sacred nature of the art they produce—something that comes out of their human experiences, their processing of their experiences, and their honing of a craft to externalize those ideas. While AI can’t experience or process experiences like humans, it does mimic—and even evolve—the externalization of these ideas. So sometimes it feels like we’re left defending a smaller and smaller island.
Meanwhile, I use AI as a coding assistant. It’s become an invaluable tool. I often know what I want to make, and coding is a way to tell that to a computer. I worked in newsrooms, so I got really fast at coding interactive stories. But when I’m trying something new, that can take a long time—even if I know exactly what I want to do. Every computer programming language, framework, or even library introduces a specific way of thinking and it shapes the work. I treat this process like a painter might treat the viscosity of a certain paint pigment; our tools and our materials shape the way we interact with our medium, and that’s OK. In this context, I see AI as another translation layer between me and the computer. I think this can be a positive development; it can lower the barrier to entry for anything that requires programming, and perhaps allow more people to use code as a material to create art. If anything, I try to be aware of how AI is shaping what I’m making because I don’t want it to become an extension of myself.
Now, my overall stance on generative AI is that it’s an incredibly powerful tool that is here to stay and has great potential to improve our lives, both materially and intellectually. But the most powerful consumer-facing models are in the hands of a few powerful companies. It’s exacerbating the underlying power imbalances that already exist, and become a multiplier of some of the worst attributes about our economy. So the fact the U.S. government might be actively pushing against AI regulation—for the sake of “growth”—is maddening. They seem to see the U.S. economy as a video game where the goal is to get the high score. Meanwhile, employers are viewing AI as a tool to replace humans, rather than augment what humans are capable of. It seems like so many junctures, we’re making the wrong design and policy decisions with AI.
But because I don’t have vehemently anti-AI sentiment, I’ve found myself defending AI in debates with people who create art. They are rightfully worried that AI is treading on what they consider sacred territory. They argue that it’s garbage in and garbage out. They argue that it doesn’t have human experiences. They argue it doesn’t know what is true or not. And all of this is true.
In these debates, however, I’m alarmed that we talk about AI as something more than a bit-churning machine that can interpret information and return coherent information, in way a human understands. But of course it’s not a human, and of course it can’t be human.
That said, I’m alarmed at how we’re making design decisions to create the illusion that it’s more what it actually is—and users are treating it as more than it is with this “high score” mentality. So I wanted to play with that concept in designing this story.
This story is told with ASCII art. It’s text characters that are organized in a way to look like a drawing. It works because there are typefaces that are fixed-width, meaning each character takes up the same horizontal space. For example, in the text below, I repeat different letters 8 times. If you were to write this out, it would take up different amounts of horizontal space. But since this is a monospace typeface, it takes up the same amount of space:
XXXXXXXXX
iiiiiiiii
ooooooooo
lllllllll
For example, here’s one of the faces in my story (though I decreased the line height in my piece):
▰▰▰▰
▰▰▰▰▰▰
▰▰▰▰ ▰▰
▰▰▰ ▰
▰▰ ▰ ▰▰
| △ △▰
| ▮ |
▰ |
▰ ▰▰ ▮
▰▰□ ▰
▰▰▰▰□□□ ▰▰▰
▰▰▰▰▰□□□□□□▰▰
▰▰▰▰▰□□□□□□□□▰▰
▰▰▰=▰□□□□□□□□□▰
▰▰▰▰▰□□□□□□□□□▰
▰▰▰▰▰□□□□□□□□□▰
Instead of just keeping them static, I made several frames of each face—and a smiling expression for some of them—so they can be animated. In order to do this, I made a quick and dirty tool that helps me draw ASCII art:
I used Claude to help me make this tool. I found a few ASCII art tools online, but they didn’t do exactly what I wanted. So I made a rough version of my own and then used Claude to add some features for me, like right-click to delete and left-click to draw.
There are about 20 different animated faces—each with 3 to 6 frames of animation. So I manually made about 100 frames of ASCII art for this piece. Yes, it was annoying. Yes, it was worth it.
I used ASCII art because I wanted to debunk an illusion. Typically when I make visual stories for the browser, I think about my raw materials as pixels. Sure, the code helps me get the pixels where I want. But the pixels themselves shoot light into the reader’s eye and that gets translated into meaning.
The result is often an illusion—our brains can’t help but see pixels in a certain shape and immediate think of it as the sum of its parts.
For this piece, I wanted to undermine this illusion. I wanted you to see that these aren’t pixels. They are just text characters made to look like a person’s face.
My senior year of undergrad, I took a painting class with an artist named Bertram Katz. We’d sit around the classroom and paint things, while Katz urged us to take in what we see, “convert” it in our minds, and then externalize it with paint. When he came to my table, he’d tell me I needed to stop fighting the paint. At the time, I had no idea what Katz was talking about.
But after gaining more experience with various mediums, I think I understand what Katz was telling me: Most human expression will be mediated by something—language, paint, light, code. In short, we interact with the world to express ourselves. And we shouldn’t try to hide that; we should accentuate it!
So I wanted to use ASCII art to show the reader what’s under the hood—akin to purposefully paint strokes on a realistic still-life image.
But I also wanted to use ASCII art because it really messes with what large language models (LLMs) currently do. Here’s a fantastic piece by Jaemin Han that explains why LLMs suck at ASCII art (at least right now):
While regular text maintains its semantic meaning when broken into tokens, ASCII art loses its spatial relationships — basically the thing that gives it meaning. LLMs are fundamentally trained to process and generate natural language. While we don’t have detailed information about the exact composition of their training data, their architecture mean they’re optimized for processing sequential text rather than spatial arrangements of characters. This architectural focus on sequential processing contributes to what we might call “spatial blindness” — the model’s difficulty in interpreting 2D information that’s encoded in a 1D format.
I actually tried using Claude to make ASCII art to see how it does. But it was quite bad. Here’s the best I got after a few tries:
All I could think was: If I had asked GenAI tools to make an image, not ASCII art, it would have returned an image that are far more aesthetically pleasing. (I’ve been blown away by the some AI-generated images that makes textures look so real.) But GenAI, at the moment, can’t do this! Yet!
I don’t have some big takeaway about art and AI, but I am worried. It’s a hugely disruptive force for people who have honed a craft. It is undermining our ability to make money off of art. It is changing the aesthetics of human communication. It is undermining the precision of language. It is coming at a huge environmental cost. And, as an educator, I’m worried it will undermine the critical thinking that goes into the creation of art.
The worst parts of this are that we don’t know if a human actually experienced something, processed that experience and created something in response—or if a machine dreamt it up from its training data. Again, regulations around GenAI would really help!
This piece is an attempt to lean into the other direction. After all, it’s a story about how humans interact, and I wanted it to be clear that it is me—Alvin Chang, the human—wants to communicate something to you, another human. And even though there are pixels and tools that mediate our interaction, I want to show you breadcrumbs that the constraints of a human and his tools made this thing.
Both stories are beautiful, Alvin. You're pushing the boundaries of storytelling. I love how you used AI to create something that AI can not do. It makes me feel hopeful.