Pixels animate -- they go through fixed cycles of a certain speed depending on their starting color. This should however alter the actual color of that pixel as you zoom in. These cycles should be grayscale colors.like, colors.like, or hsv_shifts.
If a saturation of 0 is reached in any capacity, it'll slowly fade out to black.
I'd like to generalize the downscaling pixel mapping algorithm. The point of this is that black pixels will occasionally turn into a regular pixel that follows the pattern. I'm thinking the timing is this happens every few seconds across the board but Date.now()/x/y determine which pixels do this, at about a 50% rate. This would then also tie into the actual pixel data.
These functions don't apply to image zooming.
You can no longer upscale -- it doesn't make a lot of sense anymore.
While it *technically* works with any image I like the idea of it starting from black void. Black void will rarely pop particles into existence, although the likelihood is based on the amount of black pixels-- on a blank canvas a lot more will happen.
Being able to "zoom out" makes a certain amount of sense. Not cached upscaling but a true reversal of the downscaling algorithm. Idk how the fuck this would work though. Actually if I just create new pixels offscreen according to existing pixels and then upscale, that would actually work pretty well. It wouldn't be a true reversal but it might at least lead to some neat unexpected effects. True upscaling would also prevent the cache and make it truly infinite in both directions.