@Lucas_Payr on WebGL performance, read the “Making the most of the GPU” section of the package docs webgl 1.1.3 that is also linked from the Mesh docs.
In the nutshell, WebGL API in Elm is not meant for creating meshes in the view on each frame, because each time such mesh would have to be uploaded to GPU, that is a rather slow operation. The mesh needs to be created and cached in the model or globally, then reused.
Given your use case, I don’t think the current WebGL API works well, because it is not suitable for manipulating individual pixels on the screen.