Marc D NICHIȚIU

On this page and the following pages we described the workings of MIT Rocket Team's in-house OpenRocket-based simulator. Concretely, we present 

Please contact nichitiu@mit.edu for questions.

OpenRocket Overview

OpenRocket is an open-source Java-based 6-DOF (Degrees of Freedom) simulator for amateur rocketry purposes. Their source code can be accessed here.

OpenRocket makes heavy use of Object-Oriented Programming techniques in order to model a rocket. Each part of the physical rocket is modeled as a RocketComponent, of which there are ExternalComponents such as FinSets and NoseCones, as well as InternalComponents such as Bulkheads and TubeCouplers. Each component class has several associated classes whose names must follow a pattern:

MyComponent - the base class.
MyComponentCalc - the Aerodynamic calculator class, using Barrowman approximations, if the component isAerodynamic.
MyComponentConfig - the GUI class that creates the configuration panel for the component.
MyComponentShapes - the GUI class that describes the shapes to draw of the component.
MyComponentSaver - the file saving code for that component.

There are additionally several places in the code that refer to the component:

ComponentAddButtons (package info.openrocket.swing.gui.main) - manages the buttons for the components.
module-info.java (package info.openrocket.swing) - the Shapes class should be in the provides clause.
RocketComponentShapesService (in the directory swing/src/main/resources/META-INF/services) - the Shapes class should be in the list.
DocumentConfig - should contain an entry in the constructors HashMap as well as several entries in the setters HashMap to create the MyComponent from an XML description that would be written by MyComponentSaver


We have implemented these steps for two new components, TabControlledTrapezoidFinSet, and AirbrakeSet. See those individual pages for more information.