diff --git a/CHANGELOG.md b/CHANGELOG.md index b6521f6c28a67df90622d6060bf45f42c5928f72..bab618f1ed2f377347083fde2c7184d8f285032a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,94 @@ All notable changes to this project will be documented in this file. ### Added -#### JPSEditor +#### JPSCORE +- CI with travis and Gitlab CI +- Compilation checked on Visual Studio 12 2013 +- Added more validation tests +- Added statistics (calculate exit usage) for all exits +- Added voronoi based algorithm for inserting agents coming from the source or from matsim +- New option for the quickest path router. Sample options are: + ```<parameters default_strategy="local_shortest">``` + ```<parameters default_strategy="global_shortest">``` + ``` <parameters cba_gain="0.15" reference_peds_selection="single" congestion_ratio="0.8" queue_vel_escaping_jam="0.2" + queue_vel_new_room="0.7" visibility_obstruction="4"> +``` +- New model with the generic name `Tordeux2015` and `id=3`. For use check the ini-files in the Utest-validation tests. +- Tests are sorted in `rimea_tests`, `juelich_tests` and `validation_tests`. +- Periodic boundary conditions with the option `<periodic>1</periodic>`.Works only with model 3. +- Added Floorfield to all exits, providing direction to target, direction to closest wall and cost estimates. Parameter to control wall-avoidance included. + +#### JPSVIS +- Added option to load vtk files. Need to add the line ``` <gradient_field filename="floorfield.vtk"> +``` in the header of the trajectory file. Alternatively drag and drop a vtk file on JPSvis. + +- Fixed error displaying the total number of frames when using the scroolbar + +#### JPSREPORT +- Added geometry information while plotting the voronoi cells +- Added option to disable plotting +- Issue a warning when the voronoi cell cannot be calculated +- Fixed error where all trajectories were colinear -- Point Grid -- Line Grid -- Select all lines -- Edit Room Type -- Show and snap the origin \ No newline at end of file +#### JPSEDITOR + + +## v0.7.0 [2015-07-15] + +### New Module +- JuPedSim: Editor for the geometry + +### Added + +- Risk tolerance factor (value in [0 1]) for pedestrian. Pedestrians with high values are likely to take more risks. +- Added pre-movement time of the agents. Only after this time, the concerned agents will start moving. +- Sources for generating agents at runtime. Parameter are frequency (agents per seconds) and maximum number +- Option to color the pedestrians by group, spotlight, velocity, group, knowledge, router, final\_goal, intermediate\_goal. Usage: ( +```<trajectories format="xml-plain" fps="8" color_mode="group"> ```) +- More control over the triangulation specially to avoid skinny triangles. Usage: ```<navigation_mesh method="triangulation" minimum_distance_between_edges="0.5" minimum_angle_in_triangles="20" use_for_local_planning="true" />``` +- Improved statistics. The flow curve for the different exits can be computed at runtime. +- Changelog file +- Rimea testcases +- Unit tests are now based on the Boost testing engine +#### JPSVIS +- Display the geometry structure individual room/subroom. +- Now build on OSX/Linux/Windows + +### Changed +- +- + +### Fixed +- Visiblity in 3D +- Numerous geometrical operations + + +## v0.6.0 - 2015-01-31 +### Added +- Steering the simulation with predefined events (closing or opening doors during the simulation) +- Information sharing between the pedestrians. The agents now share their knowledge about closed doors. +- Pre evacuation time for groups of agents. +- Adjustable velocities on stairs and even terrain for group of agents. +- Stability and performance improvement. The simulation is approx 40% faster for larger scenarios and you will notice it +- New route choice model, cognitive map, giving agents the possibility to explore the environment and discover doors for instance. +- Different sensors for improving the navigation of pedestrians (smoke/jam sensor). +- New verification and validation tests. +- General statistics over the evacuation (for instance areas egress time and door usage) +- Support for Visual Studio and Xcode compilers. + + +### Changed +- refactor NumCPU and ExitCrossingStrategy tags to `num_threads and exit_crossing_strategy` + + + +## v0.5.0 - 2014-08-05 +First release of the the Juelich Pedestrian Simulator. Most noteworthy features: + +- Simulate pedestrians movement in a space continuous geometry +- Forces based models for describing the pedestrians interactions +- Shortest and quickest path route choice strategies +- Loading and visualizing trajectories and geometries +- Easy to use visualization interface +- Making high quality videos directly from the visualization interface or generating png sequences +- XML based input files \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..d0e607cf6ad6777cd1bf1df953b17d6832eaeb16 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,228 @@ +Contributing to JuPedSim +======================== + +This project is mainly developed by a small group of researchers and students from [Jülich Research Center](http://www.fz-juelich.de/en) and [BUW](http://www.uni-wuppertal.de/). +However you are kindly invited not only to use JuPedSim but also contributing to our open-source-project. +It does not matter if you are a researcher, student or just interested in pedestrian dynamics. +There are only a few rules and advices we want to give to you: + +- [Advice for new contributors](#advice-for-new-contributors) + - [First steps](#first-steps) + - [Guidelines](#guidelines) + - [FAQ](#faq) + +- [Reporting bugs and requesting features](#reporting-bugs-and-requesting-features) + - [Using the issue tracker](#using-the-issue-tracker) + - [Reporting bugs](#reporting-bugs) + - [Requesting features](#requesting-features) + +- [Writing code](#writing-code) + - [Coding style](#coding-style) + - Unit tests + +- [Writing documentation](#wrinting-documentation) + - [Comments](#comments) + - Documenting new features + +- [Committing code](#commiting-code) + - Handling pull/merge requests + - [Committing guidelines](#commiting-guidelines) + - Reverting commits + +## Advice for new contributors + +### First steps + +### Guidelines + +### FAQ + +## Reporting bugs and requesting features +If you got a question or a problem and need support from our team feel free to contact us. +You can do this via [email](mailto:dev@jupedsim.org). + +If you think you found an issue or bug in JuPedSim please use our issue tracker. + +### Using the issue tracker + +The issue tracker is the preferred channel for bug reports, features requests and submitting pull requests, but please respect the following restrictions: + +- Please do not use the issue tracker for personal support requests. [Mail us](mailto:dev@jupedsim.org) if you need personal support. + +- Please do not derail or troll issues. Keep the discussion on topic and respect the opinions of others. + +If you use the issue tracker we have a list of labels you should use. + +### Reporting bugs + +If you find a bug in the source code or a mistake in the documentation, you can help us by submitting an issue to our repository. +Even better you can submit a pull or merge request with a fix. Please use the following template and make sure you provide us as much information as possible: + +~~~.md +[Short description of problem here] + +**Reproduction Steps:** + +1. [First Step] +2. [Second Step] +3. [Other Steps...] + +**Expected behavior:** + +[Describe expected behavior here] + +**Observed behavior:** + +[Describe observed behavior here] + +**Screenshots and GIFs** + + + +**JuPedSim version:** [Enter JuPedSim version here] +**OS and version:** [Enter OS name and version here] +**Compiler and version:** [Enter compiler name and version here] + +**Installed Libraries:** +[Enter Boost version here] +[Enter Vtk version here] +[Enter Qt version here] + +**Additional information:** + +* Problem started happening recently, didn't happen in an older version of JuPedSim: [Yes/No] +* Problem can be reliably reproduced, doesn't happen randomly: [Yes/No] +* Problem happens with all files and projects, not only some files or projects: [Yes/No] +* Problem happens with the attached ini and geometry files: [Yes/No] +~~~ + +### Requesting features + +Enhancement suggestions are tracked as issues. After you've determined which repository your enhancement suggestions is related to, create an issue on that repository and provide the following information: + + * Use a clear and descriptive title for the issue to identify the suggestion. + * Provide a step-by-step description of the suggested enhancement in as many details as possible. + * Provide specific examples to demonstrate the steps. Include copy/pasteable snippets which you use in those examples, as Markdown code blocks. + * Describe the current behavior and explain which behavior you expected to see instead and why. + +If you want to support us by writing the enhancement yourself consider what kind of change it is: + +- **Major changes** that you wish to contribute to the project should be discussed first on our **dev mailing list** so that we can better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project. +- **Small changes** can be crafted and submitted to our repository as a **pull or merge request**. + +Nevertheless open an issue for documentation purposes with the following template: + +~~~.md +[Short description of suggestion] + +**Steps which explain the enhancement** + +1. [First Step] +2. [Second Step] +3. [Other Steps...] + +**Current and suggested behavior** + +[Describe current and suggested behavior here] + +**Why would the enhancement be useful to most users** + +[Explain why the enhancement would be useful to most users] + +[List some other text editors or applications where this enhancement exists] + +**Screenshots and GIFs** + + + +**JuPedSim Version:** [Enter JuPedSim version here] +**OS and Version:** [Enter OS name and version here]~ + +~~~ + +## Writing Code + +### Coding style + +In JuPedSim we try to code according to the *Stroustrup* style of formatting/indenting. +If you want (or have) to write code in JuPedSim you really **need** to respect that style. +This is important not just aesthetically but also practically. Diff commits are much more clearer and cleaner. + +The code is formated using the automatic formatter [astyle](http://astyle.sourceforge.net/astyle.html) with the option `--style=stroustrup`: + +> Stroustrup style formatting/indenting uses stroustrup brackets. +> Brackets are broken from function definitions only. +> Brackets are attached to everything else including +> namespaces, classes, and statements within a function, arrays, structs, and enums. +> This style frequently is used with an indent of 5 spaces. + +Here is an **example:** + +```c++ +int Foo(bool isBar) +{ + if (isBar) { + bar(); + return 1; + } else + return 0; +} +``` + +#### Tabs vs Spaces +This can be a long and religious discussion, to make it short *DO NOT* use tabs, just spaces please. + +Here are some hints to configure your editor in order to use the *stroustrup* style + +- **Emacs**: + Add this to your ```.emacs``` +```lisp +(setq c-default-style "stroustrup" c-basic-offset 5) +(setq indent-tabs-mode nil) +``` +- **Vim**: + Set in your config file these variables +```javascript +:set autoindent +:set cindent +:set expandtab +:set shiftwidth=5 +:set softtabstop=5 +``` + +- **Eclipse**: + Here is a [plugin](http://astyleclipse.sourceforge.net/) for astyle in eclipse. + Read also + [How to change indentation width in eclipse?](https://superuser.com/questions/462221/how-do-i-reliably-change-the-indentation-width-in-eclipse) + +- **Clion** +<!-- TODO --> + + +## Writing Documentation + +### Comments +Comments have to be written in **English** everywhere. Please use markdown where applicable. + +## Commiting Code + +### Commiting guidelines +Please write clear and concise commit messages so that +your co-developers can directly grasp what changes on the code are you committing/pushing. Please do this with respect +to the following points: +- Name every class (file if you only change a single file) you changed and right after that a brief description of your +change. +- Use markdown if you want do make a longer description than two sentences. +- Reference issues and pull requests liberally if your commit is connected to one. +- When only changing documentation start with `:memo:` +- Consider starting the commit message with an applicable emoji: + - :art: `:art:` when improving the format/structure of the code + - :racehorse: `:racehorse:` when improving performance + - :memo: `:memo:` when writing docs + - :penguin: `:penguin:` when fixing something on Linux + - :apple: `:apple:` when fixing something on Mac OS + - :checkered_flag: `:checkered_flag:` when fixing something on Windows + - :bug: `:bug:` when fixing a bug + - :fire: `:fire:` when removing code or files + - :green_heart: `:green_heart:` when fixing the CI build + - :white_check_mark: `:white_check_mark:` when adding tests \ No newline at end of file