You should add some buttons to populate the grid with some of the more well known of the game's denizens. Perhaps let the user select from a list of patterns, then insert that pattern when the grid is clicked instead of toggling an individual cell.
See the excellent http://www.conwaylife.com/wiki/ for some ideas. That site also has its own RLE syntax for defining the patterns, so maybe you could crawl it and allow the user to use any of the 600-odd patterns they have on there.
That site brings back good memories from uni, I spent a long time converting iterations of GoL grids into MIDI notes and piping them to synths to make generative acid house.
I had this feature in mind since I started working on this, and it's definitely what I will implement next. I will also add the ability to resize the grid to fit some of the larger patterns.
This will probably require a rewrite of the current "nextGen()" algorithm, perhaps a quadtree implementation in Javascript or implementing some of the optimizations suggested in Chapters 17 and 18 of Michael Abrash's Graphics Programmer's Black Book.
There were never any MIDI files, the notes were generated as raw bits and sent straight into ableton live, which is a full blown software music studio. The notes then drove a softsynth which noodled away over various drum loops playing in live.
Because I had no desire to work out how to send clock data back from live into my hacked bit of ruby code, I simply sent MIDI clock signals from my code along with the note data. This meant that the iterations of the GoL were controlling the speed of live's sequencer.
As my code was very naive, it simply did its calculations, sent the notes and then did sleep(0.5) or something, then started the next iteration. This, along with ruby's garbage collection meant that the time taken for each iteration, and the delay between each MIDI clock signal, varied considerably.
All of this added up to a situation where the master clock in live was constantly wandering up and down by about 20bpm either way. Now remember I said that live was playing the drum tracks underneath? Live timestretches audio to the BPM of the master clock, so the whole track was constantly wavering in tempo. The whole thing sounded like an early 90s warehouse party aboard a pitching and rolling ship. Which is incidentally how I usually feel at warehouse parties.
At some point I plan to post the music with the code to my blog, along with all the other wacky shit I did at uni.
I’ve been always wondering, with all this variety, can the Game of Life model such a simple process as a circular wave? I can’t find anything about that.
"It is possible to build a pattern that acts like a finite state machine connected to two counters. This has the same computational power as a universal Turing machine, so the Game of Life is theoretically as powerful as any computer with unlimited memory and no time constraints: it is Turing complete."
See the excellent http://www.conwaylife.com/wiki/ for some ideas. That site also has its own RLE syntax for defining the patterns, so maybe you could crawl it and allow the user to use any of the 600-odd patterns they have on there.
That site brings back good memories from uni, I spent a long time converting iterations of GoL grids into MIDI notes and piping them to synths to make generative acid house.