TesboMesh · CFD automatic mesher

Dirty STL in.Solver-ready mesh out.

One command: health check, wrap, size field, named patches, prism layers, volume mesh, quality gate — written as TesboFlow-native mesh. Dirty assemblies do not have to be cleaned somewhere else first.

Measured: 1M dirty triangles wrapped in 51 s on 8 threads · volume matches the analytic union to six decimals · 51% hex by volume

Pipeline

Seven stages. One report.

Every stage writes what it did. The numbers below are measured.

51 s

1M triangles, 8 threads

Two intersecting shells, one wound inside-out, become one closed manifold. Bit-identical on 1 thread and on 16.

51%

Hex by volume

With prism layers on the walls and a tetrahedral transition polished until nothing in it is tangled. Zero inverted cells.

6 dp

Volume = analytic union

Overlapping dirty boxes included. Where the coarsest cells miss a corner, the deviation is printed, not clipped.

Constructed benchmark geometry. Single-socket Xeon E5-2686 v4 @ 2.3 GHz. No comparison against other meshers.

Wrapping

The crease is reconstructed. Not smeared.

Wrapping is usually read as approximate shrink-wrap. Here the volume of the mesh built on the wrapped surface equals the analytic union of the input — including the assembly where one box enters another.

Volume to six decimals

Cube, house, two overlapping boxes: the wrapped volume equals the analytic union across resolutions. The crease and its corners are rebuilt, not rounded off. Where the coarsest cells miss a corner, the deviation is printed, not clipped.

Dirty assembly: overlapping boxes with a hole, the wrapped skin, and the volume mesh cut through the crease.
Hole sealed, boxes unioned, T-junction reconstructed. Volume 1.198 — the analytic union.
Wrapped mesh volume versus the analytic union across wrap resolutions for three constructed geometries.

A gap is a contract, not a guess

A gap narrower than the cell is sealed exactly. An opening wider than the cell is reported — exit code, log and JSON agree — and never silently closed.

A cube with a 0.12 opening beside the sealed wrap skin.
The resolution needed to seal a given gap can be read straight off the plate.
Gap-sealing contract: sealed volume versus honest error as wrap resolution crosses the opening width.

Hex where the solver pays

A hex core is a claim about proportion, and proportion is what a solver's cost follows. Here 51% of the domain volume is in hexahedra — with prism layers on every wall.

Cut through a cube mesh: magenta hex core, grey tetrahedral transition, cyan prism layers on the walls.
Two prism layers, a polished tet band, not one inverted cell.
Volume share by cell family: hexahedra, prisms, tetrahedra and pyramids, with worst orthogonal quality per family.

Constructed benchmark geometry. Single-socket Xeon E5-2686 v4 @ 2.3 GHz. No comparison against other meshers.

Quality gate

The exit code is the verdict.

Every run writes a quality report. Green, yellow or red is the process exit code. Skewness, orthogonal quality, aspect ratio, inverted cells, tangled faces — nothing has to be eyeballed.

The mesh comes with its own verdict.

Skewness-coloured cut of a dirty-assembly mesh beside the quality report: green, exit 0.

Closed loop

Finished only when TesboFlow takes it.

Patch names, orientation, face order and cell quality all have to be right at once. Two closed loops — meshed by one command, exported and solved in TesboFlow — converge in a hundred and thirty iterations. They are the regression suite's own tests, not a demo.

TesboFlow continuity residual versus iteration for a cavity and a channel meshed by TesboMesh.
Cavity 3.7e-7, channel 4.9e-6 after 500 steady steps.

Constructed benchmark geometry. Single-socket Xeon E5-2686 v4 @ 2.3 GHz. No comparison against other meshers.

See TesboFlow

Experimental

CAD, regions, adapt — marked as such.

These paths run. They are experimental: simple parts, constructed geometry, and a plate that prints yellow when the gate is yellow.

Three meshes from STEP, BREP and IGES, same command.

STEP, BREP, IGES

Three formats, one command. Not CAD repair — a route into the same CFD pipeline.

Simple parts. IGES is sewn into a solid on import.

Two solids kept as regions inside a far field, and a solid core with prism layers on the fluid side of the interface.

Several bodies, one mesh

Each solid becomes its own region. Contacts become paired interface patches. The far field around them is the fluid.

The right panel is yellow on the plate: 49 of 10,015 cells above the skewness line, zero inverted. Printed, not hidden.

Uniform cube mesh beside a coarsened half, coloured by local size.

The solver writes back. The mesh follows.

Finer where asked, coarser where allowed. Wall, box and gap sizing still hold as hard limits.

Synthetic size write-back on a constructed cube, same format the solver will write.

Capabilities

What TesboMesh does

New product line. Available for demonstrations and case evaluations. Not claimed as industrial-scale.

ExperimentalIn developmentPlanned

Workflow

  • One command, STL to volume mesh to report to export
  • CLI (one-shot or stepped) and GUI task tree
  • Mesh API bindings: C / C++ / Python / Julia / Fortran

Geometry

  • STL health check — fatal defects refuse to continue
  • Hole capping, including non-convex and warped rims
  • Wrapping: dirty assemblies and gaps, crease and corners rebuilt
  • Inspect an existing mesh — report only, no remesh

Domain & layers

  • Internal / external domain, patches named automatically
  • Far field: box, cylinder or sphere
  • Prism layers on walls only; narrow gaps drop layers and say so
  • Wall size, wall-distance refinement, boxes of interest

Quality & export

  • Quality gate is the exit code — tangled faces turn it red
  • TesboFlow-native mesh, plus interchange formats
  • y+ estimate checked against TesboFlow wall shear, within a factor of two

In development

  • CAD (STEP / BREP / IGES) into the CFD workflow
  • Multi-region coupled mesh (conjugate heat)
  • Far field + wall layers + hex core as one recipe
  • CFD-specific Python / C++ API
  • GUI task tree unlocked end to end

Planned

  • Hex-dominant mixed volume mesh; interactive blocking
  • y+ target to first-layer height
  • Solver-driven adapt write-back with TesboFlow

Send us the geometry.

You send the STL or CAD. We return the mesh, the quality report, and — if you want — a TesboFlow run on the same case.