This is a really interesting cart. It uses something like a signed distance function to create a square, and rotates the pixel it’s rendering so that the square ends up rotating around the screen! For the point rotation, this SO question and this answer in particular will both be very useful for working that part of the code out.
This tweetcart also has a very unique look to it. A few things contribute to this. First off, all the drawing is done with circ() with a radius of 1 - so the actual pixel that we’re rendering isn’t written, we just write all four pixels that border this one. As well, in c we calculate the current value of the pixel, send it towards 0, and then add that to the new value our renderer ends up with. Both of these together means that fading-out both slowly goes darker (see the display palette above for the gradient), and it also spreads out as it fades out.
Take a close look at how c is calculated: c=abs(pget(x,y)-1). What this means that a pixel that’s coloured 0 will write a colour of 1, and vice-versa. But that’s done to all of the neighbouring pixels, not the one we’re actually rendering and reading from. This also means that by default, the rendering function will try to create checkerboard patterns of 0 and 1 coloured pixels. And that areas that are either all 1 or all 0 will create some furious value-flipping. Looking at how the edges of different checkerboard spaces interact in the cart really reminds me of when you interrupt stable patterns in the game of life.
Pictures
This is how the cart looks with a pset() instead of a circ() with a radius of 1.
Less pixels are drawn, but also less pixels are dithered-out, so the fading away takes longer.
This is how the cart looks when starting from a cls(15). The min(7,*) immediately flicks the colour down to pure white, and then it keeps fading towards black/purple (0/1) from there.
This is how the cart looks when we do -.2 in the distance function instead of .3. Less of the border is taken away, so the square is larger.
This is how the cart looks if we set j=x/128 and k=y/128. This is the actual shape we're rendering (and .3 of each border is cut off!).