PedSim allows you to run simplified pedestrian simulation in real time in Grasshopper for demonstration purpose. It can be integrated in your Rhino/GH workflow for multiple types of project.
In PedSim, People move from Start Gate to Destination Gate, following the best route, avoiding obstacles and other People. If they see a Target of their Interest, they will go to that Target, stay a while and re-route to the Destination Gate.
You can support PedSim and download a new version V0.10 (3/13/2019) here: http://bmc.xyz/l/EHvQMuaxY
You can also download an old version for free from the link below.
Since this is a minor update, people who downloaded V0.08 and V0.09 via Coffeelink can get a free download code via email.
V0.10 Updates (since V0.08):
- DeconstructPersonComponent: Added Person's ID output (useful if you want to visualize each person individually in Grasshopper)
- PedSimSystemComponent: Graph edges and vertices outputs are optional.
- GridPersonCounter: algorithm improvement
- (Internal) each person only keeps track of obstacles nearby (like V0.09 for Rhino 6).
- (Internal) engine updates people in parallel (like V0.09 for Rhino 6).
Simulation speed can increase up to 25% (comparing with V0.08; testing scene has 500 people and 24 obstacles).
- Offsetting obstacle curves have reliable result (visible from PedSimSystemComponent's preview).
For developing efficiency, Rhino 6 version maintenance has stopped. V0.10 is targeted to Rhino 5 but also compatible with Rhino 6.
File upgrade guide:
If you want to upgrade your GH definition from PedSim V0.08, you likely only need to replace the following components:
- Engine (PedSimSystemComponent)
V0.09 (Rhino 6, November 15, 2018) Updates:
- Added OrientParallel component for (faster) visualizing people with 3d mannequins
- Engine's performance is improved when there is a large number (hundreds) of people and obstacles
- GridPersonCounter component's performance is improved (uses parallel computing)
- GridSpeedCounter component's performance is improved (uses parallel computing)
- Fixed a bug that occasionally broke the simulation in November 10, 2018 Release.
V0.08 Updates :
- Gates and Targets can count visits
- Added GridSpeedCounter component that can output data for speed heat map
- Added DeconstructPersonRecord component that can gather statistics for each person from the Engine
Note that your old Grasshopper definitions might not work in the new version.
V 0.07 Updates:
Verson 0.07 has some significant changes. It keeps the modeling logic while providing more realistic simulation result. Please update to this version. Note that your old Grasshopper definitions will not work in the new version. You need to rebuild them.
- Added Anticipatory Collision Avoidance to Person's behavior. In addition to the particle dynamics collision behavior, a person anticipates imminent collision with a neighbor and avoids it early.
Settings component is simplified. Person-related settings are moved to PersonTemplate. This allows user to create people with different speed, size, etc. in one simulation.
Person generation control is changed. The rate of generation used to be determined by Generation Time in Gate and Probability in PersonTemplate. These two settings were not compatible. Now the rate of generation becomes a parameter of the engine and the Probability in PersonTemplate works effectively. Generation Time in Gate is removed.
GridPersonCounter now generates its own grid instead of using Grasshopper grid, and it runs faster.
Target can have multiple access points (Same functionality existed but the implementation had some flaws.). Each access point allows one Person to access at any time. Person will choose an access point with the shortest queue to visit. The access points of a target should be close together. When a person sees the tag of a target, the person will choose an access point and go there in a straight line.
Person now selects a target of interest with the shortest queue in sight to visit (used to select the closest target in sight).
PersonTemplate and Person now have a Need Value for each interest. If an interest is satisfied, the interest no longer has effect on the person's behavior. This means that a map can have many shops of the same kind, and a person does not need to visit every one that it sees. Interests and Need values can be displayed using DeconstructPerson component.
Target now has an optional visiting time parameter.
Target and Gate now have access radius parameter.
New component: PanoVision. PersonTemplate no longer have default vision. It accepts either FanVision or PanoVision.
DeconstructPerson output parameters changed.
If you downloaded the tool, welcome to join our discussion group: http://www.grasshopper3d.com/group/pedsim
- Peng Wang