PedSim allows you to run simplified pedestrian simulation in real time in Grasshopper. 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.
Voiced introduction video available below.
You can donate two coffees to support PedSim and download a new version V0.12.3 (6/23/2019) and six well-packaged examples here: https://www.buymeacoffee.com/l/b3w9MKaY8
People who downloaded previous versions in the past year via Coffeelink can get a free download code via email.
- PersonTemplate info is available in DeconstructPersonComponent
PersonTrace is available in DeconstructPersonComponent (You can draw trace in real time!)
SystemSettingsComponent: added a boolean input EnableTrace
More obstacle parameters are available in SystemSettingsComponent
Initial routes are only calculated once and reused for better performance (considerably faster for simulation with lots of people)
Rhino 6 version maintenance stopped since V0.10. V0.10 and V0.12.3 are 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, please replace the following components:
- Engine (PedSimSystemComponent)
If you want to upgrade your GH definition from PedSim V0.10, please replace the following components:
- Engine (PedSimSystemComponent)
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).
Bug fixe: Offsetting obstacle curves have reliable result (visible from PedSimSystemComponent's preview).
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
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
Proper credits should be included wherever the work made with PedSim is displayed. Please use the phrase "Made with PedSim" and the PedSim logo (available below).
- Peng Wang