Made in C++ with Qt and OpenCL. Users can:
- Fast forward to a specified generation.
- Save the current state to a file and load it next time.
- Zoom the world - smart zooming is performed so that the point under the cursor remains under the cursor after zooming.
To do:
- Parallelize the simulation (AVX might also be used).
- Optimize the kernel.All threads within a workgroup share adjacent bytes.It makes sense to move them into shared memory.
- When zooming in leads to nonexistant cells, the screen coordinates are adjusted to avoid that problem.Current implementation is unable to zoom into the border cells because of this.Fix this problem!
- Determine the speedups gained by using lookup tables of different sizes.
- Optimize drawing - instead of drawing the entire picture, redraw only the changes.
- Write documentation!