{
  "schema_version": 1,
  "type": "app",
  "slug": "adom-chipsmith",
  "title": "Adom Chipsmith",
  "brief": "STEP-native chip validator — 5-source cross-validation, OCCT-generated copyright-free 3D models with embedded signal annotations, datasheet-to-STEP pipeline.",
  "version": "1.0.2",
  "tags": [
    "chipsmith",
    "chip-validator",
    "step",
    "3d-model",
    "kicad",
    "footprint",
    "occt",
    "datasheet"
  ],
  "license": "MIT",
  "discovery_triggers": [
    "chipsmith",
    "chip detection",
    "validate chip step",
    "sign off chip",
    "footprint validation",
    "pin-1 indicator",
    "place pin1",
    "heatsink vias",
    "faux pcb",
    "solder jet domes",
    "manual orient step",
    "mm vs inch step",
    "detect pins step",
    "chip pad detection",
    "chip step bake",
    "role tag chip",
    "multi-source footprint cross-validation",
    "ds2sf vector overlay",
    "chip on pcb 3d",
    "step b-rep detection"
  ],
  "discovery_pitch": "STEP-native chip detection + footprint validation + sign-off — reads the B-rep + assembly hierarchy directly (not GLB triangle meshes) so a BGA ball stays a sphere and a QFN pad stays a plane. Cross-validates four parallel footprint sources (datasheet / KiCad / Fusion / Altium) plus the ds2sf authoritative SVG rendered as real vector polygons via earcut. Bakes a canonical .chipsmith.step on sign-off.",
  "sample_prompts": [
    {
      "label": "Open library",
      "prompt": "Open chipsmith for VL53L8CX"
    },
    {
      "label": "Detect",
      "prompt": "Run detection on LM358D"
    },
    {
      "label": "Sign off",
      "prompt": "Sign off this chip and bake the STEP"
    },
    {
      "label": "Place pin-1",
      "prompt": "Place a pin-1 dimple on the NE corner"
    },
    {
      "label": "Heatsink",
      "prompt": "Show heatsink vias under the EP"
    },
    {
      "label": "Cross-validate",
      "prompt": "Compare all 5 footprint sources"
    },
    {
      "label": "Generate chip",
      "prompt": "Show the Adom-generated 3D chip from the datasheet"
    },
    {
      "label": "Faux PCB",
      "prompt": "Show the 1.6mm faux PCB with drill holes"
    }
  ],
  "install": {
    "binary_name": "adom-chipsmith",
    "install_dir": "",
    "install_hint": "",
    "version_cmd": ""
  },
  "readme": "# adom-chipsmith — STEP-native chip validator\n\n`adom-chipsmith` loads a chip's STEP file alongside its footprint, datasheet PDF, and a chipsmith-spec manifest, then runs detection on the **STEP B-rep** (not on triangulated GLB meshes), validates measurements, layers a 1.6 mm faux PCB, auto-generates heatsink-via grids under any exposed pad, lays out solder-jet domes per the [`solder-jetting`](/wiki/skill/solder-jetting) rules, and on user sign-off bakes a canonical `<mpn>.chipsmith.step` plus a sidecar JSON for downstream Adom tools.\n\nIt's the higher-level validator that sits on top of [`adom-step`](/wiki/apps/adom-step) — chipsmith inherits the canonical Babylon viewer + smart-pick measure tool + Outline pane via the Tier-3 importer pattern from [`3d-viewer-design`](/wiki/skill/3d-viewer-design) §2.\n\n## What it does (in one screen)\n\n| Tab | What it shows |\n|---|---|\n| **Source** | Manifest (MPN / mfr / package), declared spec (`pin_count` / `structural_type` / `body_dims_mm`), file paths with reveal-in-VSCode buttons, datasheet via [`adom-pdf-viewer`](/wiki/skill/adom-pdf-viewer). Inline editor saves into `info.json`. |\n| **Measurements** | Auto-rescale negotiation across 6 candidates (×1, ÷25.4, ÷1000, ×25.4, ×1000, ÷10) — picks the scale within ±5% of declared `body_dims_mm`. mm + mils dual readout. |\n| **Detection** | Mode 0 walks the named scene graph. Mode 1 falls back to surface-type clustering on `/api/step-meta`. Pin-reveal strobe flashes each detected feature with a numbered HTML badge floating at the screen-projected XY. |\n| **Footprint** | Per-source breakdown across **KiCad / Fusion / Altium / datasheet-derived**. Cross-source agreement matrix (pad-by-pad position + size deltas). 3D toggle per source — translucent pads at z=0 in the scene. **ds2sf v0.5.1 authoritative SVG rendered as real vector polygons** via earcut (not a raster texture; sharp at any zoom). |\n| **Pin-1** | Chip-side via Mode 0 detection; footprint-side via silkscreen marker scan. Place-synthetic-indicator UI (NW/NE/SW/SE/click) when chip-side is missing. Three shapes: dimple / raised dot / corner chamfer. |\n| **Sign-off** | 4 hard + 3 soft gates. CTA POSTs to `/api/signoff` → writes `<mpn>.chipsmith.json` + bakes `<mpn>.chipsmith.step`. |\n| **Heatsink** | EP detection + auto-generated 0.3 mm via grid (1.2 mm pitch, 0.4 mm margin). Hollow plated barrels with copper annular rings. CSG-drilled B.Cu copper pour underneath the EP — with via-clearance holes — for the heatsink path. |\n| **Solder-jet** | 300 µm dome layout per [`solder-jetting`](/wiki/skill/solder-jetting) — intra-pad ≥100 µm, inter-pad ≥300 µm with no-bridging pruning. |\n\nEvery overlay layer is a **first-class Outline citizen** with eye-toggle, click-to-isolate, and a right-click menu.\n\n## STEP-native, not GLB\n\nBoth `adom-chipfit` and `adom-chiplinter` operate on triangulated GLBs and both lose surface-type information (a BGA ball becomes a triangle list, indistinguishable from a QFN pad). chipsmith reads the STEP file's B-rep + assembly hierarchy directly via `service-step2glb`'s `/step-meta` endpoint, so:\n\n- **CYLINDER + small radius + dome top** → BGA ball.\n- **PLANE + horizontal + at z≈seat-plane** → SMD pad.\n- **PLANE + vertical + tall (≥1.6 mm) + thin** → through-hole pin.\n- **CONICAL or CYLINDER on top, small radius, elevated** → pin-1 indicator candidate.\n\nDetection runs in three modes — Mode 0 named-scene-graph walk, Mode 1 surface-type cluster, Mode 2 face-merge fallback — stopping when ≥(declared pin count) features have been classified.\n\n## Multi-source footprint cross-validation\n\nchipsmith renders four parallel footprint sources from `chip-fetcher`'s library (datasheet-derived, KiCad, Fusion 360 .lbr, Altium .PcbLib) into the scene as separately-branched overlays in different tints (orange / green / blue / purple), then runs a per-pad cross-validation matrix. **All four sources agreeing pad-by-pad is the strongest possible \"chipsmith nailed this chip\"** signal — disagreements pop visually and gate sign-off.\n\nThe ds2sf authoritative SVG (when present in the chip-fetcher library — emitted by ds2sf v0.5.1+) renders as a fifth branch of pixel-trustworthy ground truth: **real vector polygons** parsed from the SVG and triangulated via earcut, not a texture-mapped raster.\n\n## Quick start\n\n```bash\n# Install (paste into Claude Code):\ncurl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-chipsmith/adom-chipsmith \\\n  -o /usr/local/bin/adom-chipsmith && chmod +x /usr/local/bin/adom-chipsmith && \\\n  adom-chipsmith install\n\n# Open a chip from a chip-fetcher library\nadom-chipsmith view-library /home/adom/project/chip-fetcher/library/VL53L8CX\n\n# Open an arbitrary STEP + footprint + datasheet\nadom-chipsmith view path/to/chip.step \\\n  --footprint path/to/chip.kicad_mod \\\n  --spec      path/to/info.json\n\n# Headless detection — JSON report\nadom-chipsmith detect --json /path/to/chip-fetcher/library/<MPN>\n```\n\n## CLI surface\n\n| Command | Purpose |\n|---|---|\n| `view <step> [--footprint] [--spec] [--datasheet] [--no-open]` | Open one chip |\n| `view-library <chip-fetcher-dir>` | Open a chip from a chip-fetcher library |\n| `start --port N` / `stop --port N` / `status` / `health` | Server lifecycle |\n| `list-components` | Scene-graph component tree |\n| `isolate <name>` / `show <name>` / `hide <name>` / `show-all` / `frame <name>` | Visibility + camera |\n| `place-pin1 <corner>` / `set-overlay <kind> <on/off>` / `sign-off` | Verification flow drivers |\n| `screenshot --out <png>` | PNG of current canvas |\n| `eval <js>` | Run a JS expression inside the webview, print the result |\n| `console -f` | Tail JS console output from the webview |\n| `detect --json` | Headless detection report on a chip-fetcher dir |\n\n## JS API surface (`window.adomChipsmith`)\n\nThe full UI is JS-shadowed for AI demo scripts + tests. From the CLI: `adom-chipsmith eval \"window.adomChipsmith.<verb>(...)\"`.\n\n```\nstate()                         // full state snapshot\nsetActiveTab(id)                // 'source' | 'measurements' | … | 'solderjet'\nrunDetection()                  // re-fetch + re-run Mode 0 → Mode 1 fallback\nrunMeasurements()               // re-run rescale negotiation\nrecomputeStatuses()             // refresh every status pill from current state\n\nplacePin1(opts)                 // {mode:'corner'|'fpMarker'|'click', corner, xyMm, shape}\nremovePin1User()\n\nsetFootprintOverlay(src, on)    // 'kicad' | 'fusion' | 'altium' | 'datasheet' | 'stock'\nsetDs2sfVisible(on)\nsetFauxPcbVisible(on)\nsetHeatsinkVisible(on)\nsetSolderJetVisible(on)\n\nreplayReveal()                  // re-runs the strobe + numbered badges\nhoverAt({x, y})                 // returns same payload as the visible HUD\n\nsignoff.gates()\nsignoff.canSignOff()\nsignoff.signOff()               // POST /api/signoff → writes JSON + bakes STEP\n```\n\n## Sign-off artifacts\n\n| File | Content |\n|---|---|\n| `<mpn>.chipsmith.json` | Full state — applied scale, detected breakdown, heatsink grid, solder-jet layout, pin-1 user-placed corner, sign-off timestamp |\n| `<mpn>.chipsmith.step` | Canonical role-tagged STEP via `service-step2glb`'s `/bake` endpoint. Future Adom tools should prefer this over the original input. |\n\n## Source\n\n`adom-inc/adom-chipsmith` (private). The wiki carries the binary + SKILL.md + this page; the public install path is fully self-service.\n\n## Adjacent skills\n\n- [`adom-step`](/wiki/apps/adom-step) — base viewer chipsmith inherits from\n- [`3d-viewer-design`](/wiki/skill/3d-viewer-design) — esp. §14 (overlays first-class) and §2 (Tier-3 inheritance)\n- [`solder-jetting`](/wiki/skill/solder-jetting) — 300 µm dome rules\n- [`electrical-engineering`](/wiki/skill/electrical-engineering) — package families, pin-1 conventions, mm + mils\n- [`pin1-indicator`](/wiki/skill/pin1-indicator) — per-package pin-1 marker conventions\n- [`chip-fetcher`](/wiki/apps/chip-fetcher) — produces the chipsmith input bundle\n",
  "author": {
    "name": "Kyle Bergstedt",
    "email": "[email protected]"
  },
  "visibility": "public",
  "hero": {
    "type": "image",
    "path": "adom-chipsmith-hero-v4.png"
  },
  "metadata": {},
  "created_at": "2026-05-28T05:29:03.217Z",
  "updated_at": "2026-06-25T01:59:25.361Z",
  "skills": [],
  "description": "STEP-native chip validator — 5-source cross-validation, OCCT-generated copyright-free 3D models with embedded signal annotations, datasheet-to-STEP pipeline.",
  "dependencies": {
    "adom/adom-step": "*"
  },
  "scripts": {
    "install": "./install.sh",
    "uninstall": "./uninstall.sh"
  },
  "org": "adom",
  "source_visibility": "public"
}