Buffalo Panel
Buffalo Panel is an early-stage Python library for structured 2D panel-method workflows in aerodynamics. It currently focuses on case definition, solving, and post-processing for panelized airfoil problems, with small CLI, GUI, and TUI applications built around the same structured case schema.
What It Can Do Today
- Define simulation cases with typed Python dataclasses and YAML or JSON files.
- Load structured airfoil cases and solve the current 2D Hess-Smith workflow.
- Save solved artifacts for later inspection and post-processing.
- Export integrated coefficients and optional surface-quantity CSV data.
- Explore element influence fields and diagnostic views through example scripts.
- Reuse shared Buffalo ecosystem foundations such as numeric typing, diagnostics, and Buffalo Wings airfoil definitions.
How The Apps Fit Together
Buffalo Panel currently treats the structured case file as the source of truth.
panel2d_tuihelps browse and edit the case structure in a terminal UI.panel2d_guiprovides a tree-based editor plus interactive geometry, surface, and flow-field views.panel2d_cli runsolves one case file and writes one solved artifact.panel2d_cli inspectreviews artifact metadata and can reconstruct integrated results from the command line.
The normal workflow is:
- Create or edit a case file.
- Run the case to produce a solved artifact.
- Inspect the artifact in the CLI or load it in the GUI for exploration.
Installation
Install from PyPI:
pip install BuffaloPanel
For local development with the repository-managed toolchain:
uv sync --extra docs
Quick Start
Run one of the packaged examples from the repository root:
panel2d_cli run examples/naca0012_designation.yaml
panel2d_cli inspect examples/naca0012_designation.solution.yaml --include-results
You can also use the Python API directly:
from buffalo_panel.config import load_panel_case, solve_panel_case
case = load_panel_case("examples/naca0012_designation.yaml")
results = solve_panel_case(case)
print(results.integrated.cl_pressure)
Documentation
The main documentation lives at buffaloherd.codeberg.page/BuffaloPanelDocs. Useful starting points are:
- Getting started
- First case workflow
- App workflow overview
- Project status
- CLI reference
- Examples
- API reference
Project Status
The library and apps are still in early development. The core structured-case workflow and the current 2D Hess-Smith and lumped-vortex paths are usable, but the public API and app behavior should still be expected to change as the project grows.
Contributing
Contributions, issue reports, and documentation improvements are welcome. See the contributing guide for development setup and workflow notes.
License
Buffalo Panel is released under the GNU General Public License v3.0 only.
Release files for BuffaloPanel 0.2.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 | |
|---|---|---|---|
| buffalopanel-0.2.0.tar.gz | 122.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| buffalopanel-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 283.2 kB
Release files / buffalopanel-0.2.0.tar.gz
| Download URL | buffalopanel-0.2.0.tar.gz |
|---|---|
| Size | 122.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b1295dcded58afb126b022fb63d35eecadb04bbd1aafbca4a92df7fdfa96974f
|
|
BLAKE2b-256 checksum How to use checksums |
bf4853ffeef69faac48e19a6aa75b360193f1c79e74199622ba1c5c2900cf1f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Release files / buffalopanel-0.2.0-py3-none-any.whl
| Download URL | buffalopanel-0.2.0-py3-none-any.whl |
|---|---|
| Size | 160.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e77f3c59a5fd274201dc254593c5c061ab73f06f559b940b1128b6b683f753c
|
|
BLAKE2b-256 checksum How to use checksums |
bc14c28845843ddb170eb4641d4f69d767f742d9c032113062e2e1dbb14c83ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|