# Adom Nucleus

A small web app (served locally, opened in a Hydrogen webview) for browsing and
working with your Adom wiki **boards / projects**. Built on
[`adom-lbr`](https://wiki.adom.inc/adom/adom-lbr) — it reuses the adom-lbr codec
to render and convert symbols/footprints on the fly.

![Adom Nucleus — projects](docs/projects.png)

## What it does

- **Projects, three tabs**
  - **Personal** — boards you own that aren't scoped to an org.
  - **Organization** — boards scoped to an org you belong to, grouped by org.
  - **Public** — a search box; type a name + Enter to find any public board.
  - Boards you've starred on the wiki pin to the top (★); the rest sort alphabetically.
- **Component viewer** — click a board to see its components (categorized by type),
  then click one to view its **symbol + footprint + 3D**, rendered on the fly from
  the canonical adom-lbr JSON, with pin/pad highlight.
- **Interactive board & schematic views** — the board pane is
  **adom-layout-viewer** and the schematic pane is **adom-schematic-viewer**,
  embedded live rather than as flat images. Click a pad or trace to highlight its
  whole net; hover a symbol or pad for MPN, stock, price, wiki page and datasheet.
  Both render from the project's own EDA export, so they look exactly like KiCad.
  ![Interactive board view with a net highlighted](docs/board-view.png)
- **Layer stackup** — for a footprint, see which layer each graphic becomes in
  **KiCad** and **Altium**.
- **Add to Library** — push selected components into your existing KiCad/Altium
  libraries.
- **Add Project to my Computer** — deliver a board's full KiCad project. In
  *project-only* mode it's made **self-contained**: symbols/footprints are
  extracted into a project library, every `lib_id`/footprint reference is
  re-pointed to it, and project-local `sym-lib-table` / `fp-lib-table` are written
  — so it opens anywhere with no broken links.

## Run

```bash
adom-nucleus --port 8785
```

Then open `http://localhost:<port>` in a browser or Hydrogen webview. Delivery to
your machine (Add to Library / Add Project) goes through the **adom-desktop**
bridge, and identity/stars come from the signed-in `adom-wiki` session.

## Built on adom-lbr

The Rust binary depends on the `altium-codec` crate from `adom-lbr` (KiCad
import/export + the canonical part model). As a wiki package it declares
`adom/adom-lbr` as a dependency.

## Publishing boards

Boards are published to the wiki with **[molecule-publish](https://wiki.adom.inc/adom/molecule-publish)**,
which installs alongside the Manager as a dependency. It bundles 3D models,
normalizes paths and renders the board so the page has everything the Manager
needs (3D, schematic, PCB). The older bundled `publish-board` skill is
deprecated and is no longer shipped.
