Attached is a sample model that tracks social distancing metrics. I just grabbed one of our testing models, so it's not necessarily eye popping as far as visuals, but the basic concepts of social distancing metric tracking are in there.
This model is implemented in the new 20.2 beta. It uses the new Agent module to detect proximity between objects. I added a proximity system, and added each operator as an agent in the system.
I created an object that draws a "heat map" where proximity points happen. This is a visual tool called "HeatMap" in the model. If you send a message to the object it will add a "hot point" at the location of the sending object. I implemented the object's OnReset, OnMessage, and OnDraw triggers to do this.
Once the heat map is set up, I have the proximity system send a message to the HeatMap from the involved agent object as part of it OnEnterProximity trigger.
Second, I do some statistical tracking using a statistics collector named ProximityTimes. This listens to the agent proximity system's OnEnterProximity and OnExitProximity events, and collects data accordingly. The trickiest part to setting this up was sampling the actual event. For now (hopefully we'll get a better system in the future) you have to sample the event in the tree. In the Events tab of the statistics collector, press the sampler button, then in the tree navigate to the node at MODEL:/ProximitySystem>variables/behaviors/Proximity Behavior and hover the cursor over it to get the list of events.
The ProximityTimes statistics collector collects individual times. This allowed me to add the "Time In Proximity" dashboard chart. For the other charts, I needed a calculated table to aggregate the values. The ProximityAggregates table aggregates the data needed for the other three dashboard charts: Total Proximity Time, Proximity Count, and Average Time In Proximity.
The 20.2 beta is available for download. You can find it by clicking the More Versions button.
https://answers.flexsim.com/articles/87831/flexsim-2020-update-2-beta-available.html
Thanks. I was able to download it. It seems like you guys replaced the collision detection with proximity systems? Am I still able to draw a collision sphere around the object like before? I couldn't find the option anywhere. I could only change the color of the operator on proximity.
@matthew.gillespie @anthony.johnson Could you also provide an example of using the Agent Force system to enforce social distancing? @logan.gold
It doesn't draw collision spheres, but it can draw a circle around agents.
You check the Show Agent State Info box.
As far as an agent force system for enforcing social distancing goes, we could provide an example, but I doubt that it would really be very accurate, and, consequently, helpful. Social force models can reasonably approximate how people may travel in a crowd, but I don't know that they represent travel to a precise enough degree that social distancing statistics would be reliable enough to depend on, especially given all of the arbitrary values that a modeler needs to put in to define the various forces. I could implement a model with certain arbitrarily defined force values that results in very good social distancing behavior. Then I could potentially change one single force value in that model, say changing a value of 4 to a value of 2 (2 what?), and get a model with very bad social distancing. Who knows which of those force values, 4 or 2, represents the actual way that a person behaves?
Anyway, long story short, we could implement a social force social distancing model, but I would very much distrust the results that any such model would give me. The best mechanism for analyzing the effect of process design on social distancing is through comparative analysis, and this can be done best using the model attached above. Adding a social force component to this would be add best marginally helpful and at worst incredibly deceptive. Obviously, this is my own opinion. Others might disagree.