← Commit history

Demo videos: Hydrogen driving Fusion (dialogs, library to 3D board, 3D library), placed in the README and feature guides

John Lauer ·25004083d7 ·1d ago ·parent 2687287
8 files changed +118−163
README.md+17−1
@@ -26,6 +26,17 @@ part's STEP onto its footprint with pin 1 verified, the proof pass with the in-F narrating, and the finished library: every part with its symbol, footprint, rendered 3D and a green Mapped check. Narrated by TTS; every scene is its own clip in the manifest so any one can be re-shot. +## Demo videos: Hydrogen driving Fusion++Each one is a single prompt typed into Hydrogen, then Hydrogen drives Fusion through this bridge+with nobody touching the mouse. Full prompts and how they were made: [Demo videos](docs/demo-videos.md).++| | |+|---|---|+| [![Clearing a modal dialog that blocks a script, watch on YouTube](docs/img/forum/demo-modal-dialogs.jpg)](https://youtu.be/LivMZSjM6nQ) | **Clearing a modal dialog that blocks a script** (44 s). A script runs ADD, Fusion's library picker blocks it, and the bridge reads the dialog and cancels it in the background. |+| [![One prompt: parts library to schematic, 2D board and 3D board, watch on YouTube](docs/img/forum/demo-library-to-3d-board.jpg)](https://youtu.be/nQezlVZkFl0) | **One prompt: parts library to schematic, 2D board and 3D board** (49 s). Schematic, 2D board and the 3D board with each part's real 3D model, no dialogs. |+| [![A real 3D model on every part of a library, watch on YouTube](docs/img/forum/demo-3d-library.jpg)](https://youtu.be/f7gR40rVCDo) | **A real 3D model on every part of a library** (1:32). Why binding STEP models to a multi-part library is hard, the order that works, and six parts bound live. |+ ## Feature guides  Short version below, full detail in each guide.@@ -41,7 +52,7 @@ Short version below, full detail in each guide. | [Mechanical BOM and physical properties](docs/mechanical-bom.md) | Kit-aware assembly BOM that matches Fusion's Manage to BOM, and per-part volume/mass for costing. | | [Sign-in, sessions and updates](docs/sign-in-and-updates.md) | Multi-profile Autodesk sign-in, SSO without passwords, one login covering APS, the `needs_signin` short-circuit, `restartPolicy`, and silent auto-updates. | | [Autodesk's Fusion MCP server](docs/fusion-mcp-server.md) | Proxy Autodesk + Anthropic's local MCP server (text-to-CAD, Electronics object model) so a cloud AI can reach it, and turn it on for the user. |-| [Videos for the Autodesk forum reply](docs/forum-videos.md) | Why we made three true-flow videos (prompt typed in Hydrogen, Fusion doing the work), which of a forum poster's five Electron.run problems each one answers, how they were recorded and cut with no dead air, and the draft reply. |+| [Demo videos](docs/demo-videos.md) | Three short demos of Hydrogen driving Fusion (dialogs, library to 3D board, 3D library binding): the exact prompts, how they were recorded and cut, and where we share them. | | [Driving Fusion's preferences](docs/fusion-preferences.md) | Reach ANY Fusion preference, not just the thin API slice, by driving the Preferences dialog. | | [Contributing](CONTRIBUTING.md) | Check out the source, change it, test it on your own box, and send a pull request for review. Account and CLI setup, the dialog rules, unsigned local builds, the verb suite, and how review and approval work. | @@ -389,6 +400,11 @@ The bridge picks the right channel per task:  ## Dialog awareness: parent/child screenshots (the automation breakthrough) +[![Clearing a modal dialog that blocks a script, watch on YouTube](docs/img/forum/demo-modal-dialogs.jpg)](https://youtu.be/LivMZSjM6nQ)++*Demo: a script runs ADD, Fusion's modal picker blocks it, and the bridge reads it and cancels it in the background.*++ Fusion's classic failure mode is a **modal dialog** (save prompt, recovery, licensing) silently blocking the add-in's main thread while the caller sees only a fake "not responding". The breakthrough: Adom Bridge's window capture returns a window's **owned child popups** - dialogs that
docs/MULTIPART_LIBRARY_IMPORT.md+4
@@ -1,5 +1,9 @@ # Multi-part library import: how a Fusion library gets real, rendering 3D on every part +[![A real 3D model on every part of a library, watch on YouTube](docs/img/forum/demo-3d-library.jpg)](https://youtu.be/f7gR40rVCDo)++*Demo: one prompt in Hydrogen builds a six-part library from a wiki Cloud Library with every 3D model bound, explains the three traps, and proves every part.*+ This is the technical account of what `fusion_install_library_bundle` does between "a zip of `.lbr` + `.step` files" and "a library in your Fusion Library Manager where every package renders its chip on its own footprint". It exists because the middle of that sentence is
docs/demo-videos.mdadded+91
@@ -0,0 +1,91 @@+# Demo videos++Three short demos of Hydrogen driving Autodesk Fusion through the Fusion bridge. Each one is a+real run: a single prompt typed into Hydrogen, then Hydrogen does the work in Fusion with nobody+touching the mouse. The only edits are cuts, speed-ups of the waiting, and narration, timed so+there is no dead air.++## Clearing a modal dialog that blocks a script++[![Clearing a modal dialog that blocks a script, watch on YouTube](docs/img/forum/demo-modal-dialogs.jpg)](https://youtu.be/LivMZSjM6nQ)++[Watch on YouTube](https://youtu.be/LivMZSjM6nQ) (44 s)++**The prompt typed into Hydrogen:**++> In Fusion, show me how the Fusion bridge handles a modal dialog that blocks a script. Open the+> ToF showcase board, run ADD from a script so the library picker opens and blocks it, then have+> the bridge read the dialog and cancel it in the background.++Fusion Electronics edits go through `executeTextCommand('Electron.run ...')`, and any command that+opens a modal (an error, the ADD library picker) blocks every later script until a person closes+it. The bridge reads each open Fusion dialog through Windows UI Automation (title, text, buttons),+answers the ones it recognises, cancels unknown ones in the background, and hands the text back to+the AI. In the video the picker pops up, the script hangs, and the bridge presses Cancel without+moving the mouse or taking focus. Details: [Dialog awareness](../README.md#dialog-awareness-parentchild-screenshots-the-automation-breakthrough)+and the `fusion-no-modal-dialogs` skill.++## One prompt: parts library to schematic, 2D board and 3D board++[![One prompt: parts library to schematic, 2D board and 3D board, watch on YouTube](docs/img/forum/demo-library-to-3d-board.jpg)](https://youtu.be/nQezlVZkFl0)++[Watch on YouTube](https://youtu.be/nQezlVZkFl0) (49 s)++**The prompt typed into Hydrogen:**++> In Fusion, make a schematic and a board with every part in my Adom_ToF library. Then show me+> the schematic, the 2D board and the 3D board, and orbit the 3D view so I can see the parts.++Hydrogen reads the bridge's commands, checks the library, and calls `fusion_make_showcase_project`,+which writes the schematic and board as EAGLE source and opens them with+`Document.newDesignFromLocal`, so no dialog appears. Then it switches through the schematic, the+2D board and the 3D board, where every part shows its bound 3D model, and orbits the camera. Every+Fusion frame is a window capture, which works in the schematic and PCB editors even with Fusion in+the background. Details: [Schematics](schematics.md).++## A real 3D model on every part of a library++[![A real 3D model on every part of a library, watch on YouTube](docs/img/forum/demo-3d-library.jpg)](https://youtu.be/f7gR40rVCDo)++[Watch on YouTube](https://youtu.be/f7gR40rVCDo) (1:32)++**The prompt typed into Hydrogen:**++> Build a Fusion library from my Demo Board cloud library on the Adom wiki, with the real 3D+> model bound to every part, and save it to my Fusion Library Manager.++This took us longest. Three traps:++1. **A STEP in the cloud is not enough.** Bind a raw STEP's urn and the library says "Thumbnail+   download failed". Only a Fusion design (`.f3d`) with the STEP inside renders.+2. **The GUI path is a dialog trap.** The 3D package generator ends with FINISH, which opens a+   Save dialog and two browser modals that no script can read or close.+3. **The generator loads the first package of the open library,** whatever you ask for, so in a+   multi-part library every chip lands on part one's footprint.++The order that works: split the library into one library per part; start the generator on that+part's library so it loads that footprint; import the STEP exactly as the maker published it;+Save As an `.f3d` instead of FINISH; wait for the cloud lineage id and build the urn from it;+write every urn into the merged library in one pass, and open it once. In the video Hydrogen+binds six parts, proves each one (symbol, footprint, 3D package, component view), and saves the+library to the Library Manager. Details: [Multi-part library import](MULTIPART_LIBRARY_IMPORT.md).++## How the videos were made++- **The run.** A Windows box with Hydrogen full screen and Fusion in front of it at 85%. The+  prompt is typed into Hydrogen's AI chat; Hydrogen drives Fusion through this bridge.+- **The capture.** Adom Bridge records the whole monitor (taskbar included) and Hydrogen's window+  separately, in the background, so the chat can be inset in the corner while Fusion works.+- **The edit.** `tools/video/compose.py` takes a list of sections (a time range, a layout and one+  narration line each), voices each line with adom-tts, and speeds up or slows each section so it+  lasts exactly as long as its line, which keeps the narration continuous. The section lists are+  `tools/video/spec-*.json`.+- **The hosting.** Unlisted on the Adom Industries YouTube channel.++## Sharing them in forum replies++These are feature demos first. When someone on a forum asks about something one of them shows,+we link the relevant video in a reply that answers their question on its own merits. The first+one is a reply to Aske Carstensen's+[Electronics API + MCP: modal dialogs block scripts, no undo for Electron.run edits](https://forums.autodesk.com/t5/fusion-electronics-forum/electronics-api-mcp-modal-dialogs-block-scripts-no-undo-for/td-p/14286758)+on Autodesk's Fusion Electronics forum (draft, not yet posted).
docs/forum-videos.md+2−162
@@ -1,163 +1,3 @@-# Videos for the Autodesk forum reply+# Moved -This page explains three short videos we made to answer a question on Autodesk's Fusion-Electronics forum, what each one shows, and the reply we drafted around them. Nothing here-is posted yet: the reply goes out from John's Autodesk account once he approves it.--## Why these videos exist--On 2026-10-02, Aske Carstensen posted-[Electronics API + MCP: modal dialogs block scripts, no undo for Electron.run edits](https://forums.autodesk.com/t5/fusion-electronics-forum/electronics-api-mcp-modal-dialogs-block-scripts-no-undo-for/td-p/14286758)-in Autodesk's Fusion Electronics forum. He edits schematics from Claude Desktop through-Autodesk's Fusion MCP. The Electronics API is read-only, so every edit goes through-`executeTextCommand('Electron.run ...')`, and he listed five things that make that fragile.-He ended with a question: "is there a recommended way to drive Electron.run safely until-then?" Autodesk replied that a write API is coming "in the very near term" and marked the-thread solved.--We have spent five months on exactly this problem in the open-source Fusion bridge, so we-can answer his question today. The forum's rules put promotion in Classifieds, so the reply-has to stand on its own as help: concrete answers to his five points, with a video wherever-showing is clearer than telling.--Each video is a real run. You see the exact prompt typed into an AI (Codex, in Hydrogen),-then Fusion doing the work, with the AI's own progress in a corner of the frame. Nothing is-staged; the only edits are cuts and speed-ups of the waiting, timed to the narration so-there is no dead air.--## His five points, and what the bridge does today--| # | Aske's problem | What the bridge does | Shown in |-|---|---|---|---|-| 1 | A modal dialog from an `Electron.run` error blocks every later script | Reads every open Fusion dialog through Windows UI Automation (title, text, buttons), answers known ones, cancels unknown ones in the background, and returns the text to the agent | Video 1 |-| 2 | `ADD` opens the library browser and Fusion waits for a person | The same path cancels it. Better still, parts are written as EAGLE source and opened with `Document.newDesignFromLocal`, so `ADD` is never needed | Video 1 |-| 3 | No undo for `Electron.run` edits | Not solved natively. The bridge saves checkpoints before each batch | |-| 4 | A hidden "armed" command state refuses writes | `ui.terminateActiveCommand()` after each script, the same workaround he found | |-| 5 | MCP screenshots fail in the schematic and PCB editors | The bridge captures the Fusion window itself, which works in both editors, even with Fusion in the background | Video 2 (every frame) |-| ? | "A recommended way to drive Electron.run safely until then?" | An AI writes a schematic, a 2D board and a 3D board from one prompt today | Video 2 |--## Video 1: a modal dialog blocks a script, and the AI clears it--Answers his points 1 and 2.--[![Video 1: modal dialog, watch on YouTube](docs/img/forum/video1-modal.jpg)](https://youtu.be/FzQjRKxkYLA)--[Watch on YouTube](https://youtu.be/FzQjRKxkYLA)--**The prompt typed into Hydrogen:**--> In Fusion, open the ToF showcase board you made. Then show me how the bridge handles a-> modal dialog that blocks a script: run the ADD command from a script so the library picker-> opens and blocks it, then read that dialog and cancel it in the background.--What you see: the script runs `ADD`, Fusion's library picker pops up over your work and the-script hangs, exactly as Aske describes. The bridge reads the dialog's title and buttons and-cancels it in the background without taking focus, and the script carries on.--## Video 2: from a parts library to a 3D board, from one prompt--Answers his closing question, and his point 5: every frame of Fusion here is a capture of the-schematic and PCB editors themselves.--[![Video 2: library to 3D board, watch on YouTube](docs/img/forum/video2-board.jpg)](https://youtu.be/HF2bDMRoGfw)--[Watch on YouTube](https://youtu.be/HF2bDMRoGfw)--**The prompt typed into Hydrogen:**--> In Fusion, make a schematic and a board with every part in my Adom_ToF library. Then show-> me the schematic, the 2D board and the 3D board, and orbit the 3D view so I can see the parts.--What you see: Codex reads the bridge's commands, finds the three sensors in the library,-writes the schematic and the board, opens them with no dialogs, and walks through the-schematic, the 2D board and the 3D board with each part's real 3D model. About eight minutes,-hands off.--## Video 3: a real 3D model on every part of a library--Not on Aske's list, but the next wall anyone writing designs from code hits, and the part-that took us longest.--[![Video 3: 3D library, watch on YouTube](docs/img/forum/video3-3d-library.jpg)](https://youtu.be/vUnqaDy8-XU)--[Watch on YouTube](https://youtu.be/vUnqaDy8-XU)--**The prompt typed into Hydrogen:**--> Build a Fusion library from my Demo Board cloud library on the Adom wiki, with the real 3D-> model bound to every part, and save it to my Fusion Library Manager.--Three traps make this hard:--1. **A STEP in the cloud is not enough.** Bind a raw STEP's urn and the library says-   "Thumbnail download failed". Only a Fusion design (`.f3d`) with the STEP inside renders.-2. **The GUI path is a dialog trap.** The 3D package generator ends with FINISH, which opens-   a Save dialog and two browser modals that no script can read or close.-3. **The generator loads the first package of the open library,** whatever you ask for, so-   in a multi-part library every chip lands on part one's footprint.--The order that works: split the library into one library per part; start the generator on-that part's library so it loads that footprint; import the STEP exactly as the maker-published it; Save As an `.f3d` instead of FINISH; wait for the cloud lineage id and build-the urn from it; write every urn into the merged library in one pass, and open it once. The-full account, with screenshots of the wrong-footprint trap, is in-[Multi-part library import](MULTIPART_LIBRARY_IMPORT.md).--## How the videos were made--- **The run.** A Windows box with Hydrogen and Fusion side by side. The prompt is typed into-  Codex in Hydrogen; Codex drives Fusion through this bridge, with no human input after the-  prompt.-- **The capture.** Adom Bridge records the Hydrogen and Fusion windows in the background-  (Windows Graphics Capture), so nothing has to be in front. Video 1 records the whole-  monitor, because Fusion's picker is its own window and pops up over Hydrogen.-- **The edit.** `tools/video/compose.py` takes a list of sections (a time range of the-  recording, a layout and one narration line each), voices each line with adom-tts, and-  speeds up or slows each section so it lasts exactly as long as its line. That is what keeps-  the narration continuous with no dead air.-- **The hosting.** Unlisted on the Adom Industries YouTube channel, embedded in the forum-  reply with the forum's own video button.--## The draft forum reply--Not posted. John reviews it and posts it from his own Autodesk account.--> Hi Aske, disclosure: I run Adom. We make a free, MIT-licensed Fusion add-in and local bridge that lets an AI drive Fusion Electronics end to end, and over the last five months we have hit your whole list.->-> Jorge's news is good: when Autodesk's electronics write API lands, we will build on it, and on Autodesk's MCP servers, because native support makes all of this simpler. But to your closing question, yes, you can drive Electron.run safely today. Here is how, point by point:->-> 1. **Modal dialogs.** Before each command we read every open Fusion dialog through Windows UI Automation (title, text, buttons), answer the ones we recognise, cancel unknown ones in the background, and hand the text back to the agent instead of hanging. One warning: Fusion's floating Browser panel is also titled "Fusion360", and closing it can close Fusion, so only close windows that are plainly dialogs.->-> 2. **The library browser from ADD.** The same path cancels it. The video below is exactly your case, from one prompt to an AI: a script runs ADD, the picker blocks it, the bridge reads the dialog and cancels it in the background, and the script carries on. Better still, we never need ADD: we write parts as EAGLE source and open it with Document.newDesignFromLocal, which raises no dialog.->-> *[Video 1: modal dialog](https://youtu.be/FzQjRKxkYLA)*->-> 3. **Undo.** Nothing native for Electron.run edits yet, so we save checkpoints before each batch.->-> 4. **The armed state.** Your terminateActiveCommand workaround matches ours.->-> 5. **Screenshots of the 2D editors.** We capture the Fusion window itself, which works on schematics and boards, even with Fusion in the background. Every Fusion frame in the next video was captured that way.->-> Putting it together, here is one prompt to an AI writing electronics end to end: it opens a parts library, writes a schematic, places the parts on a 2D board and checks the 3D board, with no dialogs and no hands on the mouse.->-> *[Video 2: library to 3D board](https://youtu.be/HF2bDMRoGfw)*->-> One more wall you will hit once you write designs, not on your list: parts need 3D models, and attaching STEP models to a multi-part library is where we spent the most time. Three traps: a raw STEP bound by urn shows "Thumbnail download failed" (only an .f3d renders); the 3D package generator's FINISH opens modals no script can close; and the generator loads the first package of the open library, so every chip lands on part one's footprint. What works, in this order: one library per part, start the generator on it, import the STEP, Save As an .f3d instead of FINISH, build the urn from the cloud lineage id, then write every urn into the merged library in one pass. Six parts bind in a few minutes:->-> *[Video 3: 3D library](https://youtu.be/vUnqaDy8-XU)*->-> The source is public, with a contributing guide if you want to send fixes back: [wiki.adom.inc/adom/fusion-bridge](https://wiki.adom.inc/adom/fusion-bridge). Happy to compare notes, and thanks Jorge for passing these to the API team.--## Other threads worth a short reply--From a scan of the Fusion Electronics and API forums, 2026-09-10 to 2026-10-04. Drafts only.--- [Report: 100 million tokens... a dialog box: my week making Fusion's MCP work for ECAD](https://forums.autodesk.com/t5/fusion-electronics-forum/report-100-million-tokens-one-rfc-deep-dive-and-a-dialog-box-my/td-p/14275047):-  the same dialog wall. A reply with the UI Automation approach and the EAGLE-source route,-  with a disclosure line.-- [When will we get file write in API?](https://forums.autodesk.com/t5/fusion-electronics-forum/when-will-we-get-file-write-in-api/td-p/14279375):-  the EAGLE-source plus `Document.newDesignFromLocal` workaround that works today. No link.-- [Request access to public-mcp-api for Autodesk Fusion Data MCP](https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/request-access-to-public-mcp-api-for-autodesk-fusion-data-mcp/td-p/14279381):-  Autodesk's 9/29 client allow-list fix, and APS search as the fast path today. No link.--The first and third threads are the same person, so post those a day apart.+This page is now [Demo videos](demo-videos.md).
docs/img/forum/demo-3d-library.jpgadded
⋯ 1 unchanged line ⋯
docs/img/forum/demo-library-to-3d-board.jpgadded
⋯ 1 unchanged line ⋯
docs/img/forum/demo-modal-dialogs.jpgadded
⋯ 1 unchanged line ⋯
docs/schematics.md+4
@@ -76,6 +76,10 @@ Use `fusion_get_app_state` to confirm where you landed: it reports `activeDocume  ## A library's parts on a new schematic and board: `fusion_make_showcase_project` +[![One prompt: parts library to schematic, 2D board and 3D board, watch on YouTube](docs/img/forum/demo-library-to-3d-board.jpg)](https://youtu.be/nQezlVZkFl0)++*Demo: one prompt in Hydrogen makes a schematic and a board from a library, then shows the schematic, the 2D board and the 3D board.*+ "Make a schematic and board to show off these three sensors" is one call:  ```bash