Skip to main content

Interact and script with OpenRocket from Python via JPype, with enhanced capabilities for simulations and computational workflows

Project description

orlab

orlab is a Python module designed to simplify interaction and scripting with OpenRocket from Python. It leverages JPype to bridge Python and Java, enabling seamless control over OpenRocket's functionalities. Currently, it supports access to simulation capabilities given an .ork file, with the goal of future expansion to enable more sophisticated computational engineering workflows.

This project is an evolution of the original orhelper library, which hasn't been maintained recently and is limited in scope. orlab supports current OpenRocket versions (the package root is detected from the jar automatically), reorganizes the code for better structure, and plans to incorporate additional features.

Table of Contents

Prerequisites

Before installing orlab, ensure you have the following installed on your system:

  • An OpenRocket jar — the version is detected automatically:
  • Adoptium JDK 17 LTS (or higher?)
  • Python version 3.10 or higher

Installation

  1. Install the Package

    Install orlab using pip:

    pip install orlab
    
  2. Install Java JDK

    See Setting Up the JDK for more details.

  3. Download OpenRocket JAR

    If you haven't already, download the OpenRocket .jar file:

    • Direct Download: OpenRocket-24.12.jar

    • Using wget on Linux:

      wget https://github.com/openrocket/openrocket/releases/download/release-24.12/OpenRocket-24.12.jar
      
  4. Set the CLASSPATH Environment Variable

    Ensure that the CLASSPATH includes the path to the OpenRocket .jar file. This step is only necessary if the .jar file is not located in the current directory.

    export CLASSPATH=/path/to/OpenRocket-24.12.jar
    

    Replace /path/to/ with the actual directory path where the .jar file is located.

Setting Up the JDK

Linux

  1. Install Adoptium JDK 17 LTS

    Download and install the Adoptium JDK from the official website. Check the option to set / override JAVA_HOME, unless you have a specific reason not to in which you will need to define MANUAL_JVM_PATH in your code.

  2. Set the JAVA_HOME Environment Variable

    If JPype doesn't automatically detect the JDK, manually set the JAVA_HOME environment variable:

    • Find Installation Directory:

      Locate where Adoptium JDK is installed, e.g., /usr/lib/jvm/adoptium-17.

    • Edit ~/.bashrc:

      Open the .bashrc file with your preferred text editor:

      nano ~/.bashrc
      
    • Add the Following Line:

      export JAVA_HOME="/usr/lib/jvm/adoptium-17"
      
    • Apply Changes:

      source ~/.bashrc
      

Windows

  1. Install Adoptium JDK 17 LTS

    Download and install the Adoptium JDK from the official website.

  2. Set Environment Variables

    • Open Environment Variables Settings:

      Navigate to Control Panel > System > Advanced system settings > Environment Variables.

    • Add JAVA_HOME:

      • Click on New under System variables.
      • Set Variable name to JAVA_HOME.
      • Set Variable value to the path where Adoptium JDK is installed, e.g., C:\Program Files\Eclipse Adoptium\jdk-17.
    • Update PATH:

      • Select the Path variable and click Edit.
      • Click New and add %JAVA_HOME%\bin.
    • Apply and Close:

      Click OK to apply the changes.

Usage

After installation and setup, you can start using orlab to interact with OpenRocket. Refer to the examples/ directory for sample scripts demonstrating various functionalities. The package must be installed (pip install orlab, or pip install -e . from a clone) before running them — the source now lives under src/ and is not importable from the repository root.

For more detailed information and advanced usage, consult the OpenRocket Wiki on Scripting with Python and JPype.

API docs are a work-in-progress, for now see the examples folder for usage.

Development

If you wish to contribute or modify orlab, follow these steps:

  1. Clone the Repository

    git clone https://github.com/yourusername/orlab.git
    cd orlab
    
  2. Install Dependencies in Editable Mode

    pip install -e .
    
  3. Make Your Changes

    Modify the codebase as needed. Ensure that your changes are well-documented and tested.

  4. Run Tests

    (Assuming tests are set up)

    pytest
    
  5. Submit a Pull Request

    Push your changes to a forked repository and submit a pull request for review.

Credits

  • The original orhelper project by SilentSys
    • Richard Graham for the original script: Source
    • @not7cd for initial organization and cleanup: Source
  • All contributors to the OpenRocket project over the years

Feel free to contribute, report issues, or suggest enhancements!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orlab-0.3.1.tar.gz (278.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

orlab-0.3.1-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file orlab-0.3.1.tar.gz.

File metadata

  • Download URL: orlab-0.3.1.tar.gz
  • Upload date:
  • Size: 278.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for orlab-0.3.1.tar.gz
Algorithm Hash digest
SHA256 41391beb59885bb15fe28148cde9b834d9aa03a6a0f7e8c5c1c7e86f4ddebda7
MD5 f97fb479b75c8084782fc2d4b7f8ecb6
BLAKE2b-256 139bc23a374167aa12a1a64d2d12fccc90401da0f4d820048b5903f0a8d6a2e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for orlab-0.3.1.tar.gz:

Publisher: release.yml on CameronBrooks11/orlab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file orlab-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: orlab-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for orlab-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 10c63572efad3870219c019f652d3ee6c156f3669a3d07b5feade0e210a6570c
MD5 364cfc586b6af84c9dfef54ec0d1c5db
BLAKE2b-256 a8eb2f543f4bef8f3d34e00909370832c81c61506b3110d9275160fdb4b7ac36

See more details on using hashes here.

Provenance

The following attestation bundles were made for orlab-0.3.1-py3-none-any.whl:

Publisher: release.yml on CameronBrooks11/orlab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page