Verify Design
verifyUse this when you need to check a design against a rule set. One verifier, selected by check:
'assembly' — mate-aware assembly validator on the active session (run evaluate_script first).
'urdf' — structural validity of a .urdf file ({ urdf_path }).
'dfm' — print-readiness gates declared by dfmSpec() ({ file | code }).
'dfm-preflight' — sheet-metal flat pattern vs a job-shop's ordering rules ({ vendor, material, thicknessIn|thicknessMm, ... }). Returns the vendor's catalog source pages as
sources; whendisclosureis present, show it with those links.'swept-collision' — sweep declared joint range(s) and report colliding poses.
'reachable' — inverse-kinematics reachability for an end-effector ({ tip_link, target_position, ... }).
'fastener-installation' — measured explicit catalog-screw installation stations on lowered assembly BREP ({ file | code, fasteners:[{ part, against, engagementPart?, minEngagementMm?, maxProtrusionMm? }], toleranceMm?, angleToleranceDeg? }). Reports annular bearing gap, bore axis/diameter/overlap and receiver geometric engagement/protrusion. Unknown or zero coverage cannot pass. Simplified threads do not certify torque, preload or strength.
'mounting-holes' — fastened mates expose matching hole diameters on both sides.
'load-capacity' — will it hold? Closed-form Euler-Bernoulli beam check ({ loads, materials, ... }), or mode:'fea' to solve the script's feaStudy (quadratic-tet FEA, CalculiX) — both return { ok, safetyFactor, elements[{ partName, stressPa, yieldPa, safetyFactor }], failures[], diagnostics }; fea adds the threshold, the stress regions as @kc[...] faces with their location, and fea { peakStressPa, maxDisplacementMm, meshTrusted, peakAtSupportPa, refinement }; it refines the mesh automatically until the stress is trusted (refine: false for one solve).
'static-hold' — gravitational holding torque/force at a sampled pose grid vs each actuated joint's declared actuator capacity ({ joint?, pose?, gravity?, min_torque_margin_pct?, range_samples? }).
'body-likeness' — publish gate for organic/car bodies: cheap AABB↔wheel checks plus required agent still verdicts (side-body-over-wheels, side-cabin-aft, rear-haunch, ortho-proportions-vs-reference). Pass { body_bbox | code/file+body_feature_id, wheels?, cabin_bbox?, still_verdicts?, require_stills? }. Full CV silhouette matching is NOT implemented — agents must inspect ortho PNGs/Studio and supply still_verdicts before claiming success. All params except
checkare check-specific and forwarded verbatim; each check fails closed on its own missing required params.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dxf | No | check:'dfm-preflight' — path to a DXF file. | |
| code | No | Inline kernelCAD script source (same checks as `file`). | |
| file | No | Path to a .kcad.ts script (assembly/dfm/dfm-preflight/swept-collision/reachable/mounting-holes/load-capacity/static-hold). Hosted server: cannot read files from your machine — pass `code`, or `project:<slug>` for a saved project. | |
| mode | No | check:'load-capacity' — 'beam' (default), 'stub', or 'fea' (solve the script's feaStudy; needs the CalculiX + gmsh toolchain). | |
| pose | No | check:'static-hold' — explicit pose (joint name -> deg/mm) or array of poses; omit to sample a grid across the evaluated joint's range. | |
| seed | No | check:'reachable' — numeric IK seed pose (joint name -> deg/mm). | |
| check | Yes | Which verification to run. | |
| joint | No | check:'swept-collision' — joint to sweep; omit to sweep every declared joint. check:'static-hold' — joint to evaluate; omit to evaluate every joint with a declared actuator. | |
| loads | No | check:'load-capacity' — partName -> { force?: [Fx,Fy,Fz] N, torque?: [Tx,Ty,Tz] N*m }. | |
| range | No | check:'swept-collision' — [lower, upper, step] in joint-native units. | |
| study | No | check:'load-capacity' mode:'fea' — feaStudy name (default: the last declared one). | |
| refine | No | check:'load-capacity' mode:'fea' — one automatic finer pass (0.75x element size) when the stress is untrusted, inside the element budget (default true); false solves once at the study's meshSize. | |
| vendor | No | check:'dfm-preflight' — vendor SKU (required for that check). | |
| wheels | No | check:'body-likeness' — wheel centres + tire radii [{ center:[x,y,z], radius }]. | |
| gravity | No | check:'static-hold' — gravity vector, m/s^2, world frame (default [0, 0, -9.81]). | |
| service | No | check:'dfm-preflight' — service. | |
| assembly | No | Assembly name; defaults to the first captured assembly. | |
| heatmaps | No | check:'load-capacity' mode:'fea' — also render stress heatmap PNGs (default false). | |
| material | No | check:'dfm-preflight' — material SKU (required for that check). | |
| tip_link | No | check:'reachable' — end-effector part name (required for that check). | |
| body_bbox | No | check:'body-likeness' — body AABB { min:[x,y,z], max:[x,y,z] } in mm. | |
| fasteners | No | check:'fastener-installation' — explicit named stations; empty means no coverage. | |
| featureId | No | check:'dfm-preflight' — FeatureId to scope to. | |
| materials | No | check:'load-capacity' — partName -> material declaration. | |
| mesh_size | No | check:'load-capacity' mode:'fea' — element size override, mm. | |
| urdf_path | No | check:'urdf' — path to the .urdf file. | |
| cabin_bbox | No | check:'body-likeness' — optional cabin/greenhouse AABB for automated cabin-aft. | |
| length_axis | No | check:'body-likeness' — wheelbase axis (default 'x'). | |
| thicknessIn | No | check:'dfm-preflight' — material thickness in inches. | |
| thicknessMm | No | check:'dfm-preflight' — material thickness in millimeters. | |
| toleranceMm | No | check:'fastener-installation' — linear tolerance, default .05 mm. | |
| prefer_solver | No | check:'reachable' — force the IK path ('auto' default). | |
| range_samples | No | check:'static-hold' — grid density per evaluated joint when `pose` is omitted (default 9). | |
| max_iterations | No | check:'reachable' — numeric-path iteration cap. | |
| refreshCatalog | No | check:'dfm-preflight' — force vendor catalog refresh. | |
| require_stills | No | check:'body-likeness' — require still_verdicts (default true). | |
| still_verdicts | No | check:'body-likeness' — agent ortho still checklist [{ code, passed, finding, view? }]. Required codes: side-body-over-wheels, side-cabin-aft, rear-haunch, ortho-proportions-vs-reference. | |
| body_feature_id | No | check:'body-likeness' — FeatureId to read body AABB from when body_bbox omitted. | |
| target_position | No | check:'reachable' — target [x, y, z] mm (world frame). | |
| angleToleranceDeg | No | check:'fastener-installation' — axis tilt tolerance, default 1 degree. | |
| target_orientation | No | check:'reachable' — target XYZ Euler angles in radians. | |
| min_torque_margin_pct | No | check:'static-hold' — safety-margin floor as a percent of actuator capacity (default 20). | |
| position_tolerance_mm | No | check:'reachable' — position tolerance in mm. | |
| collision_tolerance_mm3 | No | check:'swept-collision' — BREP intersection volume tolerance (mm^3). | |
| safety_factor_threshold | No | check:'load-capacity' — pass/fail safety-factor floor (default 1.5; mode 'fea': the study's minSafetyFactor when declared). | |
| orientation_tolerance_rad | No | check:'reachable' — orientation tolerance in radians. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||