105
Technical Research |Abstracting the Human Systems
104
Technical Research |Abstracting the Human Systems
a scalar variable that defines maximum force to limit the forces that steer these agents. (Fig. 2.3.16 - 17) This, along with the maximum speed defined from the last stage, creates the limits within the system that helps define the agents as humans within a crowd.
Setting this maximum force is not as straightforward as the maximum speed; in reality, humans in normal locomotion are steered by intent rather than forces. What this means is that this way of fabricating locomotion by calculating the steering force is simply a way of simulating the intent of the agents among the simulation; a way of translating human intent into numbers. These forces may exceed human limits if it represented things such as hurricane winds, or falling due to gravity, but if this model is utilizing forces as a representation for human steering, then it is logical to limit them as such. In doing so, acquiring this maximum force-defining number becomes a matter of trial and error to find a variable that portrays realistic movements of human steering.
Once these limits are set, one can begin manipulating the magnitudes of these vectors to create both attraction and repulsion forces of varying strength. In doing so, it becomes possible to create algorithms for simple actions such as seek and flee, to more complex actions such as collision avoidance, object avoidance, path following, arrival behaviors, as well as the three rules of flocking, all of which can be calculated into a steering force and accumulated into the current acceleration.[19] (Fig. 2.3.18 - 20)
Action Selection
The last level of defining pathfinding is the action selection, where the agents decide what actions to take depending on their desires. These actions are ultimately what calculates the final steering force vector every frame; therefore, this layer requires the most consideration for defining the simulation model of the system. Until this point, other than the human limits, the basic calculations from locomotion and steering are to a degree universal and can be applied to many types of simulation models. (Fig. 2.3.21) Therefore, at this stage, it becomes important to determine the elements that define this system as a crowd simulation.
While many of the actions mentioned in the last section (steering) may pertain to crowds, it is the manner in which to apply them that matters. The particles in a water simulation might only ‘desire’ that they do not occupy the same space as another particle, therefore, they would utilize functions for collision avoidance; the planets within a solar system simulation might desire attraction to the other planets while keeping their current momentum, therefore, they would utilize functions such as seek to calculate their trajectory; the vehicles in a traffic simulation might desire to follow a path as well as not collide with other vehicles, in which case they might utilize a combination of functions for path following and object avoidance. Compared to these examples, however, the people within a crowd simulation carry another layer of complexity. People generally have goals that they want
19 Shiffman, “Chapter 6. Autonomous Agents.”
The 3 rules of flocking is defined by Reynolds as Separation, Alignment, and Cohesion
From Shiffman, “Chapter 6. Autonomous Agents.”
Arriving behavior once they get to a certain distance from target location
From Shiffman, “Chapter 6. Autonomous Agents.”
Avoiding walking into walls
From Shiffman, “Chapter 6. Autonomous Agents.”
These same forces are useful in other types of simulations as well, such as planetary motion
From Daniel Shiffman, “Chapter 2. Forces,” in The Nature of Code (United States: D. Shiffman, 2012), accessed October 17, 2019, https://natureofcode.com/book/chapter-2-forces/.