Parametric studies
It can write the script that varies chords, sweep or Reynolds number and generates the cases. For example, a family of wings through OpenVSP's Python API (programming interface), exported as .vsp3 and .stl.
Octo for open-source aeronautics software
OpenVSP, XFOIL, AVL, OpenMDAO, SU2, OpenFOAM, JSBSim, code_aster, Capella and pyNastran run on Ubuntu, and most of them run in batch. Octo can write the scripts that vary the parameters, launch the cases, gather the results and log each run, with everything prepared for human review. The engineer decides what holds for the project.
Six possible deliverables, drawn from the research. In all of them, an engineer decides and validates; Octo can take on the work of setting up, running and organizing.
It can write the script that varies chords, sweep or Reynolds number and generates the cases. For example, a family of wings through OpenVSP's Python API (programming interface), exported as .vsp3 and .stl.
It can launch the cases from the command line (SU2_CFD, OpenFOAM dictionaries, JSBSim in batch mode), detect the ones that didn't converge and retry with a different setting.
It can gather polars, coefficients and stresses into CSV or a spreadsheet, with charts comparing the variants.
Deliverable: consolidated CSV + chartsWith pyNastran, it can read the BDF (Nastran input file), count nodes and elements by type and flag elements without a property and unused materials, before the model goes to the solver. It doesn't need Nastran for that; only to solve.
Deliverable: BDF inventory + rewritten copyIt can stitch one tool's output into the next one's input (OpenVSP → Gmsh → SU2; RCAIDE → AVL), which today is usually done by hand. To optimize the whole, it proposes OpenMDAO, which is the plumbing and doesn't come with ready-made physics.
Deliverable: scripted chain + OpenMDAO modelRecords the assumptions, each tool's version and the exact command of each run, so the study can be redone later without guesswork.
Deliverable: record of assumptions, versions and commandsThe same Octo cycle, applied to open-source aeronautics tools. Each arm has a narrow role; the decisions are made by the responsible engineer.
Which commercial tools the team uses, for which stage, and which open one does the same job. Separates conceptual studies from what goes into a certification process, which stays with qualified people and authorities.
.vsp3 for geometry, BDF for structure, CSV for polars and coefficients, CPACS (an XML schema from DLR, the German Aerospace Center, for aircraft configuration) when the configuration needs to move between tools. One name per case, one folder per run.
AGPL 3.0 in RCAIDE, NOSA 1.3 in OpenVSP and GPL in Gmsh (closed use requires a commercial license). Before embedding anything in a product or service, the decision belongs to the company's legal team.
Proposes low-order methods first (XFOIL, AVL, OpenAeroStruct) and CFD (computational fluid dynamics) to confirm (SU2 or OpenFOAM). Assesses with the team whether SU2's discrete adjoint is worth compiling, since the prebuilt binaries don't include it.
Uses each tool's documented API and flags what it didn't find in the documentation. In OpenVSP, the Python module needs the same Python version used to compile it; in XFOIL, it deletes the old polar first, because XFOIL appends to the file.
Before your own case, it runs the reference case documented by the project: OpenMDAO's paraboloid has to reach f ≈ −27.33 at x ≈ 6.67, y ≈ −7.33. Then it runs a few cases and checks the generated file, not the success message.
With your OK, it runs the whole matrix, separates what converged from what didn't and returns the list, without hiding any case that failed.
Each tool's version, the command for each run, the model's assumptions and what was confirmed on your machine. The next study starts ready.
Octo prepares and runs for human review. The engineer says whether the result holds for the project; certification belongs to qualified people and authorities.
The table Octo uses to choose. Below, the equivalence with commercial tools: by function, not by qualification.
| Task | Open tool |
|---|---|
| Sketch the configuration and vary wing parameters | OpenVSP (Python API) |
| 2D airfoil polars | XFOIL (or XFLR5, with a GUI) |
| Stability derivatives and quick trim | AVL |
| Conceptual sizing and mission (including electric) | RCAIDE |
| Gradient-based system optimization | OpenMDAO (+ pyOptSparse) |
| Low-order wing aerostructural optimization | OpenAeroStruct |
| Reynolds-averaged CFD (RANS) and adjoint-based shape optimization | SU2 |
| General CFD (thermal, multiphase, varied cases) | OpenFOAM |
| Generate a mesh from CAD | Gmsh |
| Model a simple part or assembly with FEM (finite element method) | FreeCAD + CalculiX |
| Nonlinear structural FEM | code_aster or CalculiX |
| Read, check and change a Nastran model without Nastran | pyNastran |
| Simulate flight dynamics in batch / autopilot SITL (software-in-the-loop) | JSBSim |
| Visualize the flight | FlightGear |
| System architecture (MBSE, model-based systems engineering) | Capella |
| Exchange the configuration between tools in a common format | CPACS + TiGL |
| Commercial | Closest open tool | What's missing |
|---|---|---|
| CATIA / NX (conceptual) | OpenVSP | Detailing, PMI (manufacturing annotations on the 3D model), large assemblies, PLM (product lifecycle management) |
| CATIA / NX (mechanical part) | FreeCAD | Advanced surfacing, scale, PLM integration |
| ANSYS Fluent / STAR-CCM+ | SU2, OpenFOAM | Integrated interface, automatic mesher, support, vendor validation base |
| MSC/NX Nastran (solver) | CalculiX, code_aster | Nastran cards, elements and aeronautical workflows (aeroelasticity SOL 144/145/146) |
| Femap / Patran (Nastran pre/post) | pyNastran (scripted) | Full modeling interface |
| ModelCenter / Isight | OpenMDAO | Ready-made integration with commercial tools, graphical interface |
| MATLAB/Simulink (flight dynamics) | JSBSim (+ Python) | Flight-qualified code generation |
| Cameo / MagicDraw (SysML) | Capella | Uses Arcadia, not SysML |
| In-house sizing tools | RCAIDE, SUAVE | Methods calibrated with the company's data |
Three steps. Each one only makes sense after the previous one has shown results on your team.
A proposal, not a promise
On a Linux machine, the engineer asks for the study in engineering terms and gets the script and the results to review.
Batches run in a queue, in parallel, over the approved study matrix.
mpirun, OpenFOAM through dictionaries, JSBSim in batch modeThe tools connected in a single study, with OpenMDAO driving the optimization.
Every point below has a source published by the vendor, the project or the responsible agency. The sources are in the next section.
6
points with a published source, each with its reference alongside.
.deb with make package and requires gcc 10, 13 or 14: 11 and 12 fail.Source: repository LICENSE and Ubuntu instructions at openvsp.orgOcto prepares everything, but does not sign. The document of record stays with whoever is accountable for it.
Surveys, calculates, organizes and generates the documents: spreadsheets, reports, drawings and drafts.
Deliverable: material ready to checkThe licensed professional checks what Octo delivered before signing. If something doesn't add up, it goes back to Octo with the correction.
Step: review by the signerOcto does not sign. Designs, technical reports, ART/RRT (Brazil's professional responsibility records), accountability reports and any official document are still signed by the company's or agency's licensed professional: here, the responsible engineer and the certification authority.
Sign-off: responsible engineer and certification authoritySites, repositories and packages published by each project, accessed on October 28, 2026.
The assessment starts by listing the tools your team uses and the studies that repeat, without changing anything. Octo proposes a map of what can run on open-source software, with each tool's licenses and limits, and you decide with it in hand.