I've been meaning to do a similar project for a while, but also handling the ability to pass extra data to the shader via texture buffers (it's a useful technique for mass rendering of objects stored within the GPU) although I'm unsure whether WebGL currently supports this as I'm yet to use it.