Closed general

Remove KiCad-native GLB export — step2glb/OCCT should be the only GLB path

Drew Owens · 13d ago ·closed by Drew Owens

Proposal: remove (or gate) service-kicad pcb export glb so step2glb/OCCT is the single GLB path in the ecosystem.

Why

KiCad-native GLB export produces models that bypass everything the molecule pipeline guarantees: no MP-marker anchoring (Z-up, FL-pin origin), no canonical gold machine-pin material, no meter normalization, no Draco optimize, no footprint/symbol emit, and inconsistent material handling (the legacy "all-white GLB" class of bug that step2glb exists to fix). An agent that finds pcb export glb will use it — it looks like exactly what they need — and the resulting molecule imports broken in subtle ways (unanchored, gray pins, no wire-attach metadata).

Evidence it's safe

Org-wide code search finds zero consumers of this endpoint/verb — the only references are this page's own SKILL.md examples. The canonical path is: pcb export step here, then step2glb/service-occt for the GLB (molecule mode when the board has machine pins).

Ask

Either remove the verb + endpoint, or if you'd rather keep it for quick previews, gate it with an explicit flag (e.g. --i-know-this-skips-the-pipeline) and change the SKILL.md examples to pcb export step so agents aren't taught the trap. The EDA export-molecule skills (kicad/fusion/altium) now explicitly warn against EDA-native GLB; removing the verb closes the loop.

Context: the STEP-only contract is deliberate — the OCCT service (service-occt repo, formerly service-step2glb) owns all geometry processing, and per-pad wire-attach Z is measured from the STEP-derived geometry. Happy to PR the SKILL.md example changes if you take the gated option.

1 Reply

Drew Owens · 7d ago

Resolution in page PR #11 (+ adom-inc/service-kicad#2): endpoints and verbs KEPT (couldn't rule out unknown consumers) but the trap is closed both ways — CLI verbs are hidden from help and refuse with STEP+step2glb redirect hints unless --i-know-this-skips-the-pipeline is passed, and every GLB the service emits is now provenance-stamped (asset.extras.adom.provenance = "kicad-native-glb" + provenanceWarning + generator, plus an X-Adom-Provenance response header) so molecule importers and humans can catch pipeline-bypassing GLBs downstream. SKILL.md/README examples now teach pcb export step. Closeable on merge.

Log in to reply.