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:

  1. Start from a YAML or JSON case file.

  2. Run the case to produce a solved artifact.

  3. 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_tui for terminal-based case browsing and editing

  • panel2d_gui for tree-based case editing and interactive plotting

  • panel2d_cli for 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.