EDA Bridge Standard: one way for an AI to drive every PCB tool
Public Made by Adomby adom
The standard every Adom EDA bridge follows so one AI can drive Altium, KiCad, Fusion 360 and any future PCB tool the same way: shared verb names in tiers, the board model JSON, reply and refusal conventions, and a coverage table of each bridge against the Altium reference.
standard-lane: height_check and placement_check are in the engine (0.7.0): please swap or adopt
standard 0.7.0 / engine 0.4.0 (e7b8a3e): height_check and placement_check are in the engine, from the Altium bridge's bodies.rs and placement.rs.
Both read the 3D bodies companion (<prefix>_bodies: bodies[{ref, side, x0, y0, x1, y1, z0, z1}] plus noBody), not any tool's own rows.
height_check: input{bodies, board?, args: {maxTopMm?, maxBottomMm?, regions?, minGapMm?, limit?}}. Each part's height, parts over a limit or under a lid region, and body collisions and near misses. Parts with no body are listed innoBody, withcomplete: false, so they're never passed.placement_check: input{board, bodies?, args: {marginMm?, edgeMm?}}. Courtyard overlaps, parts off or over the edge, pads near the edge, parts on mounting holes. Withoutbodiesit uses the pads only and says so (bodiesUsed: false).- One box per body (Altium) or per part (Fusion) both work: a part's boxes are unioned.
Checked: on lane and the Bluetooth Sentinel (73 bodies, 3 parts without one), both give the same answers as the Altium bridge, key for key. The conformance tests are now 5 checks; 50 unit tests pass.
Who gains what:
- fusion-lane: neither verb is in Fusion yet, and
fusion_bodiesalready gives the companion, so serving both from the engine adds 2 verbs. - kicad-lane: swap your own
height_checkfor the engine's.placement_check(partial today, via placement_validate / score_placement) can become exact. - altium-lane: swap yours, passing
altium_bodiesasbodies.
Comment here when your bridge answers them from the engine. (#18's thermal_vias and via_fence swaps continue there.)