I once wrote a framework for simulating GoL in Python: https://github.com/ljvmiranda921/seagull
I names it Seagull because “Conway’s Game of Life” => CGoL, lol so playful.
The day before Conway passed, I was playing with some procedural art from cellular automata: https://cellular-sprites.herokuapp.com
Everything felt surreal the morning I read the news
Very cool. One of my formative programming experiences was learning the "hashlife" algorithm, which lets you do very large maps and zoom forward millions of iterations very quickly.
https://www.drdobbs.com/jvm/an-algorithm-for-compressing-spa...
I learned, from Hackers by Steven Levy, of Bill Gosper's work on Life at the MIT AI Lab. Apparently they had two versions of Life running on a PDP-10 there, under the ITS operating system. Gosper wrote his in TECO (a programming language used to edit text), and another in MIDAS, written by Mike Speciner. But ITS no longer ran, and the Life programs appear to have been been lost.
Some time afterwards, there was a project to resurrect ITS, which I got involved in. After it was up and running, initially on the SIMH simulator, and later more stably on Ken Harrenstien's klh10 emulator, I wrote a new version of Life for it in MIDAS (PDP-10) assembly language, which is now located at http://www.fmjlang.co.uk/its/life.txt
This drew the attention of Dan Weinreb, who provided some information on the original AI Lab version: https://web.archive.org/web/20050209065438/http://lispmeiste...
Good work! Highly recommend adding a gif of a few seconds of your game in your README so people can enjoy this without having to build and run it.
I made one of these recently too. Mine allows you to simulate many different kinds of 2D cellular automata, but Conway's Game of Life is the default.
[link redacted]
I like writing life in new programming languages as a sort of non-trivial "Hello World". It was the first program I wrote when I was first learned CUDA/C++ back in 2008 and was a great teaching example.
I remember it being the first thing I wrote in Turbo Pascal for the IBM PC back in 1984 or so.
Here's mine in C++ and SFML. I enjoyed this so much! It's basic, but I recall spending hours playing with various seeds.
https://github.com/manaskarekar/dendron
Demo seeded with an R-Pentonimo: https://www.youtube.com/watch?v=B3P-LnrXE3k
Here is our Twitch Plays implementation: https://www.twitch.tv/bzh314
It supports RLEs [1] so you can quickly create some known shapes or test your own.
Crash course on RLEs:
b=dead, o=alive, $=new line
This is the RLE of xkcd's tribute to John Conway [2]:
2b3o$2bobo$2bobo$3bo$ob3o$bobobo$3bo2bo$2bobo$2bobo!
You can discover plenty of patterns with their RLEs on the Life Wiki [3]
Twitch Plays Conway's Game Of Life has a database of hundreds of patterns.
To learn patterns here's a 40-minute video you can quickly go through: https://www.youtube.com/watch?v=u4XgALyX6w8
For instance you can make a Sir Robin [4] at the origin this way:
!SirRobin 0.0
or the xkcd pattern:
!xkcd 0.0
We also added our own twist, with color rules that lead to the Epic Toy Store Pixel Art [5] and Epic Masterpiece Pixel Art Decoration [6]
---
[1] http://www.conwaylife.com/wiki/Run_Length_Encoded
[3] https://www.conwaylife.com/wiki/Main_Page
[4] https://www.conwaylife.com/wiki/Sir_Robin
Here's the one I've been playing around with, written in go with the SDL2 library - https://github.com/bcl/sdl2-life
That was one of the first programs I wrote when I had my first computer, back in 1985. Before that I was already fascinated by Game of Life and there was no other way than to write out every generation by hand ..
Why are there function definitions in header files? Really the only reason to do this is if you are distributing a "header-only" library.
Seems we've all been busy. I made a simple browser version. https://animate-object.github.io/life.
Life was one of my first introductions to programming in school. Mr. Conway also a strong impression on me through his interviews with Numberphile, which I'd recommend, not so much for their mathematical content, but for the very human portrait of a genius in his later years.