← Commit history

Initial commit: app/adom-chip-thumbnailer

John Lauer ·329583a9bb ·4mo ago
2 files changed +99
README.mdadded+68
@@ -0,0 +1,68 @@+# adom-chip-thumbnailer++**The rendering engine behind adom-chip-fetcher's library — it renders every thumbnail kind a chip needs: themed symbol & footprint SVGs, OCCT-direct 3D renders from six angles, and crisp vector-outline icons in five styles. No local CAD install.**++adom-chip-thumbnailer walks the adom-chip-fetcher library and, for every part, renders the full set of thumbnails its cards, carats, and the adom-symbol/footprint studios consume — straight from the part's `.kicad_sym`, `.kicad_mod`, and STEP, through the shared `service-kicad` and `service-step2glb` services. Standalone Rust, no Node, no gallia. Below is **every thumbnail type it produces**, rendered for the same part (Nordic **nRF54L15**, 49-pin QFN).++# Every thumbnail it produces++## 1. Symbol — 2 variants++![Symbol thumbnails: canonical and adom-ds2sf](docs/cat-symbol.png)++The schematic symbol, Adom-themed onto the dark canvas. Two sources are rendered so the adom-chip-fetcher carat can switch between them: **`-symbol.svg`** (the canonical symbol from the part's `.kicad_sym`) and **`-symbol.adom-ds2sf.svg`** (a symbol generated from the **datasheet-extracted** pin list via adom-ds2sf, for when you want the logical, datasheet-true grouping).++## 2. Footprint — 3 variants++![Footprint thumbnails: canonical, authoritative, adom-ds2sf](docs/cat-footprint.png)++The land pattern on a dark PCB grid, cropped tight to the part. Three sources are rendered: **`-footprint.svg`** (canonical), **`-footprint.authoritative.svg`** (the manufacturer/vendor-authoritative pattern, verbatim), and **`-footprint.adom-ds2sf.svg`** (reconstructed from datasheet dimensions). Legacy KiCad-5 `(module …)` footprints render as cleanly as modern ones.++## 3. 3D shaded render — 4 forms++![Shaded 3D: full, named, icon, named icon](docs/cat-shaded.png)++OCCT-direct shaded isometric renders of the real STEP model via `service-step2glb` — a true offscreen render, not a screenshot of a viewer. Four forms ship: **`-3d-iso.png`** (the full render), **`-3d-iso-named.png`** (with the part number **laser-marked onto the top face**), and **`-3d-iso-icon.png`** / **`-3d-iso-named-icon.png`** (tight square crops for small card/badge use).++## 4. 3D orientations — 6 angles++![Six 3D orientations of the package](docs/cat-orient.png)++The same package rendered from **every principal angle** so any tool can show the side it needs — the default **iso**, plus **x-up / x-down**, **y-up / y-down**, and **z-down**. `y-up` reveals the marked top face; `y-down` shows the pad/pin underside. These power the orientation switching in the adom-chip-fetcher 3D view and the adom-symbol chip overlay.++## 5. 3D vector outline — 5 styles++![Five vector-outline styles: thin, bold, blueprint, teal, dark](docs/cat-outline.png)++Crisp black-&-white (or accent) **line art** produced by **OCCT hidden-line removal** — schematic-native icons that print cleanly and stay legible at any size. Five styles cover light and dark contexts: **thin** and **bold** (dark strokes, for light/print backgrounds), **blueprint** (blue), **teal** (brand accent), and **dark** (white strokes, for dark UI). Each style also renders a **`-named`** variant with the part number laser-marked on the chip — so the icon you drop into a symbol carries its own label.++> **In total ~24 files per part**: 2 symbol + 3 footprint + 4 shaded-3D + 6 orientation + (5 styles × plain/named) outline. They're written next to the source files and cached until the part changes.++## How it runs++- **`once <MPN>`** — render the full set above for one chip, written alongside the source files.+- **`scan`** — render every chip carrying a `.thumb-pending` marker (the batch path adom-chip-fetcher triggers).+- **`rerender <MPN> <sym|fp|3d|all>`** — re-do just one family.+- **`status` / `health` / `config`** — show what exists, probe `kicad-cli` + `step2glb` + `service-step2glb`, print the resolved library root.++## Open source — check it out, vibe-code it, send it back++adom-chip-thumbnailer is MIT and **fully open**. The complete Rust source is in this page's **Files** tab — browse it, or grab `src/` + `Cargo.toml`.++1. **Build it.** `cargo build --release` drops a standalone binary (no Node, no gallia).+2. **Point your install at your checkout.** `adompkg link john/adom-chip-thumbnailer ./adom-chip-thumbnailer` so the `adom-chip-thumbnailer` you run is your local copy.+3. **Vibe-code a change.** Open the folder in Claude Code and describe what you want — a new render style, a different crop, another orientation, another thumbnail kind. The symbol / footprint / 3D renderers are each one small, readable module (`render_sym.rs`, `render_fp.rs`, `render_3d.rs`).+4. **Send it back.** Open a **pull request** on this page (the wiki reviews and merges per-repo PRs), or start a discussion thread.++## Part of the Adom EDA family++The rendering engine for **adom-chip-fetcher**; produces the artwork **adom-symbol**, **adom-footprint**, and the carat switcher display. Pairs with **adom-lbr** and **adom-ds2sf**.++## Run it++```bash+adom-chip-thumbnailer once nRF54L15          # render the full thumbnail set for one chip+adom-chip-thumbnailer scan                   # render every chip marked .thumb-pending+adom-chip-thumbnailer health                 # probe kicad-cli + step2glb + service-step2glb+```+MIT, contributions welcome.
page.jsonadded+31
@@ -0,0 +1,31 @@+{+  "slug": "adom-chip-thumbnailer",+  "version": "1.0.1",+  "type": "app",+  "description": "Renders every thumbnail kind for a adom-chip-fetcher part — themed symbol & footprint SVGs, OCCT-direct 3D from six angles, and five vector-outline styles.",+  "dependencies": {},+  "tags": [+    "eda",+    "symbol",+    "thumbnail",+    "render",+    "3d",+    "occt"+  ],+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "install": {+    "binary_name": "adom-chip-thumbnailer"+  },+  "needs_sudo": false,+  "hero": {+    "type": "image",+    "path": "adom-chip-thumbnailer.png"+  },+  "author": {+    "name": "John Lauer",+    "email": "[email protected]"+  }+}\ No newline at end of file