Handmade wonder
Exploring creativity's raw texture
Hi friends,
(welcome to my dispatch! You can sign up for these or read the archive at buttondown.email/thesephist 💌)
I don't work on as many public side projects these days as I used to because I get to bring in many of my weirder engineering and interface ideas into my work at Thrive. But yesterday I took advantage of a rare free evening to go back to my roots a bit, and write a little website. (Don't get your hopes up, it's very tiny.)
Every few years there's a word or phrase that seems to capture my subconscious and color the way I look at every part of my life. For the last few, these words were "thought" and "craft". Thought, as in the stuff that drives our civilization forward, and craft, as in the way we create things with care and the signs thereof that are left on what we create.
The vibe has shifted lately in my life, and while thinking about thinking and focus on craft still permeate my work, I've become more drawn to the idea of how humans explore. Curiosity and wonder. Asking good questions, not just finding good answers. Developing taste in good problems.
On a whim, I bought the domain losttowonder.com. I love that the phrase can be read in at least two ways:
- Read similarly to "lost in wonder". Lost in the forest of wonder. Lost to the endless capacity for things worthy of wonder in the world.
- Lost somewhere unknown and left to wonder.
Anyway, I hadn't really settled on what exactly I wanted to put on the website. I considered just redirecting it to my blog, but that seemed boring and underwhelming. Perhaps I could write a little poem or story there? Cute, but that's what the blog is for. I liked the idea of using it as a randomized image gallery for images I'd been creating with Midjourney around this idea of wonder and mystique, so that's where I began.
I also wanted to go back to my roots a bit, so instead of using my usual work setup of Cursor and TypeScript, I opted for a simple Vim + Oak setup. No AI assistance.
But I didn't want to just show a slideshow of images. So I thought maybe I'd add a little bit of text that just said, "lost in wonder". I felt it would be interesting to randomly distribute those words across the screen.
And as I wrote the program little by little I found new opportunities to add interesting behavior. I realized I could connect those randomly positioned words with thin lines to create a kind of "wireframe" effect I liked. Then I thought, what if I could animate them moving around a bit? Having them bounce around the screen with realistic physics would have been a lot of code to write, so I started with a simple random walk. I tried adding some random jitter, and then modified the jitter to start out very active, then decay over time, so it feels as though the activity "calms down" over time.
By the end, I felt happy about the simplicity of just a string of words, vibrating in empty space. I felt that adding more imagery would feel overwhelming. So I ditched the main element of the original idea, and put it up.
You can see the result here.
It's fun! Isn't it? Maybe just me. I like that the string of words feels alive, vibrating in space. It also serves as a kind of front door to my last blog post, on the feeling of wonder.
It isn't much. Probably took me a couple of hours in all, and I spent most of that time not coding but feeling things out. Feeling what parameters and constants felt right for the animations and colors. But also feeling out the texture of the medium I was working in. Coding by hand, typing every variable name manually, there's a sense in which the surface texture of the material can be felt directly in my hand. Like a painter working with real water and canvas or a photographer working with real film. The medium pushes back sometimes in interesting ways, and there isn't a layer of brute-force intelligence to paper over these rough patches in the medium. You have to find ways to work around the roughness of the medium, like complicated algorithms too annoying to work out or system designs where you have to type a lot of repeated values. The end result I got here is very different from where I would have ended up if I had simply opened up ChatGPT or cursor and typed in my original idea and let the model blast through it all. The raw power of these modern tools would have been like a sledgehammer flattening out any interesting texture in the creative medium and forcing the initial prompt into existence with brute force. But that's not where good ideas always come from. Good ideas often come from delicate feedback from contact with reality.
You are right there in the creative process, exploring the possibility space tangled up inside the feedback loop against reality.
I don't think this is an unavoidable property of modern programming tools. I think there's a way for really tight, intimate feedback loops with the creative process to coexist with powerful tools — even AI tools — that extend our intuition and reason. But I think we'll need more sophisticated interfaces than natural language dialogue to get there.
What I read
The Ones Who Walk Away From Omelas by Ursula Le Guin
Railroads and Economic Growth in the Antebellum United States, especially in light of contemporary capital-intensive transformative technology infrastructure investments going on around us.
A reminder: you can reply to these emails :-) They go straight to my inbox.
Wishing you a happy and healthy week ahead,
— Linus