You can create an image and then you can set the color of every individual pixel in an image
image = Image.new()
image.create(width, height, false, Image.FORMAT_RGB8)
image.lock()
image.set_pixelv(v2, Color(r,g,b))
You can iterate through different values for the v2 and paint the image accordingly.
The best solution though is to do it with shaders
It's faster to compute, and way more flexible if you know how to use them.
They are kind of time-consuming to first learn, but if you have the time go ahead and give it a shot