.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.
- .ork design file
- .orc component file
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: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 thecore module:Reading (.ork → rocket model):| Class | Purpose |
|---|---|
OpenRocketLoader.java | Main entry point for loading a .ork file |
OpenRocketContentHandler.java | SAX content handler for the XML |
ComponentHandler.java | Dispatches parsing to the correct component handler |
ComponentParameterHandler.java | Reads common component parameters |
| Specialized handlers | SimulationConditionsHandler.java, WindHandler.java, MotorHandler.java, etc. |
core/src/main/java/info/openrocket/core/file/openrocket/importt/.Writing (rocket model → .ork):| Class | Purpose |
|---|---|
OpenRocketSaver.java | Main entry point for saving a .ork file |
RocketComponentSaver.java | Base class with shared saving logic |
NoseConeSaver.java, BodyTubeSaver.java, etc. | Component-specific savers |
core/src/main/java/info/openrocket/core/file/openrocket/savers/.Version history
The format version is declared in theversion 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.| Version | OpenRocket release | Key changes |
|---|---|---|
| 1.0 | 0.9.0 | Initial public release |
| 1.1 | 0.9.4 | Fin tab support; tube coupler subcomponents |
| 1.2 | 1.1.1 | Motor digest tag for thrust curve identification |
| 1.3 | 1.1.9 | Launch longitude and geodetic method parameters |
| 1.4 | 12.03 | Launch rod and deployment velocity; stage separation events |
| 1.5 | 12.09 | Component presets; custom expressions; lower-stage separation event |
| 1.6 | 13.04 | Component appearances (decals and paint); configurable recovery/ignition/separation |
| 1.7 | 15.03 | Simulation extensions; tube fin support |
| 1.8 | 22.02 | Rail buttons, pod sets, parallel stages (boosters); PhotoStudio settings; override CD |
| 1.9 | 23.09 | Component IDs for flight event sources |
| 1.10 | 24.12 | Simulation warning priority; document preferences; multi-level wind model; warning flight events |
| 1.11 | 25.xx | Simulation 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:Rocket element
The<rocket> element holds the rocket metadata and all component definitions:| Element | Description |
|---|---|
name | Rocket design name |
id | UUID auto-generated by OpenRocket |
designer | Designer’s name |
designtype | One of: scratch, kit, makeitgo, educational, sport, competition |
motorconfiguration | One entry per defined motor configuration |
subcomponents | Container for all rocket components |
Common component attributes
All rocket components share these common child elements:| Element | Description |
|---|---|
id | UUID auto-generated by OpenRocket |
name | Component name |
finish | Surface finish type |
material | Material with type (bulk/surface/line), density, and optional group |
axialoffset | Position along the rocket axis |
radialdirection | Angular direction for radially placed components |
Component tags
Structural components
Structural components
Nose cone (Supported Transition (
<nosecone>):<shape> values: ogive, conical, ellipsoid, power, parabolic, haack.Body tube (<bodytube>):<transition>): Connects two tubes of different diameters. Supports the same shapes as nose cones.Fin sets
Fin sets
Trapezoidal fin set (Elliptical fin set (
<trapezoidfinset>):<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 components
Inner components
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 guides
Launch guides
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>.Recovery and mass components
Recovery and mass components
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.Assemblies
Assemblies
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:<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; usenonefor plugged/no ejection charge.<thrustcurvepoint>—time,thrust,cg_x,massin seconds, Newtons, meters, kilograms.
Simulation data
The<simulations> section contains one <simulation> element per simulation: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:{type}|{name}|{density}|{inPlaneShearModulus}|{group}. Older files may omit inPlaneShearModulus.