weeknotes: labor day weekend, birds, optimization

2025-08-31

I’ve been trying to spend as much time as possible outside while the weather is perfect and classes haven’t started (I’m writing this from a park right now on a break from a bike ride on Boston’s Emerald Necklace. I can hear a grackle, blue jay (both mimicking a hawk and creaky door call), and house sparrow, and I spotted a cowbird and robin.)

I’m also starting to get to meet the new master’s students at the Media Lab.

Bird

I’ve been working on this FeatherEditor, which has led to some interesting experiments with blending data. It was also my first time building a user interface that allows me to position specific points, and those locations would propagate back into the code. I recorded a few demos of more abstract things I made while trying to replicate the feathers.

And then, I loaded all of the feathers in and… it needed a lot more work. There were probably some bugs, but I also suspect that because I don’t have the bird’s arms positioned exactly right, I’d need to do some manual changes, which is a lot harder when I build the feathers externally. So I’m thinking of going back to equations, where I say how thick a feather is at a given point. It actually felt good to make that decision. Something that helps is that the FeatherEditor has borne fruit already as a standalone project: it let me explore a new blending technique as well as the user interface.

It’s nice because the bird project now has a more solid medium: it’s all defined with math instead of importing things I drew. The process of creating them does feel more like when I draw: I’m comparing the drawing to images of the bird, trying to match the output instead of exactly replicating the components.

Not that I wouldn’t go back to the hybrid approach in the future! But it is a nice constraint on this project that might make it easier to explain.

Optimization

I started some optimization modelling work for a project I just joined!

I’m trying to model something that should look different ways from different angles. The idea is to shoot a ray from the eye through the pixel and accumulate how much stuff you run into. (If you’ve done ray marching/tracing, it’s a lot like that!) But then you compare the pixels computed to the original image, and backpropagate to adjust the geometry in order to make them more similar.

(Disclaimer, at this point, I was blindly relying on the AI chatbots a lot more than I like to, especially when I got to debugging the model.)

It’s a cool problem space that I’m hoping to explore more! I’m wondering what other geometries-real-world-things could be tested out (overlapping patterns printed on transparencies? a shape with iridescent faces that can be rotated to form different patterns?)

Making Monday?

On Monday, I tried 3d printing the goldfinch wings I’ve been working on. It was pretty cool to recreate them with a thin layer of PLA and be able to model the wings, and try to make sense of the anatomy a bit better.

More videos

I’ve been figuring out which parts of the FeatherEditor can be used for interesting demos. I made one with the barbs last week. This week, I started working on blobs, but ended up spotting an interesting demo with lines changing thicknesses.

I also had some fun trying to sync demos with music again, even if it’s not a viz project. I took a break for the summer because it requires me to work in a certain way, but it can be pretty fun.

Birds in real life

green heron perched

A friend told me about a rare bird alert for a juvenile little blue heron at Fresh Pond (it looks a lot like a snowy egret, but with a two-tone bill and no yellow shoes). On the same trip, I got to spend some time with a family of green herons, who are probably one of my favorite bird color palettes.

Alfred and Obsidian

I’m trying out Shimmering Obsidian, a plug-in for Alfred. I set it up because when I have a random idea, I always try to jot it down as a task.