agentsclimarketplace

Stability analysis

Skill ppak10/RocketSmith/skills/stability-analysis

Use when a flight returns stability outside 1.0–1.5 calibers, or when min_stability_cal is nullFrom its SKILL.md

Install
npx -y skills add ppak10/RocketSmith --skill stability-analysis

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.2 KB, as published. Nobody here has run it

Stability Analysis

Overview

Stability margin = (CP − CG) / reference diameter, measured in calibers. The target is 1.0–1.5 cal. Outside this range the rocket is either dangerous or excessively weathercock-sensitive.

Core principle: Always fix the root cause — geometry or mass distribution — not the symptom. Never accept a null stability result; compute it manually.

When to Use

  • min_stability_cal < 1.0 (unstable)
  • min_stability_cal > 1.5 (over-stable)
  • min_stability_cal is null after simulation
  • User reports unexpected flight path or weathercocking
  • Stability was in range before rocketsmith:mass-calibration but fell out after applying real printed part weights — this is the expected failure mode when printed PLA/PETG is significantly heavier than OpenRocket's material defaults

Steps

1. Read the Numbers

Run openrocket_component (action="read") and note:

  • cg_x — center of gravity from nose tip (m)
  • cp_x — center of pressure from nose tip (m)
  • max_diameter_m — reference diameter

If min_stability_cal returned null, compute manually:

stability_cal = (cp_x - cg_x) / max_diameter_m

A positive result means CP is aft of CG — stable. A negative or zero result means unstable.

1.5. Consult the Reference Collection

Query rag_reference(action="search", collection="stability_notes", query=f"stability {round(current_cal, 2)} cal {symptom}", n_results=3) for prior cases with known fixes. Cite close matches and weigh against the heuristic below. Proceed if no results or on errors — the collection is an enrichment, not a prerequisite.

2. Diagnose the Direction

Under-stable (< 1.0 cal): CP is too close to CG, or forward of it.

  • Fins too small or too far forward
  • Nose cone too heavy
  • Body tube too short relative to fin span

Over-stable (> 1.5 cal): CP is too far aft of CG.

  • Fins too large
  • Nose cone too light
  • Aft mass (motor, motor mount) dominating

3. Apply Fixes

Work one change at a time. Re-simulate after each.

To increase stability (move CP aft or CG forward):

FixToolNotes
Increase fin spanopenrocket_component update fin-set spanMost effective single change
Increase fin root chordopenrocket_component update fin-set root_chordMoves CP aft
Move fins aftopenrocket_component update fin-set axial_offset_method="bottom", axial_offset_m=0Fins flush with aft end
Add nose weightopenrocket_component create mass component in NoseConeMoves CG forward

To reduce stability (move CP forward or CG aft):

FixToolNotes
Reduce fin spanopenrocket_component update fin-set spanStart with 10–15% reduction
Reduce fin root chordopenrocket_component update fin-set root_chord
Add aft massopenrocket_component create mass component in lower airframeMoves CG aft

4. Iterate

After each change:

  1. openrocket_flight(action="run") — check new min_stability_cal
  2. Also check max_stability_cal — stability varies over the flight as propellant burns
  3. Stop when 1.0–1.5 cal across the full flight

5. Verify Final Design

Run openrocket_component (action="read") one more time. Confirm:

  • cp_x > cg_x (CP aft of CG)
  • stability_cal in range
  • No component geometry was accidentally broken

Red Flags — Stop and Investigate

  • Accepting null stability without manual computation
  • Making two geometry changes at once (can't isolate which worked)
  • Stability in range on launch but diverging later in flight — check max_stability_cal too
  • Fin span larger than 1.5× body diameter (drag penalty outweighs stability gain — find another fix)

Quick Reference

StabilityProblemPrimary Fix
< 0.5 calSeverely unstableIncrease fin span significantly
0.5–1.0 calUnstableIncrease fin span or add nose weight
1.0–1.5 cal✓ Target rangeNo change needed
1.5–2.0 calOver-stableReduce fin area
> 2.0 calVery over-stableReduce fin area + check mass distribution

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.