OpenRocket File Format - openrocket/openrocket GitHub Wiki

Overview

The current OpenRocket file format is "documented" only as the reference implementation. This will hopefully change in the future.

The "version" attribute of the tag describes the file format version used, while the "creator" attribute MAY describe the software and version used to write the document.

The file format version is increased every time the format is changed. The minor number is increased when changes are made that are mostly backward-compatible, meaning that older software versions should be able to read the design sans the new features. The major number is increased when changes are made that render the design problematic or impossible to read for older software. For maximum compatibility software should save a file in the oldest file format version that supports all the necessary design features.

The core data format of an OpenRocket file is XML. However, the .ork-file that OpenRocket generates is a zipped XML file. This is because besides purely OpenRocket data, stored in XML, other data may also have to be stored, like for example custom decal images. To view the actual contents of the OpenRocket file, you can change the file extension of e.g. 'test.ork' to 'test.zip' and then unzip that zip-file. Depending on whether you do or don't have other data besides the XML-data, unzipping the file will simply return a 'rocket.ork'-file, which is pure XML (you can open this in any text editor), or a directory containing the 'rocket.ork'-file and other files/directories with e.g. decal images.

File Formats

1.0

File format version of the first public release (OpenRocket 0.9.0)

1.1

Introduced with OpenRocket 0.9.4.

Adds support for saving fin tabs (, and elements) and llows attaching subcomponents to a tube coupler (previously forbidden).

1.2

Introduced with OpenRocket 1.1.1.

Adds the tag to motor definitions. The digest uniquely identifies the functional characteristics of a particular thrust curve motor.

1.3

Introduced with OpenRocket 1.1.9.

Adds the and parameters to the simulation conditions element.

1.4

Introduced with OpenRocket 12.03.

Adds the launchrodvelocity and deploymentvelocity attributes to element. The motor digesting algorithm was changed. Adds and elements to stage components (except sustainer).

1.5

Introduced with OpenRocket 12.09.

Added ComponentPresets. Added lowerstageseparation as recovery device deployment event. Added section for supporting datatypes other than internal ones. Currently only supports datatypes from custom expressions.

1.6

Introduced with OpenRocket 13.04.

Added component Appearances (decals & paint). Added configurable parameters to recovery devices, motor ignition and separation.

1.7

Introduced with OpenRocket 15.03.

Added simulation extensions and related configuration. Support for TubeFins.

Component Listing

1.1: High Level Tags / Meta tags

1.1.1: openrocket

This tag contains all other tags in the file, with the exeption of <?xml>. This tags attributes holds the file version (see the offical OpenRocket repo for details), and which version of the program it was created with.

1.1.2: rocket

This tag contains all of the rocket components.

1.1.3: name

Holds the name of the rocket in the tag's text, for example <name>Name</name>

1.1.4: motorconfiguration

The tag's atributes are a configid, which appears to be a registry format key, and a bool regarding weather the particular configuration is the default.

1.1.5: referencetype

Unsure as to what this does

1.2: Rocket groups

1.2.1: subcomponents

<subcompoents> acts as the container for all compoents that are children of another component. The exeption being when it's only parent is <rocket>, then it is just a container for parts.

1.2.2: stage

For each stage defined in the editor, it's components will be held in a <stage> tag.

1.3: Rocket Parts

All of the below parts must be contained in a <subcomponents> tag.

1.3.1: nosecone

<nosecone> is defined by:

<nosecone>
    <name>Nose cone</name>
    <finish>normal</finish>
    <material type="bulk" density="500.0">Basswood</material>
    <length>0.22</length>
    <thickness>0.002</thickness>
    <shape>power</shape>
    <shapeclipped>false</shapeclipped>
    <shapeparameter>0.4</shapeparameter>
    <aftradius>0.075</aftradius>
    <aftshoulderradius>0.0</aftshoulderradius>
    <aftshoulderlength>0.0</aftshoulderlength>
    <aftshoulderthickness>0.0</aftshoulderthickness>
    <aftshouldercapped>false</aftshouldercapped>
</nosecone>

A note about the <shape> tag: most of its values are the same as the field in the editor, except for power, parabolic, and Haak series. These are truncated as power, parabolic, and haack, respectively.

1.3.2 bodytube

<bodytube>is defined by:

<bodytube>
    <name>Body tube</name>
    <finish>normal</finish>
    <material type="bulk" density="680.0">Cardboard</material>
    <length>0.3</length>
    <thickness>0.002</thickness>
    <radius>auto</radius>

1.3.3 transition

<transition> is defined by:

<transition>
    <name>Transition</name>
    <finish>normal</finish>
    <material type="bulk" density="500.0">Basswood</material>
    <length>0.11</length>
    <thickness>0.002</thickness>
    <shape>haack</shape>
    <shapeclipped>true</shapeclipped>
    <shapeparameter>0.3</shapeparameter>
    <foreradius>auto</foreradius>
    <aftradius>0.05</aftradius>
    <foreshoulderradius>0.0</foreshoulderradius>
    <foreshoulderlength>0.0</foreshoulderlength>
    <foreshoulderthickness>0.0</foreshoulderthickness>
    <foreshouldercapped>false</foreshouldercapped>
    <aftshoulderradius>0.0</aftshoulderradius>
    <aftshoulderlength>0.0</aftshoulderlength>
    <aftshoulderthickness>0.0</aftshoulderthickness>
    <aftshouldercapped>false</aftshouldercapped>
</transition>

1.3.4 freeformfinset

<freeformfinset>
    <name>Freeform fin set</name>
    <position type="bottom">0.0</position>
    <finish>normal</finish>
    <material type="bulk" density="500.0">Basswood</material>
    <fincount>5</fincount>
    <rotation>0.0</rotation>
    <thickness>0.003</thickness>
    <crosssection>airfoil</crosssection>
    <cant>0.0</cant>
    <filletradius>0.0</filletradius>
    <filletmaterial type="bulk" density="680.0">Cardboard</filletmaterial>
    <finpoints>
        <point x="0.0" y="0.0"/>
        <point x="0.03882760416666667" y="0.056620833333333336"/>
        <point x="0.11000052083333334" y="0.05582708333333333"/>
        <point x="0.07951041666666667" y="0.0"/>
     </finpoints>
</freeformfinset>

1.3.5 trapezoidfinset

<trapezoidfinset>
    <name>Trapezoidal fin set</name>
    <position type="bottom">0.0</position>
    <finish>normal</finish>
    <material type="bulk" density="680.0">Cardboard</material>
    <fincount>3</fincount>
    <rotation>0.0</rotation>
    <thickness>0.003</thickness>
    <crosssection>square</crosssection>
    <cant>0.0</cant>
    <filletradius>0.0</filletradius>
    <filletmaterial type="bulk" density="680.0">Cardboard</filletmaterial>
    <rootchord>0.05</rootchord>
    <tipchord>0.05</tipchord>
    <sweeplength>0.025</sweeplength>
    <height>0.03</height>
</trapezoidfinset>

1.3.6 ellipticalfinset

<ellipticalfinset>
    <name>Elliptical fin set</name>
    <position type="bottom">0.0</position>
    <finish>normal</finish>
    <material type="bulk" density="680.0">Cardboard</material>
    <fincount>3</fincount>
    <rotation>0.0</rotation>
    <thickness>0.003</thickness>
    <crosssection>square</crosssection>
    <cant>0.0</cant>
    <filletradius>0.0</filletradius>
    <filletmaterial type="bulk" density="680.0">Cardboard</filletmaterial>
    <rootchord>0.05</rootchord>
    <height>0.05</height>
</ellipticalfinset>

1.3.7 tubefinset

1.4: Simulation components

Simulation components include <masscomponent>, <shockcord>, /motormount/<motor>. These components only effect the mass distribution in simulations.

1.4.1: masscomponent

A masscomponent is a point mass which effects simulations defined by

<masscomponent>
    <name>Unspecified</name>
    <position type="top">0.11</position>
    <packedlength>0.05</packedlength>
    <packedradius>0.0225</packedradius>
    <radialposition>0.0</radialposition>
    <radialdirection>0.0</radialdirection>
    <mass>0.061</mass>
    <masscomponenttype>masscomponent</masscomponenttype>
</masscomponent>
⚠️ **GitHub.com Fallback** ⚠️