Tools and libraries for constructing airfoils, wings, and other related shapes.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file buffalowings-0.3.0.tar.gz.
File metadata
- Download URL: buffalowings-0.3.0.tar.gz
- Upload date:
- Size: 152.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3aa8793eb1c766ea875b0a0c365636cecc186cd8585a1cbd20b42e510db3ce1d
|
|
| MD5 |
1370e8876332c24ba9a6274bf52196d8
|
|
| BLAKE2b-256 |
e0e6e7bd5f6e7de3d5297fcdf9b659e96c5d983a7bb1f27dda98884800c9d656
|
File details
Details for the file buffalowings-0.3.0-py3-none-any.whl.
File metadata
- Download URL: buffalowings-0.3.0-py3-none-any.whl
- Upload date:
- Size: 204.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94a77fadbfdd9d5216cbb49d8969ee2592b8f40d5f1447a8c22724b5ff5ec9c7
|
|
| MD5 |
bbf4f7528af5ce90de6dc74382ca509e
|
|
| BLAKE2b-256 |
165229a68f2cfa923ccc013c927dbaf2d6884b18e462f29b5a5e7112710768c3
|