On my way to implement a particle system on the gpu (either glsl or opencl but I would prefer opencl) I made the Game of Life from John Horton Conway (wikipedia) to improve my abilities in shader programming (which are kind of poor at the moment). Lesson was how to work with a shader and a texture, especially how to save the results of the shader in a texture to work with them in the next iteration. The code starts with a noise texture which was generated in Photoshop and saves its results in a new texture which will be used in the next step.