A social force behavior is a behavior that can be activated on agents in an agent system. Social force behaviors apply sets of forces on agents within a system to 'push' the agents in different directions based on various factors. A social force behavior is made up of one or more forces. Forces are calculated individually, and then aggregated into a cumulative force affecting the agent.
Example forces include things like attractive forces, which motivate an agent to 'stay in the group', or repulsive forces, which motivate an agent to not get too close to its neighbors. You may have an alignment force that motivates the agent to move in the same direction as other agents. You also may have a goal-based force that motivates the agent to move toward a destination or along an A* path.
When each force of an agent is calculated and aggregated, the cumulative force will effectively cause the agent to accelerate in the direction of the force. If the agent is a task executer, then the acceleration will be bounded by the task executer's acceleration or deceleration property, depending on whether the force is aligned with, or against, the agent's current direction of motion. The speed of the agent will also be bounded by the max speed of the task executer.
The Behaviors Tab has the following Properties:
Defines how often the system will update the force equations based on the selected time unit.
If this box is checked, then instead of applying the cumulative force as an acceleration on the agent, the behavior will instead immediately set the agent's speed to the result force. In other words, when the box is checked, the cumulatively calculated force is not technically a force, but a resultant agent speed. Thus, 'momentum' of the agent, i.e. its previous speed, is disregarded, and the agent gets a newly calculated speed on each update interval.
There are two options:
Clicking the button will open a menu that will allow the selection and application of a new force to the system. For a reference on the various forces available: Social Forces.
Active Rules can be used to define criteria for applying a force. For example, you might want a force to only be applied relative to certain types of neighbors, such neighbors who have the same behavior activated.
Clicking the button will create a new active rule. Once an active rule is selected, the name of the rule will be displayed in the Active Rules field. The rule can be removed by clicking the X button next to the name of the rule. The rules and categories are as follows:
Self-based active rules rules apply to the agent based upon its own properties. There are the following options:
Neighbor-based active rules apply based upon certain neighbors. There are the following options: