Adom Library
Public Made by Adomby adom
adom-lbr — the EDA library translator. Bring a component in from any supported EDA tool and convert it to any other (KiCad ⇄ Altium ⇄ EAGLE/Fusion) through one canonical adom-lbr JSON — symbol + footprint + 3D + pin↔pad map. Altium is written natively (no Altium needed). Includes the adom-lbr Manager: browse wiki components and view symbol/footprint/3D + the per-EDA layer stackup.
Install?
adom-lbr — the EDA library translator. Bring a component in from any supported EDA tool and convert it to any other (KiCad ⇄ Altium ⇄ EAGLE/Fusion) through one canonical adom-lbr JSON — symbol + footprint + 3D + pin↔pad map. Altium is written natively (no Altium needed). Includes the adom-lbr Manager: browse wiki components and view symbol/footprint/3D + the per-EDA layer stackup.
adom-wiki pkg install adom/adom-lbr
Latest: v2.38.0, published
Contents
- Formats & targets
- adom-lbr Manager: browse the wiki, inspect any part
- One click from the Hydrogen Dock Bar
- The 3-column library viewer, with an interactive embed
- The library at a glance
- The linter catches what Fusion rejects
- Generate from the command line
- What it does
- Send to
- Open source: check it out, vibe-code it, send it back
- Part of the Adom EDA family
- Run it
README
markdownadom-lbr
adom-lbr: the EDA library translator. Bring a component in from any supported EDA tool and convert it to any other (KiCad ⇄ Altium ⇄ EAGLE/Fusion) through one canonical part format, with native Altium output and no local EDA software.
The adom-lbr JSON is Adom's own canonical part: one document carrying the symbol, footprint, 3D reference, and the pin↔pad map. adom-lbr is the translator around it: import a component from KiCad or Altium, then convert the adom-lbr JSON to any other tool: native Altium (.SchLib / .PcbLib / .IntLib), a KiCad .kicad_sym + .kicad_mod, or an EAGLE/Fusion .lbr. Any EDA tool in, any EDA tool out. The canonical JSON is the hub, so every source pairs with every target. The Altium libraries are written natively (the exact OLE2/CFBF binary) so no copy of Altium is needed at conversion time. Standalone Rust, no Node, no gallia.
("lbr" = Adom Library, the adom-lbr JSON, not EAGLE's .lbr, which is just one of the output formats.)
Formats & targets
| Direction | Format | Used by |
|---|---|---|
| Hub | adom-lbr JSON (symbol + footprint + graphics + pin↔pad map) | the canonical format everything converts to/from |
| Import → hub | KiCad .kicad_sym + .kicad_mod → adom-lbr JSON |
bring a KiCad part in |
| Import → hub | Altium .SchLib / .PcbLib / .IntLib → adom-lbr JSON |
bring an Altium part in: pins, pads, and silk/courtyard/fab layers |
| Export → Altium | native .SchLib + .PcbLib, or one bundled .IntLib |
Altium Designer, written natively, no Altium needed |
| Export → Fusion/EAGLE | EAGLE .lbr (symbol + package + connects) |
Autodesk Fusion 360 Electronics, EAGLE, OrCAD |
| Export → KiCad | native .kicad_sym + .kicad_mod (layers preserved) |
KiCad 6+ |
| Merge | add a part's symbol into an existing .SchLib |
install a part into a user's Altium library |
Altium footprint graphics keep their layers across the round trip: silk /
courtyard / fab decode into neutral roles and re-encode onto the right Altium
layers (outline → Mechanical 13 "Assembly Top", courtyard → Mechanical 15
"Courtyard Top"). Verified byte-exact (Altium → JSON → Altium → JSON).
The Send to bar in the live app pushes the loaded library to whichever of those tools you're running (via the Adom Desktop bridge).
adom-lbr Manager: browse the wiki, inspect any part
adom-lbr manage opens a web app that lists every component on the wiki; click
one and it renders the schematic symbol, footprint, and 3D model on the
fly from the part's adom-lbr JSON (or, if the page has none, from its KiCad files).
It surfaces the footprint layer stackup: what layer each silk / courtyard / fab /
copper element becomes in KiCad and Altium, side by side, plus a per-layer
show/hide filter, drag-to-pan / scroll-to-zoom viewers, and hover-to-highlight
on pins & pads showing each one's number and name.
adom-lbr dashboard serve --print-url # start (or reuse) the dashboard → http://127.0.0.1:8785/
adom-lbr manage --port 8785 # the same server, in the foreground
One click from the Hydrogen Dock Bar

adom-lbr is a card on Hydrogen's Dock Bar, the app-launcher rail on the right
edge of the workspace. One click installs the CLI into your container
(adom-wiki pkg install adom/adom-lbr, skipped when it is already there), starts
the dashboard with adom-lbr dashboard serve --print-url, and takes over the
pre-opened Adom LBR webview tab. The card's LED is live health, read from the
dashboard's own /api/status every 15 seconds: six facets (binary, wiki,
identity, library, 3D viewer, dock) plus a rollup the app owns, each carrying a
hint that names the fix when it is not green.
The first thing on the page is the Say it strip, because you do not drive
this dashboard by hand: you ask your AI, using the word lbr ("validate my
lbr for fusion"). Click a phrase to copy it; Try it stages it, unsent, into
this app's own AI thread. Click a phrase in the Say it strip to copy it. The cog opens Settings: whose boards count as
My projects, the wiki list cache, and package Update/Uninstall with a live
console. A Demo button in the
header runs a guided tour that drives the whole dashboard for you, and every
Send-to run shows a live panel: progress bar, streaming console, and evidence
screenshots of what actually opened. The launch contract lives in
dockbar.json at the root of this page repo; the bundled adom-lbr-dockbar
skill documents every piece of it for your AI.
The 3-column library viewer, with an interactive embed
The embed's 3D column is a REAL interactive viewer, not a picture: when the
part's directory holds a .glb, the model rides inline (Draco models are
transcoded to quantized at build time, measured ~35% smaller) with the
model-viewer runtime inlined beside it, so the finished readme.html renders an
orbitable 3D chip even inside the wiki's no-network readme sandbox. No .glb
means the static render, unchanged.

