Thanks for your willingness to help improve our flexible, programmatic, mixed-reality platform! ARENA is a project led by Carnegie Mellon University, under the CONIX Research Center, a collaboration between six US-based universities. This guide will help you find the right path to contribute. Feel free to join the ARENA CONIX slack and ask us questions.
ARENA development is lead by a team from Carnegie Mellon University. Our team is composed of faculty, staff and several students and is continuously being strengthened. See our GitHub for the list of contributors in each repository.
The ARENA may be deployed by you or us in many different locations. We maintain a production ARENA Server instance at arenaxr.org.
If you want to work on something that there is no GitHub issue for, it’s best to document your plan before working on a Pull Request. To do so, follow these steps:
1. Create a new GitHub issue associated with the relevant repository and propose your change there with:
- Why is the change needed?
- How will it be implemented?
2. An ARENA team member will respond and let you know if the Issue is acceptable to work on or if some implementation modification is needed.
3. If you have questions or are not sure about the feature, please do ask us questions in our ARENA CONIX slack Slack #questions channel.
There are 2 basic things that will help us greatly for any issue you report:
- Is it reproducible and what are the steps to reproduce the problem?
- Where was the issue? Which hostname and the version in use?
Deployed web server issues please include version here from the commit history at https://github.com/arenaxr/arena-services-docker
Python client issues please include the version here from
pip show arena-py.
Some changes will require internal discussion to see if the needs of the project are still being met which can change from time to time. A list of which repo to use are listed at the end of this guide.
- A great way to start is to try development of a scene using the Python and scene builder tutorials.
- Once familiar, good first issues to help with are labeled with
good first issue.
- Create your own fork of the appropriate repository and clone it and any submodules.
- Create your own branch with the name of your change, and do not use master or main branches for your change.
- Create a draft PR for your changes.
- Push changes to your PR/branch often.
- Submit your PR and request a code review from us.
- After all rounds of review feedback are addressed we will manage merging the PR.
The ARENA is composed from a number of repositories. That can be confusing. We recommend searching for an existing issue from our list first and familiarizing yourself with this basic map:
- ARENA Client Website: arenaxr/arena-web-core/issues
- ARENA Python client: arenaxr/arena-py/issues
- ARENA Unity client: arenaxr/arena-unity/issues
- ARENA Docs Website: arenaxr/arena-docs/issues
- ATLAS Server: arenaxr/ATLAS/issues
- ARENA MQTT Broker: SilverLineFramework/mosquitto-broker/issues
- ARENA Runtime Supervisor: SilverLineFramework/orchestrator/issues
- ARENA User Account DB: arenaxr/arena-account/issues
- ARENA User Scene Persistence DB: arenaxr/arena-persist/issues
- ARENA User File Manager: arenaxr/arena-store/issues
We adhere to the Contributor Covenant Code of Conduct: https://www.contributor-covenant.org/version/2/0/code_of_conduct/code_of_conduct.md