I connected a Nordson EFD fluid dispenser to my Axidraw pen plotter to allow it to "paint." It can now dispense various fluids: painting was my primary goal, but just about anything you can pour should work with a bit of testing.
The plus side is that this only involves a few lines of Python code, a simple hardware connector, and no permanent modifications to either piece of hardware.
The minus side is that this requires two specific pieces of hardware: the Axidraw pen plotter, and any one of several Nordson fluid dispensers.
The Nordson EFD 1000 and 1500 series both work, and used ones can be found on everyone's favorite auction site for something like $100. If you are in a hurry, it could cost you more, wait, and it could cost less.
The hardware interface should cost less than $10 to build, and isn't permanently attached to either device.
The Nordson EFD uses standard syringe barrels and tips, which are available from McMaster-Carr, or the above mentioned auction site. The Axidraw can accept 3cc or 5cc syringe barrels without modification. My initial testing with oil paint suggests that 5cc is more than enough for most drawings within the footprint that the Axidraw covers.
If you don't have shop air, you will need an air compressor to push the paint. I'm using a tiny air compressor of the type used for a hobby air brush. The Nordson documentation asks for a minimum of 80 psi input, even if you are dropping it to 20 psi output. My little compressor puts out 60 psi, and works just fine.
So, while we're here, I see no reason that this outfit couldn't accommodate an air brush instead of the syringe dispensers.
This project does require adding a few lines of Python code to one of Axidraw's files. This code does not hinder the Axidraw when the Nordson EFD is not connected. You can download the modified file, or look for my comments and make you own edits. If you do your own edits, note that this file requires tabs, and not spaces, for indents.