Sphinx docs WIP
20
docs/Makefile
Normal file
@ -0,0 +1,20 @@
|
||||
# Minimal makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line, and also
|
||||
# from the environment for the first two.
|
||||
SPHINXOPTS ?=
|
||||
SPHINXBUILD ?= sphinx-build
|
||||
SOURCEDIR = source
|
||||
BUILDDIR = build
|
||||
|
||||
# Put it first so that "make" without argument is like "make help".
|
||||
help:
|
||||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
||||
.PHONY: help Makefile
|
||||
|
||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
%: Makefile
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
21
docs/README.md
Normal file
@ -0,0 +1,21 @@
|
||||
## Building the docs
|
||||
Install Sphinx using pip, Python's package manager. Open your command line interface and run:
|
||||
```bash
|
||||
pip install sphinx
|
||||
```
|
||||
|
||||
You'll also need to install some additional sphinx dependencies. Run
|
||||
```bash
|
||||
pip install sphinx-rtd-theme
|
||||
pip install sphinx_new_tab_link
|
||||
```
|
||||
|
||||
Build the docs by running in the `docs` directory:
|
||||
```bash
|
||||
make html
|
||||
```
|
||||
|
||||
To clean your build (necessary when you change the theme or make other changes to the build configuration), run:
|
||||
```bash
|
||||
make clean
|
||||
```
|
35
docs/make.bat
Normal file
@ -0,0 +1,35 @@
|
||||
@ECHO OFF
|
||||
|
||||
pushd %~dp0
|
||||
|
||||
REM Command file for Sphinx documentation
|
||||
|
||||
if "%SPHINXBUILD%" == "" (
|
||||
set SPHINXBUILD=sphinx-build
|
||||
)
|
||||
set SOURCEDIR=source
|
||||
set BUILDDIR=build
|
||||
|
||||
%SPHINXBUILD% >NUL 2>NUL
|
||||
if errorlevel 9009 (
|
||||
echo.
|
||||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||
echo.may add the Sphinx directory to PATH.
|
||||
echo.
|
||||
echo.If you don't have Sphinx installed, grab it from
|
||||
echo.https://www.sphinx-doc.org/
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if "%1" == "" goto help
|
||||
|
||||
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
||||
goto end
|
||||
|
||||
:help
|
||||
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
||||
|
||||
:end
|
||||
popd
|
41
docs/source/_static/custom.css
Normal file
@ -0,0 +1,41 @@
|
||||
.wy-nav-content {
|
||||
max-width: 65% !important;
|
||||
}
|
||||
|
||||
.or-figclass {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.clear-both {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Custom cell classes */
|
||||
.or-table > thead > tr > th {
|
||||
text-align: center;
|
||||
}
|
||||
.or-table > tbody > tr > td:has(.or-table-good) {
|
||||
background-color: #7FFF7F !important; /* Green */
|
||||
}
|
||||
|
||||
.or-table > tbody > tr > td:has(.or-table-okay) {
|
||||
background-color: #FFFF7F !important; /* Yellow */
|
||||
}
|
||||
|
||||
.or-table > tbody > tr > td:has(.or-table-poor) {
|
||||
background-color: #ffac7f !important; /* Orange */
|
||||
}
|
||||
.or-table-cell {
|
||||
color: #2d2d2d;
|
||||
margin: auto !important;
|
||||
text-align: center; !important;
|
||||
}
|
||||
|
||||
.or-table > tbody > tr > td:has(.or-table-bad) {
|
||||
background-color: #FF7F7F !important; /* Red */
|
||||
}
|
||||
|
||||
/* Remove the bottom margin in line blocks in tables */
|
||||
.or-table-line-blocks .line-block {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
67
docs/source/conf.py
Normal file
@ -0,0 +1,67 @@
|
||||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# This file only contains a selection of the most common options. For a full
|
||||
# list see the documentation:
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
# -- Path setup --------------------------------------------------------------
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#
|
||||
# import os
|
||||
# import sys
|
||||
# sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = 'OpenRocket'
|
||||
copyright = '2024, OpenRocket team'
|
||||
author = 'OpenRocket team'
|
||||
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = '23.09'
|
||||
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.duration',
|
||||
'sphinx_new_tab_link',
|
||||
'sphinx_rtd_dark_mode',
|
||||
]
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This pattern also affects html_static_path and html_extra_path.
|
||||
exclude_patterns = []
|
||||
|
||||
# user starts in light mode
|
||||
default_dark_mode = False
|
||||
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
#
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
# Configure Sphinx to update the sidebar whenever the navigation data changes.
|
||||
html_context = {
|
||||
'navigation_update': True
|
||||
}
|
||||
|
||||
html_css_files = [
|
||||
'custom.css',
|
||||
]
|
4
docs/source/dev_guide/api_documentation.rst
Normal file
@ -0,0 +1,4 @@
|
||||
=================
|
||||
API Documentation
|
||||
=================
|
||||
|
4
docs/source/dev_guide/architecture.rst
Normal file
@ -0,0 +1,4 @@
|
||||
=======================
|
||||
OpenRocket Architecture
|
||||
=======================
|
||||
|
4
docs/source/dev_guide/building_releasing.rst
Normal file
@ -0,0 +1,4 @@
|
||||
======================
|
||||
Building and Releasing
|
||||
======================
|
||||
|
13
docs/source/dev_guide/codebase_walkthrough.rst
Normal file
@ -0,0 +1,13 @@
|
||||
====================
|
||||
Codebase Walkthrough
|
||||
====================
|
||||
|
||||
Repository Structure
|
||||
--------------------
|
||||
|
||||
Important Modules and Packages
|
||||
------------------------------
|
||||
|
||||
Explanation of the Build System
|
||||
-------------------------------
|
||||
|
4
docs/source/dev_guide/contributing_to_the_website.rst
Normal file
@ -0,0 +1,4 @@
|
||||
===========================
|
||||
Contributing to the Website
|
||||
===========================
|
||||
|
12
docs/source/dev_guide/development_guidelines.rst
Normal file
@ -0,0 +1,12 @@
|
||||
======================
|
||||
Development Guidelines
|
||||
======================
|
||||
|
||||
Coding Standards
|
||||
----------------
|
||||
|
||||
Commit Message Guidelines
|
||||
-------------------------
|
||||
|
||||
Pull Request Process
|
||||
--------------------
|
39
docs/source/dev_guide/development_overview.rst
Normal file
@ -0,0 +1,39 @@
|
||||
====================
|
||||
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 <https://openrocket.info/documentation.html>`_.
|
||||
|
||||
Code structure
|
||||
--------------
|
||||
|
||||
OpenRocket is a Java application organized using the Java Platform Module System (JPMS) and built with `Gradle <https://gradle.org/>`_.
|
||||
The code is organized in the following two packages:
|
||||
|
||||
- `info.openrocket.core <https://github.com/openrocket/openrocket/tree/unstable/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 <https://github.com/openrocket/openrocket/tree/unstable/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:
|
||||
|
||||
- :doc:`Development Setup </dev_guide/development_setup>`
|
||||
- :doc:`OpenRocket Architecture </dev_guide/architecture>`
|
||||
- :doc:`Codebase Walkthrough </dev_guide/codebase_walkthrough>`
|
||||
- :doc:`Development Guidelines </dev_guide/development_guidelines>`
|
||||
- :doc:`Testing and Debugging </dev_guide/testing_and_debugging>`
|
||||
- :doc:`API Documentation </dev_guide/api_documentation>`
|
||||
- :doc:`Building and Releasing </dev_guide/building_releasing>`
|
||||
- :doc:`Contributing to the Website </dev_guide/contributing_to_the_website>`
|
||||
- :doc:`FAQ and Troubleshooting </dev_guide/faq_troubleshooting>`
|
||||
|
||||
We encourage contributions from everyone and hope this guide helps you get started with developing OpenRocket.
|
||||
|
200
docs/source/dev_guide/development_setup.rst
Normal file
@ -0,0 +1,200 @@
|
||||
==================================
|
||||
Setting Up Development Environment
|
||||
==================================
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
- `JDK 17 <https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html>`_. OpenRocket is developed using Java 17,
|
||||
so you will need to install it to build and run OpenRocket. If you have multiple versions of Java installed, ensure that
|
||||
Java 17 is the default version.
|
||||
|
||||
- `Git <https://git-scm.com/downloads>`_. Git is a version control system that is used to manage the source code for OpenRocket.
|
||||
You will need to install Git to clone the OpenRocket repository.
|
||||
|
||||
- `GitHub Account <https://github.com>`_. GitHub is a platform for hosting Git repositories. You will need a GitHub account to
|
||||
fork the OpenRocket repository and submit pull requests.
|
||||
|
||||
- `Gradle <https://gradle.org/install/>`_. OpenRocket uses Gradle as its build system. You will need to install Gradle to build OpenRocket.
|
||||
|
||||
Obtaining the Source Code
|
||||
-------------------------
|
||||
|
||||
The source code for OpenRocket is hosted on `GitHub <https://github.com/openrocket/openrocket>`_. However, you cannot change
|
||||
this code directly. This is because the OpenRocket repository is the official repository for the project, and only the project
|
||||
maintainers can make changes to it. This is to ensure that the codebase remains stable and consistent.
|
||||
Instead, you must fork the OpenRocket repository, which creates a personal copy of the repository that you can make changes to.
|
||||
You can then submit a pull request to the OpenRocket repository to propose your changes.
|
||||
|
||||
Forking the Repository
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The first step is to fork the OpenRocket repository. As mentioned earlier, the OpenRocket repository is the official repository
|
||||
for the project, and only the project maintainers can make changes to it.
|
||||
|
||||
Go to the OpenRocket repository on GitHub (`link <https://github.com/openrocket/openrocket>`_) and click the ``Fork`` button:
|
||||
|
||||
.. figure:: /img/dev_guide/fork_repo.png
|
||||
:align: center
|
||||
:width: 90%
|
||||
:alt: Forking the official OpenRocket repository.
|
||||
|
||||
Forking the official OpenRocket repository on `github.com/openrocket/openrocket <https://github.com/openrocket/openrocket>`_.
|
||||
|
||||
You can leave the default settings and click ``Create fork``. This will create a copy of the OpenRocket repository in your GitHub account:
|
||||
|
||||
.. figure:: /img/dev_guide/forked_repo.png
|
||||
:align: center
|
||||
:width: 80%
|
||||
:alt: Your forked repo.
|
||||
|
||||
Your forked repo.
|
||||
|
||||
You can always retrieve your forked repository under your GitHub account, under ``Your repositories``, or by visiting the URL
|
||||
``https://github.com/<your_username>/openrocket`` (replace ``<your_username>``
|
||||
with your actual username).
|
||||
|
||||
Cloning the Repository
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Now that you have forked the OpenRocket repository, you can clone it to your local machine. To do this, open a terminal and run the following command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git clone
|
||||
|
||||
This will clone the OpenRocket repository to your local machine. You can now make changes to the code and push them to your forked repository.
|
||||
|
||||
Keeping your Fork in Sync
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once you have forked the OpenRocket repository, you will need to keep your fork in sync with the official repository. This is because
|
||||
the official repository may have changes that are not in your fork, and you will want to keep your fork up-to-date with the latest changes.
|
||||
For example, in the following image you can see that your fork is 10 commits behind the official repository:
|
||||
|
||||
.. figure:: /img/dev_guide/forked_repo_outdated.png
|
||||
:align: center
|
||||
:width: 80%
|
||||
:alt: An outdated forked repo.
|
||||
|
||||
An outdated forked repo.
|
||||
|
||||
Luckily, GitHub makes it easy to keep your fork in sync with the official repository. You can do this by clicking the
|
||||
``Sync fork`` button on your forked repository page and then clicking the ``Update branch`` button:
|
||||
|
||||
.. figure:: /img/dev_guide/sync_fork.png
|
||||
:align: center
|
||||
:width: 80%
|
||||
:alt: Syncing your forked repo on GitHub.
|
||||
|
||||
Syncing your forked repo on GitHub.
|
||||
|
||||
If all went well, your fork should now be up-to-date with the official repository:
|
||||
|
||||
.. figure:: /img/dev_guide/forked_repo_up_to_date.png
|
||||
:align: center
|
||||
:width: 80%
|
||||
:alt: An up-to-date forked repo.
|
||||
|
||||
An up-to-date forked repo.
|
||||
|
||||
.. warning::
|
||||
It is important to keep your fork in sync with the official repository. If you don't, you may encounter conflicts
|
||||
when you try to submit a pull request.
|
||||
|
||||
**Regularly check your forked repository to see if it is behind the official repository**. If it is, sync your fork!
|
||||
|
||||
Now you have updated your fork, but you still need to update your local repository (your clone).
|
||||
To do this, you need to fetch the changes from the official repository and pull them into your local repository.
|
||||
You can do this by running the following commands:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git fetch && git pull
|
||||
|
||||
Setting Up the Development Environment
|
||||
--------------------------------------
|
||||
|
||||
This section will guide you through setting up the development environment to build OpenRocket from the source code.
|
||||
|
||||
IntelliJ IDEA
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
`IntelliJ IDEA <https://www.jetbrains.com/idea/>`_ is a popular Java IDE that is used by many developers. It has a lot of
|
||||
features that make it easier to develop Java applications. We **highly** recommend using IntelliJ IDEA for developing
|
||||
OpenRocket. You can download the Community Edition for free from the `JetBrains website <https://www.jetbrains.com/idea/download>`_
|
||||
(scroll down to “IntelliJ IDEA Community Edition” and click the download button).
|
||||
|
||||
Once you have downloaded and installed IntelliJ IDEA, you can open the OpenRocket project:
|
||||
|
||||
1. **Open IntelliJ IDEA**
|
||||
Start IntelliJ IDEA and select "Open" (Go to *File -> Open*).
|
||||
|
||||
2. **Select the OpenRocket project**
|
||||
Navigate to the directory where you cloned OpenRocket and select the project.
|
||||
|
||||
3. **Import Project as Gradle Project**
|
||||
IntelliJ should automatically detect that this is a Gradle project. If prompted, select ``Load Gradle Project``.
|
||||
|
||||
.. figure:: /img/dev_guide/load_gradle_project.png
|
||||
:align: center
|
||||
:width: 80%
|
||||
:alt: Load Gradle Project.
|
||||
|
||||
IntelliJ IDEA will automatically detect that this is a Gradle project and prompt you to load it. Click ``Load Gradle Project``.
|
||||
|
||||
4. **Configure JDK for the Project**
|
||||
- Go to *File -> Project Structure -> (Project Settings ->) Project*.
|
||||
- Set the Project SDK to JDK 17.
|
||||
|
||||
.. figure:: /img/dev_guide/project_sdk.png
|
||||
:align: center
|
||||
:width: 80%
|
||||
:alt: Set the project SDK.
|
||||
|
||||
Set the project SDK to JDK 17.
|
||||
|
||||
If JDK 17 is not listed, you can download it from the Project Structure dialog by \
|
||||
going to *(Platform Settings ->) SDKs*, clicking the ``+`` button, and selecting ``Download JDK...``. Then select \
|
||||
version 17 and any vendor (e.g. OpenJDK, Amazon Corretto, ...).
|
||||
|
||||
- Confirm in the Project Structure dialog under *(Project Settings ->) Modules* that the SDK in each module is set to JDK 17. \
|
||||
If not, you can change it by selecting the module and setting the SDK in the right pane. Ensure that the list view on the bottom-right \
|
||||
does not show ``<No SDK>``. If it does, click the *Module SDK* dropdown and click (again) on the JDK 17 SDK.
|
||||
|
||||
.. figure:: /img/dev_guide/modules_sdk.png
|
||||
:align: center
|
||||
:width: 80%
|
||||
:alt: Set the module SDK.
|
||||
|
||||
Set the module SDK to JDK 17.
|
||||
|
||||
5. **Run the Application**
|
||||
By default, IntelliJ should be set up with 3 run configurations:
|
||||
|
||||
- ``SwingStartup``: Run the application directly from within IntelliJ. You will user this configuration most of the time. \
|
||||
You can also run IntelliJ in debug mode by clicking the green bug icon next to the play button.
|
||||
|
||||
- ``openrocket-jar``: Run all the unit tests and build the application as a JAR file.
|
||||
|
||||
- ``openrocket-test``: Only run the unit tests.
|
||||
|
||||
.. figure:: /img/dev_guide/run_configurations.png
|
||||
:align: center
|
||||
:width: 80%
|
||||
:alt: Default installed run configurations.
|
||||
|
||||
The default installed run configurations.
|
||||
|
||||
You can run the application by selecting the ``SwingStartup`` configuration and clicking the green play button.
|
||||
This will instantiate the OpenRocket application from within IntelliJ IDEA. If you want to stop the running application,
|
||||
click the red square button on the top-right in IntelliJ.
|
||||
|
||||
.. figure:: /img/dev_guide/swingstartup.png
|
||||
:align: center
|
||||
:width: 80%
|
||||
:alt: Running OpenRocket from IntelliJ IDEA.
|
||||
|
||||
Running OpenRocket directly from IntelliJ IDEA.
|
||||
|
||||
6. **That's it!** You can now start developing OpenRocket. 🚀
|
4
docs/source/dev_guide/faq_troubleshooting.rst
Normal file
@ -0,0 +1,4 @@
|
||||
=======================
|
||||
FAQ and Troubleshooting
|
||||
=======================
|
||||
|
11
docs/source/dev_guide/testing_and_debugging.rst
Normal file
@ -0,0 +1,11 @@
|
||||
=====================
|
||||
Testing and Debugging
|
||||
=====================
|
||||
|
||||
Unit Testing
|
||||
------------
|
||||
|
||||
Debugging
|
||||
---------
|
||||
|
||||
IDE debugger, print statements, in-program debug log, debug command line argument...
|
BIN
docs/source/img/dev_guide/fork_repo.png
Normal file
After Width: | Height: | Size: 437 KiB |
BIN
docs/source/img/dev_guide/forked_repo.png
Normal file
After Width: | Height: | Size: 585 KiB |
BIN
docs/source/img/dev_guide/forked_repo_outdated.png
Normal file
After Width: | Height: | Size: 554 KiB |
BIN
docs/source/img/dev_guide/forked_repo_up_to_date.png
Normal file
After Width: | Height: | Size: 557 KiB |
BIN
docs/source/img/dev_guide/load_gradle_project.png
Normal file
After Width: | Height: | Size: 326 KiB |
BIN
docs/source/img/dev_guide/modules_sdk.png
Normal file
After Width: | Height: | Size: 184 KiB |
BIN
docs/source/img/dev_guide/project_sdk.png
Normal file
After Width: | Height: | Size: 162 KiB |
BIN
docs/source/img/dev_guide/run_configurations.png
Normal file
After Width: | Height: | Size: 333 KiB |
BIN
docs/source/img/dev_guide/swingstartup.png
Normal file
After Width: | Height: | Size: 580 KiB |
BIN
docs/source/img/dev_guide/sync_fork.png
Normal file
After Width: | Height: | Size: 965 KiB |
BIN
docs/source/img/introduction/about_dialog.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
docs/source/img/introduction/off_screen_rendering_right.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
docs/source/img/introduction/off_screen_rendering_setting.png
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
docs/source/img/introduction/off_screen_rendering_wrong.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/source/img/introduction/splash_screen.png
Normal file
After Width: | Height: | Size: 166 KiB |
BIN
docs/source/img/introduction/thrust_curves_setting.png
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
docs/source/img/openrocket_logo_256.png
Normal file
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 22 KiB |
BIN
docs/source/img/user_guide/basic_rocket_design/main_window.png
Normal file
After Width: | Height: | Size: 229 KiB |
58
docs/source/index.rst
Normal file
@ -0,0 +1,58 @@
|
||||
.. OpenRocket documentation master file, created by
|
||||
sphinx-quickstart on Tue Jan 2 22:06:21 2024.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
Welcome to OpenRocket's documentation!
|
||||
======================================
|
||||
|
||||
**OpenRocket** is a free, fully featured model rocket simulator that allows you to design and simulate your rockets before building and flying them.
|
||||
|
||||
.. note::
|
||||
|
||||
This documentation is under active development.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Introduction
|
||||
|
||||
introduction/overview
|
||||
introduction/features
|
||||
introduction/contribute
|
||||
introduction/FAQ
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Setup
|
||||
|
||||
setup/installation
|
||||
setup/getting_started
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: User Guide
|
||||
|
||||
user_guide/basic_rocket_design
|
||||
user_guide/thrust_curves
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Developer Guide
|
||||
|
||||
dev_guide/development_overview
|
||||
dev_guide/development_setup
|
||||
/dev_guide/architecture
|
||||
/dev_guide/codebase_walkthrough
|
||||
/dev_guide/development_guidelines
|
||||
/dev_guide/testing_and_debugging
|
||||
/dev_guide/api_documentation
|
||||
/dev_guide/building_releasing
|
||||
/dev_guide/contributing_to_the_website
|
||||
/dev_guide/faq_troubleshooting
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
2
docs/source/introduction/FAQ.rst
Normal file
@ -0,0 +1,2 @@
|
||||
Frequently Asked Questions
|
||||
==========================
|
4
docs/source/introduction/contribute.rst
Normal file
@ -0,0 +1,4 @@
|
||||
Contribute
|
||||
==========
|
||||
|
||||
|
567
docs/source/introduction/features.rst
Normal file
@ -0,0 +1,567 @@
|
||||
Features
|
||||
========
|
||||
|
||||
Current features (as of OpenRocket 23.09):
|
||||
------------------------------------------
|
||||
|
||||
General
|
||||
~~~~~~~
|
||||
|
||||
* Fully cross-platform, written in Java
|
||||
|
||||
* `Fully documented simulation methods <https://openrocket.info/documentation.html>`_
|
||||
|
||||
* Open Source (see our `GitHub repository <https://github.com/openrocket/openrocket>`), source code available under the `GNU GPL <https://www.gnu.org/licenses/gpl-3.0.txt>`_
|
||||
|
||||
* Export OpenRocket design file to other simulation programs (RockSim, RASAero II)
|
||||
|
||||
* Export component(s) to OBJ file for 3D printing
|
||||
|
||||
* Extensible with custom simulation listeners, expressions, and plugins
|
||||
|
||||
User Interface
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
* **Intuitive user interface**
|
||||
|
||||
* **Real-time view of CG and CP** position
|
||||
|
||||
* **Real-time flight altitude, velocity and acceleration** information from a continuous simulation performed in the background
|
||||
|
||||
* Zoomable schematic view of rocket from the side or rear, with rotation around the center axis
|
||||
|
||||
Design
|
||||
~~~~~~
|
||||
|
||||
* A multitude of available components to choose from
|
||||
|
||||
* **Trapezoidal, elliptical, free-form and tube fins** supported
|
||||
|
||||
* Support for **canted** fins (roll stabilization)
|
||||
|
||||
* **Staging** and **clustering** support
|
||||
|
||||
* **Pods** support
|
||||
|
||||
* Automatic calculation of component mass and CG based on shape and density
|
||||
|
||||
* Ability to **override mass, CG and CD** of components or stages separately
|
||||
|
||||
Simulation and Analysis
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Full **six degree of freedom** simulation
|
||||
|
||||
* Rocket stability computed using **extended Barrowman** method
|
||||
|
||||
* **Automatic design optimization** — *you can optimize any number of rocket parameters for flight altitude, maximum velocity or a number of other values*
|
||||
|
||||
* Realistic wind modeling
|
||||
|
||||
* Analysis of the **effect of separate components** on the stability, drag and roll characteristics of the rocket
|
||||
|
||||
* **Fully configurable plotting**, with various preset configurations
|
||||
|
||||
* Simulation data can be **exported to CSV** files for further analysis
|
||||
|
||||
* **Simulation listeners** allowing custom-made code to interact with the rocket during flight simulation
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<hr />
|
||||
|
||||
Planned Future Features
|
||||
-----------------------
|
||||
|
||||
.. note::
|
||||
OpenRocket is under constant work in the free time of the developers. If you want to **help improve it**, please refer to the :doc:`Contribute page </introduction/contribute>`.
|
||||
|
||||
Below are a few major features that are under consideration:
|
||||
|
||||
* Better support for transonic and supersonic simulations (:doc:`help needed! </introduction/contribute>`)
|
||||
|
||||
* Monte Carlo simulation for uncertainty analysis
|
||||
|
||||
* Simulate fin flutter
|
||||
|
||||
* Customized support for hybrid rocket motors and water rockets
|
||||
|
||||
* Importing and plotting actual flight data from altimeters
|
||||
|
||||
* Rocket flight animation
|
||||
|
||||
* A “wizard” for creating new rocket designs
|
||||
|
||||
* More advanced rocket optimization methods
|
||||
|
||||
* Import CD and CP data from other programs (e.g. RASAero)
|
||||
|
||||
For a full overview of the planned features, please refer to the `GitHub issue tracker <https://github.com/openrocket/openrocket/issues>`_.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<hr />
|
||||
|
||||
Comparison to RockSim
|
||||
-----------------------
|
||||
|
||||
`RockSim <https://www.apogeerockets.com/Rocket_Software/RockSim>`_ is a very powerful, commercial rocket design and simulation program.
|
||||
It is more advanced than OpenRocket in some regards, but its price tag of $124 makes it inaccessible to many hobbyists.
|
||||
OpenRocket is free, and the source code is available for modification by anyone.
|
||||
To help you decide which program is right for you, we have compiled a comparison of the features of OpenRocket 23.09 and RockSim 10 below.
|
||||
|
||||
While hosted on the OpenRocket documentation, we have attempted to make this an objective comparison between the functionality
|
||||
of the two software products. If you think something is wrong or omitted, please `contact us <https://openrocket.info/contact.html>`_.
|
||||
|
||||
General
|
||||
~~~~~~~
|
||||
|
||||
.. list-table:: OpenRocket vs. RockSim: General
|
||||
:widths: 20 20 20
|
||||
:header-rows: 1
|
||||
:class: or-table
|
||||
|
||||
* -
|
||||
- OpenRocket
|
||||
- RockSim
|
||||
* - License
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Open Source (GPLv3)
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-poor
|
||||
|
||||
| Proprietary
|
||||
|
||||
* - Price
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Free
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-poor
|
||||
|
||||
| $124
|
||||
|
||||
* - Supported platforms
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Windows, Mac, Linux
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-okay
|
||||
|
||||
| Windows, Mac
|
||||
|
||||
* - Supported file formats
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| ORK, RKT, CDX1
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-poor
|
||||
|
||||
| RKT
|
||||
|
||||
* - Anti-piracy copy protection
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| None
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-okay
|
||||
|
||||
| `PACE <http://www.paceap.com/>`_
|
||||
|
||||
UI Features
|
||||
~~~~~~~~~~~
|
||||
|
||||
.. list-table:: OpenRocket vs. RockSim: UI Features
|
||||
:widths: 20 20 20
|
||||
:header-rows: 1
|
||||
:class: or-table
|
||||
|
||||
* -
|
||||
- OpenRocket
|
||||
- RockSim
|
||||
* - Side/back view
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - 3D view
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Photorealistic 3D rendering
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
* - Export 3D design
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes (OBJ)
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes (3DS)
|
||||
|
||||
* - Design view rotation
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Any angle
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-poor
|
||||
|
||||
| Side and top only
|
||||
|
||||
* - Live CG/CP view
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Realtime simulation
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
Design Features
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table:: OpenRocket vs. RockSim: Design Features
|
||||
:widths: 20 20 20
|
||||
:header-rows: 1
|
||||
:class: or-table
|
||||
|
||||
* -
|
||||
- OpenRocket
|
||||
- RockSim
|
||||
* - Basic components
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Freeform fins
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Asymmetric fin configurations
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Tube fins
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Ring-tail fins
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Fins attached to fins
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - External pods
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Canted fins / roll stabilization
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
* - Standard component libraries
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Decals
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Clustering support
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes, modifiable
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-okay
|
||||
|
||||
| Yes, one-time wizard only
|
||||
|
||||
* - Staging support
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes, unlimited
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-okay
|
||||
|
||||
| Yes, 3 stages
|
||||
|
||||
Simulation Features
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table:: OpenRocket vs. RockSim: Simulation Features
|
||||
:widths: 20 20 20
|
||||
:header-rows: 1
|
||||
:class: or-table
|
||||
|
||||
* -
|
||||
- OpenRocket
|
||||
- RockSim
|
||||
* - Degrees of freedom
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| 6DOF
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-okay
|
||||
|
||||
| 3DOF
|
||||
|
||||
* - Geodetic calculation (Earth coordinates, coriolis effect)
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
* - Simulations extensible by own code
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
* - Simulation animation
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Plotting any simulated variables
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Exporting simulated data
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Computing custom variables
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
Optimization and Analysis
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table:: OpenRocket vs. RockSim: Optimization and Analysis
|
||||
:widths: 20 20 20
|
||||
:header-rows: 1
|
||||
:class: or-table
|
||||
|
||||
* -
|
||||
- OpenRocket
|
||||
- RockSim
|
||||
* - General design optimization
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
* - Mass optimization
|
||||
- .. cssclass:: or-table-cell, or-table-okay
|
||||
|
||||
| Yes (using general optimizer)
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Stability analysis
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes, per component
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-okay
|
||||
|
||||
| Yes, per stage
|
||||
|
||||
* - Drag analysis
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes, per component
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-poor
|
||||
|
||||
| Yes, per stage
|
||||
|
||||
* - Roll analysis
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
Printing
|
||||
~~~~~~~~
|
||||
|
||||
.. list-table:: OpenRocket vs. RockSim: Printing
|
||||
:widths: 20 20 20
|
||||
:header-rows: 1
|
||||
:class: or-table
|
||||
|
||||
* -
|
||||
- OpenRocket
|
||||
- RockSim
|
||||
* - Schematic view
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Stability information
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Simulation results
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Parts list
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
* - Component templates
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Nose cone, fin sets, centering rings
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Nose cone, fin sets, centering rings
|
||||
|
||||
* - Fin placement guide
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
||||
|
||||
* - Export to PDF
|
||||
- .. cssclass:: or-table-cell, or-table-good
|
||||
|
||||
| Yes
|
||||
|
||||
- .. cssclass:: or-table-cell, or-table-bad
|
||||
|
||||
| No
|
52
docs/source/introduction/overview.rst
Normal file
@ -0,0 +1,52 @@
|
||||
Overview
|
||||
========
|
||||
|
||||
What is OpenRocket?
|
||||
-------------------
|
||||
|
||||
.. figure:: /img/openrocket_logo_256.png
|
||||
:figclass: or-figclass
|
||||
:figwidth: 25 %
|
||||
:align: right
|
||||
|
||||
The OpenRocket Logo
|
||||
|
||||
Welcome! OpenRocket is an open-source model rocket simulation software application. It was originally developed by
|
||||
Sampo Niskanen in 2009 as part of his master thesis at what was then `Helsinki University of Technology <https://www.aalto.fi/en/aalto-university/history>`_.
|
||||
If you want to have a look at his thesis you can download it from `OpenRocket's technical documentation page <http://openrocket.info/documentation.html>`_.
|
||||
Written entirely in Java, OpenRocket is fully cross-platform. To install the software, please refer to the :doc:`Installation Instructions </setup/installation>`
|
||||
|
||||
.. rst-class:: clear-both
|
||||
|
||||
OpenRocket is intended to be used by rocketeers who want to test the performance of a model rocket before actually
|
||||
building and flying it. The software accurately computes the aerodynamic properties of rockets and simulates their flight,
|
||||
returning a wide range of technical results.
|
||||
|
||||
The program can be roughly divided into two sections:
|
||||
|
||||
* **Rocket design**: In this phase, you can design the model rocket you intend to build, choosing from a wide range of \
|
||||
**body components**, **trapezoidal**, **elliptical**, and **free-form fins**, **inner components**, and **mass objects**. \
|
||||
During this phase, you will see a 2D representation of the rocket you are building and various technical information, \
|
||||
*such as size, mass, apogee, max. velocity, max. acceleration, stability, center of gravity (CG), and center of pressure \
|
||||
(CP)* about your rocket. This allows you to have a good idea of its performance even before running any simulation.
|
||||
|
||||
* **Flight simulation**: In this phase, you can run one or more simulations of your rocket's flight, choosing from one \
|
||||
or more **motor configurations**. Each simulation, calculated using the Runge-Kutta 4 simulator, returns a wide range \
|
||||
of data about the rocket's flight. Unfortunately, for the moment, a graphical visualization of the rocket's flight is \
|
||||
not available (`help needed <https://openrocket.info/contribute.html>`_).
|
||||
|
||||
|
||||
For more information about OpenRocket's features and a few screenshots you can have a look `here <https://openrocket.info/features.html>`_.
|
||||
|
||||
How this Documentation is Organized
|
||||
-----------------------------------
|
||||
|
||||
.. warning::
|
||||
This documentation is still a work in progress, so **some sections may be incomplete**. If you want to help us improve it, please refer to the :doc:`Contribute section </introduction/contribute>`.
|
||||
|
||||
This documentation is organized in 4 main sections:
|
||||
|
||||
#. **Introduction**: this section contains general information about OpenRocket, such as its history, its features, and how to contribute to the project.
|
||||
#. **Setup**: this section contains information about how to install and run OpenRocket on your computer.
|
||||
#. **User Guide**: this section contains information about how to use OpenRocket to design and simulate your model rockets.
|
||||
#. **Developer Guide**: this section contains information about how to contribute to the development of OpenRocket.
|
3
docs/source/setup/getting_started.rst
Normal file
@ -0,0 +1,3 @@
|
||||
Getting Started
|
||||
===============
|
||||
|
203
docs/source/setup/installation.rst
Normal file
@ -0,0 +1,203 @@
|
||||
Installation Instructions
|
||||
=========================
|
||||
|
||||
.. contents:: Table of Contents
|
||||
:depth: 1
|
||||
:local:
|
||||
:backlinks: none
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
OpenRocket is released in two forms: as a *packaged application* and as a *JAR file*.
|
||||
**The easiest way to get OpenRocket up and running is to download and install one of the packaged installers.**
|
||||
The packaged installers come with everything needed, including the correct version of Java;
|
||||
*you will not need to install, update or downgrade Java on your device to run them.*
|
||||
|
||||
Download the latest version from `our downloads page <https://openrocket.info/downloads.html?vers=latest>`_.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<hr>
|
||||
|
||||
Pre-Installation Procedures
|
||||
---------------------------
|
||||
|
||||
Some users may experience problems with the OpenRocket installation if they don't follow the pre-installation procedures below.
|
||||
|
||||
Close All Instances of OpenRocket
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If you have OpenRocket running, close it before installing a new version. By default, new OpenRocket releases
|
||||
install to the same location on your device; these releases even share preferences. Because of this, if OpenRocket is
|
||||
open when you attempt to install an updated release, the installation may not update all of the files needed for
|
||||
OpenRocket to function correctly.
|
||||
|
||||
Before installing an update, you *MUST* close all open instances of OpenRocket.
|
||||
|
||||
(Optional) Uninstall Prior OpenRocket Releases
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
As described above, by default, new releases of OpenRocket install to the same location on your device.
|
||||
Although **not expressly required**, it is suggested that all previously installed OpenRocket releases be uninstalled
|
||||
before installing the updated release. This is *not required*, but is suggested to ensure the proper function of OpenRocket.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<hr>
|
||||
|
||||
Installing OpenRocket 🚀
|
||||
------------------------
|
||||
|
||||
**Download the latest version from `our downloads page** <https://openrocket.info/downloads.html?vers=latest>`_.
|
||||
Scroll down to download the correct installer for your platform (Windows, macOS, or Linux).
|
||||
|
||||
Each platform has a different installation process. Click on the ``Show <your platform> installation instructions`` header under your
|
||||
platform's download button to see the installation instructions.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<hr>
|
||||
|
||||
After-Installation Checks
|
||||
-------------------------
|
||||
|
||||
After installing OpenRocket, you need to verify that the installation was successful and potentially modify some settings
|
||||
to ensure that OpenRocket functions correctly.
|
||||
|
||||
Verify the Installed Release Number
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
First, verify that you actually installed the current release of OpenRocket. You can see this in the splash screen, which
|
||||
appears when you start OpenRocket. The splash screen will show the release number on the right:
|
||||
|
||||
.. figure:: /img/introduction/splash_screen.png
|
||||
:alt: OpenRocket Splash Screen
|
||||
:figclass: or-figclass
|
||||
:figwidth: 60 %
|
||||
:align: center
|
||||
|
||||
During startup, the OpenRocket Splash Screen shows the release number on the right.
|
||||
|
||||
If the release number is not correct, you may have installed the wrong version of OpenRocket, or didn't follow the
|
||||
`Pre-Installation Procedures`_ above.
|
||||
|
||||
Another way to check the release number is to open the ``Help`` menu in the application ribbon
|
||||
and select ``About``. This will open a dialog box that shows the release number:
|
||||
|
||||
.. figure:: /img/introduction/about_dialog.png
|
||||
:alt: OpenRocket About Dialog
|
||||
:figclass: or-figclass
|
||||
:figwidth: 40 %
|
||||
:align: center
|
||||
|
||||
The OpenRocket About Dialog (``Help`` → ``About``) shows the release number.
|
||||
|
||||
Check the Settings
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
For most users, OpenRocket's default settings will work fine. However, some users may need to change some settings.
|
||||
|
||||
Off-screen Rendering
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Some users have reported that the rocket shown in the 3D design view is not full-size. This can occur if the off-screen
|
||||
rendering setting is not correct for your device. Using the Three-stage rocket example packaged with OpenRocket, this is
|
||||
what the problem looks like:
|
||||
|
||||
.. figure:: /img/introduction/off_screen_rendering_wrong.png
|
||||
:alt: Wrong 3D View of Three-stage Rocket
|
||||
:figclass: or-figclass
|
||||
:figwidth: 75 %
|
||||
:align: center
|
||||
|
||||
The 3D view of the Three-stage rocket example is too small.
|
||||
|
||||
To fix this, you need to change the off-screen rendering setting. To do this, open the ``Edit`` menu in the application
|
||||
ribbon and select ``Preferences``. This will open the Preferences dialog box. This window has several tabs (``General``,
|
||||
``Design``, ``Simulation``, ... You need to go to the ``Graphics`` tab (just click on that tab header) and on the bottom
|
||||
of the page change the ``Use off-screen rendering`` setting:
|
||||
|
||||
.. figure:: /img/introduction/off_screen_rendering_setting.png
|
||||
:alt: Off-screen Rendering Setting
|
||||
:figclass: or-figclass
|
||||
:figwidth: 50 %
|
||||
:align: center
|
||||
|
||||
The off-screen rendering setting is on the bottom of the ``Graphics`` tab.
|
||||
|
||||
Your 3D view should now look like this:
|
||||
|
||||
.. figure:: /img/introduction/off_screen_rendering_right.png
|
||||
:alt: Correct 3D View of Three-stage Rocket
|
||||
:figclass: or-figclass
|
||||
:figwidth: 75 %
|
||||
:align: center
|
||||
|
||||
The 3D view of the Three-stage rocket example is now correct.
|
||||
|
||||
.. note::
|
||||
|
||||
Whenever you face issues with 3D rendering in OpenRocket, it is a good idea to change the off-screen rendering setting
|
||||
to see if that fixes the problem.
|
||||
|
||||
.. _thrust_curves_setting:
|
||||
|
||||
Thrust Curves Folder
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
OpenRocket ships with a bunch of built-in motor thrust curves. However, it is possible to import your own thrust curves,
|
||||
see :ref:`Import Custom Thrust Curves <importing_thrust_curves>`. For this to work, you need to
|
||||
**specify a folder where OpenRocket will look for thrust curves**. By default, OpenRocket will look in the ``ThrustCurves``
|
||||
folder in your application data directory. The application data directory is different for each operating system, see the
|
||||
table below for the default application data directories for each operating system.
|
||||
|
||||
|
||||
.. list-table:: Default Application Data Directories by Operating System
|
||||
:widths: auto
|
||||
:header-rows: 1
|
||||
:class: or-table-line-blocks
|
||||
|
||||
* - Operating System
|
||||
- Default Thrust Curves Directory
|
||||
* - Windows
|
||||
- | ``%APPDATA%\OpenRocket\ThrustCurves`` (if ``APPDATA`` is available)\*
|
||||
| ``C:\Users\[YOUR USERNAME]\OpenRocket\ThrustCurves`` (fallback if ``APPDATA`` is not available)
|
||||
|
|
||||
| \* ``APPDATA`` is usually ``C:\Users\[YOUR USERNAME]\AppData\Roaming``
|
||||
* - macOS
|
||||
- ``/Users/[YOUR USERNAME]/Library/Application Support/OpenRocket/ThrustCurves/``
|
||||
* - Linux
|
||||
- ``/home/[YOUR USERNAME]/.openrocket/ThrustCurves/`` (hidden directory)
|
||||
|
||||
``[YOUR USERNAME]`` **is your user name on your device.**
|
||||
|
||||
To view or modify the user-defined thrust curves folder(s), open the ``Edit`` menu in the application ribbon and select
|
||||
``Preferences``. This will open the Preferences dialog box. You need to go to the ``General`` tab (should be open by default)
|
||||
and change the ``User-defined thrust curves`` setting:
|
||||
|
||||
.. figure:: /img/introduction/thrust_curves_setting.png
|
||||
:alt: Thrust Curves Setting
|
||||
:figclass: or-figclass
|
||||
:figwidth: 50 %
|
||||
:align: center
|
||||
|
||||
The setting to change the user-defined thrust curves folder.
|
||||
|
||||
You can also add multiple thrust curve folders. To do this, click on the ``Add`` button and select the folder you want to add.
|
||||
You can also manually enter a new folder path. This path must be separated from other paths by a semicolon (``;``).
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
When you have issues with your installation, ensure that you have **read the installation instructions** for your platform.
|
||||
When you download the installer from our `downloads page <https://openrocket.info/downloads.html?vers=latest>`_, you can
|
||||
click on the ``Show <your platform> installation instructions`` header under your platform's download button to see the
|
||||
installation instructions.
|
||||
|
||||
If you have further issues, please `contact us <https://openrocket.info/contact.html>`_.
|
||||
|
||||
Uninstalling
|
||||
------------
|
||||
|
||||
``TODO``
|
66
docs/source/user_guide/basic_rocket_design.rst
Normal file
@ -0,0 +1,66 @@
|
||||
Basic Rocket Design
|
||||
===================
|
||||
|
||||
In this section we'll look at how to design a basic rocket by examining the A simple model rocket design example.
|
||||
After reading this section you should have an understanding of how to start designing your own rockets.
|
||||
|
||||
We will start with a brief discussion on the selection of **available components**, and then the components used in
|
||||
the ``A simple model rocket`` example design file (``File`` -> ``Open example`` -> ``A simple model rocket``).
|
||||
Then we'll build a rocket from scratch to see how it’s done.
|
||||
|
||||
.. contents:: Table of Contents
|
||||
:depth: 2
|
||||
:local:
|
||||
:backlinks: none
|
||||
|
||||
|
||||
Component Configuration Window
|
||||
------------------------------
|
||||
|
||||
There are several types of components available to you as a rocket designer, and you can either customize them to meet
|
||||
your needs, or simply load component presets from the parts library.
|
||||
|
||||
To start, let's begin a new project: ``File`` -> ``New``. It doesn’t matter what we call it at the moment, but go ahead
|
||||
and save the design straight away: ``File`` -> ``Save``. At this point you should be presented with a blank rocket design window:
|
||||
|
||||
.. figure:: /img/user_guide/basic_rocket_design/main_window.png
|
||||
:align: center
|
||||
:width: 70%
|
||||
:alt: The OpenRocket rocket design window.
|
||||
|
||||
The OpenRocket rocket design window.
|
||||
|
||||
When you first start a new rocket design you will see that there are four categories of components available in the **Add new component** panel
|
||||
on the top-right of the rocket design window:
|
||||
|
||||
* ``Assembly Components``: These are components that have **no physical meaning** of their own but are used to **group components together**.
|
||||
|
||||
* ``Body Components and Fin Sets``: These are components that are used to **build the rocket's airframe**.
|
||||
|
||||
* ``Inner Components``: These are components that are placed **inside the rocket's airframe**.
|
||||
|
||||
* ``Mass Components``: These are components that are used to **add mass** to the rocket or serve as **recovery devices**.
|
||||
|
||||
We would usually start building our rocket by selecting a nose cone but for the sake of this guide click the
|
||||
``Body tube`` icon in the ``Body Components and Fin Sets`` section. This will then open up a configuration window
|
||||
to edit the body tube parameters.
|
||||
|
||||
The Body Tube’ Configuration Window
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
At this point you should see a new window titled ``Body tube configuration``.
|
||||
|
||||
.. figure:: /img/user_guide/basic_rocket_design/body_tube_config.png
|
||||
:align: center
|
||||
:width: 60%
|
||||
:alt: The Body Tube configuration window.
|
||||
|
||||
The Body Tube configuration window.
|
||||
|
||||
This window allows you to either select a preset for the component type you are choosing, or make your own. Let’s start by examining how to customize it ourselves. If you have a look at the Body tube configuration window you will see that at the top there is a Component name field. Here we can change the name of the current component to anything we choose. (Note that this name will then appear in the design tree seen in the Rocket Design panel of the main program window.)
|
||||
|
||||
Just below Component name there are several tabs:
|
||||
|
||||
|
||||
|
||||
|
9
docs/source/user_guide/thrust_curves.rst
Normal file
@ -0,0 +1,9 @@
|
||||
Thrust Curves
|
||||
=============
|
||||
|
||||
.. _importing_thrust_curves:
|
||||
|
||||
Import Custom Thrust Curves
|
||||
---------------------------
|
||||
|
||||
To set up the thrust curves folder(s), please see the :ref:`Thrust Curves Folder Settings <thrust_curves_setting>` section.
|