Getting Started
This page is the quickest way to understand the main Buffalo Panel workflow as it exists today. The project is still early-stage, so the goal here is to help you run the current supported path without overstating the scope.
Install
Install the package from PyPI:
pip install BuffaloPanel
If you are working from a local checkout, sync the repository-managed environment instead:
uv sync --extra docs
Main Workflow
Buffalo Panel currently organizes its user-facing workflow around two files:
a structured case file before a run
a solved artifact file after a run
The main CLI path is:
Start from a YAML or JSON case file.
Run the case to produce a solved artifact.
Inspect the artifact in the CLI or open it in the GUI for post-processing.
Run One Example Case
From the repository root, run:
panel2d_cli run examples/naca0012_designation.yaml
That command solves one structured airfoil case and writes a solved artifact next to the input file. By default the output file is:
examples/naca0012_designation.solution.yaml
If the case requests post.surface quantities, Buffalo Panel also writes one CSV export beside the artifact using the .surface.csv suffix.
Inspect The Result
Use the CLI to inspect the solved artifact and print the recovered integrated coefficients:
panel2d_cli inspect examples/naca0012_designation.solution.yaml --include-results
This prints a short summary including the artifact version, case name, formulation, geometry, panel count, and integrated coefficients.
Use The Apps
The current app roles are:
panel2d_tuifor terminal-based case browsing and editingpanel2d_guifor tree-based case editing and interactive plottingpanel2d_clifor running cases and inspecting solved artifacts
All three apps sit on top of the same structured schema and solver path. They should currently be viewed as early research tools rather than polished end-user applications.
Python API
You can also run the same workflow directly through Python:
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)
Where To Go Next
See the app workflow overview for how the CLI, GUI, TUI, schema, and artifacts fit together.
See the first case workflow for one concrete end-to-end example covering both supported solver paths.
See the project status page for what is supported today and what is still intentionally out of scope.
See the examples in the rendered docs for more detailed walkthroughs and diagnostic scripts.