The Ising Model is a very interesting mathematical model describing the ferromagnetism of materials and is part of Statistical Mechanics in Physics.
The simulation is made using Monte Carlo Method
The WebGL is made very simply using a shader that given an array of points it draws all points using GPU wich is much more effient than using the pixels and the HTML canvas. Of course you could solve the whole problem using the GPU context, as made here. I'm just learning WebGL and Shaders that's why I did this way.
References:
- https://www.tutorialspoint.com/webgl/webgl_drawing_points.htm
- https://stackoverflow.com/questions/35444202/draw-a-single-pixel-in-webgl-using-gl-points
- https://www.ibiblio.org/e-notes/Perc/ising.htm
I've been using dat.gui for other project but it is not mobile friendly. I've found an experimental version paper-gui made with Polymer paper elements and works very well.