{
  "schema_version": 1,
  "type": "app",
  "slug": "adom-chipfit",
  "title": "Chipfit — 3D Chip ↔ KiCad Footprint Validator",
  "brief": "Pair a .glb chip model with its .kicad_mod footprint in a Hydrogen webview. Validates package family, pin count, seat-plane Δz, size-match. Bake a persistent pin-1 registration dot onto the chip GLB.",
  "version": "0.1.136",
  "tags": [],
  "license": "MIT",
  "discovery_triggers": [
    "chipfit",
    "chip fit",
    "validate chip",
    "validate footprint",
    "check 3d chip",
    "check footprint",
    "footprint alignment",
    "pin-1 alignment",
    "pin 1 check",
    "pin 1 alignment",
    "register pin 1",
    "bake pin-1",
    "mark pin 1",
    "chip on pads",
    "seat plane chip",
    "z offset chip",
    "chip floating above pads",
    "lqfp alignment",
    "qfn alignment",
    "DIP alignment",
    "3d footprint check",
    "3d chip check"
  ],
  "discovery_pitch": "Pair a 3D chip GLB with its KiCad footprint and validate them together — family/pin-count guard, seat-Δz, size-match, pin-1 registration bake.",
  "install": {
    "binary_name": "adom-chipfit",
    "install_dir": "",
    "install_hint": "",
    "version_cmd": ""
  },
  "readme": "# adom-chipfit\n\n**3D chip ↔ KiCad footprint validator.** Pair a `.glb` model with a\n`.kicad_mod` footprint in a Hydrogen webview and run the full\nvalidation stack before committing either to a library.\n\n## What it checks\n\n| Check | What it catches |\n|---|---|\n| **Package-family + pin-count guard** | Refuses a QFN-24 chip on an LQFP-48 footprint before the viewer even binds a port. Alias groups: LQFP/TQFP/QFP, QFN/DFN, TSSOP/SSOP/SOIC/SOP/SO, DIP/PDIP, SOT/SOD, BGA/CSP. |\n| **Seat-plane Δz** | Chip floating above the pads or sinking into the board. Thru-hole parts get a separate acceptance band (leads clear a standard 1.6 mm FR4). |\n| **Size-match ratio** | FP bbox vs GLB bbox — flags wrong-size pairs and overrun leads. |\n| **Pin-1 alignment** | Overlays a red ring at the footprint's pin-1 pad so the engineer can confirm the chip's own pin-1 mark lands there. |\n| **Origin-convention classifier** | A GLB authored with z=0 at the board bottom (Fusion/SolidWorks default) is auto-aligned for display with the convention offset surfaced, not flagged red. |\n\n## Persistent pin-1 registration\n\nOnce the checks pass, click **Bake pin-1 → GLB** to write a flat red\ndisc onto the chip's top-surface corner nearest pin 1 and save a\n`<source>-pin1.glb` next to the source. Every downstream viewer\n(adom-tsci, basic-3d-viewer, InstaPCB preview, molecule review)\nrenders the dot automatically. The chip becomes self-identifying\nacross every future project the user builds with it.\n\n## AI-drivable\n\nEvery UI action has an HTTP endpoint (`app-creator` §7):\n\n```\nGET  /meta              → { footprint_name, glb_name, port }\nGET  /check             → latest HUD snapshot (JSON)\nPOST /check             → UI pushes HUD state here\nGET  /camera-pending    → server→UI camera command channel\nPOST /camera            → { view: top|front|right|iso } or\n                          { alpha, beta, radius }\nPOST /bake-pin1         → application/gltf-binary body; writes next\n                          to source with -pin1 suffix\nPOST /shutdown          → clean exit\n```\n\n`curl $PORT/check | jq -r .provenance` prints the full pipeline for\naudit.\n\n## Install\n\n```\ncurl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-chipfit/adom-chipfit \\\n  -o /tmp/adom-chipfit \\\n  && chmod +x /tmp/adom-chipfit \\\n  && sudo install -m 0755 /tmp/adom-chipfit /usr/local/bin/adom-chipfit \\\n  && adom-chipfit install\n```\n\n## Related\n\n- [adom-parts-search](/apps/adom-parts-search) — source and price the chip you're validating.\n- [adom-molecule](/apps/adom-molecule) — convert STEP → GLB if you only have a STEP file.\n- **electrical-engineering** skill §8 — the underlying EE conventions (z=0 at top copper, bake pin-1, package family aliases).\n",
  "author": {
    "name": "Kyle Bergstedt",
    "email": "[email protected]"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "sample_prompts": [],
  "metadata": {},
  "created_at": "2026-05-28T05:29:13.320Z",
  "updated_at": "2026-05-28T05:29:13.320Z",
  "skills": []
}