In February and March, I did a six-week programming retreat at
Recurse Center. The way I've described this to people is that it's like an
artist residency, but for coding (although you can also make
code-based art!) Recurse Center, a.k.a. RC, has a revolving
roster of participants who join a "batch" for six or
twelve weeks. Every six weeks, some people start a batch,
others finish one, and yet others continue on for another six
weeks. One can participate in-person in Downtown Brooklyn, or
remotely — or any combination of the two. (I did a combination
so I could spend some time at home in New Haven, and some
staying with friends in NYC).
Inspired by the open-ended learning methods of
Unschooling, there is no formal curriculum. Instead, participants
self-organize and pursue personal goals, while being
encouraged to collaborate and discuss their projects. Everyone
who joins a batch already has some programming experience, so
it's up to you how you want to spend your time: you might
focus on developing new skills or strengthening existing ones,
or build a project that is useful or whimsical. I had
interesting conversations every day with very excited and
thoughtful people, which I think is one of the best ways to
learn.
During my batch, I worked on two main projects:
The Lab - a new, text-adventure themed
section of my website that houses various web-based
experiments. I built it with Eleventy (the same static site
generator I used to make this site!), and it includes an
assortment of animations and interactive elements made with
P5.js, Three.js, and fragment shaders.
This project was really an excuse to just experiment and play
with web-based media and see what happened. I included some
elements that I created in pair programming sessions. I'm
interested in playing around more with web-based animations
and the <canvas> element; as experiment
more in the future, I'll add more "rooms."
Subtle Cards - a web app for pulling virtual
tarot card spreads. It's a full-stack app with a React
frontend (deployed on Netlify), Tailwind CSS, a Flask API
(deployed on Heroku), and Supabase as the database. I
batch-edited the tarot card images with
Imagemagick
(one of my favorite tools), created card animations with
framer-motion, and used
Random.org's true-random number API to randomize the tarot card pulls.
Each spread of cards has a unique URL. There are also dynamic
moon-phase icons (using
SunCalc).
Building Subtle Cards was the largest project of my
batch. I love building static websites, but I wanted to push
myself to build a more dynamic web app with modern standard
frontend tools. It took me longer than expected (I thought I
could finish it in one week), but I was proud of the result,
and happy that I finished in time to share the project in the
final presentations session of my batch. I'm
particularly proud of the way the cards animate on screen,
simulating that moment of pause in a real tarot card pull. For
page transitions, I used the new browser standard
view transition API, which is not yet implemented in Firefox, but provides a
nice progressive enhancement for Chrome and Safari.
I learned a lot while working on this, and I am now very ready
to move on to new projects (and to try other frameworks
besides React), but there are two things I'd like to add at
some point: an animation for the background of the splash
page, and the ability to pull cards from additional tarot
decks. (I deliberately built the backend with this in mind,
and I plan to add some decks of my own design when they are
finished!)
Of course, working on my own projects was only one aspect of
my Recurse Center experience. I also participated in lots of
group events, coffee chats, pairing sessions, and general
banter. I joked with someone that RC is basically a bunch of
people who enjoy explaining things to each other.
Since I had my video equipment with me in the city (to play
the shows I wrote about in my last post!) during my final week
of batch, I brought it in to show it to people during Demo
Palooza, an event where people set up interactive projects to
show each other.
Conveniently, there was already a CRT monitor in RC's retro
computing corner, so I brought in my modular synth and my
custom-mapped controller for Resolume, and spent a fun
afternoon demo-ing video synthesis as people rotated through
my station. After over an hour of this, I finally also got the
chance to walk around and check out everyone else's projects.
(There were far too many to list here, but seeing and
discussing what other people were working on was one of the
most fascinating and inspiring aspects of the retreat.)
(Note: the retro computers visible in the background were not
part of my setup — though they certainly contributed to the
vibe.)
As I mentioned, many events at RC are organized by the
participants. During the first weeks of my batch, I frequently
heard people mention their use of AI coding tools, but I
noticed a lack of critical conversation around how to engage
with these tools in a thoughtful and ethical way. The internet
is brimming with articles and discourse on the topic, but much
of it is almost pure fluff, serving either to overhype the
technologies, or to proclaim them as the source of our doom as
a species (another side of the same coin). Because of my
irritation with the popular conversation around AI, I had
previously avoided the topic, but during my batch, I felt it
was time to start engaging with it in a more deliberate way.
This led me to organize a weekly meeting called
Critical AI Discussion Group.
These meetings provided a space to voice our concerns, share
anecdotes and experiences related to AI (in the workplace,
classroom, etc.), and discuss practical matters — such as the
tech debt accrued by using large swaths of generated code —
and philosophical matters — such as the nature of creativity
and authorship of one's own work. I facilitated four meetings
before stepping down at the end of my batch. However, other
members of RC have jumped in to continue the meetings, with a
rotating facilitator each week, so I've continued to attend as
an alum.
Overall, I had an amazing time during my six weeks at Recurse
Center. I think their open-ended approach to learning was
perfect for me, since I'm very self-motivated. I really did
feel like I became a "dramatically better
programmer," which is one of RC's stated goals. Now that
I've built my first full-stack web app from scratch, I feel
much more confident as a developer. I feel empowered to
continue programming, to really commit to it as my main
profession, and to continue building interesting personal
projects. And last but not least, I met a lot of cool,
curious, creative people. I look forward to continuing to
participate in the RC alumni community, and hopefully doing
another batch at some point when I have time.
The first one was on March 23 at The Living Gallery in
Brooklyn, where I performed visuals in an A/V collaboration
with
Lee Tusman. The show was organized by Proto, a.k.a.
Imaginary Prisons
from Worcester, MA (and a friend from the fediverse!) All the
sets besides ours were by Massachusetts-based
experimental/noise folks, and they were a lot of fun. (My
favorite moment was when Proto played the spoons.)
The second show I played was on March 31 at Union Docs in
Ridgewood, where I performed a solo AV set. The event was part
of a series called
Women Innovating Sound Experiences, which highlights women/non-binary artists working in
experimental sound & media arts, and is curated by fellow
artist
Jenn Grossman.
This installment of the series was themed around
Audiovisual Alchemy, with performances by
Maria Takeuchi
and
Melissa F. Clarke, and a screening by
Rachel Efruss. After the main event, we all sat down together for a
Q&A with the audience about our processes, and I talked a
little about my system for live generative visuals.
I really enjoyed playing alongside these wonderful artists,
and the crowd was great, with lots of familiar faces. Big
thanks to Jenn Grossman, Mike Clemow, and Jacob McCoy for
shooting lots of photos and videos.
Since a few people were curious about my current live video
performance setup, I made a flowchart of the process I used
for both of these shows. I've been noodling around with it for
a while (since I started using Resolume last year), and I keep
finding new tricks and smoothing out quirks. I feel like I am
able to make the most of both my analog and digital tools
while also avoiding the pitfalls of either. Also, it's compact
enough for me to carry everything at once — at least for short
distances.
Footage I have pre-recorded includes:
Footage I shot while walking around
Water, ferrofluid and other liquids
Slit-scan processed imagery
Video feedback created with cameras and analog video mixers
Digital effects I use on all layers:
Brightness
Contrast
Blur (amount & distance)
Saturation
I use these effects specifically for the framebuffer
feedback:
Time delay
X and Y displacement
Invert
Sharpen (used in conjuntion with blur to create
Turing/reaction diffusion patterns)
Last week, I had the pleasure of attending the
Low Tech Electronics Faire, a two-day event at Temple University in Philly. I led an
HTML Journal Workshop, in which we crafted homepages
on the web according to a simple
spec created by m15o. As you can see in the screenshot above, my example website
from the workshop also included cutting-edge graphic design
motifs such as the Wingdings and Papyrus fonts.
I had a great time at the faire, though it was a bit of a
whirlwind. I had some great conversations with a bunch of
people, met some internet friends IRL, built a tiny handmade
speaker, learned about programming primitive computer games in
BASIC, and purchased a LoRa mesh radio node from the
Iffy Books
table. I also enjoyed the art exhibition and talk series,
especially Lori Emerson's talk about her book,
Other Networks. Andrei also came and taught a workshop on video synthesis.
Unfortunately we had to miss some of the live performances,
since we were quite tired by that point and had a long trip
home ahead of us, but I heard they were great as well.
The Electronics Faire is a yearly event organized by
Hannah Tardie, who also manages the Charles Library Makerspace at Temple.
They did an amazing job putting everything together, with
support from the other library staff and student volunteers.
Thanks to everyone involved for an excellent array of
programming and serendipitous convergence. I hope I can come
back again next year!
I didn't take any photos at all during the event, which is
probably a testament to how busy I was having a good time and
not looking at my phone. There might be some photos shared
from the volunteer photographers I saw (some of who were
shooting on film!) If they send me any of that documentation,
I'll add them to this post.
EDIT 2025-03-21: As promised, here are some
photos from the event! The first one of my workshop was shot
on film by Calvin Leon. The rest were shot digitally by
various people.
Since my recent move to New Haven, CT, I now have a private
room for my studio and work space. It's been a while since
I've had a dedicated space for this purpose, so I was very
excited to set up my things again.
I've had a number of studio spaces over the years, and even
the ones I had for an extended period were prone to me moving
everything around periodically, so I've gone through a lot of
trial and error to find the best way to arrange things for my
purposes. Since I work with a lot of AV equipment, I've felt
the temptation — the same one I've seen others in this medium
get pulled into as well — to create some kind of Ultimate
Signal Chain where all of my gear can remain plugged in and
patchable. This seems to work well for shared studios and
recording spaces, but in my own space, I like to create
bespoke setups for whatever my current projects require. For
example, sometimes I want to use a bunch of electronic
equipment, while other times I just need table space for
drawing or doing something messy with inks or other liquids.
So I have decided that it's better to just keep a few things
out on my desk by default:
my desktop computer
a television screen that accepts analog or digital inputs
a multichannel audio interface
some speakers
a paper notepad
my modular synths (including both audio and video modules;
these aren't as ubiquitous at the other items in this list,
but I like having a tactile synth playground available on
short notice, and they are really annoying to put away and
take back out)
If I want to use other equipment for a specific project or
performance, I can bring it out and plug it in just for a few
days or however long I need it for. There is even enough space
in my room to set up additional folding tables to extend my
surface area if needed. If I'm preparing for a performance, it
is actually helpful to quarantine everything I'm bringing with
me to a separate table anyway; it makes it easy to pack, and
helps make sure everything will fit on the table I'm bringing.
With these methods in mind, my studio is organized around
three areas:
my desk (pictured and described above)
shelves for storing equipment and supplies
a nook with a beanbag chair for reading, and a meditation
bench.
I do most of my reading on the couch and at the table in our
living room, but I like having a private space to relax as
well.
Below, you can find my attempt to draw my studio as an
isometric video game level. There are a few things you can't
see because they are on the cut-away walls: another window, a
small closet, and several wall-mounted cable hangers for
cables I need quick access to.
Here are a few other details about my desk setup:
I added a triangle of wood to soften the inner corner of my
L-shaped desk, and make it nicer to sit at my computer which
is positioned diagonally in the corner.
My desk has motors to adjust the height, but my modular
synth case is best positioned vertically, so I built a
wooden frame that attaches to the desk and provides a
surface for it to lean against without touching the wall.
The two chairs I use at my desk are a stool and a special
chair that allows me to sit cross legged at my desk. I have
found that using chairs without backs has greatly improved
my posture and back pain.
My split mechanical keyboard is also helpful for ergonomics,
in addition to being fun and customizable. I made wrist
rests for it by tying off a pair of socks filled with dried
beans.
I made a little organizer out of cardboard for storing
shorter modular patch cables by draping them over one of my
speakers.
I hope you enjoyed this virtual tour of my studio! I love
seeing other people's spaces as well, so if you share yours,
let me know.
I wanted to post something like this around New Year's, but I
missed the window where I could publish it without mention of
my lateness. But I have a good excuse: I was fully in the
middle of moving! As of January 1st, we are officially leasing
a lovely apartment in New Haven, CT.
Even though 2025 is already well underway, I'm taking a moment
to reflect on the past year. Here are some of the things I did
in 2024:
Rebuilt my artist website (the one you're looking at now!)
to use 11ty, a static site generator. It was a lot of work,
but the effort I put in will make maintaining and updating
this site about 1000% easier. (More about this in the
colophon.)
Attended my fourth vipassana meditation retreat, and
completed a 100-hour meditation teacher training program. I
haven't taught any meditation classes yet, but the things I
learned have helped me deepen my meditation practice.
Taught my first college course as an adjunct professor:
Intro to Animation at Hamilton College. (I actually
taught two sections, so my first two college classes!) This
was a wonderful experience for me, and I hope to get more
opportunities to teach again in the future.
Taught two online classes through
Polyphase Portal: one about HTML & CSS, and one about video feedback.
Each one met weekly for a month. I preferred teaching IRL,
but it was cool to be able to include folks from outside my
local area.
Lived in various free and inexpensive alternative spaces in
the forests of Upstate New York, including a few months of
house-sitting, a converted barn, and most recently, a
30-foot yurt. Although I've decided to move back to a more
urban area, I really enjoyed getting to spend more time in
nature, regularly being in the presence of waterfalls, cool
rocks, and all sorts of animals.
Survived another year without a full-time job.
Saw a total solar eclipse for the second time in my life.
Attempted to go on a summer road trip that was aborted quite
early on.
Built a shed on my parents' property. This was my largest
solo woodworking project to date.
Played 4 shows, co-led 2 video art workshops, and did an art
installation, a group show, an artist talk, and 2
presentations at
open source meetings.
Compared to 2023, when we spent 5 months driving across the
U.S. in a van, I spent almost all of this year in one area
(New York State). But it has felt like just as much of a
strange, meandering journey as the last year did. And while I
still haven't quite landed somewhere that feels like a
long-term, sustainable lifestyle, I feel like I'm moving in
the right direction, fumbling towards a balance between my
sometimes-conflicting needs for freedom and structure, for
unhurried time and financial stability, and so forth.
I don't know exactly what happens next, but I'm curious to
find out. So onward into 2025, and whatever this weird
timeline we all inhabit holds for us next.