Programmers everywhere are familiar with Conway’s Game of Life: whether they’ve written a version themselves or simply seen the mesmerizing action resulting from the cellular automata, it’s a household name in all homes where code is spoken. On Saturday April 11th, 2020 its inventor and namesake, John Horton Conway passed away from COVID-19 at the age of 82.
Born in Liverpool, Conway received his PhD in mathematics in 1964 from Gonville and Caius College, Cambridge. He accepted a position at Sidney Sussex College, Cambridge which he held until joining the faculty of Princeton University in 1987. A brilliant mathematician, he received numerous awards and was well known for his work in combinatorial game theory, group theory, and theoretical physics.
Many readers will be familiar with his Doomsday algorithm which can be used to deduce the day of the week for any given date in your head. But by far the rockstar mathematics moment of developing Conway’s Game of Life in 1970 cements him a perpetual place of legend in computing lore. His original work on the concept used pencil and paper as the computing revolution had yet to make digital resources easily available, even to mathematics researchers like Conway.
The game uses an infinite grid of squares where all of the edges of the grid wrap around. Four simple rules (which can be boiled down to three if you’re clever) determine which cells live and which cells die during each frame of the “game”. The only parameters that are needed are the number and position of living cells at the start of the game, and the delay between each game frame. But the effect of this simplicity is not to be understated. The game can be coded by a novice — and it’s become a common challenge in University course work. Small errors, or intentional tweaks, in the implementation have profound effects on behavior of the game. And the effect on the person programming it for the first time can be long lasting. You could call it a mathematics gateway drug, grabbing the curiosity of the unsuspecting mind and pulling it down the rabbit hole of advanced mathematics discovery.
We’d love to celebrate his life by hearing your own stories of programming the Game of Life in the comments below. If you haven’t yet had the pleasure, now’s a great time to take on the challenge.
[Game of Life example shown in this article is John Conway’s Game of Life – 1.0 written in Python by Nick Jarvis and Nick Wayne]
Well all know cellular automata from Conway’s Game of Life which simulates cellular evolution using rules based on the state of all eight adjacent cells. [Gavin] has been having fun playing with elementary cellular automata in his spare time. Unlike Conway’s Game, elementary automata uses just the left and right neighbors of a cell to determine the next cell ahead in the row. Despite this comparative simplicity, some really complex patterns emerge, including a Turing-complete one.
[Gavin] started off doing the calculations by hand for fun. He made some nice worksheets for this. As we can easily imagine, doing the calculations by hand got boring fast. It wasn’t long before his thoughts turned to automating his cellular automata. So, he put together an automatic cellular automator. (We admit, we are having a bit of fun with this.)
This could have been a quick software project but half the fun is seeing the simulations on a purpose-built ecosystem. The files to build the device are hosted on Thingiverse. Like other cellular automata projects, it uses LED matrices to display the data. An Arduino acts as the brain and some really cool retro switches from the world’s most ridiculously organized electronics collection finish the look of the project.
To use, enter the starting condition with the switches at the bottom. The code on the Arduino then computes and displays the pattern on the matrix. Pretty cool and way faster than doing it by hand.
Our Hackaday Chief [Mike] sent me an e-mail the other day with a link to the Belgrade Hackaday Badge simulator. He clearly wanted me to enter something into the demo scene competition. The good news is that because of the simulator, you didn’t have to leave your desk to participate. The bad news is that I had very little time left at the end of the month, so I wanted to do something appealing but it had to be fairly easy to roll out. I wound up doing a very quick project but it had a few fine points that I thought I’d share. The end goal was to have an interesting display of Conway’s game of life on the badge.
By the way, there was a completely different project with the same goal by [Jeremias] on Hackaday.io. As far as I know, this was just the result of two people setting out to do the same thing. You’ll see the user interface is a good bit different, so you might see which you prefer.
If you haven’t seen it, the real badge is below. The emulator, of course, just runs as a window on your PC. For those that will be at the conference, or just want to program closer to the actual hardware, there is now a preconfigured MPLABX framework for the PIC18LF25K50 and the bootloader/kernel running on this badge.
Continue reading “That’s Life…on A Hackaday Badge”
[Neven Boyanov] says there’s nothing special about Tinusaur, the bite-sized platform for learning and teaching the joys of programming AVRs. But if you’re dying to gain a deeper understanding of your Arduino or are looking to teach someone else the basics, you may disagree with that assessment.
Tinusaur is easy to assemble and contains only the components necessary for ATTiny13/25/45/85 operation (the kit comes with an ’85). [Neven] saved space and memory by forgoing USB voltage regulator. An optional button cell mount and jumper are included in the kit.
[Neven] is selling boards and kits through the Tinusaur site, or you can get the board from a few 3rd party vendors. His site has some projects and useful guides for assembling and driving your Tinusaur. He recently programmed it to play Conway’s Game of Life on an 8×8 LED matrix. If you’re looking for the zero-entry side of the AVR swimming pool, you can program it from the Arduino IDE. Be warned, though; they aren’t fully compatible.
The project featured in this post is an entry in The Hackaday Prize. Build something awesome and win a trip to space or hundreds of other prizes.
[Dmitry] is a Moscow based artist. He’s also a an avid circuit bender and hardware hacker. His latest project is entitled “signes de vie” or signs of life. [Dmitry] started with an Arduino and an old thermal fax machine. He removed the thermal print head and replaced it with a row of 10 LEDs. These old fax machines would use rolls of paper, cutting each sheet of as it was printed. [Dmitry] kept the roll system, but treated his paper with fluorescent dye. As the paper passes under the LEDs, it pauses for a moment and the LEDs are flashed. This causes a ghostly glow to remain on the paper for several minutes as the next rows are printed.
While [Dmitry] could have made this the world’s biggest tweet printer, he chose to go a more mathematical route. Each printed row of dots represents a generation of one-dimensional cellular automata. Cellular automation is a mathematical model of generations of cells. All cells exist on a grid, and can be alive or dead. The number of neighboring live cells determines if any given cell will live on to the next generation. One common implementation of cellular automation is Conway’s Game of Life. In [Dmitry’s] implementation, a bank of switches select which of the 256 common cellular automata rules controls the colony. A second bank selects how long each generation lasts – from 1 to 18 seconds.
We really like how the paper becomes a printed, yet temporary history of the colony. [Dmitry] doesn’t say if he’s using a single long strip of paper, or if he created a loop. We’re hoping for the latter. Finally a useful implementation of the old black fax loop prank.
Continue reading “Old Fax Machine Shows Signs Of Life”
[Alex] wanted to make an LED clock. But simply making an LED array clock was far too easy — so he decided to make it follow some interesting rules…
Ever heard of John Conway’s Game of Life? It’s quite simple — there are four rules.
- Any live cell with fewer than two live neighbours dies, as if caused by under-population.
- Any live cell with two or three live neighbours lives on to the next generation.
- Any live cell with more than three live neighbours dies, as if by overcrowding.
- Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
So [Alex] decided to make his clock LED matrix follow these rules, with lit pixels representing life. Every minute, on the minute, the time is displayed. But as soon as it is displayed, the rules take over, and the display disintegrates, following the rules of the Game of Life. It makes for an very interesting display that’s just waiting to be scaled up to a larger size!
He’s done a great job writing it up on his blog, and has included his code as well — so if you’re so inclined, take a look! If not, stick around after the break to see the clock in action.
Continue reading “Game Of Life Clock”
[100uf] built an LED matrix shield for the MSP430 launchpad. His goal with this design was to have it play Conway’s Game of Life. It does just that, as you can see in the clip after the break. But it’s just waiting to learn some more tricks. After he tires of watching the cellular automaton he can try his hand at making some LED pendant animations.
As you can tell, the board was made in his home workshop. It’s not etched, but milled using the CNC machine shown in this image gallery. This is a single-sided PCB, which works well enough for the surface mount components and the downward facing pin sockets. But we wonder how difficult it was to solder the legs of that 8×8 LED matrix. It does have plastic feet at each corner that serve as standoffs to separate the body from the copper layer. But it still looks like a tight space into which he needed to get his iron and some solder.
Continue reading “MSP430 Launchpad Game Of Life Shield”