I am very new to WebGL, but not Javascript or Canvas. Essentially, I need a very fast way to be able to change the color of a pixel on a canvas at any coordinate. I feel like
You could use GL_POINTS when drawing. Basically you would pass an array of points to the GPU, together with the colors and the positions. You then call drawArrays with the right data.
This might be too tied to other things, but this might help you:
https://github.com/funkaster/ChesterGL/blob/master/chesterGL/primitivesBlock.js#L126
https://github.com/funkaster/ChesterGL/blob/master/chesterGL/primitivesBlock.js#L260
That's how I render several points in the primitive block for chesterGL.