← Commit history

comparison: SPICE simulation row and plan; replace 'where others lead' with gap status and the three claims we chose not to match

John Lauer ·e824138183 ·26d ago ·parent cb8554e
1 file changed +26−8
docs/comparison.md+26−8
@@ -58,6 +58,7 @@ Also audited, not in the matrix because they are too small or too different: [ki | Gerber, drill, STEP, SVG, PDF export | Y | Y | Y | P | N | P | Y | P | P | Y | | 3D image of a board or chip | Y (live viewer capture and kicad-cli render) | P | N | N | Y | N | Y | Y | N | N | | 3D model diagnostics (missing, unresolved, wrong scale) | Y | N | N | N | N | N | N | N | N | N |+| SPICE simulation from the schematic (KiCad's own ngspice netlist, run headless, results back to the AI) | P (2) | N | N | Y | N | N | N | N | N | N | | Library management: install symbol, footprint, 3D model, edit lib tables, heal, rescan | Y | Y | P | N | N | P | Y | Y | N | Y | | PCM plugin and library install without the GUI | Y | N | N | N | N | N | N | N | N | N | | Dialog pre-emption and cleanup, with a screenshot of what was dismissed | Y | P | N | N | N | N | N | N | N | N |@@ -84,6 +85,8 @@ Also audited, not in the matrix because they are too small or too different: [ki  (1) Schematic edit in place ships in the native bridge 1.0.0 (six verbs, ERC-validated on every write, verified on KiCad 10.0.5). Not in the 0.9.x Python bridge. +(2) Planned, not started. KiCad 10 ships ngspice and a headless SPICE netlist export; the plan in the Simulation section below is ecosystem-wide (KiCad, Fusion, Altium) rather than a KiCad-only verb. kicad-happy is the only audited tool that runs SPICE today.+ ## Where we lead, with the evidence  - **Window control that stays in the background.** No other tool opens KiCad's editors on a named part or captures the real window. The mechanism is a native menu walk with WM_COMMAND, UI Automation invoke, and PostMessage to one hwnd, all documented in the code with the measurements that led to them. The release gate on 2026-09-08 ran every window verb on two machines with the foreground-steal check on: 72 passed, 1 failed, 15 skipped on ConfRoomROG and 70, 3, 15 on winvm, and the six-beat narrated tour recorded on both. The native 1.0.0 binary passed the same gate on 2026-09-11 (71 pass, 4 fail, 15 skip; the fails were another session's Chrome windows and a cleanup-while-open, not verbs) with `kicad_demo` passing, and the etiquette loop's own event log shows every self-raise bounced exactly once.@@ -95,13 +98,28 @@ Also audited, not in the matrix because they are too small or too different: [ki - **Routing, both ways.** The AI routes through `kicad_route_net` as native undo steps with a DRC check per step; Freerouting is offered every time and installed only when the user says yes (88 MB, its own runtime, nothing on the PC), lands its copper the same way, and uninstalls on its own. Verified 2026-09-12: the six-net fixture routed by Freerouting in 3 s through the live editor, six undo steps, zero errors, zero unconnected. - **Volume of releases.** 290 Python insiders builds since 0.9.60 and the native 1.0.x line since 2026-09-12, each staged on a test box and verified before the manifest moved, with the bug history public on the [issue tracker](https://wiki.adom.inc/adom/kicad-bridge/issues). -## Where others lead today, and what closes each gap+## Gaps the audit found, and where they stand++- **Schematic editing.** Closed in 1.0.0. Konnect, KiCAD-MCP-Server, kicad-mcp-pro and mcp-server-kicad rewrite `.kicad_sch` on disk because KiCad 10 has no schematic API, with the same caveat in every README (close and reopen the editor to see the change). Our six schematic verbs write the same file format, run kicad-cli ERC after every write, and reload the editor through the bridge. We switch to the KiCad 11 schematic API the day it lands.+- **Autorouting.** Closed in 1.0.1. Four tools wrap Freerouting. `kicad_autoroute` offers two engines and its hints tell the AI to ask the user which they want. The AI engine is the recommendation: the routing verbs land each trace as a native undo step with a DRC check, and GPT-6 Astra in Codex has shown that a frontier model routes a real board this way, with Claude Fable 5.1 driving the same verbs. Freerouting is installed only when the user says yes (88 MB, its own runtime, nothing installed on the PC) and is removable on its own.+- **Zero-install distribution.** Closed in 1.0.0. kicad-mcp-pro runs from `uvx`; Konnect is one static binary with PCM install. This bridge is one 4 MB Windows executable with no runtime, installed and updated by Adom Bridge with a sha-verified zip. The ab requirement stays, and it is the price of everything in the ecosystem section below.+- **SPICE simulation.** Open. kicad-happy generates testbenches for recognised subcircuits and runs them through a locally installed ngspice, LTspice or Xyce. The plan is in the Simulation section below.++## Three claims we chose not to match, and why++- **Reading KiCad files without KiCad (kicad-happy).** kicad-happy's parsers for `.kicad_sch` and `.kicad_pcb`, validated against 6,845 schematics, re-implement a reader KiCad already ships and must chase every format change KiCad makes. This bridge automates KiCad, so KiCad reads its own files, and a corpus number is 100 percent by construction. Where no desktop KiCad exists we still use KiCad's own reader, three ways: the shared `service-kicad` container, kicad-cli installed into the user's own container on request, or a desktop elsewhere driven by name through Adom Bridge. The bridge parses files itself only for checks KiCad does not offer (lint, library heal, netlist tracing) and hands every verdict that matters (ERC, DRC, exports, simulation) to KiCad.+- **Permission profiles inside the tool (kicad-mcp-pro).** Wrong layer. The judgment of what to do and when belongs to the model and its harness. Claude Code's modes (manual approval per edit, plan, auto with a safety check, bypass) and Codex's approval policy already give the user that dial, and Claude Fable 5.1 and GPT-6 Astra exercise it well. Below that, Adom Bridge gates the desktop actions that are genuinely risky (shell, synthetic input, file writes, process control) with human-only, timed grants: once per verb, one hour, 24 hours, or auto, with a reason on every gated call. A third profile system inside one bridge adds a place to misconfigure and covers nothing the two existing layers do not.+- **A tool-discovery economy (Konnect).** Konnect's claim is context economy: a 2K-token starter kit and on-demand toolsets instead of a 23K-token listing of 226 tools, from a time when models needed help finding tools. Our answer is the Adom Bridge SDK pattern: a skill for every verb, written to work for Claude and Codex, a `describe` that lists every verb, and per-verb self-description with a hint, an example, related verbs and pitfalls, plus the wiki's auto-discovery of skills by trigger. Grouping and querying the verb list are cheap additions if a model ever asks for them. Konnect makes no claim about context compaction, and neither will we: each model manages its own context window, and a KiCad bridge has no standing to second-guess it.++## Simulation: the plan++Verified on ConfRoomROG (KiCad 10.0.5, 2026-09-12): KiCad ships `ngspice.dll` in its bin folder and the `Simulation_SPICE` symbol library, and `kicad-cli sch export netlist --format spice` (also `spicemodel`) writes a SPICE netlist from any schematic with no GUI. The GUI simulator itself has no API and no CLI runner, so the run happens outside KiCad. Fusion and Altium export SPICE netlists too, so the runner is an ecosystem service rather than a KiCad verb:++- **A SPICE runner in the container** (working name `adom-spice`): ngspice in batch mode, a C program installed with apt in the user's ah container or hosted on `service-kicad`, no runtime. Input is a netlist plus a testbench (analysis lines, sources, probes); output is raw vectors and plots rendered for Hydrogen. Agnostic to the EDA tool that produced the netlist.+- **Bridge verbs**: `kicad_export_spice` (kicad-cli) and `kicad_simulate` (export, run, results back), with the AI writing the testbench from the schematic's Simulation_SPICE fields and models coming from the parts wiki, where a part carries its SPICE model next to its symbol, footprint and 3D model.+- **Later**: open KiCad's own Simulator window on the result for the user, the same way the other editors are opened in the background. -- **Schematic editing.** Konnect, KiCAD-MCP-Server, kicad-mcp-pro and mcp-server-kicad rewrite `.kicad_sch` on disk to place symbols and wires, with the same caveat in every README (close and reopen the schematic editor to see the change) because KiCad 10 has no schematic API. We ship the same file-level verbs in phase 1 of the port plan, validated by kicad-cli ERC after every edit and reloaded in the editor by the bridge, and switch to the KiCad 11 schematic API the day it lands.-- **Autorouting.** Four tools wrap Freerouting. So does this bridge from 1.0.1, with a difference: `kicad_autoroute` offers two engines and its hints tell the AI to ask the user which they want. The AI engine is the recommendation: the routing verbs land each trace as a native undo step with a DRC check, and GPT-6 Astra in Codex has shown that a frontier model routes a real board this way, with Claude Fable 5.1 driving the same verbs and newer models arriving. Freerouting is installed only when the user says yes (88 MB, its own runtime, nothing installed on the PC), lands its copper as native undo steps too, and is removable on its own.-- **Headless without KiCad.** kicad-happy runs anywhere with no KiCad and publishes corpus-scale validation (6,845 schematics parsed at 100 percent). We match this three ways, all available today: the shared `service-kicad` container runs DRC, ERC, exports and library lookups for any container with no local install; the `service-kicad` skill installs kicad-cli into your own container; and Adom Bridge lets the GUI live on a second laptop, a conference room box, or a Grok Computer session driven through the Grok bot, with the AI talking to it by name.-- **Zero-install distribution.** kicad-mcp-pro runs from `uvx`; Konnect is one static binary with 7,648 downloads and PCM install. From 1.0.0 (insiders, 2026-09-12) this bridge is one 4 MB Windows executable with no runtime, installed and updated by Adom Bridge with a sha-verified zip. The ab requirement stays, and it is the price of everything in the ecosystem section below.-- **Permission profiles inside the tool.** kicad-mcp-pro ships a read-only default profile and a human-gated release profile. Ours is enforced one layer down by Adom Bridge (risk classes, human-only grants, a reason on every gated call). It is stronger and it is not visible in this bridge's own README, which this page now fixes.+Status: planned, tracked on the [issue tracker](https://wiki.adom.inc/adom/kicad-bridge/issues), not started.  ## What nobody else does at all @@ -123,8 +141,8 @@ Every other tool on this page is a KiCad tool. This bridge is one part of an env | [adom-lbr](https://wiki.adom.inc/adom/adom-lbr) | Library conversion across the popular CAD formats so existing work lands in KiCad format. | | [adom-ds2sf](https://wiki.adom.inc/adom/adom-ds2sf) | Datasheet PDF straight to a KiCad symbol and footprint with provenance. | | [adom-symbol](https://wiki.adom.inc/adom/adom-symbol), [adom-footprint](https://wiki.adom.inc/adom/adom-footprint), [adom-schematic](https://wiki.adom.inc/adom/adom-schematic), [adom-2dboard](https://wiki.adom.inc/adom/adom-2dboard) | AI-first web dashboards for every KiCad surface. The AI (and the user) sees symbols, footprints, schematics and boards instantly without opening KiCad, drives them over a live channel, and opens the real KiCad window only for the steps that need it. |-| Wiki PCM repositories | A project stored on the wiki can carry one or more PCM repositories, so the project is also its own plugin and library source for KiCad's Plugin and Content Manager. |-| Tool discovery | ab's `describe` and `discover` surface every bridge verb with hints, examples and pitfalls, and the wiki hosts add-on skills and bridges the community writes. Konnect's on-demand toolsets solve the same problem inside one tool. |+| Wiki PCM repositories | The wiki is an AI-first, GitHub-style repository host built for electronics: component widgets, symbol, footprint, 3D chip, schematic, 2D board and 3D board viewers, chip thumbnails, and service-occt for geometry. Because every page is git under the hood with anonymous file URLs, a project stored on the wiki is also a KiCad PCM repository: bump a version, push, and KiCad's Plugin and Content Manager shows the update. See [Your wiki page as a KiCad PCM repository](pcm.md). |+| Tool discovery | Every verb has a skill that works for Claude and Codex, ab's `describe` lists every verb and each verb self-describes with a hint, an example, related verbs and pitfalls, and the wiki auto-discovers skills and bridges by trigger. No starter kits, no toolset loading, no context hints to the model. | | Contributions | Every Adom bridge is open source on the wiki. Anyone can file an issue on the page or send a PR. A constantly running AI thread watches the issues and resolves them fast, and three software developers on staff manage PRs across all of the EDA automation bridges, so a community fix lands in days, not months. The audit found no other KiCad automation project with staffed contribution management; most are one maintainer, and the most-starred one (kicad-mcp) has been idle since October 2025 with an open security report. | | Funding | Adom is a funded company (National Science Foundation) with this ecosystem as its focus, which is a claim a single maintainer cannot make and which matters for anyone deciding what to build on. |