app
Adom Project Manager
Public Made by Adomby adom
Adom Project Manager — the central hub for navigating wiki boards, molecules and libraries into Hydrogen: browse your wiki boards/projects (Personal / Organization / Public), view symbol + footprint + 3D and the per-EDA footprint layer stackup, explore the board and schematic in INTERACTIVE cross-probing viewers (click a net, hover a part for stock and price), add components to your KiCad/Altium libraries, and deliver self-contained KiCad projects. Built on adom-lbr. (Formerly Adom Project Manag
← Commit history
Publish 0.6.0
6 files changed
+51−2
bin/adom-project-manager⋯ 1 unchanged line ⋯
glb_optimize.mjsadded+30@@ -0,0 +1,30 @@+import { NodeIO } from '@gltf-transform/core';+import { KHRONOS_EXTENSIONS } from '@gltf-transform/extensions';+import { dedup, flatten, join, weld, prune, quantize } from '@gltf-transform/functions';++const [input, output] = process.argv.slice(2);+const io = new NodeIO().registerExtensions(KHRONOS_EXTENSIONS);+const doc = await io.read(input);++const before = doc.getRoot().listMeshes().reduce((n, m) => n + m.listPrimitives().length, 0);+await doc.transform(+ dedup(), // drop duplicate accessors/materials+ flatten(), // bake node transforms so far-apart parts can merge+ join({ keepNamed: false }), // MERGE primitives sharing a material -> fewer draw calls+ weld(), // index + merge coincident verts+ prune(), // drop now-unused nodes/accessors/materials+ quantize(), // KHR_mesh_quantization (Babylon-native, no decoder; NOT draco)+);+const after = doc.getRoot().listMeshes().reduce((n, m) => n + m.listPrimitives().length, 0);++// Orientation fix: flatten/join re-express the KiCad scene Y-up, but the wiki 3D+// viewer assumes Z-up (it rotates Z-up -> Y-up for display, like every other Adom+// GLB). Left Y-up, the board renders standing on edge. Rotate content +90deg about+// X (maps +Y -> +Z) so the board is Z-up and displays flat with parts pointing up.+const scene = doc.getRoot().getDefaultScene() || doc.getRoot().listScenes()[0];+const zup = doc.createNode('adom_zup').setRotation([0.70710678, 0, 0, 0.70710678]);+for (const child of scene.listChildren()) zup.addChild(child);+scene.addChild(zup);++await io.write(output, doc);+console.log(`primitives ${before} -> ${after}; applied Z-up rotation`);
install.sh+16@@ -3,6 +3,22 @@ set -euo pipefail DIR="$(cd "$(dirname "$0")" && pwd)"; BIN="${HOME}/.local/bin"; mkdir -p "$BIN" install -m 0755 "$DIR/bin/adom-project-manager" "$BIN/adom-project-manager"; echo "Installed adom-project-manager" +# Board-GLB optimizer: --render-board shrinks the raw kicad-cli board GLB (merge+# primitives, quantize) before publishing. It shells to `node <script>` using+# @gltf-transform; both are OPTIONAL — without them --render-board just publishes+# the un-optimized GLB. Install the script + its deps best-effort next to the bin.+if [ -f "$DIR/glb_optimize.mjs" ]; then+ install -m 0644 "$DIR/glb_optimize.mjs" "$BIN/glb_optimize.mjs"+ if command -v npm >/dev/null 2>&1; then+ ( cd "$BIN" && npm install --no-save --no-audit --no-fund \+ @gltf-transform/core @gltf-transform/functions @gltf-transform/extensions >/dev/null 2>&1 ) \+ && echo "Installed board-GLB optimizer (gltf-transform)" \+ || echo "Note: gltf-transform deps not installed; --render-board will publish un-optimized GLBs"+ else+ echo "Note: npm not found; --render-board will publish un-optimized GLBs (install node+npm to enable optimization)"+ fi+fi+ # 0.5.0 bundled the deprecated publish-board skill; molecule-publish replaces it # (installed as a package dependency), so clear the stale copy. rm -rf "${HOME}/.claude/skills/publish-board"
package.json+2−1@@ -1,6 +1,6 @@ { "slug": "adom-project-manager",- "version": "0.5.1",+ "version": "0.6.0", "type": "app", "description": "Adom Project Manager \u2014 browse your wiki boards/projects (Personal / Organization / Public), view symbol + footprint + 3D and the per-EDA footprint layer stackup, explore the board and schematic in INTERACTIVE viewers (click a net, hover a part for stock and price), add components to your KiCad/Altium libraries, and deliver self-contained KiCad projects. Built on adom-lbr.", "dependencies": {@@ -45,6 +45,7 @@ "README.md", "install.sh", "uninstall.sh",+ "glb_optimize.mjs", "docs/**" ], "discovery_triggers": [
page.json+2−1@@ -1,6 +1,6 @@ { "slug": "adom-project-manager",- "version": "0.5.1",+ "version": "0.6.0", "type": "app", "description": "Adom Project Manager — browse your wiki boards/projects (Personal / Organization / Public), view symbol + footprint + 3D and the per-EDA footprint layer stackup, explore the board and schematic in INTERACTIVE viewers (click a net, hover a part for stock and price), add components to your KiCad/Altium libraries, and deliver self-contained KiCad projects. Built on adom-lbr.", "dependencies": {@@ -45,6 +45,7 @@ "README.md", "install.sh", "uninstall.sh",+ "glb_optimize.mjs", "docs/**" ], "discovery_triggers": [
uninstall.sh+1@@ -1,4 +1,5 @@ #!/bin/bash set -euo pipefail rm -f "${HOME}/.local/bin/adom-project-manager"; echo "Uninstalled adom-project-manager"+rm -f "${HOME}/.local/bin/glb_optimize.mjs" rm -rf "${HOME}/.claude/skills/publish-board"