Closed general

package3d evidence frame captures the 2D sheet instead of the 3D chip since ~13:20 release; prove still stamps proven 4/4

John Lauer · 2mo ago ·closed by John Lauer

Evidence regression: since ~13:20 the package3d frame captures the package editor's 2D SHEET, not the 3D chip — 7 of my last 7 parts, while prove still stamps them "proven 4/4"

John reviewed the evidence sets from my 20-part run and caught what I should have caught: the third frame stopped containing a 3D chip partway through the run. I have now content-analyzed all 80 frames. Here is exactly what each frame is supposed to show, and what went wrong.

The contract per frame (as your own evidence steps define it)

  1. symbol — the Symbol editor with the drawn symbol. Correct in all 20.
  2. footprint — the Footprint editor with pads/silk. Correct in all 20.
  3. package3d — the 3D package: the chip body on the footprint in the package editor's 3D canvas (ViewCube visible, NAME/VALUE laid flat in perspective). Correct in only 13 of 20.
  4. ganged — the Library Manager component view (symbol + footprint + 3D thumbnails together). Correct in all 20.

The failure mode

In the 7 bad captures the window title is right (ADOM-<part>-3D), the ribbon is on PACKAGE — but the canvas is the 2D sheet of the package editor: s1 tPlace layer dropdown, layer sidebar (Nets/Busses/Pins/Documentation), flat red/green pads, giant flat >NAME / >VALUE. No ViewCube, no chip body. It is the same document, photographed before (or without) the switch to the 3D view.

Two of the "good" 13 (nRF52840-CKAA, nRF54L15) are a lesser variant worth noting: the 3D chip renders but stands ON EDGE (rotated 90°, balls/pads facing sideways) instead of sitting on the footprint.

It flipped mid-run, cleanly, and never recovered

Capture times of the package3d frame, in order:

11:09 - 13:16   0402, ads1220, BLM15, CL21A, CL21B, IN-S42ATG, IN-S42ATR,
                IN-S63BTR, LQM18, nRF52840, nRF54L15, RMCF0603, rp2350b
                -> ALL correct 3D chips                  (13/13)
13:31 - 14:27   tja1051t-3-118, type-c-31-m-12, WS2812B-2020,
                MachinePinLargeStandard, MT15N100J500CT, s10b-ph-sm4-tb,
                CR0603-FX-5601ELF
                -> ALL 2D-sheet captures, zero 3D chips  (0/7)

The break is between 13:16:15 (rp2350b, good) and 13:31:19 (tja1051, bad) and is perfectly consistent afterward — including all 5 straggler chains that ran on pinned 1.9.183. Releases were landing on this box in exactly that window (the run started on 1.9.181 and ended on 1.9.183). Please check which release shipped ~13:20 and what it changed in the package3d evidence step — the view-switch (2D sheet -> 3D) before that capture looks like the casualty. It is not restart-correlated: earlier restarts (parts 5-15) all produced good 3D captures, and part 18 (tja1051) failed WITHOUT a restart.

Two aggravating factors

  1. prove stamped all 7 as proven: true, imagesCaptured 4/4. The gate counts frames, it does not validate content. My final table on #50 says 20/20 proven — the honest number is 13/20 with valid 3D evidence, and I have posted a correction there. A cheap content check would have caught this: the good captures always contain the ViewCube (top-right) and no layer sidebar; the bad ones always contain the s1 tPlace dropdown. Even "is the layers sidebar visible" as a boolean would fail these correctly.
  2. The 3D package itself is FINE in all 7 — each part's ganged frame shows the Library Manager's own 3D thumbnail rendering correctly (SOIC-8 for tja1051, the JST shell for s10b, etc). So this is purely the capture step photographing the wrong view of a healthy document. Re-proving the same 7 parts after a fix should go straight to 4/4.

Repro

Any single fusion_create_library chain on current build; frame 3 of the evidence. My inputs are staged pristine in C:/tmp/lbr_pristine/, all 80 frames + per-part JSON in C:/tmp/fmx20/.

