To the uninitiated, Wireworld is a 2D cellular automaton, sort of a straight-laced adaptation to Conway's Game of Life.
It's like... Life on Rails. Most of the cells never change, and the ones that do never increase in population.
"Dead" cells stay dead.
All "tail" cells become "wire" cells.
All "head" cells become "tail" cells.
And all "wire" cells with one or two head neighbors get "excited" and become head cells.
So it all resembles circuitry to some extent.
You can imagine, this ruleset also makes Wireworld a great candidate for certain strategies of performance optimization.
ALL tails become wires. ALL heads become tails. ALL dead cells stay dead. The hardest initial problem to tackle is efficiently determining which wire cells become heads.
My decade-old implementation uses linked lists to represent these sets.
Most of the patterns in Wireworld are in a sort of lock-step rhythm with one another— not out of necessity, but for the convenience of building complex systems. Some folks build circuits that have a "period" of three or four— representing the spacing between electrons on a wire. The Wireworld computer has a period of six.
In theory, detecting these cycles and proving that they're permanent would allow me to replace regions of cells with simplified equivalents.
@rezmason Awesome wireworld.
I am a big fan of that CA, I recently played with implementing it in Compute Shaders in 3D.
Implementing it in parallel processing was fun.
Was my experimentation grounds for voxel rendering techniques and figuring out what a 3D texture is.
Merveilles is a community project aimed at the establishment of new ways of speaking, seeing and organizing information — A culture that seeks augmentation through the arts of engineering and design. A warm welcome to any like-minded people who feel these ideals resonate with them.