bonus color
Posts by heinn
thanks! it's an in-camera filter that I tried on a whim on a day with bad light, ended up liking it a lot
usually don't feel like posting pics but I've been having so much fun with it
heinn? heinn dev? the photographer?
animating my chud son
(but also, dithering "1 dimensionally" in each dimension of a color space is probably good enough for 99% of cases, but I wanted to find something that dithered to a SPECIFIC palette, not just a per-dimension quantization
actually rambling............
There's probably some search keywords I'm missing, but I'm not sure anyone cares about color dithering anymore....
I wonder if one could just adapt the error coming from stuff like this to a 3d vector however...
github.com/dalpil/struc...
Instead, you can find these skewed triangles, pick a point (like the circumcenter) and place a new palette point there to try to break up the triangle. The ACTUAL palette color of that point would be the closest color to it, not the actual color space position.
If you actually visualize some palettes triangulations, you'll notice some really long triangles, and those are gonna "capture" a lot of colors nearby. I think the actual correct weights would come from a 3d version of the natural neighbor interpolation, but that's hard to compute
this is so the dithering goes dark -> light
And that's you're nearest (in that space), dithered color. If you also imagine squishing the space in the ab dimension, it basically means you have more chroma choices for the next step of the gradient.
this however is not the "true" weight, because...
You then find the enclosing tetrahedron, and get the barycentric weights of the target pixel. Those weights represent how much of each palette color the pixel should get. Normalize the weights into a 0 to 1 segment, sort by luminance, and use the dither value at that pixel to pick a sorted color
I didn't look too hard but I didn't find anything that was about specifically this. But the idea is : you get a palette, convert it into oklab points. You then uh tetrahedralize those points. When you want to dither a target pixel from an image, you convert it to oklab, and put it in the space.
another cool thing is squeezing oklab along the ab dimensions before the dithering, makes things quite TASTY
is everything ok? you've barely triangulated your color space...
which led to discovering funny things like "natural neighbor interpolation". In the end sprinkling some additional fake palette points and just dithering towards the 4 vertices of the enclosing tetrahedron of a target color ended up being more than enough
actually rambling like a mad man
messing with dithering and palettizing again, the main idea being applying the dither to not just a linear ramp, but to all dimensions of the colorspace at once
uhhyuuhhuhghuoouhh
happy new uuuuhhh horse year
hello? my png?
bonus fog
:roe:
bonus cats
good harvest today
the most fun part of this has actually been figuring out l-systems and watch them grow
a more fun game could be just writing bacteria dna and watch them grow and compete.......
made a little jam game
lamés spotted?
bonus bonus shot
bonus shot
🥴