Setuav Studio brings geometry design, engineering analysis, and project data into one extensible desktop workspace. It is built with Python and PySide6 and uses a plugin architecture so design and analysis capabilities can evolve independently.
![]() |
![]() |
| Design workspace | Performance workspace |
- Parametric fuselage, lifting-surface, and control-surface design.
- Interactive OpenGL geometry viewer with selection and section editing.
- Aerodynamic analysis, stability results, polar charts, airfoil tools, and a native AeroSandbox VLM viewer.
- Electrical propulsion modeling and result visualization.
- Flight-performance envelope analysis.
- Weight-and-balance analysis with component-level mass properties.
- Extensible workspaces, panels, tools, component editors, and project schemas.
- Folder,
project.json, and portable.suavproject support.
Requires Python 3.11 or newer, uv for locked
dependency management, and a desktop environment supported by PySide6. The
aerodynamics extra installs AeroSandbox and PyVista; these dependencies are
included by --all-extras in the commands below.
Clone the repository and install the locked runtime environment:
git clone https://github.com/Setuav/Studio.git
cd studio
uv sync --locked --all-extrasStart the application:
uv run --locked setuav-studioOpen an existing project directly:
uv run --locked setuav-studio path/to/project
uv run --locked setuav-studio path/to/project.suavInstall the development dependencies:
uv sync --locked --all-extras --group devRun the code checks and test suite:
uv run --locked pre-commit run --all-files
uv run --locked python -m tests.suites allRun the standalone SDK contract and example-plugin tests separately:
uv run --locked python scripts/sdk_contract_tests.pyAutomatic checks before each commit can be enabled optionally:
uv run --locked pre-commit installTests can also be run for a single area while developing:
uv run --locked python -m tests.suites geometry
uv run --locked python -m tests.suites aerodynamicsRun uv run --locked python -m tests.suites --help to list all test groups.
Create a local PyInstaller build:
uv sync --locked --all-extras --group desktop
uv run --locked --all-extras --group desktop \
pyinstaller --noconfirm --clean setuav-studio.specThe application is created under dist/setuav-studio/. CI runs the full package,
startup, security, and dependency checks automatically.
Plugins extend Setuav Studio through the StudioAPI. A plugin can register
workspaces, panels, toolbar actions, tools, component editors, project schemas,
geometry providers, and project-tree nodes. Each plugin owns its activation and
cleanup lifecycle, allowing capabilities to be added without changing the
application core.
At runtime, use Tools → Plugin Manager to review active plugins and any discovery or activation issues. User plugins can be enabled or disabled from the same screen; the core plugin remains protected.
With MkDocs, Doxygen, and Graphviz installed, generate the documentation site:
mkdocs buildThe build hook runs Doxygen and places the SDK reference under
Developer Guide → SDK API Reference. Open build/docs/site/index.html in a
browser to view the site.
Setuav Studio is released under the MIT License.


