Last time I did dithering was for Polyjet 3D printers. The problem is substantially different from what’s in the article.<p>The palette is fixed, as the colors are physically different materials. The amount of data is huge, an image is a layer and the complete model has thousands of layers, because 3D.<p>I implemented a 3D-generalization of ordered dithering <a href="https://en.wikipedia.org/wiki/Ordered_dithering" rel="nofollow">https://en.wikipedia.org/wiki/Ordered_dithering</a> The algorithm doesn’t have any data dependencies across voxels, the result only depends on source data, and position of the voxel. I did it on GPU with HLSL shaders, it takes a few seconds to produce thousands of images.