Skip to content

The geometry block

What an engine definition can declare about a geometry file, and why nothing supplies one today.

There is no upload. No configurator, service definition or run page in Kabaido accepts a model or a drawing, so the geometry scope is empty on every run and no price has ever been calculated from one. This page documents the shape of the definition, not a feature you can use today. If you need a part priced from a file you cannot do it here.

An engine definition may carry a geometry block. It declares three things: which file types the definition would accept, whether one would be required, and which metric keys the formulas are allowed to read. An optional autofill list maps a metric expression onto a parameter.

ts
geometry: {
 accepts: ["stl", "dxf"],
 required: false,
 expose: ["volume_mm3", "complexity"],
 autofill: [{ param: "oal_mm", from: "bbox_z" }]
}

The block validates on save and the evaluator honours it: anything outside expose is dropped before a formula sees it, and a metric key with no value behaves as missing rather than as zero. None of that has an effect in practice, because no run has ever carried a geometry value.

The metric keys

These are the keys expose accepts. They are named after the deterministic parsers in the codebase, which take a mesh or a drawing and return numbers with no AI involved at any point.

KeySourceMeaning
volume_mm3MeshSolid volume from a signed tetrahedron sum, taken as absolute
surface_mm2MeshTotal surface area
bbox_x, bbox_y, bbox_zMeshBounding box dimensions
triangle_countMeshNumber of triangles, a rough signal of model detail
profile_length_mmDrawingSum of line, arc, circle and polyline lengths
pierce_countDrawingNumber of closed loops, one pierce each
entity_countDrawingNumber of profile entities in the drawing
complexityDrawingA 0 to 100 blend of entity count, arc ratio and loop count

Where files are read today

Two places, both in Machinist and neither of them a configurator. The research planner takes an STL of a metal part and reports what it finds. The Arcline plasma parts screen takes a DXF and nests the outline for cutting. Neither returns a price from the geometry.

A configured run exports a specification and quote PDF, STL and GLB of the model and a cut ready DXF where the product calls for one, each carrying its configuration id.

Reading a drawing

Since 2026-08-26 the Design Engineer reads attachments as well as sending them. A drawing attached to a request is transcribed first, into the dimensions, tolerances, material call-outs and notes printed on it, and that transcription is shown in the thread before any parameter is set from it. The configure pass then reads the transcription like any other words in the request, so every value it proposes still cites text you can check.

Nothing is measured off the picture. A drawing is read for what is written on it, never scaled or inferred from pixels, and a figure that cannot be read is left out rather than guessed at.

What a design answer shows in the chat

A design answer carries what the workbench carries: the configured parameters with the source behind each one, the price with the working behind every line, the engineering checks, the cutting list, the stock it matched and the module’s own scope statement.

It also carries the part. The drawing is the module’s own dimensioned elevation, drawn from the same profile the DXF export uses, and where the module has a solid you can switch the same panel to 3D and turn the part in place. The model is built in your browser from the parameters shown above it, so what you are turning is the configuration in front of you and not a picture of something like it.