Repository navigation
ENH: Tube Fins #816
Description
Activity
@AlexKari no, there's no direct equivalence to tube fins on rocketpy.
I recommend you to use the Generic Aero surfaces instead.
- addedHelp wantedExtra attention is neededExtra attention is neededEnhancementNew feature or request, including adjustments in current codesNew feature or request, including adjustments in current codes
on Nov 29, 2025 Hi, I'd be interested in working on this. Since the issue is still open and labeled
Help wanted, could you confirm whether a built-in tube-fin model is still wanted, or whetherGenericSurfaceis now the intended solution?I compared RocketPy's current aerodynamic-surface API with the linked OpenRocket calculator. Two differences affect the scope:
- OpenRocket makes the tube-fin center of pressure Mach-dependent: quarter-chord at Mach 0.5 and below, a polynomial through the transonic range, and an empirical expression at Mach 2 and above. RocketPy currently stores a fixed center of pressure for each Barrowman surface.
- OpenRocket also includes component friction and pressure drag. RocketPy's current Barrowman surfaces do not add axial drag; vehicle drag is supplied through the rocket's power-on and power-off drag curves.
If a dedicated model is welcome, would the following be an acceptable first PR?
- Add a
TubeFinssurface defined by tube count, length, inner radius, outer radius, and rocket radius. - Implement the Ribner-based normal-force slope, OpenRocket's 20-degree angle-of-attack cap, and a fixed quarter-chord center of pressure for the documented subsonic range (Mach <= 0.5).
- Initially support tangent, non-overlapping, uncanted tube sets only, with validation for unsupported geometry.
- Add
Rocket.add_tube_fins, serialization, focused unit tests, and documentation of the model limits. - Defer Mach-dependent center of pressure, component drag, separated or overlapping tubes, cant, and side-force/yaw behavior.
This would keep the first change within RocketPy's current surface architecture. If full Mach-range CP or component drag is required for initial support, I can revise the proposal before starting implementation.
- linked a pull request that will close this issueENH: Add tube-fin aerodynamic surface #1144
on Aug 13, 2026
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsBacklog
I'm attempting to simulate the design for my Level 3 to try and find the maximum velocity, however rocketpy lacks any settings for tube fins.
Can there be tube fins added similar to how openrocket does it?