Okay, I think I see. I'm familiar with the broad ideas, but the specifics are new to me. Thanks for explaining. And I tried changing it to what you have, and it works perfectly. I really can't thank you enough. My professor has congratulated me after seeing it in action (though it didn't have these later features), but I know it wasn't simply me that did all this. Thanks again. And with that...I think stage 2 is somewhat complete. I want to go back and get the CA without any neighbor effects working (what I initially made with the GridMake script). Then I want to get the Moore neighborhood working (which should be simple I imagine--just changing a few things here and there). After that I think I'll try to get the UI stuff cleaned up--everything is scaled to the resolution of the machine I started the project on, and I need to fix that, along with removing old things and changing text, etc. After all of that, however, the next and possibly final stage is to replicate his most advanced set of CA models, where the agents can actually move throughout the grid. They have a "random walk" ability (probability based of course). Additionally, there can be gravitational effects, or simply a "pull" on the random walk probability (I imagine it could be in any direction). Additionally, there's a breaking/joining effect where agents can clump together if they collide. My professor actually used this to model the surface of a liquid--which is not simply a liquid, but is actually little molecules entering and leaving the gas phase constantly (unfortunately that's not free to view, but if you're interested in seeing the paper just PM me). Relevant picture: Anyway, that's the next big stage. A few questions: one thing my professor has talked to me about is the possibility of having a "prebuilt" grid, or one that's custom-built. Imagine a large circular "object" placed in the middle of the grid. Is something like this possible? It's not something I would want to work on anytime soon, but if it's possible I want to go for it eventually. Second: is it possible to make the application multi-threaded? Most things are sequential or linear, but the iterative process of checking each individual cell per iteration could probably be split between threads. I could stand to have the current way I do things sped up, and it would be nice to be able to do larger sizes (I use 100 x 100 mainly, but 1000 x 1000 would be nice) as well. Third: do you have any idea how I might go about setting this up to read the settings from a file? I've got it all set up for the user to input everything (somewhat tediously, since there's no way to properly tab through things), but if the user could just have a file they modify and then read from that to get all of the necessary information it would probably save a bit of time and decrease the chance of errors re-entering information. None of these are a big concern. I would personally rate their importance as 2>3>1, though as things stand I don't need any of them right now. In any case I'm going to return to the initial CA type and get that working, as well as the Moore neighborhood.