If our goal is to model cognition in complex environments, we need a way to create models of those environments as well. This is because we need to be able to place our cognitive model inside that environment to see how it behaves, so that its behaviour can be compared to real behaviour.
In CCMSuite, any Python program can be used as the environment. This means that expert programmers are free to do whatever they want to create complex environments. However, the whole point of CCMSuite is to allow non-expert programmers to create cognitive models, so this also means that CCMSuite should provide tools for modelling an environment as well as for modelling a cognitive agent.
To do this, CCMSuite takes an interesting, and somewhat surprising approach: There is no difference between the model and the environment. That is, we use exactly the same techniques when modelling an agent as when modelling the environment. Anything that can be done in an agent can also be done in the environment.
But, you ask, doesn't an environment require special sorts of modelling tools? Yes, fair enough. Just like we have special declarative memory modules for different situations, we're probably going to want to have special sorts of environment modules for different situations. The one we're going to focus on for this tutorial is the Grid World.
Grid Worlds
A Grid World (a.k.a. a Cellular Automata World) is one that is composed of a whole bunch of blocks (a.k.a. Cells). Each of these blocks is a different location. We can put anything we want at each location; the main limitation is that we don't care about where within a cell an item is. In other words, you can't be halfway between two cells, or in the top-right of a cell. This means that motion will be much more discrete than in real life: it's like a board game.
For lots more information about Grid Worlds, see this lecture from my modelling course.