i wrote a quick hack program to edit that 4×4 stipple https://gitlab.com/kragen/bubbleos/blob/master/yeso/stipple.... and recorded a short screencast of using it http://canonical.org/~kragen/stipple.mp4
btw, a cool platform to experiment with things like this is the Commodore 64... You can fill the 40x25 screen with the same 8x8 character, then modify that character and it fills the whole screen. This can also be be expanded to make cool animations and whatnot.
i never had a working c64, but i did what you're describing on the c64 on the ti-99/4a, and it's pretty similar to how vga text modes and the nintendo work as well. it was an important technique when 64k was a lot of ram and cpus were slow enough that you couldn't rewrite the whole framebuffer every frame (much less generate the video waveform on the fly in software). nowadays it just saves you five lines of code
for (int y = 0; y < fb.size.y; y++) {
ypix *p = yp_line(fb, y);
for (int x = 0; x < fb.size.x; x++) {
char sc = stipple[(y % 4) * 8 + (x % 4) * 2];
p[x] = (sc == '.' ? 0 : -1);
}
}
a modern equivalent might be fragment shaders like https://www.shadertoy.com/view/XtcBWH, which i made six years ago; like the stipple pattern we started out this thread with, it simulates the appearance of woven cloth or basketry