Skip to content

Architecture and main modules

A compact map of the Assignment 14 Python source. Module names are grounded in the delivered code tree; descriptions summarize their apparent responsibilities, not a claim of formal API stability.

Component Source Role
Desktop entry src/app.py Tk/ttk design, optimization controls, progress, settings
Candidate adaptation src/cdx1_adapter.py, src/candidate_config.py CDX1 and candidate inputs
Search src/optimization_engine.py, src/optimizer_core.py bounded optimization and candidate evaluation
Validity src/flight_validation.py native flight-completion and warning classification
Constraints src/optimization_constraints.py static and optional flutter feasibility
Simulator desktop worker src/rasaero_runner.py, src/integrated_evaluator.py RASAero automation and RocketPy integration
Geometry src/geometry_model.py, src/geometry_renderers.py fin/rocket representation
Flight metrics src/dynamic_flight_metrics.py, src/stability_calculations.py analysis quantities
Flutter src/flutter_screening.py empirical flight-history screening
Results src/results_view.py, src/candidate_shortlist.py comparisons, exports, history display
Packaging src/build_release.ps1, src/installer.iss frozen executable and installer

Core data flow

Source .CDX1 → parameter bounds → candidate .CDX1 → real RASAero simulation + candidate aerodynamic CSV → RocketPy evaluation → flight validity/static/flutter checks → saved candidate record → feasible winner/shortlist → GUI export.

Caution

The supported physical model is Sorcerer-specific in the documented build. Do not silently apply its motor, inertia, or mass assumptions to unrelated rockets.


Source basis: Assignment 14 review materials supplied with this documentation. Internal archive paths and raw evidence are not published.