Give your textures a retro aesthetic by using color reduction
and other filters. Free to use, no attribution required.
Credits
Built with three.js, MIT licensed.
Palette matching uses OkLab (Bjorn Ottosson, public domain) so
colour distance follows perception rather than raw channel values.
Ordered dithering after Bayer (1973), choosing between the
two nearest palette entries rather than perturbing the input, so it
works with unevenly spaced palettes.
Palette extraction is weighted k-means with k-means++
seeding (Arthur & Vassilvitskii, 2007), clustered in OkLab.
Kuwahara — Kuwahara et al., 1976.
Anisotropic Kuwahara — Kyprianidis, Kang & Doellner,
2009.
Coherence shock — Weickert, 2003.
L0 gradient minimization — Xu, Lu, Xu & Jia, 2011;
the linear step is relaxed with Jacobi iterations here rather than
solved by FFT.
Algorithms are not copyrightable and none of these carry a
licence requiring attribution. They are credited because the people who
published them made this possible.