I spent the afternoon trying to learn Blender, and it was not going well.
help i have no idae what i'm doing in blender
Keith Kurson (@keithlaugh.love), October 17, 2026. The attached image shows a gray 3D bust in Blender, surrounded by crossing scene lines.
So I decided to get back to my roots, building on the web.
I don’t know why felt came to mind, but I thought it’d be cool to detect parts of a face and the background, even something like a plant behind you, and generate a set of felt pieces layered on top of each other.
My other goal was no calls to an LLM from the page. It needed to do everything in the browser.
I got kind of part of the way there!
Generating beautiful background images, not so much. Looking at the face, figuring out what is what, and letting you put on a cute winky face? Absolutely. I’m pretty delighted by what it generates.

Woolly uses small models to find the face and identify its features. Old school! The models give me positions to work with, and the rendering code makes the felt pieces.
For the eyes and eyebrows, it clears out the original features in the felt version, filling those areas with skin color before adding the replacements. The eye positions come from the centers of your irises, so the new eyes follow where you were looking. A little felt nose gets its shape and position from the detected nose points.
Then you can play with the eyes and eyebrows. The most common choice on Bluesky so far is obviously the googly eyes.

This was also an opportunity to build out my ATProto OAuth pages. If you log in with your Bluesky account, Woolly brings in your avatar. When you’re happy with what you’ve made, you can save it as your profile picture.
You can also type in a handle or upload a selfie without logging in, and download the result.
I want to make more of these little experiments that let you log in to your account for something, usually with a way to avoid logging in too. Having the OAuth pages ready gives me something to reuse for the next one.
It’s just fun to build small things like this.