← Commit history

Initial commit: app/adom-step

Kyle Bergstedt ·17ba6895ea ·4mo ago
2 files changed +145
README.mdadded+92
@@ -0,0 +1,92 @@+# adom-step — STEP file viewer++A Fusion 360-style viewer for STEP (`.step` / `.stp`) files inside a+Hydrogen webview. Renders on the canonical Adom Babylon9 viewer.++## What it does++- **Components outline** — left-sidebar tree of every assembly node in+  the STEP. Per-row eye-toggle (tri-state across subtrees), isolate,+  zoom-to, search, right-click context menu.+- **Smart-pick measure** — Fusion-style snap to vertex / edge / face /+  body. Two clicks → distance in mm and mils, plus ΔX / ΔY / ΔZ and+  the angle between picks. Multi-stage Esc to back off one click at+  a time.+- **Hover-inspect HUD** — name, breadcrumb path, bbox W×D×H, material+  swatch, vertex/face count.+- **Pin / contact detection** — two-mode clusterer that walks the+  scene graph, groups meshes by inferred material role (body / pin /+  contact / marker), and surfaces detected pins as individual outline+  rows. Handles SOIC / QFP / QFN (per-side 1D), LGA / BGA / aQFN+  (2D bimodal-gap union-find), and through-hole connectors (geometry-+  based: tall-thin sub-meshes poking below the body's seating plane,+  regardless of material color).+- **Strobe** — flash each detected pin once at a configurable interval.+  Auto-disables with an explanatory tooltip on STEPs where no pins or+  contacts were found.+- **Right-click anywhere in the canvas** — Reveal in Components Outline,+  Isolate, Hide Others, Show, Hide, Zoom To, Copy Name, Properties.+  All visibility actions are Ctrl+Z / Ctrl+Y undoable; "Hide" auto-+  flashes the row in the outline so you can find the hidden item again.+- **Babylon Inspector** — bundled (not CDN), one click opens the full+  scene-graph debugger.+- **CLI mirrors every UI verb** — drive the running viewer from the+  shell or from Claude.++## Install++```bash+curl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-step/adom-step -o /tmp/adom-step \+  && chmod +x /tmp/adom-step \+  && sudo install -m 0755 /tmp/adom-step /usr/local/bin/adom-step \+  && adom-step install+```++`adom-step install` deploys SKILL.md + completions to `~/.claude/skills/`+and `~/.local/`.++## Quick start++```bash+# Open any STEP file:+adom-step view /path/to/design.step++# Open a KiCad library footprint by canonical name:+adom-step view-library Package_QFP/LQFP-64_10x10mm_P0.5mm++# Drive from the CLI / from Claude:+adom-step list-components               # tree dump+adom-step isolate U1                    # hide others + frame+adom-step show NAME / hide NAME / show-all+adom-step measure A B                   # mm + mils+adom-step pins list                     # detected clusters+adom-step pins isolate 3+adom-step pins strobe                   # flash each pin+adom-step view-cube iso                 # front | top | iso | home | ...+adom-step screenshot --out /tmp/x.png+adom-step eval "return Object.keys(window.adomStep)"+adom-step console -f                    # tail webview console+```++## Pipeline++```+.step  →  service-step2glb /convert  →  GLB (hierarchy + materials preserved)+       →  /tmp/adom-step-cache/<sha256>.glb+       →  Babylon SceneLoader.ImportMeshAsync+       →  scene.transformNodes  →  components outline+```++The conversion side uses OCCT XCAF + `RWGltf_CafWriter`, which preserves+the STEP product structure and per-face materials end-to-end. That's+why TI / Renesas / Nordic STEPs surface their named pin hierarchy+directly (no client-side STEP parsing).++## See also++- [`service-step2glb`](https://wiki-ufypy5dpx93o.adom.cloud/services/service-step2glb)+  — the OCCT-based converter that produces the GLBs.+- [`adom-3d-viewer-babylon9`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-3d-viewer-babylon9)+  — the canonical Babylon9 viewer adom-step renders into.+- [`chip-fetcher`](https://wiki-ufypy5dpx93o.adom.cloud/apps/chip-fetcher)+  — source of the manufacturer STEPs adom-step is tuned for.
page.jsonadded+53
@@ -0,0 +1,53 @@+{+  "schema_version": 1,+  "type": "app",+  "slug": "adom-step",+  "title": "adom-step — STEP file viewer",+  "brief": "Fusion 360-style viewer for STEP / STP files in a Hydrogen webview. Components outline, smart-pick measure (mm + mils + angle), hover-inspect HUD, and geometry-based pin / contact detection that handl",+  "version": "0.1.1",+  "tags": [],+  "license": "MIT",+  "discovery_triggers": [+    "adom-step",+    "step viewer",+    "view step file",+    "open step file",+    "open .step",+    "open .stp",+    "step 3d viewer",+    "cad viewer",+    "fusion 360 viewer",+    "components browser cad",+    "step assembly tree",+    "isolate component cad",+    "measure step file",+    "lga pads viewer",+    "qfn pins viewer",+    "bga balls viewer",+    "through-hole pins viewer",+    "kicad library step",+    "view-library step"+  ],+  "discovery_pitch": "Drop a STEP file in and get a Fusion 360-feel viewer instantly: components outline (every assembly node), smart-pick measure tool with mm + mils + angle, hover-inspect, and per-pin / per-contact strobe that handles LGA, BGA, QFN, SOIC, and through-hole connectors — works on KiCad library STEPs and chip-fetcher manufacturer STEPs alike.",+  "install": {+    "binary_name": "adom-step",+    "install_dir": "",+    "install_hint": "",+    "version_cmd": ""+  },+  "readme": "# adom-step — STEP file viewer\n\nA Fusion 360-style viewer for STEP (`.step` / `.stp`) files inside a\nHydrogen webview. Renders on the canonical Adom Babylon9 viewer.\n\n## What it does\n\n- **Components outline** — left-sidebar tree of every assembly node in\n  the STEP. Per-row eye-toggle (tri-state across subtrees), isolate,\n  zoom-to, search, right-click context menu.\n- **Smart-pick measure** — Fusion-style snap to vertex / edge / face /\n  body. Two clicks → distance in mm and mils, plus ΔX / ΔY / ΔZ and\n  the angle between picks. Multi-stage Esc to back off one click at\n  a time.\n- **Hover-inspect HUD** — name, breadcrumb path, bbox W×D×H, material\n  swatch, vertex/face count.\n- **Pin / contact detection** — two-mode clusterer that walks the\n  scene graph, groups meshes by inferred material role (body / pin /\n  contact / marker), and surfaces detected pins as individual outline\n  rows. Handles SOIC / QFP / QFN (per-side 1D), LGA / BGA / aQFN\n  (2D bimodal-gap union-find), and through-hole connectors (geometry-\n  based: tall-thin sub-meshes poking below the body's seating plane,\n  regardless of material color).\n- **Strobe** — flash each detected pin once at a configurable interval.\n  Auto-disables with an explanatory tooltip on STEPs where no pins or\n  contacts were found.\n- **Right-click anywhere in the canvas** — Reveal in Components Outline,\n  Isolate, Hide Others, Show, Hide, Zoom To, Copy Name, Properties.\n  All visibility actions are Ctrl+Z / Ctrl+Y undoable; \"Hide\" auto-\n  flashes the row in the outline so you can find the hidden item again.\n- **Babylon Inspector** — bundled (not CDN), one click opens the full\n  scene-graph debugger.\n- **CLI mirrors every UI verb** — drive the running viewer from the\n  shell or from Claude.\n\n## Install\n\n```bash\ncurl -fsSL https://wiki-ufypy5dpx93o.adom.cloud/static/apps/adom-step/adom-step -o /tmp/adom-step \\\n  && chmod +x /tmp/adom-step \\\n  && sudo install -m 0755 /tmp/adom-step /usr/local/bin/adom-step \\\n  && adom-step install\n```\n\n`adom-step install` deploys SKILL.md + completions to `~/.claude/skills/`\nand `~/.local/`.\n\n## Quick start\n\n```bash\n# Open any STEP file:\nadom-step view /path/to/design.step\n\n# Open a KiCad library footprint by canonical name:\nadom-step view-library Package_QFP/LQFP-64_10x10mm_P0.5mm\n\n# Drive from the CLI / from Claude:\nadom-step list-components               # tree dump\nadom-step isolate U1                    # hide others + frame\nadom-step show NAME / hide NAME / show-all\nadom-step measure A B                   # mm + mils\nadom-step pins list                     # detected clusters\nadom-step pins isolate 3\nadom-step pins strobe                   # flash each pin\nadom-step view-cube iso                 # front | top | iso | home | ...\nadom-step screenshot --out /tmp/x.png\nadom-step eval \"return Object.keys(window.adomStep)\"\nadom-step console -f                    # tail webview console\n```\n\n## Pipeline\n\n```\n.step  →  service-step2glb /convert  →  GLB (hierarchy + materials preserved)\n       →  /tmp/adom-step-cache/<sha256>.glb\n       →  Babylon SceneLoader.ImportMeshAsync\n       →  scene.transformNodes  →  components outline\n```\n\nThe conversion side uses OCCT XCAF + `RWGltf_CafWriter`, which preserves\nthe STEP product structure and per-face materials end-to-end. That's\nwhy TI / Renesas / Nordic STEPs surface their named pin hierarchy\ndirectly (no client-side STEP parsing).\n\n## See also\n\n- [`service-step2glb`](https://wiki-ufypy5dpx93o.adom.cloud/services/service-step2glb)\n  — the OCCT-based converter that produces the GLBs.\n- [`adom-3d-viewer-babylon9`](https://wiki-ufypy5dpx93o.adom.cloud/apps/adom-3d-viewer-babylon9)\n  — the canonical Babylon9 viewer adom-step renders into.\n- [`chip-fetcher`](https://wiki-ufypy5dpx93o.adom.cloud/apps/chip-fetcher)\n  — source of the manufacturer STEPs adom-step is tuned for.\n",+  "author": {+    "id": "695820315b5f1e4db2fcf602",+    "name": "Kyle Bergstedt",+    "email": "[email protected]"+  },+  "visibility": {+    "public": true+  },+  "hero": null,+  "sample_prompts": [],+  "metadata": {},+  "created_at": "2026-05-28T05:29:09.928Z",+  "updated_at": "2026-05-28T05:29:09.928Z",+  "skills": []+}\ No newline at end of file