la lumière danse


2025-present
link to webpagepoem & 12 smart phone videos (color, silent), looped
desktop browser recommended for viewing

My cat Emi (my baby, the love of my life) died in 2024. I often process things through creating, but for a while, the grief was too heavy to even try. Some days it still is, but in late 2025, I felt solid enough to start.

la lumière danse (French for “the light is dancing”) is an unfinished gallery of short videos, most of which were taken in the home Emi and I shared for her last 2 years. She loved sunbathing and napping on my bed in the late afternoon. I miss her like hell.

When you visit the page, the poem is subtle and hard to read; it becomes more clear if you scroll down, bringing it into the light. It reads: “The meaning is too painful to make. I look for it in little light fragments dancing across my walls, in empty sun spots and window shapes.”




in another life


2023-present
link to webpageinteractive digital poem created with p5.js
audio credit: memory storage by ghost orchard
desktop browser recommended for playing

How would things be different if they were different? In playing through in another life, I invite you to dwell on this question with me. Creating this was, in part, a declaration of forgiveness towards myself for things I wish I’d said or done. It also serves as a reminder to let myself wonder — I haven’t always felt like I deserve to.

Most components of this poem are randomly generated. Each of the main 3 “i,” “you,” and “we” lines is randomly chosen from lists of phrases I wrote, and there are currently over 68,000 possible unique combinations. The background color is generated based on randomly chosen R, G, and B values within a set range. Each time you click “try again,” a new iteration of “another life” appears.




i/n/t/i/m/a/c/y


2022
link to webpageinteractive digital poem created with p5.js
desktop browser recommended for playing

I made i/n/t/i/m/a/c/y for a younger version of myself. At the time, I was frantically attempting to reconstruct reality in the aftermath of an abusive dynamic. I processed many of my feelings in isolation, fearing the cruelty and invalidation victims of abuse are frequently subjected to.

I want her to know that it’s not her fault, and I understand now. She ran to a wolf out of survival; she knew his teeth were sharp, but he promised to keep her warm. For her, this was safer than staying where she was. If I rush to dismiss her, I only emulate the people who drove her to flee in the first place.

i/n/t/i/m/a/c/y has several hidden elements — when playing it through, make sure you move your mouse around to get the full story.




f.loop


2018
link to webpagedigital poem created with p5.js
desktop browser recommended for viewing

I made f.loop for a digital literature assignment in college. Playing with organic and inorganic, nature and infrastructure, I imagined how my parents’ town would look & sound if every person disappeared. How many alarm clocks would beep until they ran out of battery, one by one?  

The set-up is relatively simple: 4 columns, each randomly generating text from a list of possible words or phrases I wrote. After 15 seconds, the poem resets; from that point, it generates indefinitely until you close the page. The words in each column will eventually pile up to form 4 almost-rectangles. No more meaning — just shapes.




suburbia


2018
link to webpageinteractive digital poem created with Twine
desktop browser recommended for playing

Another digital literature assignment, this time using Twine to create an interactive story based on some childhood memories. Some years, it felt like maybe summer could just last forever, with each day rolling into the next (and so on). Those summers did end eventually, of course, but I wanted to capture that feeling in this poem. The end of each “day” brings you back to the start of a new one.  




s o l u s


2017
link to webpagevideo game created with p5.js
sprites drawn with Piskel
desktop browser recommended for playing

I was introduced to p5.js in college, during one of my favorite courses — 8 credits, half film/half computer science. We studied video games as a medium for storytelling and learned to create our own.  s o l u s was my first full project created with p5.js, an open-source JavaScript library. I drew every frame of each sprite by hand using Piskel.

If you want to cheat while playing the game, hold your mouse down in the top left corner and move it from side to side :)