Conway's Game of Life, resurrected
  • Hi everybody,

    I've finally started making progress on the Conway's Game of Life patch I was working on.. 2 years ago (yeesh).

    At that point I had a 5x5 game wired up manually, but wanted to write a program to generate bigger ones.

    Here's a screenshot of a 32x32: http://take.ms/Hp9yd and I'll attach an 8x8.

    I've posted the code here: https://github.com/jjthrash/conway-audulus

    A little more about Conway's Game of Life: https://en.wikipedia.org/wiki/Conway's_Game_of_Life

    To use it, stop the clock, punch a few of the buttons to light things up, then start the clock again.

    It is currently only a visual patch, but I'd like to figure out a way to extract information from it for things like sequencers. At one point I was playing with the interlacer module Mark made, but it was tricky. Now that I have code to wire things up for me it might be easier.
    conway-8x8.audulus
    949K
  • PS - a rough count of the 32x32 one shows 11264 wires just to hook up the individual Conway nodes.
  • PPS - I've been using this on my MacBook Pro.. haven't tried on an iPad yet.. I doubt the 32x32 would work very well there. ;)
  • YESSSSS Welcome back jj! Long time no see :) Crazy that was so long ago. Thank you for posting this!
  • Thanks! I'm tinkering with beefing up the Interlace/Deinterlace idea to support an 8x8 Conway displaying on a CRT node, acting as a sequencer, etc. I've seen a little bit of activity on this sort of thing.. is the state of the art still a phasor driving mux and S&H nodes?
  • OK, I have an 8x8 Conway connecting to an 8x8 CRT: http://take.ms/XhIIv

    This means I also have interlace 64 and deinterlace 64 nodes on the inside. Still playing around with the possibilities, but I'm curious if anybody else wants to play with these.
    conway64.audulus
    1M
  • Playing with the idea of generating images on the CRT mathematically (i.e. without using an interlace-64 node), attached.
    math-to-crt.audulus
    137K
  • Here's a 16x16 display I've been playing with. Not too useful at the moment, but it might save you some work. Clocked S&H internally.
    16x16 display.audulus
    1M
  • Wow, nice. Are you hand-wiring that? As for saving me work.. I've already done the programming part, but I'm going to poke through your internals to learn.
  • It took a while to get all the lights in the right spots so I thought if you wanted to expand it might save you some effort. Each row has a "driver" module that contains a select line for the column, a clock for the S&H and a data line for each color. I've been experimenting with different schemes for refresh so the knobs may or may not do anything at this point. Just the skeleton of a finished module at this point, but if you can use any part of it, please feel free. I haven't been able to get a raster style display to run fast enough to do what I originally had in mind, but eventually I plan to build the ultimate TUFLM (totally useless flashing lights module)
  • Thanks. If you end up playing with the patches above, let me know what you think!
  • To explain how the interlace/deinterlace stuff works, the idea is that at any point, the interlaced signal contains:
    - left channel: the index of the current value
    - right channel: the value that corresponds to the index

    E.g. if you're interlacing 64 values and only the 13th is on, then the left channel will ramp 0.00->63.999 rapidly (10KHz by default), and only when the left channel is 12 (0-indexed) will the right channel be on.

    The deinterlacer works similarly to yours in that there are 64 S&H nodes keeping track of the most recently deinterlaced values.

    For the CRT node I included, it just deinterlaces and spits the output into light nodes. I'd like to move them to RGB nodes, since the light node only goes on or off and only has one color. Not sure how to do that just yet.