Use when choosing a motor for a rocket design, or when the user asks what motor to use to reach a target apogee
Motor selection balances impulse (altitude), diameter (fit), and thrust curve (stability off the rod). A motor that fits the mount and hits the target apogee is not enough — it must also produce enough thrust to clear the launch rod stably.
Core principle: Always verify the motor exists in the database before assigning it. Never guess a designation.
Before querying, establish:
openrocket_component (action="read") component weights, or user-providedRule of thumb: 30–50 m of apogee per newton-second, depending on mass and drag.
required_Ns ≈ target_apogee_m / 40 (midpoint estimate)
Map to impulse class:
| Class | Total Impulse | Rough apogee (500g rocket) |
|---|---|---|
| C | 10 Ns | ~100 m |
| D | 20 Ns | ~200 m |
| E | 40 Ns | ~350 m |
| F | 80 Ns | ~600 m |
| G | 160 Ns | ~1000 m |
| H | 320 Ns | ~1500 m |
This is a starting point only — simulate to confirm.
openrocket_database(action="motors", impulse_class="D", diameter_mm=18)
Useful filter combinations:
impulse_class + diameter_mm — most common starting pointname="H100" — when you know the approximate designation (matches H100W-DMS, H100T, etc.)manufacturer="Estes" — when field or certification requires a specific brandReview avg_thrust_n and burn_time_s in the results. A high average thrust with short burn (spike profile) vs. a lower average with longer burn (progressive) affects flight character.
Minimum thrust-to-weight ratio off the rod: 5:1 recommended.
thrust_to_weight = avg_thrust_n / (rocket_mass_kg × 9.81)
If below 5:1, the rocket will leave the rod slowly and be vulnerable to weathercocking. Choose a higher-thrust variant or longer launch rod.
Query rag_reference(action="search", collection="motor_reviews", query=f"{motor_designation} {manufacturer}", n_results=3) for real-world reports (delay reliability, ignition problems, CATO reports, observed vs. predicted apogee). Weigh any hits against the theoretical numbers. Proceed if no results or on errors.
For each candidate motor:
openrocket_flight(action="create", motor_designation=<designation>) — assign motoropenrocket_flight(action="run") — run flightmax_altitude_m and min_stability_calopenrocket_flight(action="delete") before trying the next candidatePick the motor that hits the target apogee while keeping stability >= 1.0 cal throughout flight.
After selecting a motor, verify:
openrocket_database — it won't loadImpulse needed ≈ target_apogee / 40
Motor must fit: diameter ≤ mount ID, length ≤ mount length
Thrust-to-weight ≥ 5:1 recommended off the rod
Always run the flight — rule of thumb is a starting point only