Recent Releases of jupedsim

jupedsim - v1.3.1

This is a maintenance release which updates CGAL to 6.0 because users reported compilation errors with certain compilers and older versions of CGAL.

- Python
Published by Ozaq 10 months ago

jupedsim - v1.3.0

Release Notes

This release introduces a new model, deprecations, and bug fixes.

Anticipation Velocity Model (AVM)

The AVM models pedestrian anticipation in three phases: 1. Perception of the current situation. 2. Prediction of future movement. 3. Strategy selection leading to action.

By incorporating these steps, the AVM quantitatively reproduces bidirectional pedestrian flow. It accounts for: - Anticipation of changes in neighboring pedestrians' positions. - The strategy of following others' movement.

More details on the AVM: Anticipation Velocity Model

Deprecations

CamelCase Naming Deprecated

In our last releases several properties slipped into the release that did not follow PEP8 naming conventions, this has been corrected and the camel case style names have been deprecated.

v0 renamed to desired_speed

This update also deprecates v0 in all models and replaces it with the much clearer desired_speed.

e0 renamed to desired_direction

This update also deprecates e0 in all models and replaces it with the much clearer desired_direction.

Bug fixes

- Python
Published by Ozaq 11 months ago

jupedsim - v1.2.1

What's Changed

  • Fixed WaitingSet: In specific cases the wrong waiting position was returned, this should work as expected now.
  • Fixed serialisation issue: The serialisation is writing out a bounding box over the union of all geometries, min/max values had been swapped.

- Python
Published by Ozaq almost 2 years ago

jupedsim - v1.2.0

This release contains two new features

New Model - Social Force Model

JuPedSim now implements another microscopic model, the Social Force Model as described by Helbing, D., Farkas, I., Vicsek, T. (2000). Simulating dynamical features of escape panic.

New route planning method - Direct Steering

Direct Steering allows the user to set each agents target individually and at any time. Agents will then use normal way findig to navigate to the set position. This should allow for rapid prototyping of high level agent behaviour such as waiting or queueing. The intention here is that user will be able to use their own logic written in python to do route planning. While this needs extra coding and might be runtime intensive it allows full flexibility.

- Python
Published by Ozaq almost 2 years ago

jupedsim - v1.1.1

What's Changed

  • The SQL output does now properly include all geometry variants when geometries are switched at runtime.

- Python
Published by Ozaq almost 2 years ago

jupedsim - v1.1.0

What's Changed

  • Add possibility to switch geometry at runtime.
  • Add new iteration of the Collision Free Speed Model (CollisionFreeSpeedModelV2), in this update formerly global repulsion parameters have become agent specific parameters. Thus allowing to model individual agents to react with different strength to geometry / neighbouring agents.

- Python
Published by Ozaq almost 2 years ago

jupedsim - v1.0.6

This is a bugfix release:

  • Fix typo in documentation
  • Address address sanitiser finding when freeing memory for journeys

- Python
Published by Ozaq about 2 years ago

jupedsim - v1.0.5

Changes

  • Update dependencies
  • Add support for Python 3.12

- Python
Published by schroedtert about 2 years ago

jupedsim - v1.0.4

Changes

  • Check if added stages are inside walkable area by
  • Allow v0 to be zero
  • Explicitly mark supported Python versions

Documentation fixes

  • Add missing queues notebook
  • Improve online documentation
  • Some editing of routing page

- Python
Published by schroedtert over 2 years ago

jupedsim - v1.0.3

Changes

  • x86_64 wheels for macOS are now published to pypi
  • Fixed missing file in source distribution
  • Lowered minimum required macOS version to 11

Documentation Fixes

  • Fix broken link to GitHub repository
  • Fix link to Zenodo, now links to JuPedSim concept

- Python
Published by Ozaq over 2 years ago

jupedsim - v1.0.0

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.

- Python
Published by schroedtert over 2 years ago

jupedsim - v0.9.6

  • Windows installer now allows adding jpscore to PATH

- Python
Published by Ozaq almost 4 years ago

jupedsim - v0.9.5

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.

- Python
Published by Ozaq almost 4 years ago

jupedsim - v0.9.4

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

- Python
Published by Ozaq almost 4 years ago

jupedsim - v0.9.3

This release addresses the zenodo.org integration

- Python
Published by chraibi about 4 years ago

jupedsim - 0.9.1

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

- Python
Published by Ozaq about 4 years ago

jupedsim - v0.9.0 - interim release

- Python
Published by Ozaq about 4 years ago

jupedsim - jpscore 0.8.4

See CHANGELOG

- Python
Published by chraibi almost 7 years ago

jupedsim - v0.8.3

JPScore

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

Documentation

- Python
Published by chraibi over 7 years ago