(by Gradient12)
PedSim® is the first pedestrian simulation plug-in in Grasshopper.
Support Email

PedSim® is the first pedestrian simulation plug-in in Grasshopper.

In PedSim®, People move from Start Gate to Destination Gate, following the shortest 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.

Watch a global webinar recording from September 2020 below in case you missed it!

If you download the .gha file from here, please visit to download the examples.

PedSim® is for personal use only. You should not use it for any commercial purposes.

As of May, 2022, PedSim® development is inactive. Please consider using PedSim® Pro instead.

Quick tip: Do not put any Gates or Targets inside an obstacle - they must be OUTSIDE all obstacles! This is the most common mistake people make when modeling. Even some third-party online tutorials get this wrong (Take third-party tutorials with a grain of salt :)

V0.13 Updates (fully compatible with V0.12.3 files):

  1. Fixed an error in integration that may cause inaccuracy.

V0.12.3 Updates:

  1. PersonTemplate info is available in DeconstructPersonComponent
  2. PersonTrace is available in DeconstructPersonComponent (You can draw trace in real time!)

  3. SystemSettingsComponent: added a boolean input EnableTrace

  4. More obstacle parameters are available in SystemSettingsComponent

  5. 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 upgrade your GH definition from V0.10, please replace the following components:

  • Engine (PedSimSystemComponent)
  • DeconstructPersonComponent
  • SystemSettingsComponent

If you upgrade your GH definition from an older version, please replace all PedSim® components.


V0.10 Updates (since V0.08):

  1. DeconstructPersonComponent: Added Person's ID output (useful if you want to visualize each person individually in Grasshopper)
  2. PedSimSystemComponent: Graph edges and vertices outputs are optional.
  3. GridPersonCounter: algorithm improvement
  4. (Internal) each person only keeps track of obstacles nearby (like V0.09 for Rhino 6).
  5. (Internal) engine updates people in parallel (like V0.09 for Rhino 6).
  6. Bug fixe: Offsetting obstacle curves have reliable result (visible from PedSimSystemComponent's preview).

V0.09 (Rhino 6, November 15, 2018) Updates:

  1. Added OrientParallel component for (faster) visualizing people with 3d mannequins
  2. Engine's performance is improved when there is a large number (hundreds) of people and obstacles
  3. GridPersonCounter component's performance is improved (uses parallel computing)
  4. GridSpeedCounter component's performance is improved (uses parallel computing)
  5. Fixed a bug that occasionally broke the simulation in November 10, 2018 Release. 

V0.08 Updates :

  1. Gates and Targets can count visits
  2. Added GridSpeedCounter component that can output data for speed heat map
  3. 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.

  1. 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.
  2. 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.

  3. 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.

  4. GridPersonCounter now generates its own grid instead of using Grasshopper grid, and it runs faster.

  5. 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.

  6. Person now selects a target of interest with the shortest queue in sight to visit (used to select the closest target in sight).

  7. 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.

  8. Target now has an optional visiting time parameter.

  9. Target and Gate now have access radius parameter.

  10. New component: PanoVision. PersonTemplate no longer have default vision. It accepts either FanVision or PanoVision.

  11. DeconstructPerson output parameters changed.

  12. Bug fixes.

If you downloaded the tool, welcome to join our discussion group:

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).