RCAIDE-GUI 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rcaide_gui-1.0.0/PKG-INFO +96 -0
- rcaide_gui-1.0.0/RCAIDE_GUI.egg-info/PKG-INFO +96 -0
- rcaide_gui-1.0.0/RCAIDE_GUI.egg-info/SOURCES.txt +341 -0
- rcaide_gui-1.0.0/RCAIDE_GUI.egg-info/dependency_links.txt +1 -0
- rcaide_gui-1.0.0/RCAIDE_GUI.egg-info/entry_points.txt +2 -0
- rcaide_gui-1.0.0/RCAIDE_GUI.egg-info/requires.txt +27 -0
- rcaide_gui-1.0.0/RCAIDE_GUI.egg-info/top_level.txt +5 -0
- rcaide_gui-1.0.0/README.md +61 -0
- rcaide_gui-1.0.0/README_PyPI.md +49 -0
- rcaide_gui-1.0.0/VERSION +1 -0
- rcaide_gui-1.0.0/common_widgets/__init__.py +6 -0
- rcaide_gui-1.0.0/common_widgets/animated_toggle.py +141 -0
- rcaide_gui-1.0.0/common_widgets/color.py +17 -0
- rcaide_gui-1.0.0/common_widgets/data_entry_widget.py +337 -0
- rcaide_gui-1.0.0/common_widgets/image_widget.py +21 -0
- rcaide_gui-1.0.0/common_widgets/unit_picker_widget.py +48 -0
- rcaide_gui-1.0.0/main.py +168 -0
- rcaide_gui-1.0.0/pyproject.toml +80 -0
- rcaide_gui-1.0.0/rcaide_io.py +818 -0
- rcaide_gui-1.0.0/setup.cfg +4 -0
- rcaide_gui-1.0.0/setup.py +9 -0
- rcaide_gui-1.0.0/tabs/__init__.py +10 -0
- rcaide_gui-1.0.0/tabs/aircraft_configs/__init__.py +3 -0
- rcaide_gui-1.0.0/tabs/aircraft_configs/aircraft_configs.py +301 -0
- rcaide_gui-1.0.0/tabs/analysis/__init__.py +4 -0
- rcaide_gui-1.0.0/tabs/analysis/analysis.py +92 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/__init__.py +13 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/aeroacoustics_widget.py +158 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/aerodynamics_widget.py +108 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/analysis_data_widget.py +29 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/atmosphere_widget.py +49 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/costs_widget.py +35 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/energy_widget.py +32 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/geometry_widget.py +55 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/planets_widget.py +34 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/propulsion_widget.py +53 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/stability_widget.py +34 -0
- rcaide_gui-1.0.0/tabs/analysis/widgets/weights_widget.py +94 -0
- rcaide_gui-1.0.0/tabs/geometry/__init__.py +6 -0
- rcaide_gui-1.0.0/tabs/geometry/aircraft_configs.py +232 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/__init__.py +15 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/booms/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/booms/boom_frame.py +238 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/cargo_bays/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/cargo_bays/cargo_bay_frame.py +159 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/default_frame.py +23 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/energy_network/__init__.py +2 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/energy_network/turbofan_network/__init__.py +3 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/energy_network/turbofan_network/frames/__init__.py +1 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/energy_network/turbofan_network/widgets/__init__.py +1 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/fuselages/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/fuselages/fuselage_frame.py +294 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/geometry_frame.py +91 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/landing_gears/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/landing_gears/landing_gear_frame.py +189 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/nacelles/__init__.py +1 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/__init__.py +6 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/converters/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/converters/converter_frame.py +137 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/distributors/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/distributors/distributor_frame.py +143 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/nacelles/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/nacelles/nacelle_frame.py +283 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/powertrain_frame.py +259 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/propulsors/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/propulsors/propulsor_frame.py +146 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/sources/__init__.py +6 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/powertrain/sources/energy_source_frame.py +147 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/vehicle_frame.py +171 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/wings/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/frames/wings/wings_frame.py +457 -0
- rcaide_gui-1.0.0/tabs/geometry/geometry.py +513 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/__init__.py +12 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/booms/__init__.py +6 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/booms/boom_section_widget.py +109 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/cargo_bays/__init__.py +1 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/fuselages/__init__.py +8 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/fuselages/cabin_class_widget.py +188 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/fuselages/cabin_widget.py +217 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/fuselages/fuselage_section_widget.py +190 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/geometry_data_widget.py +25 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/landing_gears/__init__.py +6 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/nacelles/__init__.py +1 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/__init__.py +9 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/converters/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/converters/turboelectric_generator_widget.py +74 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/distributors/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/distributors/fuel_line_widget.py +81 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/modulators/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/modulators/esc_widget.py +58 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/nacelles/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/nacelles/nacelle_section_widget.py +115 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/powertrain_connector_widget.py +136 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/powertrain_widget.py +206 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/propulsors/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/propulsors/turbofan_widget.py +462 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/sources/__init__.py +6 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/sources/fuel_tank_widget.py +103 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/powertrain/sources/source_selector_widget.py +35 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/wings/__init__.py +7 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/wings/wing_cs_widget.py +198 -0
- rcaide_gui-1.0.0/tabs/geometry/widgets/wings/wing_section_widget.py +298 -0
- rcaide_gui-1.0.0/tabs/home/__init__.py +3 -0
- rcaide_gui-1.0.0/tabs/home/home.py +585 -0
- rcaide_gui-1.0.0/tabs/mission/__init__.py +4 -0
- rcaide_gui-1.0.0/tabs/mission/mission.py +1124 -0
- rcaide_gui-1.0.0/tabs/mission/widgets/__init__.py +3 -0
- rcaide_gui-1.0.0/tabs/mission/widgets/flight_controls_widget.py +186 -0
- rcaide_gui-1.0.0/tabs/mission/widgets/mission_analysis_widget.py +166 -0
- rcaide_gui-1.0.0/tabs/mission/widgets/mission_segment_helper.py +358 -0
- rcaide_gui-1.0.0/tabs/mission/widgets/mission_segment_widget.py +358 -0
- rcaide_gui-1.0.0/tabs/solve/__init__.py +4 -0
- rcaide_gui-1.0.0/tabs/solve/plots/__init__.py +12 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aeroacoustics/__init__.py +6 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aeroacoustics/plot_2D_noise_contour.py +184 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aeroacoustics/plot_3D_noise_contour.py +219 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aeroacoustics/plot_noise_certification_contour.py +115 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aeroacoustics/plot_noise_level.py +118 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aerodynamics/__init__.py +10 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aerodynamics/plot_aerodynamic_coefficients.py +156 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aerodynamics/plot_aerodynamic_forces.py +155 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aerodynamics/plot_aircraft_aerodynamics.py +136 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aerodynamics/plot_drag_components.py +157 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aerodynamics/plot_lift_distribution.py +107 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aerodynamics/plot_rotor_conditions.py +255 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aerodynamics/plot_rotor_disc_performance.py +144 -0
- rcaide_gui-1.0.0/tabs/solve/plots/aerodynamics/plot_rotor_performance.py +124 -0
- rcaide_gui-1.0.0/tabs/solve/plots/common/__init__.py +4 -0
- rcaide_gui-1.0.0/tabs/solve/plots/common/plot_style.py +71 -0
- rcaide_gui-1.0.0/tabs/solve/plots/common/set_axes.py +55 -0
- rcaide_gui-1.0.0/tabs/solve/plots/create_plot_widgets.py +34 -0
- rcaide_gui-1.0.0/tabs/solve/plots/emissions/__init__.py +3 -0
- rcaide_gui-1.0.0/tabs/solve/plots/emissions/plot_emissions.py +167 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/__init__.py +12 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_altitude_sfc_weight.py +134 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_battery_cell_conditions.py +154 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_battery_degradation.py +157 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_battery_module_C_rates.py +139 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_battery_module_conditions.py +157 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_battery_pack_conditions.py +164 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_battery_ragone_diagram.py +97 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_battery_temperature.py +136 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_electric_propulsor_efficiencies.py +136 -0
- rcaide_gui-1.0.0/tabs/solve/plots/energy/plot_propulsor_throttles.py +119 -0
- rcaide_gui-1.0.0/tabs/solve/plots/mission/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/solve/plots/mission/plot_aircraft_velocities.py +145 -0
- rcaide_gui-1.0.0/tabs/solve/plots/mission/plot_flight_conditions.py +236 -0
- rcaide_gui-1.0.0/tabs/solve/plots/mission/plot_flight_trajectory.py +172 -0
- rcaide_gui-1.0.0/tabs/solve/plots/stability/__init__.py +5 -0
- rcaide_gui-1.0.0/tabs/solve/plots/stability/plot_flight_forces_and_moments.py +163 -0
- rcaide_gui-1.0.0/tabs/solve/plots/stability/plot_lateral_stability.py +151 -0
- rcaide_gui-1.0.0/tabs/solve/plots/stability/plot_longitudinal_stability.py +173 -0
- rcaide_gui-1.0.0/tabs/solve/plots/thermal_management/__init__.py +7 -0
- rcaide_gui-1.0.0/tabs/solve/plots/thermal_management/plot_air_cooled_conditions.py +152 -0
- rcaide_gui-1.0.0/tabs/solve/plots/thermal_management/plot_cross_flow_heat_exchanger_conditions.py +185 -0
- rcaide_gui-1.0.0/tabs/solve/plots/thermal_management/plot_reservoir_conditions.py +141 -0
- rcaide_gui-1.0.0/tabs/solve/plots/thermal_management/plot_thermal_management_performance.py +105 -0
- rcaide_gui-1.0.0/tabs/solve/plots/thermal_management/plot_wavy_channel_conditions.py +161 -0
- rcaide_gui-1.0.0/tabs/solve/plots/weights/__init__.py +4 -0
- rcaide_gui-1.0.0/tabs/solve/plots/weights/plot_load_diagram.py +163 -0
- rcaide_gui-1.0.0/tabs/solve/plots/weights/plot_weight_breakdown.py +164 -0
- rcaide_gui-1.0.0/tabs/solve/solve.py +1498 -0
- rcaide_gui-1.0.0/tabs/style_sheet.py +114 -0
- rcaide_gui-1.0.0/tabs/tab_widget.py +14 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/__init__.py +4 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/core_3d_viewer.py +253 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/features/__init__.py +10 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/features/axes_gizmo.py +173 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/features/background.py +161 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/features/blueprint.py +685 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/features/camera.py +364 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/features/drag_aircraft.py +219 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/features/grid.py +194 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/features/measurement.py +367 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/features/screenshot.py +91 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/geometry_helper_functions.py +3 -0
- rcaide_gui-1.0.0/tabs/visualize_geometry/visualize_geometry.py +731 -0
- rcaide_gui-1.0.0/utilities.py +257 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: RCAIDE-GUI
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: RCAIDE Graphical User Interface: interactive desktop application for aircraft design and analysis
|
|
5
|
+
License: GNU Affero General Public License v3.0
|
|
6
|
+
Classifier: Development Status :: 4 - Beta
|
|
7
|
+
Classifier: Intended Audience :: Developers
|
|
8
|
+
Classifier: Intended Audience :: Education
|
|
9
|
+
Classifier: Intended Audience :: Science/Research
|
|
10
|
+
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering
|
|
18
|
+
Requires-Python: >=3.9
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
Requires-Dist: RCAIDE-LEADS
|
|
21
|
+
Requires-Dist: PyQt6>=6.9.0
|
|
22
|
+
Requires-Dist: pyqtgraph>=0.14.0
|
|
23
|
+
Requires-Dist: pyvista>=0.46.0
|
|
24
|
+
Requires-Dist: pyvistaqt>=0.11.0
|
|
25
|
+
Requires-Dist: qt-material>=2.17
|
|
26
|
+
Requires-Dist: numpy
|
|
27
|
+
Requires-Dist: scipy
|
|
28
|
+
Requires-Dist: matplotlib
|
|
29
|
+
Requires-Dist: plotly
|
|
30
|
+
Requires-Dist: pandas
|
|
31
|
+
Requires-Dist: pillow
|
|
32
|
+
Requires-Dist: trimesh
|
|
33
|
+
Requires-Dist: vtk
|
|
34
|
+
Requires-Dist: contourpy
|
|
35
|
+
Requires-Dist: cycler
|
|
36
|
+
Requires-Dist: fonttools
|
|
37
|
+
Requires-Dist: geographiclib
|
|
38
|
+
Requires-Dist: geopy
|
|
39
|
+
Requires-Dist: joblib
|
|
40
|
+
Requires-Dist: kaleido
|
|
41
|
+
Requires-Dist: python-dateutil
|
|
42
|
+
Requires-Dist: pytz
|
|
43
|
+
Requires-Dist: scikit-learn
|
|
44
|
+
Requires-Dist: six
|
|
45
|
+
Requires-Dist: tenacity
|
|
46
|
+
Requires-Dist: threadpoolctl
|
|
47
|
+
|
|
48
|
+
# RCAIDE GUI: Research Community Aircraft Interdisciplinary Design Environment — Graphical User Interface
|
|
49
|
+
|
|
50
|
+
The RCAIDE GUI is an interactive desktop application for [RCAIDE](https://pypi.org/project/RCAIDE-LEADS/), a powerful open-source Python platform for aircraft design and analysis. It provides an intuitive visual workflow for aerospace engineers, researchers, and students to design, configure, and simulate aircraft without writing Python scripts directly.
|
|
51
|
+
|
|
52
|
+
## Features
|
|
53
|
+
|
|
54
|
+
- **Vehicle Setup** — Build up aircraft geometry using a component tree (wings, fuselages, nacelles, landing gear, booms, propulsors) with a live 3D preview
|
|
55
|
+
- **Geometry Visualization** — Full 3D VTK rendering environment; inspect component placement and export top/front/side view images
|
|
56
|
+
- **Configurations Setup** — Define base, takeoff, cruise, and landing configurations with control surface deflections and active propulsor settings
|
|
57
|
+
- **Analyses Setup** — Configure multidisciplinary solvers (aerodynamics, atmosphere, weights, acoustics) and toggle fidelity levels
|
|
58
|
+
- **Mission Setup** — Chain flight segments (takeoff, climb, cruise, descent) with custom altitudes, speeds, and linked analyses
|
|
59
|
+
- **Mission Simulation** — Execute the backend RCAIDE solvers and view numerical and graphical results (performance, payload-range, stability)
|
|
60
|
+
|
|
61
|
+
## Installation
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pip install RCAIDE-GUI
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Installing `RCAIDE-GUI` automatically installs [RCAIDE-LEADS](https://pypi.org/project/RCAIDE-LEADS/) and all required dependencies.
|
|
68
|
+
|
|
69
|
+
## Launch
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
rcaide-gui
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Or via Python:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
python -m main
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Requirements
|
|
82
|
+
|
|
83
|
+
- Python ≥ 3.9
|
|
84
|
+
- PyQt6
|
|
85
|
+
- pyvista / pyvistaqt
|
|
86
|
+
- RCAIDE-LEADS (installed automatically)
|
|
87
|
+
|
|
88
|
+
Refer to the [installation guide](https://www.docs.rcaide.leadsresearchgroup.com/install.html) for platform-specific notes.
|
|
89
|
+
|
|
90
|
+
## Contributing
|
|
91
|
+
|
|
92
|
+
We welcome contributions! Please see our [contribution guidelines](https://www.docs.rcaide.leadsresearchgroup.com/contributing.html).
|
|
93
|
+
|
|
94
|
+
## Contact
|
|
95
|
+
|
|
96
|
+
For feedback, issues, or feature requests, use our [GitHub Issues](https://github.com/leadsgroup/RCAIDE_GUI/issues) or join our [Discussions](https://github.com/leadsgroup/RCAIDE_GUI/discussions).
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: RCAIDE-GUI
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: RCAIDE Graphical User Interface: interactive desktop application for aircraft design and analysis
|
|
5
|
+
License: GNU Affero General Public License v3.0
|
|
6
|
+
Classifier: Development Status :: 4 - Beta
|
|
7
|
+
Classifier: Intended Audience :: Developers
|
|
8
|
+
Classifier: Intended Audience :: Education
|
|
9
|
+
Classifier: Intended Audience :: Science/Research
|
|
10
|
+
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering
|
|
18
|
+
Requires-Python: >=3.9
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
Requires-Dist: RCAIDE-LEADS
|
|
21
|
+
Requires-Dist: PyQt6>=6.9.0
|
|
22
|
+
Requires-Dist: pyqtgraph>=0.14.0
|
|
23
|
+
Requires-Dist: pyvista>=0.46.0
|
|
24
|
+
Requires-Dist: pyvistaqt>=0.11.0
|
|
25
|
+
Requires-Dist: qt-material>=2.17
|
|
26
|
+
Requires-Dist: numpy
|
|
27
|
+
Requires-Dist: scipy
|
|
28
|
+
Requires-Dist: matplotlib
|
|
29
|
+
Requires-Dist: plotly
|
|
30
|
+
Requires-Dist: pandas
|
|
31
|
+
Requires-Dist: pillow
|
|
32
|
+
Requires-Dist: trimesh
|
|
33
|
+
Requires-Dist: vtk
|
|
34
|
+
Requires-Dist: contourpy
|
|
35
|
+
Requires-Dist: cycler
|
|
36
|
+
Requires-Dist: fonttools
|
|
37
|
+
Requires-Dist: geographiclib
|
|
38
|
+
Requires-Dist: geopy
|
|
39
|
+
Requires-Dist: joblib
|
|
40
|
+
Requires-Dist: kaleido
|
|
41
|
+
Requires-Dist: python-dateutil
|
|
42
|
+
Requires-Dist: pytz
|
|
43
|
+
Requires-Dist: scikit-learn
|
|
44
|
+
Requires-Dist: six
|
|
45
|
+
Requires-Dist: tenacity
|
|
46
|
+
Requires-Dist: threadpoolctl
|
|
47
|
+
|
|
48
|
+
# RCAIDE GUI: Research Community Aircraft Interdisciplinary Design Environment — Graphical User Interface
|
|
49
|
+
|
|
50
|
+
The RCAIDE GUI is an interactive desktop application for [RCAIDE](https://pypi.org/project/RCAIDE-LEADS/), a powerful open-source Python platform for aircraft design and analysis. It provides an intuitive visual workflow for aerospace engineers, researchers, and students to design, configure, and simulate aircraft without writing Python scripts directly.
|
|
51
|
+
|
|
52
|
+
## Features
|
|
53
|
+
|
|
54
|
+
- **Vehicle Setup** — Build up aircraft geometry using a component tree (wings, fuselages, nacelles, landing gear, booms, propulsors) with a live 3D preview
|
|
55
|
+
- **Geometry Visualization** — Full 3D VTK rendering environment; inspect component placement and export top/front/side view images
|
|
56
|
+
- **Configurations Setup** — Define base, takeoff, cruise, and landing configurations with control surface deflections and active propulsor settings
|
|
57
|
+
- **Analyses Setup** — Configure multidisciplinary solvers (aerodynamics, atmosphere, weights, acoustics) and toggle fidelity levels
|
|
58
|
+
- **Mission Setup** — Chain flight segments (takeoff, climb, cruise, descent) with custom altitudes, speeds, and linked analyses
|
|
59
|
+
- **Mission Simulation** — Execute the backend RCAIDE solvers and view numerical and graphical results (performance, payload-range, stability)
|
|
60
|
+
|
|
61
|
+
## Installation
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pip install RCAIDE-GUI
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Installing `RCAIDE-GUI` automatically installs [RCAIDE-LEADS](https://pypi.org/project/RCAIDE-LEADS/) and all required dependencies.
|
|
68
|
+
|
|
69
|
+
## Launch
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
rcaide-gui
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Or via Python:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
python -m main
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Requirements
|
|
82
|
+
|
|
83
|
+
- Python ≥ 3.9
|
|
84
|
+
- PyQt6
|
|
85
|
+
- pyvista / pyvistaqt
|
|
86
|
+
- RCAIDE-LEADS (installed automatically)
|
|
87
|
+
|
|
88
|
+
Refer to the [installation guide](https://www.docs.rcaide.leadsresearchgroup.com/install.html) for platform-specific notes.
|
|
89
|
+
|
|
90
|
+
## Contributing
|
|
91
|
+
|
|
92
|
+
We welcome contributions! Please see our [contribution guidelines](https://www.docs.rcaide.leadsresearchgroup.com/contributing.html).
|
|
93
|
+
|
|
94
|
+
## Contact
|
|
95
|
+
|
|
96
|
+
For feedback, issues, or feature requests, use our [GitHub Issues](https://github.com/leadsgroup/RCAIDE_GUI/issues) or join our [Discussions](https://github.com/leadsgroup/RCAIDE_GUI/discussions).
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
README_PyPI.md
|
|
3
|
+
VERSION
|
|
4
|
+
main.py
|
|
5
|
+
pyproject.toml
|
|
6
|
+
rcaide_io.py
|
|
7
|
+
setup.py
|
|
8
|
+
utilities.py
|
|
9
|
+
./main.py
|
|
10
|
+
./rcaide_io.py
|
|
11
|
+
./utilities.py
|
|
12
|
+
./common_widgets/__init__.py
|
|
13
|
+
./common_widgets/animated_toggle.py
|
|
14
|
+
./common_widgets/color.py
|
|
15
|
+
./common_widgets/data_entry_widget.py
|
|
16
|
+
./common_widgets/image_widget.py
|
|
17
|
+
./common_widgets/unit_picker_widget.py
|
|
18
|
+
./tabs/__init__.py
|
|
19
|
+
./tabs/style_sheet.py
|
|
20
|
+
./tabs/tab_widget.py
|
|
21
|
+
./tabs/aircraft_configs/__init__.py
|
|
22
|
+
./tabs/aircraft_configs/aircraft_configs.py
|
|
23
|
+
./tabs/analysis/__init__.py
|
|
24
|
+
./tabs/analysis/analysis.py
|
|
25
|
+
./tabs/analysis/widgets/__init__.py
|
|
26
|
+
./tabs/analysis/widgets/aeroacoustics_widget.py
|
|
27
|
+
./tabs/analysis/widgets/aerodynamics_widget.py
|
|
28
|
+
./tabs/analysis/widgets/analysis_data_widget.py
|
|
29
|
+
./tabs/analysis/widgets/atmosphere_widget.py
|
|
30
|
+
./tabs/analysis/widgets/costs_widget.py
|
|
31
|
+
./tabs/analysis/widgets/energy_widget.py
|
|
32
|
+
./tabs/analysis/widgets/geometry_widget.py
|
|
33
|
+
./tabs/analysis/widgets/planets_widget.py
|
|
34
|
+
./tabs/analysis/widgets/propulsion_widget.py
|
|
35
|
+
./tabs/analysis/widgets/stability_widget.py
|
|
36
|
+
./tabs/analysis/widgets/weights_widget.py
|
|
37
|
+
./tabs/geometry/__init__.py
|
|
38
|
+
./tabs/geometry/aircraft_configs.py
|
|
39
|
+
./tabs/geometry/geometry.py
|
|
40
|
+
./tabs/geometry/frames/__init__.py
|
|
41
|
+
./tabs/geometry/frames/default_frame.py
|
|
42
|
+
./tabs/geometry/frames/geometry_frame.py
|
|
43
|
+
./tabs/geometry/frames/vehicle_frame.py
|
|
44
|
+
./tabs/geometry/frames/booms/__init__.py
|
|
45
|
+
./tabs/geometry/frames/booms/boom_frame.py
|
|
46
|
+
./tabs/geometry/frames/cargo_bays/__init__.py
|
|
47
|
+
./tabs/geometry/frames/cargo_bays/cargo_bay_frame.py
|
|
48
|
+
./tabs/geometry/frames/energy_network/__init__.py
|
|
49
|
+
./tabs/geometry/frames/energy_network/turbofan_network/__init__.py
|
|
50
|
+
./tabs/geometry/frames/energy_network/turbofan_network/frames/__init__.py
|
|
51
|
+
./tabs/geometry/frames/energy_network/turbofan_network/widgets/__init__.py
|
|
52
|
+
./tabs/geometry/frames/fuselages/__init__.py
|
|
53
|
+
./tabs/geometry/frames/fuselages/fuselage_frame.py
|
|
54
|
+
./tabs/geometry/frames/landing_gears/__init__.py
|
|
55
|
+
./tabs/geometry/frames/landing_gears/landing_gear_frame.py
|
|
56
|
+
./tabs/geometry/frames/nacelles/__init__.py
|
|
57
|
+
./tabs/geometry/frames/powertrain/__init__.py
|
|
58
|
+
./tabs/geometry/frames/powertrain/powertrain_frame.py
|
|
59
|
+
./tabs/geometry/frames/powertrain/converters/__init__.py
|
|
60
|
+
./tabs/geometry/frames/powertrain/converters/converter_frame.py
|
|
61
|
+
./tabs/geometry/frames/powertrain/distributors/__init__.py
|
|
62
|
+
./tabs/geometry/frames/powertrain/distributors/distributor_frame.py
|
|
63
|
+
./tabs/geometry/frames/powertrain/nacelles/__init__.py
|
|
64
|
+
./tabs/geometry/frames/powertrain/nacelles/nacelle_frame.py
|
|
65
|
+
./tabs/geometry/frames/powertrain/propulsors/__init__.py
|
|
66
|
+
./tabs/geometry/frames/powertrain/propulsors/propulsor_frame.py
|
|
67
|
+
./tabs/geometry/frames/powertrain/sources/__init__.py
|
|
68
|
+
./tabs/geometry/frames/powertrain/sources/energy_source_frame.py
|
|
69
|
+
./tabs/geometry/frames/wings/__init__.py
|
|
70
|
+
./tabs/geometry/frames/wings/wings_frame.py
|
|
71
|
+
./tabs/geometry/widgets/__init__.py
|
|
72
|
+
./tabs/geometry/widgets/geometry_data_widget.py
|
|
73
|
+
./tabs/geometry/widgets/booms/__init__.py
|
|
74
|
+
./tabs/geometry/widgets/booms/boom_section_widget.py
|
|
75
|
+
./tabs/geometry/widgets/cargo_bays/__init__.py
|
|
76
|
+
./tabs/geometry/widgets/fuselages/__init__.py
|
|
77
|
+
./tabs/geometry/widgets/fuselages/cabin_class_widget.py
|
|
78
|
+
./tabs/geometry/widgets/fuselages/cabin_widget.py
|
|
79
|
+
./tabs/geometry/widgets/fuselages/fuselage_section_widget.py
|
|
80
|
+
./tabs/geometry/widgets/landing_gears/__init__.py
|
|
81
|
+
./tabs/geometry/widgets/nacelles/__init__.py
|
|
82
|
+
./tabs/geometry/widgets/powertrain/__init__.py
|
|
83
|
+
./tabs/geometry/widgets/powertrain/powertrain_connector_widget.py
|
|
84
|
+
./tabs/geometry/widgets/powertrain/powertrain_widget.py
|
|
85
|
+
./tabs/geometry/widgets/powertrain/converters/__init__.py
|
|
86
|
+
./tabs/geometry/widgets/powertrain/converters/turboelectric_generator_widget.py
|
|
87
|
+
./tabs/geometry/widgets/powertrain/distributors/__init__.py
|
|
88
|
+
./tabs/geometry/widgets/powertrain/distributors/fuel_line_widget.py
|
|
89
|
+
./tabs/geometry/widgets/powertrain/modulators/__init__.py
|
|
90
|
+
./tabs/geometry/widgets/powertrain/modulators/esc_widget.py
|
|
91
|
+
./tabs/geometry/widgets/powertrain/nacelles/__init__.py
|
|
92
|
+
./tabs/geometry/widgets/powertrain/nacelles/nacelle_section_widget.py
|
|
93
|
+
./tabs/geometry/widgets/powertrain/propulsors/__init__.py
|
|
94
|
+
./tabs/geometry/widgets/powertrain/propulsors/turbofan_widget.py
|
|
95
|
+
./tabs/geometry/widgets/powertrain/sources/__init__.py
|
|
96
|
+
./tabs/geometry/widgets/powertrain/sources/fuel_tank_widget.py
|
|
97
|
+
./tabs/geometry/widgets/powertrain/sources/source_selector_widget.py
|
|
98
|
+
./tabs/geometry/widgets/wings/__init__.py
|
|
99
|
+
./tabs/geometry/widgets/wings/wing_cs_widget.py
|
|
100
|
+
./tabs/geometry/widgets/wings/wing_section_widget.py
|
|
101
|
+
./tabs/home/__init__.py
|
|
102
|
+
./tabs/home/home.py
|
|
103
|
+
./tabs/mission/__init__.py
|
|
104
|
+
./tabs/mission/mission.py
|
|
105
|
+
./tabs/mission/widgets/__init__.py
|
|
106
|
+
./tabs/mission/widgets/flight_controls_widget.py
|
|
107
|
+
./tabs/mission/widgets/mission_analysis_widget.py
|
|
108
|
+
./tabs/mission/widgets/mission_segment_helper.py
|
|
109
|
+
./tabs/mission/widgets/mission_segment_widget.py
|
|
110
|
+
./tabs/solve/__init__.py
|
|
111
|
+
./tabs/solve/solve.py
|
|
112
|
+
./tabs/solve/plots/__init__.py
|
|
113
|
+
./tabs/solve/plots/create_plot_widgets.py
|
|
114
|
+
./tabs/solve/plots/aeroacoustics/__init__.py
|
|
115
|
+
./tabs/solve/plots/aeroacoustics/plot_2D_noise_contour.py
|
|
116
|
+
./tabs/solve/plots/aeroacoustics/plot_3D_noise_contour.py
|
|
117
|
+
./tabs/solve/plots/aeroacoustics/plot_noise_certification_contour.py
|
|
118
|
+
./tabs/solve/plots/aeroacoustics/plot_noise_level.py
|
|
119
|
+
./tabs/solve/plots/aerodynamics/__init__.py
|
|
120
|
+
./tabs/solve/plots/aerodynamics/plot_aerodynamic_coefficients.py
|
|
121
|
+
./tabs/solve/plots/aerodynamics/plot_aerodynamic_forces.py
|
|
122
|
+
./tabs/solve/plots/aerodynamics/plot_aircraft_aerodynamics.py
|
|
123
|
+
./tabs/solve/plots/aerodynamics/plot_drag_components.py
|
|
124
|
+
./tabs/solve/plots/aerodynamics/plot_lift_distribution.py
|
|
125
|
+
./tabs/solve/plots/aerodynamics/plot_rotor_conditions.py
|
|
126
|
+
./tabs/solve/plots/aerodynamics/plot_rotor_disc_performance.py
|
|
127
|
+
./tabs/solve/plots/aerodynamics/plot_rotor_performance.py
|
|
128
|
+
./tabs/solve/plots/common/__init__.py
|
|
129
|
+
./tabs/solve/plots/common/plot_style.py
|
|
130
|
+
./tabs/solve/plots/common/set_axes.py
|
|
131
|
+
./tabs/solve/plots/emissions/__init__.py
|
|
132
|
+
./tabs/solve/plots/emissions/plot_emissions.py
|
|
133
|
+
./tabs/solve/plots/energy/__init__.py
|
|
134
|
+
./tabs/solve/plots/energy/plot_altitude_sfc_weight.py
|
|
135
|
+
./tabs/solve/plots/energy/plot_battery_cell_conditions.py
|
|
136
|
+
./tabs/solve/plots/energy/plot_battery_degradation.py
|
|
137
|
+
./tabs/solve/plots/energy/plot_battery_module_C_rates.py
|
|
138
|
+
./tabs/solve/plots/energy/plot_battery_module_conditions.py
|
|
139
|
+
./tabs/solve/plots/energy/plot_battery_pack_conditions.py
|
|
140
|
+
./tabs/solve/plots/energy/plot_battery_ragone_diagram.py
|
|
141
|
+
./tabs/solve/plots/energy/plot_battery_temperature.py
|
|
142
|
+
./tabs/solve/plots/energy/plot_electric_propulsor_efficiencies.py
|
|
143
|
+
./tabs/solve/plots/energy/plot_propulsor_throttles.py
|
|
144
|
+
./tabs/solve/plots/mission/__init__.py
|
|
145
|
+
./tabs/solve/plots/mission/plot_aircraft_velocities.py
|
|
146
|
+
./tabs/solve/plots/mission/plot_flight_conditions.py
|
|
147
|
+
./tabs/solve/plots/mission/plot_flight_trajectory.py
|
|
148
|
+
./tabs/solve/plots/stability/__init__.py
|
|
149
|
+
./tabs/solve/plots/stability/plot_flight_forces_and_moments.py
|
|
150
|
+
./tabs/solve/plots/stability/plot_lateral_stability.py
|
|
151
|
+
./tabs/solve/plots/stability/plot_longitudinal_stability.py
|
|
152
|
+
./tabs/solve/plots/thermal_management/__init__.py
|
|
153
|
+
./tabs/solve/plots/thermal_management/plot_air_cooled_conditions.py
|
|
154
|
+
./tabs/solve/plots/thermal_management/plot_cross_flow_heat_exchanger_conditions.py
|
|
155
|
+
./tabs/solve/plots/thermal_management/plot_reservoir_conditions.py
|
|
156
|
+
./tabs/solve/plots/thermal_management/plot_thermal_management_performance.py
|
|
157
|
+
./tabs/solve/plots/thermal_management/plot_wavy_channel_conditions.py
|
|
158
|
+
./tabs/solve/plots/weights/__init__.py
|
|
159
|
+
./tabs/solve/plots/weights/plot_load_diagram.py
|
|
160
|
+
./tabs/solve/plots/weights/plot_weight_breakdown.py
|
|
161
|
+
./tabs/visualize_geometry/__init__.py
|
|
162
|
+
./tabs/visualize_geometry/core_3d_viewer.py
|
|
163
|
+
./tabs/visualize_geometry/geometry_helper_functions.py
|
|
164
|
+
./tabs/visualize_geometry/visualize_geometry.py
|
|
165
|
+
./tabs/visualize_geometry/features/__init__.py
|
|
166
|
+
./tabs/visualize_geometry/features/axes_gizmo.py
|
|
167
|
+
./tabs/visualize_geometry/features/background.py
|
|
168
|
+
./tabs/visualize_geometry/features/blueprint.py
|
|
169
|
+
./tabs/visualize_geometry/features/camera.py
|
|
170
|
+
./tabs/visualize_geometry/features/drag_aircraft.py
|
|
171
|
+
./tabs/visualize_geometry/features/grid.py
|
|
172
|
+
./tabs/visualize_geometry/features/measurement.py
|
|
173
|
+
./tabs/visualize_geometry/features/screenshot.py
|
|
174
|
+
RCAIDE_GUI.egg-info/PKG-INFO
|
|
175
|
+
RCAIDE_GUI.egg-info/SOURCES.txt
|
|
176
|
+
RCAIDE_GUI.egg-info/dependency_links.txt
|
|
177
|
+
RCAIDE_GUI.egg-info/entry_points.txt
|
|
178
|
+
RCAIDE_GUI.egg-info/requires.txt
|
|
179
|
+
RCAIDE_GUI.egg-info/top_level.txt
|
|
180
|
+
common_widgets/__init__.py
|
|
181
|
+
common_widgets/animated_toggle.py
|
|
182
|
+
common_widgets/color.py
|
|
183
|
+
common_widgets/data_entry_widget.py
|
|
184
|
+
common_widgets/image_widget.py
|
|
185
|
+
common_widgets/unit_picker_widget.py
|
|
186
|
+
tabs/__init__.py
|
|
187
|
+
tabs/style_sheet.py
|
|
188
|
+
tabs/tab_widget.py
|
|
189
|
+
tabs/aircraft_configs/__init__.py
|
|
190
|
+
tabs/aircraft_configs/aircraft_configs.py
|
|
191
|
+
tabs/analysis/__init__.py
|
|
192
|
+
tabs/analysis/analysis.py
|
|
193
|
+
tabs/analysis/widgets/__init__.py
|
|
194
|
+
tabs/analysis/widgets/aeroacoustics_widget.py
|
|
195
|
+
tabs/analysis/widgets/aerodynamics_widget.py
|
|
196
|
+
tabs/analysis/widgets/analysis_data_widget.py
|
|
197
|
+
tabs/analysis/widgets/atmosphere_widget.py
|
|
198
|
+
tabs/analysis/widgets/costs_widget.py
|
|
199
|
+
tabs/analysis/widgets/energy_widget.py
|
|
200
|
+
tabs/analysis/widgets/geometry_widget.py
|
|
201
|
+
tabs/analysis/widgets/planets_widget.py
|
|
202
|
+
tabs/analysis/widgets/propulsion_widget.py
|
|
203
|
+
tabs/analysis/widgets/stability_widget.py
|
|
204
|
+
tabs/analysis/widgets/weights_widget.py
|
|
205
|
+
tabs/geometry/__init__.py
|
|
206
|
+
tabs/geometry/aircraft_configs.py
|
|
207
|
+
tabs/geometry/geometry.py
|
|
208
|
+
tabs/geometry/frames/__init__.py
|
|
209
|
+
tabs/geometry/frames/default_frame.py
|
|
210
|
+
tabs/geometry/frames/geometry_frame.py
|
|
211
|
+
tabs/geometry/frames/vehicle_frame.py
|
|
212
|
+
tabs/geometry/frames/booms/__init__.py
|
|
213
|
+
tabs/geometry/frames/booms/boom_frame.py
|
|
214
|
+
tabs/geometry/frames/cargo_bays/__init__.py
|
|
215
|
+
tabs/geometry/frames/cargo_bays/cargo_bay_frame.py
|
|
216
|
+
tabs/geometry/frames/energy_network/__init__.py
|
|
217
|
+
tabs/geometry/frames/energy_network/turbofan_network/__init__.py
|
|
218
|
+
tabs/geometry/frames/energy_network/turbofan_network/frames/__init__.py
|
|
219
|
+
tabs/geometry/frames/energy_network/turbofan_network/widgets/__init__.py
|
|
220
|
+
tabs/geometry/frames/fuselages/__init__.py
|
|
221
|
+
tabs/geometry/frames/fuselages/fuselage_frame.py
|
|
222
|
+
tabs/geometry/frames/landing_gears/__init__.py
|
|
223
|
+
tabs/geometry/frames/landing_gears/landing_gear_frame.py
|
|
224
|
+
tabs/geometry/frames/nacelles/__init__.py
|
|
225
|
+
tabs/geometry/frames/powertrain/__init__.py
|
|
226
|
+
tabs/geometry/frames/powertrain/powertrain_frame.py
|
|
227
|
+
tabs/geometry/frames/powertrain/converters/__init__.py
|
|
228
|
+
tabs/geometry/frames/powertrain/converters/converter_frame.py
|
|
229
|
+
tabs/geometry/frames/powertrain/distributors/__init__.py
|
|
230
|
+
tabs/geometry/frames/powertrain/distributors/distributor_frame.py
|
|
231
|
+
tabs/geometry/frames/powertrain/nacelles/__init__.py
|
|
232
|
+
tabs/geometry/frames/powertrain/nacelles/nacelle_frame.py
|
|
233
|
+
tabs/geometry/frames/powertrain/propulsors/__init__.py
|
|
234
|
+
tabs/geometry/frames/powertrain/propulsors/propulsor_frame.py
|
|
235
|
+
tabs/geometry/frames/powertrain/sources/__init__.py
|
|
236
|
+
tabs/geometry/frames/powertrain/sources/energy_source_frame.py
|
|
237
|
+
tabs/geometry/frames/wings/__init__.py
|
|
238
|
+
tabs/geometry/frames/wings/wings_frame.py
|
|
239
|
+
tabs/geometry/widgets/__init__.py
|
|
240
|
+
tabs/geometry/widgets/geometry_data_widget.py
|
|
241
|
+
tabs/geometry/widgets/booms/__init__.py
|
|
242
|
+
tabs/geometry/widgets/booms/boom_section_widget.py
|
|
243
|
+
tabs/geometry/widgets/cargo_bays/__init__.py
|
|
244
|
+
tabs/geometry/widgets/fuselages/__init__.py
|
|
245
|
+
tabs/geometry/widgets/fuselages/cabin_class_widget.py
|
|
246
|
+
tabs/geometry/widgets/fuselages/cabin_widget.py
|
|
247
|
+
tabs/geometry/widgets/fuselages/fuselage_section_widget.py
|
|
248
|
+
tabs/geometry/widgets/landing_gears/__init__.py
|
|
249
|
+
tabs/geometry/widgets/nacelles/__init__.py
|
|
250
|
+
tabs/geometry/widgets/powertrain/__init__.py
|
|
251
|
+
tabs/geometry/widgets/powertrain/powertrain_connector_widget.py
|
|
252
|
+
tabs/geometry/widgets/powertrain/powertrain_widget.py
|
|
253
|
+
tabs/geometry/widgets/powertrain/converters/__init__.py
|
|
254
|
+
tabs/geometry/widgets/powertrain/converters/turboelectric_generator_widget.py
|
|
255
|
+
tabs/geometry/widgets/powertrain/distributors/__init__.py
|
|
256
|
+
tabs/geometry/widgets/powertrain/distributors/fuel_line_widget.py
|
|
257
|
+
tabs/geometry/widgets/powertrain/modulators/__init__.py
|
|
258
|
+
tabs/geometry/widgets/powertrain/modulators/esc_widget.py
|
|
259
|
+
tabs/geometry/widgets/powertrain/nacelles/__init__.py
|
|
260
|
+
tabs/geometry/widgets/powertrain/nacelles/nacelle_section_widget.py
|
|
261
|
+
tabs/geometry/widgets/powertrain/propulsors/__init__.py
|
|
262
|
+
tabs/geometry/widgets/powertrain/propulsors/turbofan_widget.py
|
|
263
|
+
tabs/geometry/widgets/powertrain/sources/__init__.py
|
|
264
|
+
tabs/geometry/widgets/powertrain/sources/fuel_tank_widget.py
|
|
265
|
+
tabs/geometry/widgets/powertrain/sources/source_selector_widget.py
|
|
266
|
+
tabs/geometry/widgets/wings/__init__.py
|
|
267
|
+
tabs/geometry/widgets/wings/wing_cs_widget.py
|
|
268
|
+
tabs/geometry/widgets/wings/wing_section_widget.py
|
|
269
|
+
tabs/home/__init__.py
|
|
270
|
+
tabs/home/home.py
|
|
271
|
+
tabs/mission/__init__.py
|
|
272
|
+
tabs/mission/mission.py
|
|
273
|
+
tabs/mission/widgets/__init__.py
|
|
274
|
+
tabs/mission/widgets/flight_controls_widget.py
|
|
275
|
+
tabs/mission/widgets/mission_analysis_widget.py
|
|
276
|
+
tabs/mission/widgets/mission_segment_helper.py
|
|
277
|
+
tabs/mission/widgets/mission_segment_widget.py
|
|
278
|
+
tabs/solve/__init__.py
|
|
279
|
+
tabs/solve/solve.py
|
|
280
|
+
tabs/solve/plots/__init__.py
|
|
281
|
+
tabs/solve/plots/create_plot_widgets.py
|
|
282
|
+
tabs/solve/plots/aeroacoustics/__init__.py
|
|
283
|
+
tabs/solve/plots/aeroacoustics/plot_2D_noise_contour.py
|
|
284
|
+
tabs/solve/plots/aeroacoustics/plot_3D_noise_contour.py
|
|
285
|
+
tabs/solve/plots/aeroacoustics/plot_noise_certification_contour.py
|
|
286
|
+
tabs/solve/plots/aeroacoustics/plot_noise_level.py
|
|
287
|
+
tabs/solve/plots/aerodynamics/__init__.py
|
|
288
|
+
tabs/solve/plots/aerodynamics/plot_aerodynamic_coefficients.py
|
|
289
|
+
tabs/solve/plots/aerodynamics/plot_aerodynamic_forces.py
|
|
290
|
+
tabs/solve/plots/aerodynamics/plot_aircraft_aerodynamics.py
|
|
291
|
+
tabs/solve/plots/aerodynamics/plot_drag_components.py
|
|
292
|
+
tabs/solve/plots/aerodynamics/plot_lift_distribution.py
|
|
293
|
+
tabs/solve/plots/aerodynamics/plot_rotor_conditions.py
|
|
294
|
+
tabs/solve/plots/aerodynamics/plot_rotor_disc_performance.py
|
|
295
|
+
tabs/solve/plots/aerodynamics/plot_rotor_performance.py
|
|
296
|
+
tabs/solve/plots/common/__init__.py
|
|
297
|
+
tabs/solve/plots/common/plot_style.py
|
|
298
|
+
tabs/solve/plots/common/set_axes.py
|
|
299
|
+
tabs/solve/plots/emissions/__init__.py
|
|
300
|
+
tabs/solve/plots/emissions/plot_emissions.py
|
|
301
|
+
tabs/solve/plots/energy/__init__.py
|
|
302
|
+
tabs/solve/plots/energy/plot_altitude_sfc_weight.py
|
|
303
|
+
tabs/solve/plots/energy/plot_battery_cell_conditions.py
|
|
304
|
+
tabs/solve/plots/energy/plot_battery_degradation.py
|
|
305
|
+
tabs/solve/plots/energy/plot_battery_module_C_rates.py
|
|
306
|
+
tabs/solve/plots/energy/plot_battery_module_conditions.py
|
|
307
|
+
tabs/solve/plots/energy/plot_battery_pack_conditions.py
|
|
308
|
+
tabs/solve/plots/energy/plot_battery_ragone_diagram.py
|
|
309
|
+
tabs/solve/plots/energy/plot_battery_temperature.py
|
|
310
|
+
tabs/solve/plots/energy/plot_electric_propulsor_efficiencies.py
|
|
311
|
+
tabs/solve/plots/energy/plot_propulsor_throttles.py
|
|
312
|
+
tabs/solve/plots/mission/__init__.py
|
|
313
|
+
tabs/solve/plots/mission/plot_aircraft_velocities.py
|
|
314
|
+
tabs/solve/plots/mission/plot_flight_conditions.py
|
|
315
|
+
tabs/solve/plots/mission/plot_flight_trajectory.py
|
|
316
|
+
tabs/solve/plots/stability/__init__.py
|
|
317
|
+
tabs/solve/plots/stability/plot_flight_forces_and_moments.py
|
|
318
|
+
tabs/solve/plots/stability/plot_lateral_stability.py
|
|
319
|
+
tabs/solve/plots/stability/plot_longitudinal_stability.py
|
|
320
|
+
tabs/solve/plots/thermal_management/__init__.py
|
|
321
|
+
tabs/solve/plots/thermal_management/plot_air_cooled_conditions.py
|
|
322
|
+
tabs/solve/plots/thermal_management/plot_cross_flow_heat_exchanger_conditions.py
|
|
323
|
+
tabs/solve/plots/thermal_management/plot_reservoir_conditions.py
|
|
324
|
+
tabs/solve/plots/thermal_management/plot_thermal_management_performance.py
|
|
325
|
+
tabs/solve/plots/thermal_management/plot_wavy_channel_conditions.py
|
|
326
|
+
tabs/solve/plots/weights/__init__.py
|
|
327
|
+
tabs/solve/plots/weights/plot_load_diagram.py
|
|
328
|
+
tabs/solve/plots/weights/plot_weight_breakdown.py
|
|
329
|
+
tabs/visualize_geometry/__init__.py
|
|
330
|
+
tabs/visualize_geometry/core_3d_viewer.py
|
|
331
|
+
tabs/visualize_geometry/geometry_helper_functions.py
|
|
332
|
+
tabs/visualize_geometry/visualize_geometry.py
|
|
333
|
+
tabs/visualize_geometry/features/__init__.py
|
|
334
|
+
tabs/visualize_geometry/features/axes_gizmo.py
|
|
335
|
+
tabs/visualize_geometry/features/background.py
|
|
336
|
+
tabs/visualize_geometry/features/blueprint.py
|
|
337
|
+
tabs/visualize_geometry/features/camera.py
|
|
338
|
+
tabs/visualize_geometry/features/drag_aircraft.py
|
|
339
|
+
tabs/visualize_geometry/features/grid.py
|
|
340
|
+
tabs/visualize_geometry/features/measurement.py
|
|
341
|
+
tabs/visualize_geometry/features/screenshot.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
RCAIDE-LEADS
|
|
2
|
+
PyQt6>=6.9.0
|
|
3
|
+
pyqtgraph>=0.14.0
|
|
4
|
+
pyvista>=0.46.0
|
|
5
|
+
pyvistaqt>=0.11.0
|
|
6
|
+
qt-material>=2.17
|
|
7
|
+
numpy
|
|
8
|
+
scipy
|
|
9
|
+
matplotlib
|
|
10
|
+
plotly
|
|
11
|
+
pandas
|
|
12
|
+
pillow
|
|
13
|
+
trimesh
|
|
14
|
+
vtk
|
|
15
|
+
contourpy
|
|
16
|
+
cycler
|
|
17
|
+
fonttools
|
|
18
|
+
geographiclib
|
|
19
|
+
geopy
|
|
20
|
+
joblib
|
|
21
|
+
kaleido
|
|
22
|
+
python-dateutil
|
|
23
|
+
pytz
|
|
24
|
+
scikit-learn
|
|
25
|
+
six
|
|
26
|
+
tenacity
|
|
27
|
+
threadpoolctl
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://github.com/leadsgroup/RCAIDE_Website/blob/main/assets/img/RCAIDE_Logo_No_Background.png" width=25% height=25%>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
#
|
|
6
|
+
<div align="center">
|
|
7
|
+
|
|
8
|
+
<!-- [](https://github.com/leadsgroup/RCAIDE_LEADS/actions/workflows/CI.yml)
|
|
9
|
+
[](https://github.com/leadsgroup/RCAIDE_LEADS/actions/workflows/sphinx_docs.yml)
|
|
10
|
+
[](https://codecov.io/gh/leadsgroup/RCAIDE_LEADS)
|
|
11
|
+
[](https://pepy.tech/projects/rcaide-leads) -->
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
[RCAIDE: Graphical User Interface]([link](https://www.rcaide.leadsresearchgroup.com/gui/))
|
|
18
|
+
=======
|
|
19
|
+
The Research Community Aircraft Interdisciplinary Design Environment (RCAIDE) Graphical User Interface (GUI) is an interactive, visual workflow for RCAIDE, a powerful open-source Python platform that revolutionizes aircraft design and analysis at a high-fidelity. The GUI provides an intuitive desktop application that allows aerospace engineers, researchers, and students to accelerate aircraft development and explore innovative designs without the need to write complex Python scripts. The software is developed and maintained by the [Lab for Electric Aircraft Design and Sustainability](https://www.leadsresearchgroup.com/)
|
|
20
|
+
|
|
21
|
+
[Find more information on RCAIDE, its capabilities, external interfaces, and how to download here.](https://www.docs.rcaide.leadsresearchgroup.com/install.html)
|
|
22
|
+
|
|
23
|
+
## RCAIDE GUI Architecture
|
|
24
|
+
The RCAIDE GUI is structured into tabs to flow with the aircraft design process.
|
|
25
|
+
|
|
26
|
+
* **Vehicle Setup**: This is the foundation of designing your aircraft - defining your aircraft's geometry. Using a component tree, add wings, fuselages, nacelles, landing gear, booms, and propulsors. Then, specify parameters and dimensions to build up your aircraft. This tab also features a live 3D preview of the aircraft to instantly verify geometric dimensions and placements.
|
|
27
|
+
* **Geometry Visualization**: A complete 3D rendering environment powered by VTK. Using this tab, users can inspect their aircraft, check component placement, and export top, front, and side view visualization images before conducting further analysis.
|
|
28
|
+
* **Configurations Setup**: Define the physical states of the aircraft during different phases of flight. Users can set up base, takeoff, cruise, and landing configurations by specifying control surface deflections, landing gear deployment states, and active propulsors.
|
|
29
|
+
* **Analyses Setup**: Define the analysis for RCAIDE's multidisciplinary solvers. Users can toggle and select their analyses requirements and configure the fidelity of the physics models, including aerodynamic solvers, atmospheric conditions, weights, and aeroacoustic parameters.
|
|
30
|
+
* **Mission Setup**: Construct the flight profile. Users can chain together flight segments (takeoff, climb, cruise, descent). Each segment is customized with specific altitudes and speeds, and is linked to previously defined aircraft configurations and analyses.
|
|
31
|
+
* **Mission Simulation**: The tab that displays your results. Once the vehicle, analyses, and mission are defined, the tab runs the backend RCAIDE solvers and returns numerical and graphical outputs (such as performance data, payload-range charts, and stability metrics) for the user to evaluate and export.
|
|
32
|
+
|
|
33
|
+
```mermaid
|
|
34
|
+
%%{init: {'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}}}%%
|
|
35
|
+
flowchart LR
|
|
36
|
+
VS[Vehicle Setup]
|
|
37
|
+
GV[Geometry Visualization]
|
|
38
|
+
CS[Configurations Setup]
|
|
39
|
+
AS[Analyses Setup]
|
|
40
|
+
MSP[Mission Setup]
|
|
41
|
+
MSI[Mission Simulation]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
VS ---> GV
|
|
45
|
+
GV ---> CS
|
|
46
|
+
CS ---> AS
|
|
47
|
+
AS ---> MSP
|
|
48
|
+
MSP ---> MSI
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Getting Involved**
|
|
52
|
+
|
|
53
|
+
If you'd like to help us develop RCAIDE by adding new methods, writing documentation, or fixing embarrassing bugs, please look at these [guidelines](https://www.docs.rcaide.leadsresearchgroup.com/contributing.html).
|
|
54
|
+
|
|
55
|
+
Submit improvements or new features with a [pull request](https://github.com/leadsgroup/RCAIDE_LEADS/pulls)
|
|
56
|
+
|
|
57
|
+
## Get in touch
|
|
58
|
+
|
|
59
|
+
Share feedback, report issues, and request features via or [Github Issues](https://github.com/leadsgroup/RCAIDE_LEADS/issues)
|
|
60
|
+
|
|
61
|
+
Engage with peers and maintainers in [Discussions](https://github.com/leadsgroup/RCAIDE_LEADS/discussions)
|