Development Overview
Welcome to the OpenRocket Development Guide! This documentation is designed for developers interested in contributing to OpenRocket.
This guide covers the architecture, codebase, and development workflows in detail. To dive deeper into specific topics, use the links below to navigate to different sections of this development guide. To learn more about the technical aspects of OpenRocket, such as the aerodynamic calculations, refer to the Technical documentation.
Code structure
OpenRocket is a Java application organized using the Java Platform Module System (JPMS) and built with Gradle. The code is organized in the following two packages:
info.openrocket.core - The backend of OpenRocket. This package contains the classes that represent the rocket and its components, as well as the simulation engine. The classes in this package are not dependent on any GUI libraries and can be used in other applications.
info.openrocket.swing - The GUI of OpenRocket. This package contains the classes that create the user interface. OpenRocket uses the Java Swing library for the GUI.
Further Reading
Explore the following sections to learn more about OpenRocket’s development:
- How to set up your development environment to build and run OpenRocket.
- An overview of the high-level code architecture of OpenRocket.
- A detailed guide to the codebase of OpenRocket.
- Guidelines for contributing to OpenRocket.
- How to test and debug the OpenRocket code.
- The specification of OpenRocket’s design file format (.ork) and component file format (.orc).
- Documentation for the OpenRocket API.
- How to build and release new OpenRocket versions.
- How to contribute to the openrocket.info website.
- How to contribute to translating the OpenRocket UI into different languages.
- How to contribute to this OpenRocket documentation.
- Frequently asked questions and troubleshooting tips for developers.
We encourage contributions from everyone and hope this guide helps you get started with developing OpenRocket. ❤️