Skip to content

Pedestrian Flow Heatmap

The pedestrian flow heatmap simulates how visitors move through an event floor plan. It highlights aisles and corridors that are likely to become congested, helping you evaluate and optimise a layout before the event takes place.

What It Does

Given a set of entry points (doors) and a drawing that contains stands with stand numbers, the heatmap engine:

  1. Converts your entities into an occupancy grid — a raster representation of the floor where blocked cells are walls and free cells are walkable space.
  2. Runs a congestion-aware pathfinding simulation from each entry point to every stand.
  3. Accumulates visit counts on the grid cells along each route.
  4. Renders the result as a colour overlay on the canvas, ranging from cool (low traffic) to hot (high traffic).

The output tells you which corridors carry the most foot traffic given the layout and where bottlenecks are likely to form.

Requirements

Before running the heatmap:

  • Every stand you want included in the simulation must have a stand number set on its entity (via the Properties panel or imported from PlanExpo). Entities without a stand number are treated as obstacles, not destinations.
  • At least one door marker must be placed on the drawing. Door markers are access points that represent visitor entry and exit locations.
  • The drawing must have visible, closed entities that define the stand footprints (rectangles, closed polylines, hatches, or circles).

Running the Heatmap

  1. Place door markers at the entry points of the venue. Use the door marker tool (accessible from the toolbar or via Tools > Pedestrian Markers).
  2. Make sure your stands have stand numbers assigned.
  3. Open Analyse > Pedestrian Flow Heatmap from the menu bar.
  4. PlanCAD computes the heatmap in the background. For large plans the computation may take a few seconds; the UI remains responsive during processing.
  5. The heatmap overlay appears on the canvas when computation completes.

To remove the overlay, open the same menu item again or close the heatmap from the Analyse menu.

How It Works

Occupancy grid

PlanCAD rasterises all visible entities into a binary grid at a fixed cell size (in drawing units). Each cell is either blocked (occupied by a wall or stand body) or free (walkable):

  • Rectangles and closed polylines are filled using a scanline polygon fill.
  • Open polylines and lines are rasterised as wall segments using Bresenham's line algorithm.
  • Arcs are sampled at intervals proportional to arc length.
  • Circles and hatches are filled.
  • Invisible entities (hidden layers or individually hidden) are ignored.

Congestion weighting

After the occupancy grid is built, PlanCAD computes a distance-to-wall transform for every free cell using two sweep passes (top-left then bottom-right, Chebyshev distance). This gives each free cell a value representing how far it is from the nearest obstacle.

A cost multiplier is then derived: costFactor = 1 + 3 / max(wallDist, 1). Cells near walls are up to four times more expensive to traverse than cells in open space. This makes the pathfinder prefer wide aisles over narrow gaps — the same preference a real visitor has.

Pathfinding

PlanCAD runs a Dijkstra shortest-path search from each door outward across the entire grid, using the congestion-weighted cost. A single Dijkstra pass produces the optimal path from that door to every reachable cell simultaneously, so one pass covers all stands.

For stand-to-stand traffic (visitors moving between stands after entering), additional Dijkstra passes are run from a sample of stands. For large plans, up to 50 stand sources are used; stands beyond 30% of the plan diagonal apart are skipped to limit computation time.

Larger stands attract proportionally more traffic. The weight assigned to each stand is proportional to its area relative to the smallest stand on the floor, rounded to the nearest integer. A 10 m² stand attracts roughly twice the traffic of a 5 m² stand.

Heatmap accumulation

For each (door, stand) pair, PlanCAD traces the path from the Dijkstra result and adds a weighted visit count to every cell along the route. The contribution to each cell is:

density_weight = weight * 4 / local_aisle_width

where local_aisle_width is the wall-distance at that cell. A narrow corridor (wall distance 1) receives four times the density weight of a wide open area, reflecting how congestion density rises when the same flow passes through a smaller cross-section.

Neighbouring cells (a 3x3 kernel centred on the path cell) also receive half the density weight, which smooths the visual output and avoids single-pixel-wide heat traces.

Visit counts are stored as 16-bit integers per cell (maximum 65535). The final heatmap is normalised to the maximum value before rendering.

Interpreting the Results

The overlay uses a colour gradient from blue (low) through yellow to red (high):

ColourMeaning
Blue / coolLow pedestrian traffic — underused corridors
YellowModerate traffic
Red / hotHigh traffic — potential congestion points

Hot spots in main aisles are expected and normal for popular zones of the floor. A bright red corridor that is also narrow is a genuine congestion risk; consider widening it or relocating stands that force visitors to funnel through it.

Hot spots near entry doors are also normal — all visitor paths start there. If a single door is much hotter than others, consider adding more entry points or distributing stands more evenly across the floor.

Cool areas far from any hot spot may indicate dead ends or poorly accessible zones. Stands in these areas may receive less footfall than intended.

Stand-to-stand paths contribute to the heatmap in addition to door-to-stand paths. An aisle that sits between two clusters of popular stands will show elevated traffic even if it is not near a door.

Performance Notes

  • The maximum grid size is 4,000,000 cells (e.g. a 2000 x 2000 grid). Plans that exceed this limit do not produce a heatmap. Reduce the cell size or simplify the drawing if you hit this limit.
  • Computation yields to the UI between each door pass, so PlanCAD remains interactive during processing.
  • The heatmap is computed once and cached. Re-opening the overlay without changing the drawing reuses the cached result. Modifying the drawing (adding entities, changing stand numbers, moving markers) requires re-running the analysis.