Commit 183c0de1 authored by Benedikt Kleinmeier's avatar Benedikt Kleinmeier

Merge branch 'master' into add_event_handling

# Conflicts:
#	.gitlab-ci.yml
#	VadereGui/src/org/vadere/gui/projectview/view/ScenarioPanel.java
#	VadereSimulator/src/org/vadere/simulator/models/bhm/PedestrianBHM.java
#	VadereSimulator/src/org/vadere/simulator/models/osm/updateScheme/UpdateSchemeEventDriven.java
#	VadereSimulator/src/org/vadere/simulator/models/osm/updateScheme/UpdateSchemeSequential.java
#	VadereState/src/org/vadere/state/scenario/Pedestrian.java
#	VadereState/src/org/vadere/state/util/StateJsonConverter.java
parents 851c2885 5217b0ea
......@@ -4,6 +4,21 @@ target/
*.preferences.xml
swing-inspector-linux-1.2.3/
#Python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
**/venv/
Tools/VadereAnalysisTools/VadereAnalysisTool/VadereAnalysisTool.egg-info/
Tools/VadereAnalysisTools/VadereAnalysisTool/build/
Tools/VadereAnalysisTools/VadereAnalysisTool/dist/
Tools/ContinuousIntegration/**/output
# C extensions
*.so
vadere_analysis_tool/build
#Tools and build utils
bin/
......
......@@ -56,3 +56,28 @@ run_scenario_files:
- Documentation/version-control/git-hook-vadere-software
- mvn -Dmaven.test.skip=true package
- python3 Tools/ContinuousIntegration/run_vadere_console_with_all_scenario_files.py
artifacts:
paths:
- "log_dir"
expire_in: 1 week
# exclude. Finde solution an then add this test again.
# run_origin_test:
# stage: deploy
# script:
# - Documentation/version-control/git-hook-vadere-software
# - mvn clean
# - mvn -Dmaven.test.skip=true package
# - python3 Tools/VadereAnalysisTools/VadereAnalysisTool/setup.py install --user
# - python3 Tools/ContinuousIntegration/run_orign_translation_test.py
run_seed_test:
stage: deploy
script:
- Documentation/version-control/git-hook-vadere-software
- mvn clean
- mvn -Dmaven.test.skip=true package
- python3 Tools/VadereAnalysisTools/VadereAnalysisTool/setup.py install --user
- python3 Tools/ContinuousIntegration/run_seed_comparison_test.py
First, choose a meaningful and short title and mention context in square brackets. E.g., [GUI] Agents overlap if radius greater than 0.2 m
### Summary
What is the problem you observed?
### What is the current *bug* behavior?
What actually happens?
### What is the expected *correct* behavior?
What you should see instead?
### Steps to reproduce
How can you reproduce the issue?
### Relevant data
- [If you report a bug] Git branch name and commit hash: branch/hash
- [If you report a bug in a scenario] Provide the scenario file --- no matter how simple the scenario is.
### Logs and outputs
[If relevant] Provide log files or console output with error/warning message.
Please, use code blocks (backticks) and if it is much text, encapsulate the text in `<details>` tag:
<details>
<summary>Expand file xy...</summary>
<pre>
```
Line 1 of log file xy`
Line 2 of log file xy`
```
</pre>
</details>
### Starting point
[If you know it] Starting point in the code for handling the issue (e.g. class name) --> URL to code line in GitLab is also useful.
First, choose a meaningful and short title and mention context in square brackets. E.g., [GUI] Agents overlap if radius greater than 0.2 m
### Problem to solve
### Further details
Include use cases, benefits, and/or goals.
### Links and references
- https://www.google.com/
- http://www.vadere.org/
# Changelog: Vadere
**Note:** Before writing into this file, read the guidelines in [Writing Changelog Entries.md](Documentation/contributing/Writing Changelog Entries.md).
# In Progress: v0.7
## In Progress: v0.7
## Added
### Added
- Two new outputprocessors - mainly for the BHM - to evaluaet queueWidth
(QueueWidthProcessor) and behavior (PedestrianBehaviorProcessor)
- Added script "osm2vadere.py" to "Tools" folder, to convert OpenStreetMap maps to a Vadere topography. (929d4775: Tools).
- `VadereConsole`: Add option `--logname <filename>` to specify the name for the log file.
Please note that the log file `log.out` is always written (because this file is configured
in the `log4j.properties` of each Vadere module (i.e., "gui", "meshing", ...). (c61a3946: Simulator)
- New outputprocessors
* mainly for the BHM: QueueWidthProcessor (to evaluate queueWidth) and PedestrianBehaviorProcessor (evaluate behavior: step / tangential step / sideways step / wait)
* solely for the OSM: PedestrianFootStepProcessor (logs every step instead of the positions at each time step )
- In package `org.vadere.simulator.utils`, added `TopographyChecker` to show
user if the current topography contains problems. The `TopographyChecker`
- `TopographyChecker`: In package org.vadere.simulator.utils, added TopographyChecker to show
user if the current topography contains problems. The TopographyChecker
will check for overlapping `ScenarioElements` and check for inconsistence
settings such as missing TargetIDs for sources or inconsistenct speed ranges
for pedestrians. See this
......@@ -16,13 +23,13 @@
supported warnings and erros as well as this
[picture](Documentation/changelLogImages/TopographyChecker.png) to see which
kind of overlap produces erros or warnings.
- Add `--output-dir [on, off]` (default: `on`) switch to `scenario-run`
- `VadereConsole`: Add `--output-dir [on, off]` (default: `on`) switch to `scenario-run`
sub-command. This will will turn the ScenarioChecker on or off for the command
line. If the Checker detects an error the simulation will not be executed.
# v0.6 (2018-09-07)
## v0.6 (2018-09-07)
## Added
### Added
- Graphical simulation result is displayed in a table view to show run-time and overlap information if the corresponding processors are loaded. The Simulation result dialog can be deactivated in the preferences. (5ffca5a3: Simulator, GUI)
- Added new OutputProcessors for Overlaps. (8028c523: Simulator)
......@@ -35,7 +42,7 @@
- Added sub commands to "VadereConsole": project-run, scenario-run, suq, migrate (c7e0538c: GUI)
- In the onlinevisualization it is now possible to display the target potential field of a selected pedestrian. (123457aa: GUI)
## Changed
### Changed
- PedestrianOverlapProcessor returns two values "distance", "overlaps"for each overlap detected. (5ffca5a3: Simulator)
* If no overlap occurs the output is empty.
......@@ -45,21 +52,21 @@
* Move /scenario/attributesModel/org.vadere.state.attributes.models.AttributesCGM/groupSizeDistribution to each source in /scenario/topography/sources/[]/groupSizeDistribution. This allows different group size distribution for each source
* Rename /scenario/attributesModel/*/timeCostAttributes/standardDerivation to standardDeviation.
## Performance
### Performance
- Faster distance computation. (6214738c: Simulator)
* To compute the distance from a point x the closest obstacle we compute the distances on a Cartesian grid of cell size equal to the default value of AttributesFloorField.potentialFieldResolution. There are two methods to compute the distances.
* Brute force (default): Compute the distance for a grid point x by computing all distances (for all obstacles) taking the minimal
* Eikonal Equation solvers (unused): Use obstacles to be the targets are of the eikonal equation and solve the equation using one of the solvers (default is the Fast Marching Method).
# v0.2 (2016-12-22)
## v0.2 (2016-12-22)
## Added
### Added
- Stability and usability improved, additional pedestrian simulation models are supported. (babf0b67: GUI, Simulator, State, Utils)
# v0.1 (2016-08-05)
## v0.1 (2016-08-05)
## Added
### Added
- Initial release of the software as open source. (72391fab: GUI, Simulator, State, Utils)
Contribution guidelines
=======================
# Contributing: Vadere
Workflow
--------
This guide explains the repository structure, how to set up the development environment and introduces coding guidelines.
## Repository Structure
The repository contains following `files` and `folders`:
- The Vadere source code: divided into the sofware modules `VadereGui`, `VadereMeshing`, `VaderSimulator`, `VadereState`, `VadereUtils`
- `VadereModelTests`: pre-shipped tests for different locomotion models (e.g., gradient navigation model, optimal steps model, social force model)
- `Tools`: scripts which are executing during the continuous integration phase.
- `.gitlab`: templates for creating issues in the Vadere [issue tracker](https://gitlab.lrz.de/vadere/vadere/issues) (this files are implicitly used by GitLab).
- `.gitlab-ci.yml`: instructions which are executed during the [continuous integration pipeline](https://docs.gitlab.com/ee/ci/quick_start/).
## Development Setup
1. Follow the **installation instructions** in the [README.md](README.md) to install all required software and to get the source code.
2. Open a shell and `cd` into the project directory.
3. Run `mvn clean install`.
The project can now be imported *As Maven Project* into your IDE.
### Eclipse
1. *File* > *Import* > *Maven* > *Existing Maven Projects*
2. Choose `pom.xml` as *Root Directory* and click *Finish*
3. Open *Vaderegui (gui)* > *src* > *org.vadere.gui.projectview* > `Vadereapplication`
### IntelliJ IDEA
1. On the welcome-screen select *Import Project*
2. Select `pom.xml` > *Next* > *Next* > *Next* > *Finish*
3. Open *VadereGui (gui)* > *src* > *org.vadere.gui.projectview* > `VadereApplication`
4. lick the *run*-icon next to the `main` method
5. Edit the run configuration for `VadereApplication` to build the project using Maven instead of IntelliJ's internal builder to avoid compilation errors:
6. Click *Edit Configurations* (in dropdown menu next to the play/debug button)
7. Under *Before launch*, add *Run Maven Goal* and use the Maven goal `compile`
Alternatively, run `mvn eclipse:eclipse` using the [Maven Eclipse Plugin](http://maven.apache.org/plugins/maven-eclipse-plugin/usage.html) or `mvn idea:idea` using the [Maven IntelliJ Plugin](http://maven.apache.org/plugins/maven-idea-plugin/).
## Workflow
To efficiently contribute to this project, you need an LRZ GitLab account.
Please contact us and we will send you an invitation.
The workflow then is the following.
1. **Fork this Git repository**
2. Clone your own fork to your computer
3. Checkout a new branch and work on your new feature or bugfix
4. Push your branch and **send us a merge request**
### Use the Issue Tracker
Please, use the [issue tracker](https://gitlab.lrz.de/vadere/vadere/issues) for both
- to request a feature or to report a bug (see [how to write new issues](https://gitlab.lrz.de/vadere/vadere/issues/179))
- to work on a feature (see [how to work on an issue](https://gitlab.lrz.de/vadere/vadere/issues/184))
**Tip:** Sort the issues in the [issue tracker](https://gitlab.lrz.de/vadere/vadere/issues) by `Label priority`.
### Steps for External Contributors
The workflow is the following:
1. **Fork this Git repository**
2. Clone your own fork to your computer
3. Checkout a new branch and work on your new feature or bugfix
4. Push your branch and **send us a merge request**
These steps are explained in more detail at the
[GitHub help pages](https://help.github.com/articles/fork-a-repo/).
Merge/pull requests are described [on GitLab](https://about.gitlab.com/2014/09/29/gitlab-flow/#mergepull-requests-with-gitlab-flow).
Coding style guide
------------------
## Style Guides
### For Coding
Basic rules:
- No warnings
- No unused imports
- No unecessary `this.` qualifiers
- Use the formatting tool!
- Eclipse: select text (optional) and press <kbd>ctrl</kbd> + <kbd>shift</kbd> + <kbd>f</kbd>
- IntelliJ: select text (optional) and <kbd>ctrl</kbd> + <kbd>alt</kbd> + <kbd>l</kbd>
- No warnings
- No unused imports
- No unecessary `this.` qualifiers
- Use the formatting tool!
- Eclipse: select text (optional) and press <kbd>ctrl</kbd> + <kbd>shift</kbd> + <kbd>f</kbd>
- IntelliJ: select text (optional) and <kbd>ctrl</kbd> + <kbd>alt</kbd> + <kbd>l</kbd>
For source code formatting, we use an adapted version of
[Google's Coding style guide](https://google.github.io/styleguide/javaguide.html).
Please check the [README in this repository](https://gitlab.lrz.de/vadere/styleguide)
for the style guide and for how to import the style settings into your IDE.
Commit style guide
------------------
### For Commit Messages
These are examples for a good commit messages:
......@@ -52,13 +100,13 @@ used in multiple places.
Rules:
1. Separate subject from body with a blank line
2. Limit the subject line to 50 characters
3. Capitalize the subject line
4. Do not end the subject line with a period
5. Use the imperative mood in the subject line
6. Wrap the body at 72 characters
7. Use the body to explain what and why vs. how
1. Separate subject from body with a blank line
2. Limit the subject line to 50 characters
3. Capitalize the subject line
4. Do not end the subject line with a period
5. Use the imperative mood in the subject line
6. Wrap the body at 72 characters
7. Use the body to explain what and why vs. how
Source: http://chris.beams.io/posts/git-commit/
......@@ -70,10 +118,9 @@ Reasons include:
Rules 1, 3, and 4 never hurt and should always be applied.
Miscellaneous
-------------
### Miscellaneous
### Author tag in JavaDoc
#### Author Tag in JavaDoc
If you make important contributions to a Java class, and especially if you feel
responsible for that class, please add yourself as an author to the class-level
......@@ -90,8 +137,14 @@ public class Foo {
...
```
### Tests required
#### Tests Required
Especially if you implement new functionality, please also provide JUnit tests.
The test classes should be located in the `tests/` folder but in the same
package as the class under test.
## Contributors
People who have contributed code to the project at the Munich University of Applied Sciences (in alphabetical order):
Florian Albrecht, Benjamin Degenhart, Felix Dietrich, Marion Gödel, Benedikt Kleinmeier, Daniel Lehmberg, Jakob Schöttl, Stefan Schuhbäck, Michael Seitz, Swen Stemmer, Isabella von Sivers, Mario Teixeira Parente, Peter Zarnitz, Benedikt Zönnchen
ExampleProject
\ No newline at end of file
......@@ -11,11 +11,11 @@ The first example doest not provide any context where the change was made or wha
## Writing into Changelog.md
1. Each new version number gets an own section prefixed with `#` and a date, e.g., `# v0.1 (2018-01-31)`.
1. Each new version number gets an own subsection prefixed with `##` and a date, e.g., `## v0.1 (2018-01-31)`.
Notes:
* Unreleased versions should be marked explicitly, e.g., `# 0.1 (unreleased)`.
* Unreleased versions should be marked explicitly, e.g., `## 0.1 (unreleased)`.
* New versions should be added on top (and not at bottom).
2. Each change type gets an own subsection prefixed with `##`, e.g., `Added`.
2. Each change type gets an own subsubsection prefixed with `###`, e.g., `Added`.
3. Each changelog entry should contain following parts:
1. An own bullet point.
2. The description of the change.
......@@ -26,9 +26,9 @@ The first example doest not provide any context where the change was made or wha
For instance:
```
# v0.1 (2018-01-31)
## v0.1 (2018-01-31)
## Removed
### Removed
- Removed obsolete model attribute "foo" from class "bar". (e8af1b77: State).
* ...
......
......@@ -4,14 +4,16 @@
# VADERE
VADERE is an open source framework for the simulation of microscopic pedestrian dynamics. In addition to this core domain, other systems including cars and granular flow can be introduced into the framework. VADERE provides generic model classes and visualisation and data analysis tools for two-dimensional systems. A series of simulation models are already implemented in the framework that are also the basis for scientific publications. Namely the optimal steps model, the gradient navigation model, and the social force model are available for simulation studies.
VADERE is an open source framework for the simulation of microscopic pedestrian dynamics. VADERE provides generic model classes and visualisation and data analysis tools for two-dimensional systems. A series of pedestrian locomotion models are already implemented in the framework that are also the basis for scientific publications. Namely the optimal steps model, the gradient navigation model, and the social force model are available for simulation studies. In addition to pedestrians, other systems including cars and granular flow can be introduced into the framework.
This software runs on OS X, Windows, and Linux.
This software runs on Windows, OS X and Linux.
VADERE has been developed by [Prof. Dr. Gerta Köster's](http://www.cs.hm.edu/die_fakultaet/ansprechpartner/professoren/koester/index.de.html)
research group at the [Munich University of Applied Sciences](https://www.hm.edu/) at the
[department for Computer Science and Mathematics](http://cs.hm.edu/).
However, we welcome contributions from external sources.
However, we welcome contributions from external sources.
The VADERE framework includes a mesh generator for unstructured high-quality 2D meshes called **EikMesh** which is described [here](https://gitlab.lrz.de/vadere/vadere/blob/master/VadereMeshing/README.md).
## Pipeline Status
......@@ -31,12 +33,12 @@ However, we welcome contributions from external sources.
### Install OpenCL
For this project, GPGPU with OpenCL is used to speed up some computations. Therefore, the following requirements have to be met:
VADERE uses computer's video card to speed up some computations. Therefore, following OpenCL components must be installed:
* the latest drivers for your OpenCL device(s)
* an OpenCL SDK
#### Operating Systems
Please, use following instructions to set up the OpenCL components for your operating system:
* Windows: For further information using OpenCL on Windows [click here](https://streamcomputing.eu/blog/2015-03-16/how-to-install-opencl-on-windows/).
* OS X: OpenCL is pre-installed for OS X.
......@@ -44,46 +46,23 @@ For this project, GPGPU with OpenCL is used to speed up some computations. There
* [Sources: OpenCL HowTo](https://wiki.tiker.net/OpenCLHowTo)
* [Intel Driverpack (only driver needed)](https://software.intel.com/en-us/articles/opencl-drivers#latest_linux_driver)
### Run the Application
## Run the Application
1. Get the Source: Run `git clone https://gitlab.lrz.de/vadere/vadere.git`.
2. Build the Application: Go to the project directory and run `mvn clean package` (or `mvn clean package -Dmaven.test.skip` if you want to skip the unit tests). This will build `vadere.jar`and `postvis.jar`.
3. Start the Application: After building the application, you can start Vadere by running `java -jar VadereGui/target/vadere.jar`.
4. (If you only want to use the Postvisualization-Tool you can do so by running `java -jar VadereGui/target/postvis.jar`).
## Usage Example
### Run Built-In Examples
With the following steps, you can start a scenario of one of the model test projects in [VadereModelTests](VadereModelTests):
With the following steps, you can run a simulation with one of the built-in examples from [VadereModelTests](VadereModelTests):
- start Vadere
- *Project* > *Open*
- choose `vadere.project` of one of the projects e.g. [TestOSM](VadereModelTests/TestOSM) and click *open*
- select the scenario on the left and press *run selected scenario*
## Development Setup
Follow the **installation instructions** above i.e. install all required software and get the source. Go to the project directory and run `mvn clean install`. The project can now be imported *As Maven Project* in your IDE.
### Eclipse
- *File* > *Import* > *Maven* > *Existing Maven Projects*
- choose `pom.xml` as *Root Directory* and click *Finish*
- open *Vaderegui (gui)* > *src* > *org.vadere.gui.projectview* > `Vadereapplication`
### IntelliJ IDEA
- on the welcome-screen select *Import Project*
- select `pom.xml` > *Next* > *Next* > *Next* > *Finish*
- open *VadereGui (gui)* > *src* > *org.vadere.gui.projectview* > `VadereApplication`
- click the *run*-icon next to the `main` method
- edit the run configuration for `VadereApplication` to build the project using Maven instead of IntelliJ's internal builder to avoid compilation errors:
* click *Edit Configurations* (in dropdown menu next to the play/debug button)
* under *Before launch*, add *Run Maven Goal* and use the Maven goal `compile`
Alternatively, run `mvn eclipse:eclipse` using the [Maven Eclipse Plugin](http://maven.apache.org/plugins/maven-eclipse-plugin/usage.html) or `mvn idea:idea` using the [Maven IntelliJ Plugin](http://maven.apache.org/plugins/maven-idea-plugin/).
### Git Hooks
### Use Git Hooks
Since it is important to reproduce simulation results, we have the guidline that each output file has to provide its commit-hash. This commit-hash identifies
the state the software was in when the output file was generated. Therefore, git hooks save the commit-hash in the **current_commit_hash.txt** which
......@@ -100,20 +79,14 @@ These files start the script [git-hook-vadere-software](Documentation/version-co
To create the **current_commit_hash.txt** without changes to the current commit, you can choose *Switch/Checkout...* on the Repository folder or you
switch to another branch and switch back again using the command line or any other tool you prefer.
## Contribution
Please see [Contribution guidelines](CONTRIBUTING.md). The document defines guidelines for coding style and commit messages.
## Contributors
People who have contributed code to the project at the Munich University of Applied Sciences (in alphabetical order):
Florian Albrecht, Benjamin Degenhart, Felix Dietrich, Marion Gödel, Benedikt Kleinmeier, Daniel Lehmberg, Jakob Schöttl, Stefan Schuhbäck, Michael Seitz, Swen Stemmer, Isabella von Sivers, Mario Teixeira Parente, Peter Zarnitz, Benedikt Zönnchen
## Changelog
See [CHANGELOG.md](CHANGELOG.md) for a list of changes.
## Contribution
See [CONTRIBUTING.md](CONTRIBUTING.md) for how to set up the development environment and the coding guidelines.
## License
This software is licensed under the GNU Lesser General Public License ([LGPL](LICENSE)).
......
{
"name" : "2_bridge_coordinates_kai_navigation_random_pos_with_offset",
"description" : "",
"release" : "0.6",
"commithash" : "628b018374f404d2aca1afa3483e308428b6ae20",
"processWriters" : {
"files" : [ {
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.TimestepPedestrianIdOutputFile",
"filename" : "postvis.trajectories",
"processors" : [ 1, 2 ]
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.TimestepPedestrianIdOverlapOutputFile",
"filename" : "overlaps.csv",
"processors" : [ 3 ]
}, {