Try #1

I tried to use a stencil made out of PET film to press acrylic paint through with a spatula.
However, paint tends to get squished under the board, leading to very disappointing results:

I used a solder paste stencil instead of silkscreen stencil, because I can’t yet generate
g-code for the latter, but this should not affect results in such a significant way.

Try #2

I had an idea: what if I mimic the silkscreening process, except remove the mesh (screen)?
In other words, laminate a layer of dry film resist over solder mask, then expose the solder
mask everywhere except where I want paint to appear, then push paint into grooves with a spatula.

It almost worked, except for two things:

NaOH would strip solder mask as well, though quite a bit slower.

Paint adheres much better to resist than to underlying solder mask. That makes sense in
retrospect, because the mask is explicitly designed to repel substances such as solder
or flux.

Try #3

I tried to use a stencil made out of PET film with engraved grooves. I would push the ink
into grooves, then push stencil with ink against PCB (mimicking offset printing).

Unfortunately, it turns out, the ink dries very quickly in the process and doesn’t transfer
to PCB at all.