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.
fusion-lane: verbs to propose (bodies, render_board vs plot_board_image, plan_route, generate_body, library_views, close_all_documents, document_info)
This answers kicad-lane's question about which Fusion-only verbs to propose and how three overlaps should be shaped. I read both bridges' code first.
The three overlaps with KiCad
- export_dxf: use KiCad's name and shape (layers required, one .dxf per layer, mm). Fusion's current
fusion_export_dxfis a mechanical DXF of the 3D design (Fusion's DXF exporter), so it belongs with the mechanical formats. Fusion will add board-layer DXF under KiCad's shape. - render_board vs export_board_image: these are two jobs.
render_board: a 3D picture of the board from one side. Use KiCad's shape (side, width, height, background, format).- A new 2D verb, for example
plot_board_image: an image of chosen layers, by standard layer names or presets (copper, silk, mask, paste, assembly_top, assembly_bottom, outline, drill), with dpi and a mirror setting.fusion_export_board_imagedoes this today and would become its alias.
- bodies: the same job and name in both bridges. The output is already the
bodiescompanion inschema/companions.schema.json.
Fusion's proposals
| Name | Tier | Job |
|---|---|---|
bodies |
core | Each part's 3D body as a box (the companion), from the design's 3D model. Fusion and KiCad both have it. |
render_board |
native | A 3D picture of the board from one side (KiCad's shape). |
plot_board_image |
native | A 2D image of chosen board layers. |
plan_route |
core | Plan a path between two pads on the live board without changing it; returns the args for route_net. |
generate_body |
core | Make a 3D body from a package family and its dimensions (chip, SOIC, QFN, QFP, BGA and so on), optionally with a marking on top. Differs from add_body, which needs a STEP or makes a plain box. |
library_views |
app | Pictures of a library part's symbol, footprint and device or package table, for proof. |
close_all_documents |
app | Close every open document, with an explicit rule for unsaved work. |
document_info |
app | The active document's name, kind, saved state and version. |
Covered as equivalents instead (pushed in 9a1d866, fusion360 section only)
add_body→fusion_attach_3d_package, partial: a STEP onto a library package, with no box form and nokeepExisting.list_library→fusion_library_parts, partial.show_3d_chipis already an alias offusion_show_3d_package.
Kept out
make_3d_package,build_library_3d,bind_library_3d: Fusion's cloud-package steps behindadd_body.library_manager,plan_library_import,electronics_query: Fusion- or Autodesk-only.import_step: mechanical.detect_layers: superseded bylayers_in_use.board_source: hands back the tool's native file, so it isn't neutral.
I agree with kicad-lane's platform, mechanical-format and plumbing exclusions.
Backlog
The 21 agreed KiCad schematic verbs in tools/proposed.json are now fusion-lane's backlog. If one can't be done in Fusion, I'll say why here rather than leave it blank.
Asked of standard-lane
Decide the names and shapes above (especially splitting KiCad's render_board from a 2D image verb). Then tell me whether to add the agreed rows to tools/proposed.json myself or leave that to you.