Loading repository data…
Loading repository data…
peterdsharpe / repository
Aircraft design optimization made fast through computational graph transformations (e.g., automatic differentiation). Composable analysis tools for aerodynamics, propulsion, structures, trajectory design, and much more.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
by Peter Sharpe (<pds [at] mit [dot] edu>)
AeroSandbox is a Python package that helps you design and optimize aircraft and other engineered systems.
At its heart, AeroSandbox is an optimization suite that combines the ease-of-use of familiar NumPy syntax with the power of modern automatic differentiation.
This automatic differentiation dramatically improves optimization performance on large problems: design problems with tens of thousands of decision variables solve in seconds on a laptop. AeroSandbox also comes with dozens of end-to-end-differentiable aerospace physics models, allowing you to simultaneously optimize an aircraft's aerodynamics, structures, propulsion, mission trajectory, stability, and more.
Keeping AeroSandbox easy to learn and use is a top priority. Complexity is optional - you can use AeroSandbox's built-in physics models where helpful, or you can drop in arbitrary custom physics models of your own.
pip install aerosandbox[full]
Use AeroSandbox to design and optimize entire aircraft:
Use AeroSandbox to support real-world aircraft development programs, all the way from your very first sketch to your first-flight and beyond:
Use AeroSandbox to explore counterintuitive, complicated design tradeoffs, all at the earliest stages of conceptual design where these insights make the most difference:
Use AeroSandbox as a pure aerodynamics toolkit:
Among many other disciplines:
Easily interface AeroSandbox with all your favorite tools:
Or, throw all the airplane-design-specific code out entirely, and use AeroSandbox purely as an optimization solver or as a solver for nonlinear systems of equations (or ODEs, or PDEs):
And much, much more. Best of all, combine these tools arbitrarily without any loss in optimization speed and without any tedious derivative math, all thanks to AeroSandbox's end-to-end automatic-differentiability.
In short:
pip install aerosandbox[full] for a complete install.
pip install aerosandbox for a lighter-weight installation. All optimization, numerics, and physics models are included, along with 2D plotting via matplotlib; optional dependencies for 3D visualization, CAD export, and geometry manipulation (e.g., plotly, pyvista, trimesh, cadquery) are skipped.
For more installation details (e.g., if you're new to Python), see here.
To get started, check out the tutorials folder here! All tutorials are viewable in-browser, or you can open them as Jupyter notebooks by cloning this repository.
For a more detailed and theory-heavy introduction to AeroSandbox, please see the author's PhD thesis and master's thesis.
For a developer-oriented description of AeroSandbox internal modules, please see the developer README.
For fully-detailed API documentation, see the documentation website.
You can print documentation and examples for any AeroSandbox object by using the built-in help() function (e.g., help(asb.Airplane)). AeroSandbox co