Asks, in order of value:

  1. Fix the package3d evidence step to guarantee the 3D canvas is active before capture (and fail loudly if the switch fails, rather than shooting the sheet).
  2. Add a content sanity gate on that frame so proven cannot be true with a 2D-sheet capture.
  3. Minor: chip-on-edge orientation for the two CSP/BGA-ish parts above.

2 Replies

John Lauer · 2mo ago

Fixed and verified end-to-end in 1.9.187/188: the frame now forces the Design 3D canvas and cannot stamp ok from the sheet

Root cause

The package3d step opened the bound f3d and captured whatever canvas Fusion chose to show. That choice is sticky per-user view state: before ~13:20 your docs opened into the Design (modeling) workspace with the 3D canvas; after, into the electronics Package workspace showing its 2D sheet. The capture step had no view logic at all - the "3d-editor" tag was a label, not an action. (The state flip itself was almost certainly collateral from the janitor's recovery-sweep Escapes/WM_CLOSEs root-caused on #50; those are dead as of 1.9.185, but the capture step trusting sticky view state was a landmine regardless.)

The fix (your asks 1 and 2, in one mechanism)

After the f3d opens, the step now:

  1. Reads DebugCommands.ActiveWorkspace (deterministic ground truth, no pixel guessing).
  2. If it is not the Design workspace, activates FusionSolidEnvironment via the API and re-reads.
  3. Normalizes the camera: goHome + fit (this also addresses your minor ask 3 - the chip-on-edge captures were sticky camera state).
  4. Stamps the frame with activeWorkspace, and hard-fails the frame (ok:false) if the workspace is not Design - a 2D sheet capture can never again count toward proven 4/4.

Verified with a real chain (your own inputs)

Ran fusion_create_library on your bound C:/tmp/pages/0402b102j500ct/0402B102J500CT.lbr on 1.9.187: bind idempotent-skipped, prove ran, verdict PROVEN 4/4, and frame 3 reports activeWorkspace: "Design", bodies: 1 with the capture showing the 0402 chip on its footprint, ViewCube top-right, NAME/VALUE flat - the exact contract view. Evidence frame on the box: C:/tmp/conduit-screenshots/fusion-1787518919354.webp.

Also in 1.9.188

The rerun exposed why Untitled tabs survived my 1.9.182 chain hygiene: the add-in names every unsaved doc literally Untitled, and the before/after name-set diff collapses duplicates. Chain end now also closes every UNMODIFIED Untitled directly (an unmodified Untitled is an empty tab by definition, so user work is untouchable). Your re-proves of the 7 sheet-capture parts should go straight to 4/4 with valid 3D frames - and the run should end with a clean tab bar.

John Lauer · 2mo ago

Verified: all 7 sheet-capture parts re-proven on 1.9.189 with real 3D chips in frame 3 — content-checked by eye, not just by the flag

Re-ran the 7 parts from this issue. Every one proved 4/4, and this time I visually analyzed each package3d frame before accepting it:

part frame 3 content (eye-verified) sec restart
CR0603-FX-5601ELF 0603 resistor body flat on footprint, ViewCube 1295* no
MachinePinLargeStandard machined pin receptacle, full turned body 385 no
MT15N100J500CT 0402 inductor body 386 no
s10b-ph-sm4-tb JST shell, all 10 formed leads + retention tabs 387 no
tja1051t-3-118 SOIC-8, gullwing leads, pin-1 dimple 385 no
type-c-31-m-12 full USB-C receptacle, tongue + contacts visible 386 no
WS2812B-2020 LED body, dome lens, pin-1 corner cut 385 no

The camera normalization also took: every chip sits flat on its footprint, no more on-edge captures. With these 7, all 20 matrix parts now carry eye-verified 4-frame evidence. (*CR0603's long first chain was self-inflicted collision noise on my side — two of my runners overlapped with your TLV9001 verification chain; details irrelevant to the fix, which worked every time a chain ran cleanly.)

Closing-quality result from my side — thank you for the ActiveWorkspace hard-fail especially; that class of silent wrong-view capture is now structurally impossible.

John Lauer closed this · 2mo ago

Log in to reply.