weeknotes: leaves, SuperCollider

2025-10-05

Leaves

a leaf I saw

I continued with the fall leaf project from last week!

I started with the leaf system I have. I wasn’t sure if I could convince the leaf algorithm to create the cells, so I decided to fudge it by using other approaches to create cells.

Since what appealed was the textures (blurring, regional areas), I started by trying to do this in shaders. I implemented the jump flooding algorithm, which was super easy and cool! You start with some set of points, and you end up with a kind of voronoi cells filled in with a color that represents the coordinates of the point those points are closest to. You can use that to compute distances of each pixel from your seeds.

So! I started with the leaf output. I added blue noise texture to as a way to position the cells,. Then I ran the jump flooding to get little cells. This was okay, but there were already a few glitches. I also wanted the cells to send nutrients to their neighbors, and that would be easier if I wasn’t stuck in shader-land. So I scraped that.

debug screen for leaf veins and cells

I’ve done a blue noise using void-cluster for a recreation of a MIT Museum poster, where I used the GPU to blur the image and loaded the data back to the CPU to find the points far away from existing points. But ah, that was a little convoluted (convolution pun not intended), so I used Poisson disk sampling (start with points, then check random candidate points that are far enough away from that point, and if the point is far enough away from all points, put a point down). Then I used the Rust spade package to turn it into Voronoi cells. Spade gives Delauney triangulation with voronoi in one go, so I used the triangulation to come up with the neighborhood of each cell, which I used to build a graph. Phew, so now I can send/pull nutrients to the veins and cells and simulate the abundance of pigments in each cell.

Boston Tech Poetics

The monthly meeting happened this week! WEATHER IS HAPPENING presented at Boston Tech Poetics. The presentation was great and weird, and I don’t know, the weird approach to climate activism resonates with me.

I also gave another go at explaining my thesis to an audience at their open mike, and got some resource recommendations.

oscilloscope

I picked up the algorithm I’ve used a few times to represent drawings as frequencies, manipulate the frequencies, and then turn them into drawings. I used it last week to make a physical drawing++ office hours sign and again this week to make a digital poster for Livecode Boston.

Reading

I finally sat down and read through Donna Haraway’s Cyborg Manifesto after hearing about it. A few takeaways relevant to me were:

I also read through Shari Tishman’s Slow Looking for my thesis. It’s a practical way to observe more deeply, aimed at educators. (It gave me some context behind how some museums explain artworks by asking you more about what you see instead of telling you what to see.) It was useful for my thesis to give me a cross-disciplinary list of tools that help you observe: like focusing on different categories at a time, keeping an open inventory of everything interesting that you see, looking from different perspectives/levels, comparing to other things.

I’m also continuing to listen to the audiobook for Braiding Sweetgrass. The author talks about how one of the indigenous American languages is way more verb-heavy than English which is noun-heavy. She gave the example of the word for bay was the verb meaning “to be a bay”, and reflected on how that might change how speakers would perceive the world. (It made me wonder about the parallels in code, like what the ratios of methods to structs..)

Supercollider

I’m continuing to try to do a little SuperCollider every week.

I do not know much about guitar, but I listen to music with guitars. Apparently, one sound I like is finger picking, where you hold strings against the fret board for a chord, cycle through a sequence of strings with your other fingers, and then shift to a different chord and cycle through those same strings.

This week, I coded that in SuperCollider. Some background: since 60 is the midi note for middle C, and if I offset that by 0 or 4 or 7, that makes up the major triad, like playing C-E-G.

Pstutter lets me repeat the key offset enough times for the sequence of finger pickings. So I’d Pstutter the chord 8 times while it runs through the sequence [0, 4, 7, 4, 0, 4, 7, 4] to infinity.

Conveniently for my “making audio for my visuals” journey, we also heard Joshue Ott speak, who makes excellent visuals and has done some cool work synthesizing sounds from drawing!