This week, Metamyther announced that they will be releasing music soon, and I generated the visuals for the album cover.
I also did visuals with Fels this weekend at The Hive in Somerville. It’s usually a dance studio, with projectors set up along two walls, and a mirror on the third, and it’s one of the more immersive places I’ve performed.
I also have a bit of work in an exhibit in Gwangju, South Korea, with Zach Lieberman and other Future Sketches folks!
dovekie is a (wip) standalone JavaScript package of Murrelet’s livecode features that could be integrated with sketches in JavaScript, like ones made in p5.js or three.js. I’ll make a bigger fuss about it when it’s more polished, but I picked out a name, and I am getting to work with an undergrad to test it out.
Right usage looks something like:
// call this once
await wasmInit();
let div = document.getElementById("drawing");
let model = new MurreletModel(div);
// call this every time you update the config
let DRAWING_CONF = {
gray: "my/h", // normalize the y-mouse location by height
xy: [
"s(floor(rn(t * 0.3, 42) * 4) / 3, 0, w)",
"s(ramp(t, 0.3), h, 0)"
]
};
await model.setConfig(DRAWING_CONF);
// call this once per frame
model.update();
// use this to access the evaluated params
const params = model.params();
// params = {
// gray: 0.3,
// xy: [123.4, 234.5]
// }
I’ve continued iterating on the active learning project from last week.
One challenge I encountered was that as I added more checks to exclude invalid birds, the system had more trouble finding positive examples.
Genetic algorithm-style helped a ton here: once I found one or two valid examples, I could modify them slightly (add noise, rerandomize elements, mix with another valid one), so I would keep adding positive examples. Since new ones might end up all clustered, it helps to skip examples where the genotype is too similar to ones already in the current batch.
I also added raster checks, so I could check if there was a minimal amount of a given color. This helped me with things like the beak being really small. I can render the image to a canvas and require 0.7% of the canvas to be beak-colored. It’s working great, and I think it might be an interesting check for other things, like “make sure there’s at least a bit of red in the image”. Did I mention this is entirely running in the browser?
I also moved apartments this weekend! Phew! I can see many (real) birds from my new window!
A few weeks ago, I wrote about trying to implement sweepline. Fun enough, I noticed the geo
crate recently got some commits related to sweepline and intersection detection!