Well, most is done by Zach, but replicate the same behaviour isnt easy, first the multiple states a cell can be (hard to store in a plain array), and then the simulation itself, with its delays between transistors and so.
I'll be pleased if only you add the grid resize, "puzzles/levels" can be saved to a file to be loaded later and some kind of preconfigured input signal
And if you finish all those and you want to do more, maybe add more layers or interconnectivity between "levels" to share the outputs as inputs for the next one. But this is an extra xD
I'll be waiting for a thread, blog or whatever you post here. As I said, I'm most interested in the technnical part xD