README.md 6.42 KB
Newer Older
1
![VADERE](vadere.png "VADERE")
Felix Dietrich's avatar
Felix Dietrich committed
2
3
4

---

5
# VADERE
Felix Dietrich's avatar
Felix Dietrich committed
6

7
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.
Felix Dietrich's avatar
Felix Dietrich committed
8

9
This software runs on OS X, Windows, and Linux.
Felix Dietrich's avatar
Felix Dietrich committed
10

Jakob Schöttl's avatar
Jakob Schöttl committed
11
12
13
14
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.
Felix Dietrich's avatar
Felix Dietrich committed
15

16
17
## Pipeline Status

18
19
20
21
| Branch  | Pipeline Status  | Coverage |
|:--------|:----------------:|:--------:| 
| master  | [![pipeline status (master)](https://gitlab.lrz.de/vadere/vadere/badges/master/pipeline.svg)](https://gitlab.lrz.de/vadere/vadere/commits/master) | [![coverage report](https://gitlab.lrz.de/vadere/vadere/badges/master/coverage.svg)](https://gitlab.lrz.de/vadere/vadere/commits/master) |
| develop |[![pipeline status](https://gitlab.lrz.de/vadere/vadere/badges/develop/pipeline.svg)](https://gitlab.lrz.de/vadere/vadere/commits/develop) | [![coverage report](https://gitlab.lrz.de/vadere/vadere/badges/develop/coverage.svg)](https://gitlab.lrz.de/vadere/vadere/commits/develop) |
22

Felix Dietrich's avatar
Felix Dietrich committed
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
## Installation

### Dependencies

* Java 8
* Maven 3.0
* Git
* OpenCL

### Install OpenCL

For this project, GPGPU with OpenCL is used to speed up some computations. Therefore, the following requirements have to be met:

* the latest drivers for your OpenCL device(s)
* an OpenCL SDK

#### Operating Systems

* 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.
43
44
45
* Linux: Please refer to the installation manual of your Linux distribution. 
  * [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)
Felix Dietrich's avatar
Felix Dietrich committed
46

47
### Run the Application
Felix Dietrich's avatar
Felix Dietrich committed
48

49
50
51
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 -DskipTests` if you want to skip the unit tests).
3. Start the Application: After building the application, you can start Vadere by running `java -jar VadereGui/target/gui-0.1-SNAPSHOT-jar-with-dependencies.jar`.
Felix Dietrich's avatar
Felix Dietrich committed
52

53
## Usage Example
Felix Dietrich's avatar
Felix Dietrich committed
54

55
With the following steps, you can start a scenario of one of the model test projects in [VadereModelTests](VadereModelTests):
Felix Dietrich's avatar
Felix Dietrich committed
56
57
58

- start Vadere 
- *Project* > *Open* 
59
- choose `vadere.project` of one of the projects e.g. [TestOSM](VadereModelTests/TestOSM) and click *open*
Felix Dietrich's avatar
Felix Dietrich committed
60
61
62
63
64
- select the scenario on the left and press *run selected scenario*


## Development Setup

65
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.
Felix Dietrich's avatar
Felix Dietrich committed
66
67
68
69
70

### Eclipse

- *File* > *Import* > *Maven* > *Existing Maven Projects*
- choose `pom.xml` as *Root Directory* and click *Finish*
71
- open *Vaderegui (gui)* > *src* > *org.vadere.gui.projectview* > `Vadereapplication`
Felix Dietrich's avatar
Felix Dietrich committed
72
73
74

### IntelliJ IDEA

75
- on the welcome-screen select *Import Project*
Felix Dietrich's avatar
Felix Dietrich committed
76
- select `pom.xml` > *Next* > *Next* > *Next* > *Finish*
77
- open *VadereGui (gui)* > *src* > *org.vadere.gui.projectview* > `VadereApplication`
Felix Dietrich's avatar
Felix Dietrich committed
78
79
80
81
- click the *run*-icon next to the `main` method

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/).

82
83
### Git Hooks

84
85
86
87
88
89
90
91
92
93
94
95
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
will be created in the [VadereSimulator/resource](vadere/VadereSimulator/resource) directory whenever a commit is made or the developer
switches to another commit. If the file is missing or there is no commit-hash in it, you will be warned in the log. 
We strongly suggest that you install these git hooks on your local machine:

1. Copy files [post-checkout](Documentation/version-control/post-checkout), [post-merge](Documentation/version-control/post-merge), 
[post-applypatch](Documentation/version-control/post-applypatch) and [post-commit](Documentation/version-control/post-commit) 
from [version-control](Documentation/version-control) to your local **.git/hooks/** directory.
These files start the script [git-hook-vadere-software](Documentation/version-control/git-hook-vadere-software).
2. Make sure that [git-hook-vadere-software](Documentation/version-control/git-hook-vadere-software) is executable.

96
To create the **current_commit_hash.txt** without changes to the current commit, you can choose *Switch/Checkout...* on the Repository folder or you 
97
switch to another branch and switch back again using the command line or any other tool you prefer.
98

Felix Dietrich's avatar
Felix Dietrich committed
99
100
## Contribution

Jakob Schöttl's avatar
Jakob Schöttl committed
101
Please see [Contribution guidelines](CONTRIBUTING.md). The document defines guidelines for coding style and commit messages.
Felix Dietrich's avatar
Felix Dietrich committed
102
103
104

## Release History

105
106
- 0.1 initial release of the software as open source (2016-08-05)
- 0.2 stability and usability improved, additional pedestrian simulation models are supported (2016-12-22)
Felix Dietrich's avatar
Felix Dietrich committed
107
108
109
110
111

## Contributors

People who have contributed code to the project at the Munich University of Applied Sciences (in alphabetical order):

112
Florian Albrecht, Benjamin Degenhart, Felix Dietrich, Benedikt Kleinmeier, Jakob Schöttl, Michael Seitz, Swen Stemmer, Isabella von Sivers, Mario Teixeira Parente, Peter Zarnitz, Benedikt Zönnchen
Felix Dietrich's avatar
Felix Dietrich committed
113
114
115
116
117

## License

This software is licensed under the GNU Lesser General Public License ([LGPL](LICENSE)).

118
For more information: http://www.gnu.org/licenses/lgpl.html