Oh, it’s the end of October, and I’m going through my daily notes to summarize what I did the week of Oct 12.
I had jotted down “thesis is coming together” for this week, but, spoilers, that is also the update for the following two weeks, so make of that what you will.
I added some features to the JavaScript interface for another project I’m working on, which had the nice feeling of fixing bug reports, like from when I was a software engineer.
I was looking through Gemma Anderson’s Drawing as a way of Knowing in Art and Science, which had neat images of displaying multiple evolutions of a shape, like in Paul Klee’s Suspended Fruit and William Latham’s Empire of Form.
I randomly started learning about bird molting, which answered some ongoing questions about feathers I had, like what was so special about the tertials on songbirds, when they were on the same bone as secondaries: one answer is that when the wing is tucked in, the tertials shade the other feathers from UV damage from the sun.
Every Friday, I’ve been spending a bit of time with a spectral analyzer sensor I have. I started to read data from it!
Oh, this was also the week that I drew the smoothest lines in Rust! Very satisfying!
I put the line endpoints in a buffer to send off to the GPU, and then have a shader run for each pixel and compute the distance to the lines. Because I only care about lines somewhat close to a pixel, I can precompute a grid of endpoints (like bounding volume hierarchy) so pixels can just check the shorter list of nearby lines. A little less sure about this, but the chatbot told me to use CSR (Compressed Sparse Row, a way to represent sparse list of lists) to represent that data structure (C I remember that came up years ago for machine learning matrices) and used that to store the list of variable-length lists.
I think this might have been my first time using a compute shader properly, even though I turned around and created a texture off of the CPU data. But I set up the scaffolding so I could use a compute shader when a project calls for it!
And even recomputing it every frame ran at something like 45fps for my sketch (but I cached it anyway because I was more interested in diffusion of the cells).
I wanted to make the lines look more like cell walls, so I thickened the line depending on how far they were from the closest vertex.