The desktop application

kabuto-mesh gui [surface.stl]

Needs the gui extra: pip install "kabuto-meshing[gui]" (Qt for Python, PyVista). The command line and the MCP server work without it.

The window

  • Surface (top left): open an STL file with one solid per patch (or a .surf file). The line below the scale shows the number of triangles, the size, the edge lengths, and whether the surface is closed. Scale multiplies the file's coordinates: choose 0.001 for a model drawn in millimetres. Lengths already typed are converted with it.

  • Patches: one row per patch, with its role:

    • Layers: a wall that gets prism layers.
    • No layers: inlets, outlets, symmetry planes. Patches named inlet / outlet / symmetry start with this role.
    • Zone: not a wall but the boundary of a cell zone (a rotor region, a porous block).

    Selecting a row shows that patch solid in the 3D view and the others faint.

  • Settings: layers, first layer height, growth ratio, remesh edge length (leave empty to keep the file's triangles; use it for STL exported from CAD), core cell size (empty = automatic), and Further options for anything else, written as on the command line. Help → Meshing options lists them all. The first layer height starts at a twentieth of the mean edge length.

  • Run / Cancel: the settings are checked first; a problem is shown under the buttons and nothing is started. During a run the step is shown above the log; Cancel stops the mesher and the tet filler. Closing the window stops a run too.

  • Log / Quality (bottom right): the mesher's own report, and after a run the numbers of the mesh: valid or not, cells, non-orthogonality, skewness, small cells.

  • 3D view: Surface by patch before a run; Mesh surface and Mesh section after it. The section shows whole cells behind a plane across x, y or z; the slider moves the plane.

  • License (bottom right corner): the edition this copy runs as, and until when; the tooltip says why. License… installs a license file, renews a subscription's file now, or removes the file (licensing.md). A mesh larger than the Free edition writes is not written, and the window says so.

Settings files

File → Save settings writes the form as a YAML (or JSON) file with paths relative to it; it is the file kabuto-mesh --config reads, so a case set up in the window can be run again from the command line or handed to a colleague. File → Load settings reads one back.

Where it runs

Windows 10 / 11, macOS 14 or later, and Linux with a desktop session. Under WSL the application needs WSLg (Windows 11); without it, install Kabuto Meshing on Windows itself for the application, and keep using the command line under WSL. Without a working OpenGL the 3D view is replaced by a note and everything else works.