Skip to content

Releases: PedestrianDynamics/jupedsim

v1.0.0

23 Oct 08:58
68dc7b9
Compare
Choose a tag to compare

JuPedSim

JuPedSim has come a long way since its inception in 2010. Originally designed
to simulate and analyze pedestrian dynamics across different scenarios, it
stood as a testament to the evolving needs and challenges of the field. As it
grew with every project, every Master's, and PhD thesis, the software began to
show its age - becoming cumbersome for prototyping. In response to these
complex challenges, an extensive remodeling effort was undertaken to completely
reconstruct JuPedSim. The outcome of this endeavor is a redesigned and improved
version of the software that is more efficient and user-friendly. This article
provides a brief glimpse into the process of transformation.

Balancing performance and Complexity with C++

Central to the new JuPedSim is its architecture. Revising the architectural
choices, we've transitioned from a singular focus on performance to a more
balanced perspective. Instead of multithreading, JuPedSim now operates
single-threaded, relegating only performanc-critical segments to C++. This
decision stems from recognizing that excessive complexity can deter users.
While we acklowdege there's room for further enhancements, especially regarding
the integration of new models, the primary aim of this release was not solely
performance but to strike a harmony between speed and user-friendliness.

Core functionalities of JuPedSim have been implemented as essential components
in C++. This includes operative models describing pedestrian movement, as well
as routing and navigation algorithms. While individually fundamental, when
assembled, these components, much like Lego pieces, can be orchestrated to
construct comprehensive, intricate systems, fostering the creation of
meaningful and large-scale simulations and analyses in pedestrian dynamics.

Empowering with Python-API

The previous version of JuPedSim operated primarily through the command-line
interface and required navigating complex XML configurations, which could be
quite intricate for users. However, as time passed and users adapted to the
tool, a trend emerged towards automatic configuration generation using Python.
Bridging the gap between core functionality and user interaction, JuPedSim
introduces a lightweight and expressive Python API. This interface allows users
to easily craft simulation scenarios, prototype complex behaviors, and harness
the power of the core "primitive" components. The enhanced version of JuPedSim
adopts a novel approach by operating as a library based on Python. This new
architecture greatly enhances the versatility in configuring simulations. For
instance, one can easily define dynamically chanching behaviors such as
arranging pedestrians in spiral formations and having individuals depart from
the formation every 3 seconds. This Python API provides users with a familiar
and intuitive programming language, enabling them to efficiently manipulate and
analyze data, customize simulation parameters, and visualize results.

This transition not only aligns with changing user practices but also takes
advantage of the widespread familiarity with Python, making JuPedSim more
accessible and engaging for users. These scenarios can now be effortlessly
communicated using Python scripting while allowing JuPedSim to focus on agent
positioning and actions. Unlike its previous iteration, which constrained users
to predefined configurations, this updated version offers substantial creative
freedom in simulation design. Moreover, with this API, the JuPedSIm offers
other software, like SUMO, the possibility to integrate and communicate
seamlessly, expanding the software's capabilities and versatility.

Driving Research Forward

The significant advantage of the new JuPedSim lies in its potential for
academic research. Previously, researchers had to deal with the complexities of
implementing low-level details. However, now they can easily conceptualize,
prototype, and evaluate new theories in pedestrian dynamics. The capability to
adjust agent behaviors, direct their movements, or alter their states in
real-time allows for rapid iterations and thorough experimentation. This level
of flexibility is unparalleled and offers numerous opportunities for
comprehending pedestrian dynamics in complex environments.

To give an example, in this study,
motivation among agents is represented by the parameter $T$. Higher motivation,
like in jostling situations, correlates with a smaller $T$ value, causing
pedestrians to quickly close gaps. For example, highly motivated agents might
have $T=0.1s$, while less motivated ones might sit at $T=1.3s$. But what if the
motivation of people varies with time and space? Consider an exit scenario:
those closer to an exit in a crowd are more motivated than those far behind,
indicating a need for $T$ to be dynamic.

This is where the new JuPedSim shines — it can adjust this "motivation
behavior" in real-time during a simulation, providing a nuanced, adaptive, and
accurate depiction of pedestrian behaviors as they shift and evolve.

v0.9.6

19 Apr 15:23
Compare
Choose a tag to compare
  • Windows installer now allows adding jpscore to PATH

v0.9.5

30 Mar 09:53
Compare
Choose a tag to compare

This release fixes the following bugs:
* Global shortest router did not use the shortest path
* Fixes "unintended door" warning. The check now properly evaluates if a
pedestrian has been pushed back over the doorline.

v0.9.4

07 Mar 15:09
Compare
Choose a tag to compare

This release addresses two minor issues:

  • jpscore.exe is now placed into 'bin' in the Windows installer so that all DLLs are found by jpscore.exe
  • jpsvis no longer displays vtk error messages on startup

v0.9.3

18 Feb 22:30
Compare
Choose a tag to compare

This release addresses the zenodo.org integration

0.9.1

25 Jan 15:52
Compare
Choose a tag to compare

This is the first release in over 2 years. Several features have been removed
because we did not have the capacity to maintain them properly.

The following features have been removed / changed:

  • JPSFire support / toxicity analysis has been removed
  • Parallel execution with OpenMP has been removed
  • TraVisTo support has been removed.
  • Automatic geometry correction has been removed
  • Support for periodic geometries, i.e. cylinder worlds and torus worlds, has
    been removed
  • Trajectories can now only be exported in txt format
  • Only 'Global Shortest Path' and 'Floorfield
    Shortest Path' routers remain
  • Only 'Velocity' and 'GCFM' models remain
  • Trajectories are no longer split into multiple files
  • All vtk output has been removed
  • Progressbar display has been removed
  • Logging to file has been removed, all log messages are written to stdout
  • Changed output behaviour: When running jpscore all output will now be copied to
    <current-working-directory>/results before the simulation starts and the
    trajectory file will be written to this location progressively.

New experimental feature:

  • Simulating Trains

jpsvis is now released from the same source code repository as jpscore and will
track the same version.

Changes affecting jpsvis

  • jpsvis can now load multiple GB trajectory files within seconds.
  • jpsvis UI reworked to be single window
  • Frames can be move forward / backward with LEFT / RIGHT keys
  • Speed up can be increased / decreased with UP / DOWN keys
  • Playback can be started / stopped with SPACE

v0.9.0 - interim release

11 Jan 11:35
33443b1
Compare
Choose a tag to compare
Pre-release
v0.9.0 interim release

This release has been tagged to fix the current installation via brew.

jpscore 0.8.4

12 Apr 12:12
Compare
Choose a tag to compare
jpscore 0.8.4 Pre-release
Pre-release

v0.8.3

20 Jun 12:35
Compare
Choose a tag to compare

JPScore

The simulation module. For changes in this release, see CHANGLOG

Documentation