▶ Open the live ADS1115 3-column viewer: the exact self-contained file adom-lbr embed produces, served straight from this page (pan/zoom each panel; the pin→pad table is fully populated from the datasheet). It is built to sit in an <iframe> once the wiki enables component-page iframe embedding.
adom-lbr embed exports a Fusion 360-style three-column viewer as one self-contained .html file: symbol in column 1, footprint in column 2, the 3D chip in column 3 (each independently pan/zoomable) with the full pin → pad mapping table below, carrying each pin's type and datasheet description. It's built to drop straight into an <iframe> on a wiki component page: a single portable file, no server, no external assets.
adom-lbr embed --dir <chip-dir> # → <mpn>-lbr-embed.html
<iframe src="…/<mpn>-lbr-embed.html" width="100%" height="640" style="border:0"></iframe>
It assembles the three renders, the pin→pad connects, and the datasheet pin descriptions from a chip directory, exactly the part data adom-symbol, adom-footprint, ds2sf and chip-thumbnailer already produce.
The library at a glance

Load an .lbr and the viewer breaks it down at a glance (symbols, packages, devicesets, pins, pads) and re-lints it server-side. A green Lint passed badge means the library is ready to import into Fusion 360 Electronics with no surprises. The top bar carries the Send to targets (KiCad / Fusion / Altium / OrCAD).
The linter catches what Fusion rejects

This is the whole point. Fusion will silently show "No Components" or refuse to place a part when a library is subtly broken. adom-lbr catches it first. Here the deviceset has no pin-to-pad connect mappings, so the linter flags empty-connects with a plain-English reason: "Fusion cannot use this component." It also catches missing packages, devices with no package attribute, malformed XML, and invisible symbol bodies, each with a code and a fix.
Generate from the command line

generate builds the whole library in one shot from a .kicad_sym (+ optional .kicad_mod), lint-checks it, and writes a native .lbr. The same engine powers the Send to → Fusion/Altium/OrCAD flow in adom-symbol and adom-footprint, so whatever you see in those apps is exactly what lands in your library.
What it does
generate:.kicad_sym(+.kicad_mod) → native.lbr, lint-checked for Fusion compatibility.lint/validate: catch the things Fusion rejects: missing connects, incomplete devicesets, bad pad maps.import: EAGLE.lbr→ KiCad.kicad_sym.- Live app: a viewer that lints the loaded
.lbrand shows symbols / packages / devicesets / pins / pads at a glance.
Send to
Fusion 360 (open the .lbr directly), Altium / OrCAD (download the .lbr + import steps; native exporters on the roadmap), KiCad (converted back to .kicad_sym).
Open source: check it out, vibe-code it, send it back
adom-lbr is MIT and fully open. The complete Rust source is in this page's Files tab: browse it, or grab src/ + Cargo.toml.
- Build it.
cargo build --releasedrops a standalone binary (no Node, no gallia). - Point your install at your checkout.
adompkg link john/adom-lbr ./adom-lbrso theadom-lbryou run is your local copy. - Vibe-code a change. Open the folder in Claude Code and describe what you want: a new lint rule, another export target, a smarter symbol synthesizer. The lint rules live in one readable list, easy to extend.
- Send it back. Open a pull request on this page (the wiki reviews and merges per-repo PRs), or start a discussion thread. Good additions get folded into the shipped app.
Part of the Adom EDA family
Used by chip-fetcher and the Send-to flow across adom-symbol and adom-footprint; pairs with ds2sf.
Run it
adom-lbr generate --sym part.kicad_sym --fp part.kicad_mod --name PART --output part.lbr
adom-lbr serve --port 8784 # live linter app (AI-drivable)
adom-lbr embed --dir <chip-dir> # Fusion-style 3-column viewer as one .html
MIT, contributions welcome.