Repast is a free, open source open source library of classes for creating, running, displaying and collecting data from agent based simulations. Repast is fully Object Oriented (allows for software modularisation) and was created at the University of Chicago. Open source is important issue (at least to me) as if something does not exist, you can create it or if there is a problem can alter or fix it.
Repast seeks to support the development of extremely flexible models of agents with an emphasis on social interactions. Users build simulations by incorporating Repast library components into their own programs or by using the visual Repast for Python Scripting environment. Standardised tools/features include: the toolbar and GUI for manipulating parameters, outputting data (e.g. histograms, time series ploys) and displaying agent interaction. These collections of tools are extremely useful for simulation modelling but they don’t have to be used. In my view this makes Repast extremely flexible and extendable. You still need to program (so some programming experience is necessary or a willingness to learn), but less time is given to GUI development therefore more time for model development.