I’ve been vaguely aware of bytebeat for many years, where crunchy music is made from astonishingly short lines of code, here’s an example.
There’s a nice guide to it here: https://nightmachines.tv/downloads/Bytebeats_Beginners_Guide_TTNM_v1-5.pdf
It always impressed me but I’ve not really thought enough about it to look into how it works, beyond extensive use of low-level bit operations that are a bit out of my comfort zone. The above guide describes it well but in terms of how to make waveforms, mixing and step sequencing. This is super near but in a way feels a little bit disappointing. These symbols feel a bit magic, and the magic goes away when they’re just treated as building blocks for quite conventional sequencing. Fair enough for a beginners guide to take this approach though!
Anyway, the basic approach is to define an audio output simply by taking time as input, both represented by an eight bit output. You apply the same approach to images, by taking ‘x’ and ‘y’ values as input instead of time:
That’s really fantastic - pair up the bits making up the x and y values, making a new number with a ‘true’ bit wherever one (and only one) of the corresponding bits in the x and y numbers are true, then making a white pixel there if this new number is equally divisible by 9… and you get an alien landscape. That whole twitter thread is recommended!
Here’s a similar approach but again with time as input:
https://www.dwitter.net/d/19615
And by the same author as that tweet thread, the more constrained tixy.land:
… where tixy stands for time, index, x and y. index is basically a loop going through the pixels, and x and y is derived from that… So really this is about making video animation as a function of time.
I suppose it’s not so unusual to make art based on pure functions of time… That’s how most sound synthesis is defined, right? It’s also how TidalCycles works under the hood… But this bytebeat and bytefield stuff seems to be about really paring things down to a minimum, until you get to the low-level affordances of representing integer values with binary bits… Which is all about interference patterns over time and space, just like the ones we see in textiles… As @nebogeo says, when you go low enough you reveal that all computation is woven: