Skip to main content
This page describes the two file formats used by OpenRocket:
  • .ork — the rocket design file, which stores a complete rocket design and all its simulations.
  • .orc — the component preset file, which defines a database of standard rocket parts.

OpenRocket design file (.ork)

The .ork file format stores a complete rocket design including all components, materials, motor configurations, simulation settings, and simulation results.

File architecture

A .ork file is a ZIP archive containing an XML file and any associated graphics (e.g. decal images). The main rocket design XML is stored inside the archive as rocket.ork.To inspect the contents of a .ork file:
1

Rename the file

Rename the file extension from .ork to .zip.
2

Extract the archive

Open the resulting .zip file with any ZIP extraction tool.
3

Open the XML

The main design is in the file named rocket.ork inside the archive. Open it in any text editor. As of format version 1.11, a preview.png thumbnail is also included.
OpenRocket also accepts the .ork.gz extension for backward compatibility, but the plain .ork extension is recommended for all new files.

Developer reference

The reading and writing code is located in the core module:Reading (.ork → rocket model):
ClassPurpose
OpenRocketLoader.javaMain entry point for loading a .ork file
OpenRocketContentHandler.javaSAX content handler for the XML
ComponentHandler.javaDispatches parsing to the correct component handler
ComponentParameterHandler.javaReads common component parameters
Specialized handlersSimulationConditionsHandler.java, WindHandler.java, MotorHandler.java, etc.
All reader classes are in core/src/main/java/info/openrocket/core/file/openrocket/importt/.Writing (rocket model → .ork):
ClassPurpose
OpenRocketSaver.javaMain entry point for saving a .ork file
RocketComponentSaver.javaBase class with shared saving logic
NoseConeSaver.java, BodyTubeSaver.java, etc.Component-specific savers
All writer classes are in core/src/main/java/info/openrocket/core/file/openrocket/savers/.

Version history

The format version is declared in the version attribute of the root <openrocket> element. The version number follows semantic versioning: major version increases indicate backward-incompatible changes; minor version increases are backward-compatible additions.
VersionOpenRocket releaseKey changes
1.00.9.0Initial public release
1.10.9.4Fin tab support; tube coupler subcomponents
1.21.1.1Motor digest tag for thrust curve identification
1.31.1.9Launch longitude and geodetic method parameters
1.412.03Launch rod and deployment velocity; stage separation events
1.512.09Component presets; custom expressions; lower-stage separation event
1.613.04Component appearances (decals and paint); configurable recovery/ignition/separation
1.715.03Simulation extensions; tube fin support
1.822.02Rail buttons, pod sets, parallel stages (boosters); PhotoStudio settings; override CD
1.923.09Component IDs for flight event sources
1.1024.12Simulation warning priority; document preferences; multi-level wind model; warning flight events
1.1125.xxSimulation stepper method; table column preferences; preview image in ZIP; embedded thrust curve data

Root structure

Every .ork file begins with an XML declaration followed by an <openrocket> root element:
<?xml version='1.0' encoding='utf-8'?>
<openrocket version="1.12" creator="OpenRocket 25.xx">
  <rocket>
    <!-- Rocket definition -->
  </rocket>
  <simulations>
    <!-- Simulation data -->
  </simulations>
  <photostudio>
    <!-- PhotoStudio settings -->
  </photostudio>
  <docprefs>
    <!-- Document preferences -->
  </docprefs>
</openrocket>

Rocket element

The <rocket> element holds the rocket metadata and all component definitions:
<rocket>
  <name>My Rocket</name>
  <id>[UUID]</id>
  <designer>Jane Smith</designer>
  <designtype>sport</designtype>
  <revision>Rev A</revision>
  <motorconfiguration configid="[UUID]" default="true">
    <stage number="0" active="true"/>
  </motorconfiguration>
  <subcomponents>
    <!-- Nose cone, body tubes, fins, etc. -->
  </subcomponents>
</rocket>
Key attributes:
ElementDescription
nameRocket design name
idUUID auto-generated by OpenRocket
designerDesigner’s name
designtypeOne of: scratch, kit, makeitgo, educational, sport, competition
motorconfigurationOne entry per defined motor configuration
subcomponentsContainer for all rocket components

Common component attributes

All rocket components share these common child elements:
ElementDescription
idUUID auto-generated by OpenRocket
nameComponent name
finishSurface finish type
materialMaterial with type (bulk/surface/line), density, and optional group
axialoffsetPosition along the rocket axis
radialdirectionAngular direction for radially placed components

Component tags

Nose cone (<nosecone>):
<nosecone>
  <name>Nose cone</name>
  <id>[UUID]</id>
  <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>
</nosecone>
Supported <shape> values: ogive, conical, ellipsoid, power, parabolic, haack.Body tube (<bodytube>):
<bodytube>
  <name>Body tube</name>
  <id>[UUID]</id>
  <material type="bulk" density="680.0">Cardboard</material>
  <length>0.3</length>
  <thickness>0.002</thickness>
  <radius>auto</radius>
</bodytube>
Transition (<transition>): Connects two tubes of different diameters. Supports the same shapes as nose cones.
Trapezoidal fin set (<trapezoidfinset>):
<trapezoidfinset>
  <fincount>3</fincount>
  <thickness>0.003</thickness>
  <crosssection>square</crosssection>
  <rootchord>0.05</rootchord>
  <tipchord>0.05</tipchord>
  <sweeplength>0.025</sweeplength>
  <height>0.03</height>
</trapezoidfinset>
Elliptical fin set (<ellipticalfinset>): Requires <rootchord> and <height>.Freeform fin set (<freeformfinset>): Uses <finpoints> with individual <point x="..." y="..."/> elements for arbitrary fin shapes.Tube fin set (<tubefinset>): Cylindrical fins. Requires <radius>, <length>, and <thickness>.
Inner tube (<innertube>): Motor mount tube inside a body tube. Supports cluster configurations.Tube coupler (<tubecoupler>): Coupler tube connecting two body tube sections.Centering ring (<centeringring>): Ring that centers an inner tube within a body tube.Bulkhead (<bulkhead>): Solid disk that closes the end of a tube.Engine block (<engineblock>): Ring that retains a motor inside an inner tube.
Launch lug (<launchlug>): Tube-style launch lug. Attributes include <radius>, <length>, <thickness>, and <instancecount>.Rail button (<railbutton>): Rail launch guide. Attributes include <outerdiameter>, <innerdiameter>, <height>, <baseheight>, and <flangeheight>.
Parachute (<parachute>): Attributes include <diameter>, <cd>, <linecount>, <linelength>, <deployevent>, <deployaltitude>, and <deploydelay>.Streamer (<streamer>): Attributes include <striplength>, <stripwidth>, <deployevent>, <deployaltitude>, and <deploydelay>.Shock cord (<shockcord>): Attributes include <cordlength> and <material>.Mass component (<masscomponent>): Generic non-structural mass. Use <masscomponenttype> to differentiate between nose weight, recovery wadding, altimeter, etc.
Stage (<stage>): A stackable rocket stage. Attributes include <separationevent>, <separationaltitude>, and <separationdelay>.Pod set (<podset>): A set of identical pods radially positioned around the rocket. Added in format version 1.8.Parallel stage / booster (<parallelstage>): Side-mounted booster that separates during flight. Added in format version 1.8.

Motor mount

Any body tube or inner tube can be used as a motor mount. When it is, a <motormount> child element is present:
<bodytube>
  <!-- ...other tube attributes... -->
  <motormount>
    <ignitionevent>automatic</ignitionevent>
    <ignitiondelay>0.0</ignitiondelay>
    <overhang>0.003</overhang>
    <motor configid="[UUID]">
      <manufacturer>Estes</manufacturer>
      <designation>A8</designation>
      <diameter>0.018</diameter>
      <length>0.07</length>
      <delay>3.0</delay>
      <!-- Embedded thrust curve (added in version 1.11) -->
      <standarddelays>0,3,5,none</standarddelays>
      <thrustcurvepoint>0,0,0.035,0.0164</thrustcurvepoint>
      <thrustcurvepoint>1,9,0.035,0.0145</thrustcurvepoint>
    </motor>
  </motormount>
</bodytube>
As of format version 1.11, the full thrust curve is embedded directly in the <motor> element. When <thrustcurvepoint> elements are present, OpenRocket reconstructs the motor from the embedded data instead of looking it up in the motor database. This makes designs self-contained when sharing custom motors.
  • <standarddelays> — comma-separated list of standard delays in seconds; use none for plugged/no ejection charge.
  • <thrustcurvepoint>time,thrust,cg_x,mass in seconds, Newtons, meters, kilograms.

Simulation data

The <simulations> section contains one <simulation> element per simulation:
<simulations>
  <simulation status="loaded">
    <name>Simulation 1</name>
    <simulator>RK4Simulator</simulator>
    <calculator>BarrowmanCalculator</calculator>
    <conditions>
      <configid>[UUID]</configid>
      <launchrodlength>1.0</launchrodlength>
      <launchrodangle>0.0</launchrodangle>
      <launchaltitude>0.0</launchaltitude>
      <launchlatitude>45.0</launchlatitude>
      <atmosphere model="isa"/>
      <timestep>0.05</timestep>
      <wind model="average">
        <speed>2.0</speed>
        <direction>1.5707963267948966</direction>
        <standarddeviation>0.2</standarddeviation>
      </wind>
    </conditions>
    <flightdata maxaltitude="50.605" maxvelocity="29.249" timetoapogee="3.443"
                flighttime="15.89" groundhitvelocity="4.583"/>
  </simulation>
</simulations>
Wind models: OpenRocket supports two models:
<!-- Average wind model -->
<wind model="average">
  <speed>2.0</speed>
  <direction>1.5707963267948966</direction>
  <standarddeviation>0.2</standarddeviation>
</wind>

<!-- Multi-level wind model (added in version 1.10) -->
<wind model="multilevel" altituderef="agl">
  <windlevel altitude="0.0" speed="2.0" direction="1.57" standarddeviation="0.2"/>
  <windlevel altitude="100.0" speed="3.0" direction="1.57" standarddeviation="0.3"/>
  <windlevel altitude="500.0" speed="5.0" direction="1.60" standarddeviation="0.4"/>
</wind>
The altituderef attribute is either agl (above ground level) or msl (mean sea level).

Document preferences

The <docprefs> section stores document-wide settings including custom material definitions:
<docprefs>
  <docmaterials>
    <material>BULK|My Custom Material|680.0|1.2E9|Custom</material>
  </docmaterials>
</docprefs>
Material string format: {type}|{name}|{density}|{inPlaneShearModulus}|{group}. Older files may omit inPlaneShearModulus.