Structured 2D panel-method tools for aerodynamic case setup, solution, and post-processing.
Project description
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.
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 buffalopanel-0.2.0.tar.gz.
File metadata
- Download URL: buffalopanel-0.2.0.tar.gz
- Upload date:
- Size: 122.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1295dcded58afb126b022fb63d35eecadb04bbd1aafbca4a92df7fdfa96974f
|
|
| MD5 |
aa47d67a97187362062de0b9b5f9581a
|
|
| BLAKE2b-256 |
bf4853ffeef69faac48e19a6aa75b360193f1c79e74199622ba1c5c2900cf1f2
|
File details
Details for the file buffalopanel-0.2.0-py3-none-any.whl.
File metadata
- Download URL: buffalopanel-0.2.0-py3-none-any.whl
- Upload date:
- Size: 160.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e77f3c59a5fd274201dc254593c5c061ab73f06f559b940b1128b6b683f753c
|
|
| MD5 |
ee235bb1b8f5c046483e40b76cb46e2f
|
|
| BLAKE2b-256 |
bc14c28845843ddb170eb4641d4f69d767f742d9c032113062e2e1dbb14c83ca
|