Buffalo Wings
Buffalo Wings is a Python geometry library for building airfoil and wing models from aerodynamic definitions. It is designed to support interactive design workflows, visualization tools, and downstream analysis or meshing pipelines. The long-term goal is to provide a strong geometry foundation for GUI-based airfoil and wing design applications.
Why This Project Exists
Buffalo Wings focuses on aerodynamic geometry rather than general-purpose CAD. The library is meant to turn validated airfoil and wing definitions into queryable geometry objects that can support plotting, inspection, meshing, and higher-level design tools. That includes future GUI-oriented applications for constructing and visualizing airfoils and wings.
Current Focus
The current public API is centered on two modules:
buffalo_wings.airfoil for airfoil geometry and airfoil definitions,
and buffalo_wings.wing for wing geometry and wing definitions.
Today, the airfoil subsystem is the most mature part of the project. Wing geometry support is under active development. GUI applications are a planned direction rather than a released feature.
Quick Start
Install Buffalo Wings from PyPI with:
pip install buffalo-wings
Create a NACA 4-digit airfoil from a designation:
import numpy as np
import buffalo_wings.airfoil as bwa
airfoil = bwa.AirfoilFactory.naca4_from_designation("2412")
t = np.linspace(-1.0, 1.0, 11, dtype=np.float64)
x, y = airfoil.xy(t)
Create the same airfoil from a public schema object:
import buffalo_wings.airfoil as bwa
spec = bwa.Naca4AirfoilSpec(designation="2412")
airfoil = bwa.AirfoilFactory.from_spec(spec)
The supported public modules are buffalo_wings.airfoil
and buffalo_wings.wing.
Shared low-level foundations such as numeric typing, numeric normalization,
and structured diagnostics come from buffalo_core.
Modules under buffalo_wings.*.internal are implementation details and are not part of the supported external API.
Where To Go Next
Start with examples/airfoil/create_naca4_from_designation.py for a minimal airfoil construction example.
See examples/airfoil/create_naca4_from_spec.py for the schema-driven airfoil path.
See examples/wing/create_rectangular_wing.py for a minimal public wing example.
See the online documentation for examples, API reference, and developer notes.
See the changelog for recent changes and project evolution.
Contributors
The main contributors to this project are:
- David D. Marshall
Version History
See the changelog for details.
Code of Conduct
This project is governed by the Contributor Covenant Code of Conduct (v3.0). By participating, you agree to uphold it. Please see the code of conduct for details and reporting instructions.
License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Release files for BuffaloWings 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| buffalowings-0.3.0.tar.gz | 152.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| buffalowings-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:357.4 kB
Release files / buffalowings-0.3.0.tar.gz
| Download URL | buffalowings-0.3.0.tar.gz |
|---|---|
| Size | 152.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3aa8793eb1c766ea875b0a0c365636cecc186cd8585a1cbd20b42e510db3ce1d
|
|
BLAKE2b-256 checksum How to use checksums |
e0e6e7bd5f6e7de3d5297fcdf9b659e96c5d983a7bb1f27dda98884800c9d656
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.13
|
Release files / buffalowings-0.3.0-py3-none-any.whl
| Download URL | buffalowings-0.3.0-py3-none-any.whl |
|---|---|
| Size | 204.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94a77fadbfdd9d5216cbb49d8969ee2592b8f40d5f1447a8c22724b5ff5ec9c7
|
|
BLAKE2b-256 checksum How to use checksums |
165229a68f2cfa923ccc013c927dbaf2d6884b18e462f29b5a5e7112710768c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.13
|