Adom Fields

Install?

Adom Fields reads a KiCad board (its filled polygons, tracks, pads and vias) and a spec (which nets carry what current, which parts dissipate what) and solves three fields on it: the DC current density of every loaded net between its terminals; the heat flow in each copper layer, coupled through the dielectric and every via barrel, from the hot tabs and from the Joule loss of that current; and the temperature rise over the whole board in still and in moving air. Then it serves the board in 3D: the fields painted on each layer, the vias drawn, the hot parts labelled, the nets ordered by what they carry, the issues (a neck where the current squeezes, a tab over its rise budget, a chip missing its thermal vias) with the fix, and the number under the cursor. Everything the UI does a command does, over a live channel, so the AI shows the board off on camera.

adom-wiki pkg install adom/adom-fields

Latest: v0.4.0, published

Contents

README

markdown

Adom Fields

Adom Fields: where the current and the heat go on your board. Solved from the board file itself, painted on the board in 3D, ordered by what matters, with the fix next to every issue. The AI does the analysis and drives the view; the human orbits, zooms and hovers for the number.

Current density on the top copper of the ESC G431, every loaded net at its spec current

The ESC G431's top copper with the current density of every loaded net at 20 A. The yellow arcs are the necks: 20 A through 1.5 mm of 35 µm copper.

What it solves

  • Current density per loaded net: a DC conduction solve on the filled copper of every layer, between the net's terminals (the wire pads and connectors on one side, the parts that draw the current on the other, each part's share by its pad area), through the via barrels. Amps per square millimetre on every cell, the peak and where it is.
  • Heat flow in the copper: four layers, each conducting in its plane, coupled through the dielectric and through every via barrel, losing to the air on both faces. Heat comes from the hot tabs in the spec and from the Joule loss of the current above. Read as watts per millimetre of width on each layer, with each chip's split: along its layer, down its vias, through the bare dielectric.
  • Temperature over the board: the same solve read as the rise above ambient, in still air (10 W/m²K) and in moving air (25 W/m²K).
  • Issues, with the fix: a net over 60 A/mm² (about what IPC-2221 allows at 35 µm for 10 °C), a tab over its rise budget, a chip with fewer thermal vias than the spec asks.

Heat flow in the top copper, the hot parts labelled with their rise

Heat flow in the top copper. Q3 runs hottest: it has no thermal via within 3 mm, so its 0.6 W has only the top copper to spread on.

The temperature rise over the whole board in still air

The temperature over the board, the FR4 spreading, still air.

The app

adom-fields serve puts the board in 3D on the canonical Adom 3D viewer (adom/adom-3d-viewer, vendored and served by the binary: its camera, ViewCube, studio lighting, framing and Z-up frame, as 3d-viewer-design asks): the picked field on the picked layer, the other layers faded, the vias as dots, the hot parts labelled, the legend, the number under the cursor. On the left the nets by what they carry and the hot parts hottest first; on the right the issues and the method. Every click is a command: the state lives on the server and goes out over a live channel, so adom-fields ui view --quantity heat --layer B.Cu does exactly what the button does, and adom-fields tour walks the whole board for the AI Flow video.

An issue in view: the camera flies to the +VBAT neck

Click an issue and the camera flies to it: 20 A of +VBAT through a 1.5 mm neck on the top copper.

Run it

adom-fields analyze --board esc.kicad_pcb --spec spec.json --out fields     # about two minutes
adom-fields serve --fields fields --port 8874 &                             # https://<slug>.adom.cloud/proxy/8874/
adom-fields ui view --quantity current --net +VBAT --camera top             # drive it
adom-fields tour                                                            # the walkthrough, for a clip

The spec is Adom AI Flow's: loads (net: amps, maxRiseC), hot (ref: watts, tabNet), copperUm, hotMaxRiseC, thermalVias, optional stackupMm. The board must be saved with its zones filled.

In the AI Flow

Adom Fields is the analysis step of Adom's AI Flow: after the pours land, the AI solves the fields, reads the issues, and walks the board on camera with adom-fields tour while the flow records the window. The clip goes into the run's video; the numbers go on the run page.

Honest limits, 0.1

DC only; one copper thickness for all layers; a flat convection coefficient, no heatsink, no enclosure, no radiation; the tab watts come from the spec. A screen that finds the necks and the starved tabs and shows them, not a datasheet number. Next: heatsinks as conducting blocks, pour capacitance, differential pair and impedance checks (the signals tab), and an Altium and Fusion reader.

Give it back

Anything wrong, rigid or missing: an issue or a PR on this page. Adom processes PRs within minutes during business hours.

Input identity in 0.3.1

Every solve records SHA-256 identities of its exact board/spec and refuses if either changes during the solve. AI Flow uses this to reject stale current/thermal evidence and skipped required loads. This proves input identity, not the validity of terminal, material, loss or air assumptions. Existing summaries need a fresh solve.

Gentle walkthrough on the ESC

Recorded through AI Flow on AdomLapper, 129.8 seconds raw and 13.1 seconds at 10x. The contact sheet was inspected and the camera remained stable when drift was disabled. This is a viewer demonstration: the board still has current and thermal findings, not an independent qualification pass.

Conducting heatsinks and signals in 0.4.0

Specify finite-conductivity rectangular blocks with contact resistance, inspect heat entering them, and compare still/moving air. The Signals view reports copper-overlap capacitance, differential-pair length skew, sampled reference coverage and conservative microstrip impedance estimates. Unsupported geometry is explicit. Inputs, limitations, sources and reproducible fixture.