Skip to main content
Welcome to the OpenRocket developer guide. This documentation covers the architecture, codebase, and development workflows for developers interested in contributing to OpenRocket or embedding it in another application. For technical details about aerodynamic calculations and simulation methods, see the OpenRocket technical documentation.

Code structure

OpenRocket is a Java application organized using the Java Platform Module System (JPMS) and built with Gradle. The codebase is split into two modules:

info.openrocket.core

The backend library. Contains the rocket component model, simulation engine, file format parsers and writers, and aerodynamic calculators. Has no dependency on any GUI toolkit — it can be embedded in other applications.

info.openrocket.swing

The graphical user interface. Built with the Java Swing toolkit. Depends on info.openrocket.core and uses it to run simulations and display results.

Developer guide sections

Development setup

Prerequisites, forking and cloning the repository, IntelliJ IDEA setup, and building from source.

Architecture

High-level code architecture: JPMS modules, dependency injection with Guice, and key subsystems.

Codebase walkthrough

A package-by-package guide to the most important directories in core and swing.

File specification

The .ork rocket design file format and the .orc component preset file format.

Development guidelines

Coding standards, commit etiquette, pull request process, and Checkstyle enforcement.
Contributions are welcome from everyone. Whether you are fixing a bug, adding a feature, improving documentation, or translating the UI, the maintainers appreciate any help.