Here on aircraftgeometry.codes we advocate the use of computer code as a parameterized ‘recipe’ for constructing air vehicle preliminary designs. By defining the ‘bottom-up’ construction of the geometry in this way, a high level of flexibility and reproducibility can be achieved, both of which are desirable traits in the context of design optimisation. To this end we have developed the AirCONICS plugin for Rhinoceros, containing generic and highly customizable recipes for creating aircraft components as Python/Rhino objects.
This post is about a new development around AirCONICS: its aircraft geometry routines are now also available as a Python standalone package through through a code called occ_airconics. Instead of using the OpenNURBS framework through Rhinoceros, the package is powered by Open CASCADE, an open source NURBS CAD kernel, and PythonOCC.
“So what makes this interesting?”
occ_airconics has no proprietary dependencies, thereby providing an immediately available and free platform for aircraft concept design with a similar API to AirCONICS. As it runs on a standard Python installation, occ_airconics is portable and available on all of the common platforms.
Current AirCONICS users working with Multidisciplinary Design Optimisation (MDO) may also benefit from occ_airconics due to the ease of integration with external scientific libraries such as numpy and scipy for mathematical operations, scikit-learn for machine-learning or mpi4py for parallel programming. These libraries are less readily integrated with Rhino due to its .NET Python kernel. It should be noted however that due to an absence of core functions previously used in Rhino, occ_airconics may produce different and potentially lower quality geometries than the Rhino version.
Key features of occ_airconics:
- Provides much of the same functionality as AirCONICS
- Totally open source and cross platform
- Native access to CPython packages, e.g. numpy, scipy, scikit-learn
- Easy to install via the conda package
- Readily Integrated with IPython, providing object introspection and PythonOCC’s Notebook rendering
Future development directions for occ_airconics are towards a topologically flexible aircraft concept parameterisation, and subsequent optimisation using machine learning algorithms. This will include integration with aerodynamic analysis.
occ_airconics is available now, to get started simply visit the installation instructions.