Detailed Explanation of Main Processes/Events
Screen shots with explanations
Project Design Details
Home - Scoreboard
Home - Cellspace
Home - Cell
Home - Citizen
Home - Configure
Home - History
The Scoreboard is the first panel in the tabbed-pane interface of the simulation. It provides an overview of the state of the simulation and is perhaps the easiest way of observing patterns of interest to the observer. It currently displays but is by no means restricted to five rows of data.
The first of these show the density of population on the grid, number of births since genesis, births per cycle, count of the total dead and individual types of death.
The second row displays averages of some of the more obvious citizen attributes like vision, available sugar & spice levels, metabolism rates, lifespan and age.
The subsequent rows show various population distributions: seasonal, sex-wise, age-based, genetic and by personality-type.
The final distribution shows time slices in seconds useed by each of the major processes.
Bear in mind that there is nothing set about what data is represented on the scoreboard, the current display is just one person's guesstimate of what is relevant. We can just as easily define and select other pieces of data for display. Moreover, we are not restricted to a single scoreboard and could just as easily segregate economic, genetic and cultural data into separate panels.
The Cellspace
The environment in this project or Cellspace posseses some general properties that constrain the behavior of its sub-components and inhabitants. In addition to their number, the Cellspace also controls the overall fertility of sugar & spice distributions on the grid. For eg., A sugar fertility rate of 0.8 determines that 80% of the cells on the grid possess the capacity to grow sugar, the other 20% would typically remain barren through the remainder of the simulation.
The Cellspace also determines approximately, the initial density of the citizen population on the grid. Another attribute controlled by the Cellspace is the length of each season. Finally, the Cellspace controls the activation of various processes that comprise the activities on the Sugarscape. These options can be accessed via the 'Cellspace' tab of the program's GUI.
The Cell
The Cell is the unit of location on the Cellspace. A citizen occupies all of one cell for now, no sharing of cells is permitted among citizens. In future this may change, for eg., members of a family could share the same cell or a citizen having collected ample reserves could settle down in a cell and invite prospective mates to share the cell in a long-term union.
Cells have the following attributes: sugar, spice & pollution. Sugar and spice are harvested by citizens visiting the cell. Both are renewable resources and once harvested grow back at a pace determined by the executor of the simulation. The visual representation depicts the amount of sugar and spice available in cells as horizontal bars attached to two ends of the cell. The thickness of the bars serve as approximations of the amount of each resource. Cells may also be barren of one or both resource growing capability. This property is randomly determined during creation of the cells. The percentage of cells barren of sugar & spice are determined by the user and can be set/changed at the start of each run of the simulation. These and other cell properties can be adjusted via the GUI's Cell tab.
The Citizen
The Citizen is the most complex object on the Sugarscape. While it is modeled as an artificially intelligent agent, its intelligence is bounded or limited by past experiences and memories(not implemented yet), the area visible at presentand information gained via contact with other agents(not implemented yet).
The citizen is the occupant of the Sugarscape, rather of individual cells on it. The Sugarscape typically hosts a number of citizens whose initial density on the grid is determined by the user. Each citizen possesses the following properties:
id unique descriptor identifying the citizen.
family shared name identifying either paternal or maternal lineage.
parents male & female citizens, whose mating resulted and who passed on a mix of their attributes to their offspring. The first generation of citizens lack parents.
birthYear marking the start of their lifecycle on the Sugarscape.
location specifies their current address on the Sugarscape.
inheritance initial allocation of sugar and spice received from parents.
sugar the total hoard of sugar available for consumption - is determined as the sum of a citizen's inheritance and the net sugar gathered, consumed & traded while roaming the landscape.
spice the total hoard of spice available for consumption - is determined as the sum of a citizen's inheritance and the net spice gathered, consumed & traded while roaming the landscape.
The Configure tab provides detailed tracking of one or more processes on the Sugarscape. An observer can use it to examine simulations in minute detail down to the actions of individual agents. Developers and testers can use it to verify behavior in concord with pre-determined patterns.
Modularity has been stressed to enable tracking both at the process or sub-process levels. Naturally, enabling tracking for a process automatically enables tracking for all its components regardless of their individual activation statuses. Activation is achieved by simply typing 'true' or 'false' against each process in the 'Configure' tab of the GUI.
Note: The output from each process is redirected to the multi-line text area of the 'History' panel. Moreover, to avoid overloading memory, output is restricted to the current cycle of the simulation. It is advisable to step through cycles using the 'Next' button when feedback has been requested from one or more processes.
The 'History' tab provides a secondary means of communication between the user and the simulation. It comprises two components, one for displaying feedback from the simulation to the user, the other to relay instructions from the user to the simulation.
Feedback from the simulation includes: acknowledgement of user commands, response to requests for information, feedback from active processes and help text. All this is displayed in a multi-line text area while the user communicates via the single-line text field at the bottom of this panel. For eg., type "Help" and press 'Enter' to display a list of commands that can be used to control the simulation from the command line.
The source code for Sugarscape is released under the GNU General Public License & can be downloaded atSpace reserved for cute bit of wisdom that I would like to share - abraham kannankeril