BetaBetaChecks a value against the recipe format and lists what is wrong with it: steps that refer forward or out of range, ranges outside their buffers, coordinates that are not finite or too large, matrices that flatten, lists past their limits.
Run it on a recipe from a file, another thread or a caller before a kernel builds it.
The recipe
What is wrong, at most a hundred issues, each a path such as nodes[3].depth and a sentence; empty when nothing is
BetaGives the triangle meshes of the roots built from triangle nodes alone, through transforms, compounds and unions, placed by their matrices, so an open mesh no solid kernel accepts can still be drawn.
A root holding any other step, such as an extrusion, gives undefined.
The recipe, the roots to read and whether Z turns into Y
One mesh per root asked for, in that order: positions three numbers a vertex, indices three a triangle
BetaFollows a node through the transforms that only turn and move to the step it places, folding them into the matrix, so roots that place one step through different moves share it, as an instanced drawing or an assembly wants.
A transform that mirrors, scales or stretches stays a step of its own.
The recipe, the node and what places it
The step reached and the matrix placing it
Recipes with no CAD kernel needed: solids described as a list of steps that
occt.recipesandmanifold.recipesbuild and theifcpackage writes, so a pipeline can hand geometry to any kernel as data. Check one before a kernel runs it, read one from JSON, draw its roots made of triangles, and find what a root places. Experimental: the recipe format may still change.