Thank you for your interest in contributing to Webots! The following is a set of guidelines for helping you to contribute to Webots.
You don't need to be an expert in robotics or software development to become a contributor. Depending on your skills, your contribution may address different parts of the Webots software:
- Bug reporting: A precise description of a reproducible bug is very helpful to us.
- Technical English writing: documentation pages.
- Foreign language: translate the user interface in your own language.
- Python programming: sample simulations, libraries, tools such as urdf2webots, etc.
- C/C++ programming: webots source code, sample simulations, libraries, tools, etc.
- 3D modeling: contribute models of objects, devices or robots.
In any case, you should have a minimal knowledge of GitHub to fork our repository and create a Pull Request that we will review and hopefully accept.
For C/C++ contributions is strongly recommended that you install the Webots development environment as explained below.
If your contribution is external to Webots, e.g., a sample simulation, a PROTO model, a controller library, etc., you may be interested to contribute it to the community projects repository.
Unless you have a good idea to implement, you can browse the beginner issues and select a feature or bug fix that should be fairly easy to implement. Once you will become an experienced Webots developer, you will be able to address more complex issues.
- Follow the installation instructions in our wiki.
- Fork the repository: https://help.github.com/articles/fork-a-repo
- Create a branch in your fork: https://help.github.com/articles/creating-and-deleting-branches-within-your-repository
- Pull the branch as a pull request targeting
cyberbotics:webots@master
: https://help.github.com/articles/creating-a-pull-request-from-a-fork - Wait for our unit tests and review of your pull request.
Our git workflow is explained in detail here.
- Follow our Coding Style.
- Avoid comitting files that exist elsewhere. Instead you should link to the source of these files.
- Avoid comitting files that can be re-created from other files using a Makefile, a script or a compiler.
Several step-by-step guides are available on the wiki: