SIMOC is an agent-based model (ABM). This means that agents are defined as semi-autonomous actors in the model. For each time-step (one Earth hour in SIMOC), all agents are given an opportunity (in a random order) to process their Currencies of Exchange. For example, Human agents take in oxygen, water, and food, and give off carbon dioxide, water vapor, and liquid and solid waste. Plant agents, on the other hand, take in carbon dioxide and water, and give off oxygen.
Currencies of Exchange are all the elements passed between and/or consumed by the agents, and include: O2 (oxygen), CO2 (carbon dioxide), H2O (water), N2 (nitrogen), CH4 (methane), H2 (free hydrogen), potable and waste water and water vapor, and electric power. Food (brought from Earth) and biomass (edible, inedible) generated by the plants are also tracked in SIMOC with each and every time step.
In a text file called the “agent_description” all agents are defined and loaded at the launch of SIMOC. Advanced users can edit these agent descriptions using a web editor to modify existing agents, delete, or add agents of their own design.
Each agent’s behavior is governed by the exchange of currencies and by a mathematical function that governs the rate of exchange over time. For example, when the sun rises early in the morning, the index of refraction (angle at which the light hits a surface) is very low. Therefore, the amount of electrical energy the panel produces is lower than the full potential. But as the sun approaches noon, the light enters the solar panel closer to a perpendicular angle. Therefore the panel is able to convert more light into electricity. This function, when mapped against the apparent motion of the sun in the sky, follows a normal, or bell curve.
Each agent in SIMOC performs its currency exchange as a normal, sine, sigmoid, log, or exponential function. In fact, multiple functions can govern agent behavior, such as a plant which grows according to the daily normal light curve, and a sigmoid function over its life, from seed to harvest.
If you pay attention to the graphs and values, you will begin to see how the interaction of a few, relatively simple agents leads to non-linear, potentially chaotic behavior. For the inhabitants to survive, you need to discover stable conditions for the duration of the mission.