Fusion - the Fusion 360 Bridge
Public Made by Adomby adom
Drive Autodesk Fusion 360 from the cloud via Adom Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.
Library import needs a PRE-FLIGHT PLAN + measured progress + auto-open Fusion (detect state, estimate steps/ETA, then run with a bar)
From the Adom Bridge web-control library-import test campaign (fusion bridge 1.9.212). Ties together #60 / #62 / #63 - this is the UX contract that should wrap all of them.
The problem (real scenario, John on AdomLapper)
A user opened the web-control demo with Fusion not running and ran a library import. Every step just failed:
Binding the STEP as real 3D (fusion_bind_library_3d) ...
3D bind did NOT report a binding: Fusion 360 is installed but not running.
Proving the symbol ...
symbol FAILED: Fusion 360 is installed but not running.
Proving the footprint ...
footprint FAILED: Fusion 360 is installed but not running.
Proving the 3D package ...
3D package FAILED: Fusion 360 is installed but not running.
No detection, no auto-open, no ETA, no progress bar. The flow charged ahead into four guaranteed failures. A user cannot tell "Fusion is just closed, this is fine, opening it" from "this is broken."
What should happen: a PRE-FLIGHT PLAN, then a measured run
Before doing any work, gather requirements and produce a PLAN, then execute it against a real progress bar:
Pre-flight (requirements gathering)
- Detect whether Fusion is running. If not, auto-open it and say so: "Fusion isn't open - opening it (usually ~54s)." Fold that launch time into the ETA. Never fail four steps because the app was merely closed.
- Enumerate the files to stage (the part's
.lbr+.step), their sizes, and an estimated transfer time based on the user's typical download speed. - Enumerate the steps the import will run, each with a per-step time estimate from past-run history: e.g. "create symbol", "create footprint", "import 3D to Fusion cloud", "show ganged view with refreshed 3D icon".
The plan summary shown to the user
"Ready to create Fusion library. This will take ~2 min 46 s on average based on past runs. (Had Fusion already been open, ~49 s.)"
- open Fusion .......... ~54 s
- stage 2 files (1.3 MB) . ~4 s
- build 3D + cloud ...... ~90 s
- capture 4 views ....... ~18 s
Then run with a REAL measured progress bar
Advance the bar across the planned steps, streaming each artifact as it is captured (symbol -> footprint -> 3D chip -> ganged, per #60/#63), with confidence:"measured" where we have history, and blockedBy when a step waits on a human (e.g. Autodesk sign-in).
Division of labor (~80% bridge, ~20% orchestrator)
Bridge's job (it has the knowledge):
- Is Fusion running? Auto-open it when not, and report the launch ETA.
- The step list for a library import + a per-step time estimate from the bridge's own past-run telemetry (the bridge is the only thing that has run these steps before).
- The measured-progress stream (#60) and a clear async completion signal (#62).
- All four artifacts including the dedicated 3D chip (#63).
Orchestrator's job (ab / the web page):
- Local file sizes + estimated transfer time on THIS machine (download-speed estimate).
- Rendering the plan summary + the progress bar UI.
Proposed contract
A pre-flight verb, e.g. fusion_plan_library_import { lbrPath, stepPath, ... }, that returns:
{
fusionRunning: bool,
willOpenFusion: bool, openEtaSec: 54,
steps: [ {key:"open_fusion", etaSec:54}, {key:"build_3d", etaSec:90},
{key:"capture_symbol", etaSec:5}, ... ], // etaSec from bridge past-run history
totalEtaSec: 166,
totalEtaIfFusionOpenSec: 49
}
Then the actual import (fusion_build_library_3d + fusion_capture_library_views, or a single wrapping verb) emits measured progress against that plan and streams the four artifacts in order.
Net: the user always sees "here's the plan, here's how long it'll take, here's the bar" - and "Fusion is just closed, opening it" is a normal, explained state, never four silent failures.