Public | Automated Build

Last pushed: 4 months ago
Short Description
Simulating pedestrians with state of the art models.
Full Description

documentation | jpscore | jpsreport | jpseditor | jpsvis | docker images | contribute


Simulating pedestrians with state of the art models.
The Jülich Pedestrian Simulator (JuPedSim) consists of three modules which are loosely
coupled and can be used independently at the moment. These are:

  1. jpscore: the core module computing the trajectories. See list of implemented models.
  2. jpsreport: a tool for analyzing the trajectories and validating the
    model. It implements a couple of measurement methods including the Voronoi-method for calculating the density.
  3. jpsvis: a tool for visualizing the input (geometry) and output (trajectories) data.
  4. jpseditor: a tool for creating and editing geometry files with dxf import/export capabilities.


  • CMake
  • A compiler with support for C++11 e.g. g++ or clang or Visual Studio 2013
  • Boost library
  • For jpseditor Qt
  • For jpsvis VTK

jpseditor and jpsvis come with Windows executables and dmg-files for Mac users.
Therefore, a compilation of these two packages may not be needed.

Quick Install

git clone
cd JuPedSim
git submodule update --init --recursive # this is VERY important, otherwise the submodules will be empty
make -f Makefile.cmake check

CMake will eventually report any missing packages. Please fix these errors/warnings first before proceeding with the compilation of JuPedSim with

make -f Makefile.cmake check release

How to use JuPedSim's Docker images

JuPedSim offers also up to date Docker images. For these who wonder what the Docker is, here is what says:

Docker is an open-source project to easily create lightweight, portable, self-sufficient containers
from any application.
The same container that a developer builds and tests on a laptop can run at scale, in production,
on VMs, bare metal, OpenStack clusters, public clouds and more.

Basically, we package JuPedSim and all its dependencies in a lightweight image, which can just be used without any hassle.


For Linux systems please check this excellent blog:
Running GUI apps with Docker


start socat to expose local xquartz socket on a TCP port:

socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"

Then in a new window pass the DISPLAY with your own IP-address to the container by running

docker run -it -e DISPLAY=YOUR_IP:0 -v /some/host/folder/:/tmp jupedsim/jupedsim

See also this issue

This will mount /some/host/folder in docker's /tmp, which is useful to exchange data between your machine and the docker container.

There seems to be an issue after updating XQuartz: libGL error: failed to load driver: swrast

Downgrading to 2.7.8 solves the problem.

Note: You can get you IP by typing in the terminal ifconfig.


Works only with Windows 10.

@todo: How? need someone with a windows machine to check this.

Showcase and tutorials

To highlight some features of JuPedSim we have uploaded some videos and tutorials on
our YouTube channel.

Repository and tests

JuPedSim is at the moment validated using the RiMEA Testcases.
Also it is still undergoing an extensive unit-testing.
Validation of the implemented models with respect to experimental data is planned, but only partially implemented.

Docker Pull Command
Source Repository