Skip to content

Commit 6625be5

Browse files
authored
Merge pull request #51 from jtebert/julia/docs
Add additional documentation and license
2 parents 3708a6d + 6a640ae commit 6625be5

4 files changed

Lines changed: 214 additions & 16 deletions

File tree

CONTRIBUTORS.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Contributors
2+
3+
[Julia Ebert](https://juliaebert.com) ([@jtebert](https://github.com/jtebert)): Primary developer and maintainer
4+
5+
[Richard Barnes](http://rbarnes.org/) ([@r-barnes](https://github.com/r-barnes)): Parallelization, optimization, CMake, and structural improvements
6+
7+
[Michael Rubenstein](http://users.eecs.northwestern.edu/~mrubenst/) ([@morning-light-mountain](https://github.com/morning-light-mountain)): Created initial Kilobot simulator from which this simulator is derived
8+
9+
German Espinosa ([@germanespinosa](https://github.com/germanespinosa)): Contributed to initial Kilobot simulator from which this simulator is derived
10+
11+
Gabriel Seymour ([@SeymourGabe](https://github.com/SeymourGabe)): Beta testing, noisy light detection, and battery life bug fix

LICENSE

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Copyright 2019 Kilosim CONTRIBUTORS
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4+
5+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6+
7+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

README.md

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,35 @@
1-
# Kilosim: Kilobot Simulator
1+
# ![Kilosim logo](docs/logo.svg) Kilosim: Kilobot Simulator
22

33
[![Build Status](https://travis-ci.com/jtebert/kilosim.svg?token=s6ZVW1bvfNjgbZQh2x9M&branch=master)](https://travis-ci.com/jtebert/kilosim)
4+
[![GitHub Issues](https://img.shields.io/github/issues/jtebert/kilosim.svg)](https://github.com/jtebert/kilosim/issues)
5+
[![GitHub release](https://img.shields.io/github/release-pre/jtebert/kilosim?color=yellow)](https://github.com/jtebert/kilosim/releases)
46

57
This is maintained on GitHub in the [kilosim repository](https://github.com/jtebert/kilosim). You can [submit any issues or questions here](https://github.com/jtebert/kilosim/issues).
68

7-
[__Full Documentation__](https://jtebert.github.io/kilosim/index.html)
9+
[**Full Documentation**](https://jtebert.github.io/kilosim/index.html)
810

911
---
1012

11-
Kilosim is designed to be a fast, lightweight, pseudo-physical* simulator for Kilobots. Notable benefits include:
13+
Kilosim is a fast, lightweight, pseudo-physical* C++ simulator for Kilobot robots. Notable benefits include:
1214

1315
- Pseudo-physical model means fast simulation for high-throughput
14-
- Directly use code written for Kilobots, using the same Kilolib API
15-
- Included Logger to easily to save experiment parameters in log continuous state data
16+
- Easily re-use code written for Kilobots, using the same Kilolib API
1617
- Includes support for ambient light sensing
17-
- Cross-platform Viewer for debugging and recording simulations
18-
- [In progress] Parallelized with OpenMP (run a 100-minute, 800 robot simulation in about 10 seconds)
19-
- Easy configuration with JSON files to run multiple and varied experiments
18+
- Included `Logger` to easily to save experiment parameters in log continuous state data
19+
- Cross-platform `Viewer` for debugging and recording simulations
20+
- Easy configuration with JSON files to run multiple trials and varied experiments
21+
- *[In progress]* Parallelization with OpenMP
2022

21-
*\* Pseudo-physical means that it is spatial and handles issues like collisions in a functional but hand-wavy manner. We make no attempt to accurately model true physical interactions. If you want to see what this means, run an example simulation with the Viewer.*
23+
\* *Pseudo-physical means that it is spatial and handles issues like collisions in a functional but hand-wavy manner. We make no attempt to accurately model true physical interactions. If you want to see what this means, run an example simulation with the Viewer.*
24+
25+
Note that this project is currently in a pre-release state and may still contain bugs, incomplete documentation, and missing features. If you have issues using the code, contact the developers or [open an issue](https://github.com/jtebert/kilosim/issues/new).
2226

2327
## Installing and Using
2428

29+
**NOTE:** At this time, we only support Kilosim on Linux. Other operating systems will be supported by a full release.
30+
31+
You can either [clone the repository from GitHub](https://github.com/jtebert/kilosim) or [download the latest release](https://github.com/jtebert/kilosim/releases).
32+
2533
### Dependencies
2634

2735
[HDF5](https://portal.hdfgroup.org/display/HDF5/HDF5), [SFML](https://www.sfml-dev.org/index.php), and [OpenMP](https://www.openmp.org/). Install on Ubuntu-like systems with: `sudo apt install libsfml-dev libhdf5-dev libomp-dev`
@@ -49,22 +57,46 @@ Run the executable generated by `make exec`
4957

5058
./bin/kilosim
5159

52-
### Build Documentation
60+
### Using static library
5361

54-
Build the HTML documentation: (Requires Doxygen to be installed.)
62+
**TODO:** Write tutorial on linking to static library
5563

56-
doxygen
57-
58-
This will automatically use the settings in `Doxyfile` and save the results to `docs/`. (The latest full documentation is automatically generated and published [here](https://jtebert.github.io/kilosim/index.html).)
5964

6065
## Configuration and Parameters
6166

6267
Configuration files are defined as JSON files and can be loaded with a ConfigParser. The contents of flat JSON files can be automatically saved with your data using the Logger. (Support for saving JSON objects and arrays to HDF5 may be added in the future if someone needs/wants it.)
6368

6469
There are no fixed requirements for the contents of the configuration files; it's an un-opinionated convenience tool for importing and using whatever (atomic) parameters you want.
6570

71+
## Support
72+
73+
If you are having issues installing or using the simulator, [open an issue](https://github.com/jtebert/kilosim/issues/new) or [email Julia](mailto:julia@juliaebert.com).
74+
75+
### Known Issues
76+
77+
- Fails with GCC 8 (We suspect this is a GCC bug; see [issue #23](https://github.com/jtebert/kilosim/issues/23).) **Workaround:** Change your GCC version.
78+
- Viewer does not work over SSH
79+
80+
## Contributing
81+
82+
We welcome contributions to the repository. To find things we're currently looking for help with, [check out the open issues](https://github.com/jtebert/kilosim/issues?utf8=✓&q=is%3Aissue+is%3Aopen+).
83+
84+
If you discover a bug or have an idea, for an improvement, [open an issue](https://github.com/jtebert/kilosim/issues/new).
85+
86+
If you add something you think would be useful to others, submit a pull request. All code should be [fully documented](http://www.doxygen.nl/manual/docblocks.html). You can check your documentation by [building the documentation locally](#build-documentation) Code reviews will be required for all pull requests, but we currently do not perform unit testing.
87+
88+
See a [full list of the contributors and their contributions here](CONTRIBUTORS.md).
89+
90+
### Build Documentation
91+
92+
Build the HTML documentation: (Requires Doxygen to be installed.)
93+
94+
doxygen
95+
96+
This will automatically use the settings in `Doxyfile` and save the results to `docs/`. (The latest full documentation is automatically generated and published [here](https://jtebert.github.io/kilosim/index.html).)
97+
6698
## License
6799

68-
**TBD**
100+
This software is released under the [MIT License](LICENSE).
69101

70-
This shouldn't be publicly used or shared until a license has been set for this software.
102+
If you use this software for a publication, please cite it.

docs/logo.svg

Lines changed: 148 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)