We are about to switch to a new forum software. Until then we have removed the registration on this forum.
There's an automaton called Yin Yang Fire. It was discovered about 15 years ago by one Jack Ruijs, who still refuses to share the algorithm.
http://www.ramos.nl/yyfpics.html
He had this to say about it in 2004:
Occasionally I get emails about the time it takes before anything new is mentioned on the Yin Yang Fire site and that I am egocentric and arrogant because I keep the algorithm to myself. Maybe this is true, but there is some reason for this. After discovering the Yin Yang Fire effect, I tried to contact several universities/persons that are working on the field of self organizing system / computer-algorithms etc.., but apart from a reaction from one of the greatest minds on a related field, I am still waiting for the first reaction from the "lesser" persons (talking about arrogance). I stopped the fruitless quest trying to contact other people and decided to do everything myself. I also have mixed feelings about the scientific world, I embrace the thought that although science is very beautiful, the scientific world itself is not. The greatest scientific discoveries are made by neglecting the scientific world!
I recently wrote him to see if he had changed his mind. After 15 years. He didn't respond.
Jerk. (EDIT: I really regret this language. Sorry Jack.)
It hasn't exactly been a thorn in my side, but it has been an annoyance from time to time over the last decade or so -- knowing there's a cool discovery, but the one person who knows how it works, despite having absolutely no good reason to hide it, won't share it. He thinks he's such a scientist but he acts like a crackpot. It has really really irked me (perhaps unreasonably).
So I reverse-engineered it. Here is the Processing code. I made some small untested changes so the code makes sense out of context. Just hit me up if it doesn't work right.
// The number of states is 64. In memory they take the values 0-63.
int me = cellsBuffer[x][y];
int result = me;
// cellSum is the sum of the states of the 8 neighbors plus the central cell
// numStates = 64
if (me * 9 + 2 >= cellSum) {
result = result - 1;
if (result < 0) {
result = numStates - 1;
}
}
else {
result = me + 1;
}
return result;
So suck it Jack Ruijs. Now everyone knows, after 15 years of you being a douchebag.
Douchebag. (EDIT: I still protest your attitude, but the name calling was over the top. I'm really sorry.)
Comments
now that was funny :)
Here's the whole program I'm using, adapted from the cellular automaton example in the tutorials.
looks good